@aztec/accounts 0.0.1-commit.e310a4c8 → 0.0.1-commit.e558bd1c
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 +101 -81
- package/artifacts/EcdsaRAccount.json +101 -81
- package/artifacts/SchnorrAccount.json +101 -81
- package/artifacts/SchnorrSingleKeyAccount.json +58 -48
- package/artifacts/SimulatedAccount.json +51 -38
- package/package.json +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"transpiled": true,
|
|
3
|
-
"noir_version": "1.0.0-beta.18+
|
|
3
|
+
"noir_version": "1.0.0-beta.18+b3f73584360453a658cb6940db694c13668d6563",
|
|
4
4
|
"name": "SchnorrAccount",
|
|
5
5
|
"functions": [
|
|
6
6
|
{
|
|
@@ -1801,11 +1801,6 @@
|
|
|
1801
1801
|
"error_kind": "string",
|
|
1802
1802
|
"string": "attempt to subtract with overflow"
|
|
1803
1803
|
},
|
|
1804
|
-
"2754040237334517471": {
|
|
1805
|
-
"error_kind": "fmtstring",
|
|
1806
|
-
"length": 92,
|
|
1807
|
-
"item_types": []
|
|
1808
|
-
},
|
|
1809
1804
|
"2967937905572420042": {
|
|
1810
1805
|
"error_kind": "fmtstring",
|
|
1811
1806
|
"length": 61,
|
|
@@ -1830,6 +1825,24 @@
|
|
|
1830
1825
|
}
|
|
1831
1826
|
]
|
|
1832
1827
|
},
|
|
1828
|
+
"6176182337987467086": {
|
|
1829
|
+
"error_kind": "fmtstring",
|
|
1830
|
+
"length": 48,
|
|
1831
|
+
"item_types": [
|
|
1832
|
+
{
|
|
1833
|
+
"kind": "struct",
|
|
1834
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
1835
|
+
"fields": [
|
|
1836
|
+
{
|
|
1837
|
+
"name": "inner",
|
|
1838
|
+
"type": {
|
|
1839
|
+
"kind": "field"
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
]
|
|
1843
|
+
}
|
|
1844
|
+
]
|
|
1845
|
+
},
|
|
1833
1846
|
"8992688621799713766": {
|
|
1834
1847
|
"error_kind": "string",
|
|
1835
1848
|
"string": "Invalid public keys hint for address"
|
|
@@ -1851,6 +1864,11 @@
|
|
|
1851
1864
|
"error_kind": "string",
|
|
1852
1865
|
"string": "Obtained invalid key validation request"
|
|
1853
1866
|
},
|
|
1867
|
+
"12327971061804302172": {
|
|
1868
|
+
"error_kind": "fmtstring",
|
|
1869
|
+
"length": 98,
|
|
1870
|
+
"item_types": []
|
|
1871
|
+
},
|
|
1854
1872
|
"12469291177396340830": {
|
|
1855
1873
|
"error_kind": "string",
|
|
1856
1874
|
"string": "call to assert_max_bit_size"
|
|
@@ -1877,9 +1895,9 @@
|
|
|
1877
1895
|
}
|
|
1878
1896
|
}
|
|
1879
1897
|
},
|
|
1880
|
-
"bytecode": "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",
|
|
1881
|
-
"debug_symbols": "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",
|
|
1882
|
-
"verification_key": "
|
|
1898
|
+
"bytecode": "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",
|
|
1899
|
+
"debug_symbols": "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",
|
|
1900
|
+
"verification_key": "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"
|
|
1883
1901
|
},
|
|
1884
1902
|
{
|
|
1885
1903
|
"name": "entrypoint",
|
|
@@ -3808,9 +3826,9 @@
|
|
|
3808
3826
|
}
|
|
3809
3827
|
}
|
|
3810
3828
|
},
|
|
3811
|
-
"bytecode": "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PTvz33p25r/17Mx/69mZ/9azM/+tZ2f+W8/O/LeenflvPTvz33p25r/1Mu2EtTP/rWdn/lvPzvy3np35bz078996dua/9ezMf+vZmf/WszP/rWdn/lvPzvy3np35bz078996dua/9ezMf+vZmf/WszP/rWdn/lvPzvy3np35bz078996dua/9ezMf+vZmf/WszP/rWdn/lvPzvy3np35bz078996dua/9ezMf+vl2glrZ/5bz878t56d+W89O/Pfenbmv/XszH/r2Zn/1rMz/61nZ/5bz878t56d+W89O/Pfenbmv/XszH/r2Zn/1rMz/61nZ/5bz878t56d+W89O/Pfenbmv/XszH/r2Zn/1rMz/61nZ/5bz878t56d+W89O/Pfenbmv/XszH/r2Zn/1nvGTlg78996dua/9ezMf+vZmf/WszP/rWdn/lvPzvy3np35bz078996dua/9ezMf+vZmf/WszP/rWdn/lvPzvy3np35bz078996dua/9ezMf+vZmf/WszP/rWdn/lvPzvy3np35bz3V/Ldt027olTmodUZ6Vp672rujRctWrc9tc17bdu07nN+x0wUXXnRx50suvezyK67sclXXq7t1T7umx7Xp113f84aMXr37ZPbN6td/wMBBNw6+6eZbhiRuTWQnbksMTdyeGJa4IzE8cWdiROKuxMjE3YlRiXsSoxNjEjmJ3EReYmxiXOLexPjEfYkJifsTExMPJCYlHkxMTkxJTE08lJiWeDjxSGJ6Ykbi0cRjiZmJWYnHE7MTTySeTDyVeDrxTGJO4tnEc4nnEy8kXkzMTbyUeDnxSmJe4tXEa4nXE/MTbyQWJN5MLEy8lViUeDuxOPFO4t1EIiGJ9xJLEksTyxLvJz5IfJhYnvgosSLxcWJl4pPEqsTqxJrEp4m1ic8S6xKfJ9Ynvkh8mfgqsSHxdeKbxLeJjYnvEpsS3yc2J7Ykfkj8mPgp8XNia+KXxLbEr4ntid8Svyf+SPyZ+CuxQ5wS4jjiuOJ44pQUp5Q4pcUpI05ZccqJU16cCuJUFKeSOJXFqSLOYeJUFaeaONXFqSFOTXFqieMTxy9OQJwUcYLihMQJixMRJypOqjgxceLi1BbncHHqiHOEOHXFOVKceuIcJU59cY4W5xhxjhWngTjHidNQnOPFaSTOCeKcKM5J4pwszininCrOaeKcLs4Z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",
|
|
3812
|
-
"debug_symbols": "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uc+c+8y5z5z7zLnPnPvMuc+c+8y5z5z7zLnPnPvMuc+c+8y5z5z7zLnPnPvMuc+c+8y5z5z7zLnPnPvMuc+c+8y5z5z7zLnPnPvMuc+c+8y5z5z7zLnPnPvMuc+c+8y5z5z7zLnPnPvMuc+c+8y5z5z7zLnPnPvMuc+c+8y5z5z7zLnPnPvMuc+c+8y5z5z7zHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8x5zJzHzHnMnMfMecycx8y5Zs41c66Zc82ca+ZcM+eaOdfMuWbONXOumXPNnGvmXDPnmjnXzLlmzjVzrplzzZxr5lwz55o518y5Zs41c66Zc82ca+ZcM+eaOdfMuWbONXOumXPNnGvmXDPnmjnXzLlmzjVzrplzzZxr5lwz55o518y5Zs41c66Zc82ca+ZcM+eaOdfMuWbONXOumXPNnGvmXDPnmjnXzLlmzjVzrplzzZxr5lwz55o518y5Zs41c66Zc82ca+ZcM+eaOdfMuWbONXOumXPNnGvmXDPnmjnXzLlmzjVzrplzzZxr5lwz55o518y5Zs41c66Zc82c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnOfMec6c58x5zpznzHnOnNfMec2c18x5zZzXzHnNnNfM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DJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLBEsESwRLEpYkLElYkrAkYUnCkoQlCUsSliQsSViSsCRhScKShCUJSxKWJCxJWJKwJGFJwpKEJQlLEpYkLElYkrAkYUnCkoQlCUsSliQsSViSsCRhScKShCUJSxKWJCxJWJKwJGFJwpKEJQlLEpYkLElYkrAkYUnCkoQlCUsSliQsSViSsCRhScKShCUJSxKWJCxJWJKwJGFJwpKEJQlLEpYkLElYkrAkYUnCkoQlCUsSliQsSViSsCRhScKShCUJSxKWJCxJWJKwJGFJwpKEJQlLEpYkLElYkrCkYEnBkoIlBUsKlhQsKVhSsKRgScGSgiUFSwqWFCwpWFKwpGBJwZKCJQVLCpYULClYUrCkYEnBkoIlBUsKlhQsKVhSsKRgScGSgiUFSwqWFCwpWFKwpGBJwZKCJQVLCpYULClYUrCkYEnBkoIlBUsKlhQsKVhSsKRgScGSgiUFSwqWFCwpWFKwpGBJwZKCJQVLCpYULClYUrCkYEnBkoIlBUsKlhQsKVhSsKRgScGSgiUFSwqWFCwpWFKwpGBJwZKCJQVLCpYULClYUrCkYEnBkoIlBUsaljQsaVjSsKRhScOShiUNSxqWNCxpWNKwpGFJw5KGJQ1LGpY0LGlY0rCkYUnDkoYlDUsaljQsaVjSsKRhScOShiUNSxqWNCxpWNKwpGFJw5KGJQ1LGpY0LGlY0rCkYUnDkoYlDUsaljQsaVjSsKRhScOShiUNSxqWNCxpWNKwpGFJw5KGJQ1LGpY0LGlY0rCkYUnDkoYlDUsaljQsaVjSsKRhScOShiUNSxqWNCxpWNKwpGFJw5KGJQ1LGpY0LGlY0rCkYUnDkoYlDUsaljQsaVjSsGTDkg1LNizZsGTDkg1LNizZsGTDkg1LNizZsGTDkg1LNizZsGTDkg1LNizZsGTDkg1LNizZsGTDkg1LNizZsGTDkg1LNizZsGTDkg1LNizZsGTDkg1LNizZsGTDkg1LNizZsGTDkg1LNix57LLef6eyPXZZn+We8mLJs1yURumUQSnKpCRNpIm0JC1JS9KStCQtSUvSkrQkLUkr0oq0Iq1IK9KKtCKtSCvSirQmrUlr0pq0Jq1Ja9KatCatSdukbdI2aZu0TdombZO2Sduk7ZPmj13WZ7kojdIpg1KUSVmUTUnaIm2RtkhbpC3SFmmLtEXaIm2RZqQZaUaakWakGWlGmpFmpBlpTpqT5qQ5aU6ak+akOWlOmpMWpAVpQVqQFqQFaUFakBakBWkiTaSJNJEm0kSaSBNpIk2kJWlJWpKWpCVpSVqSlqQlaUlakVakFWlFWpFWpBVpRVqRVqQ1aU1ak9akNWlNWpPWpDVpTdombZO2SdukbdI2aZu0TdomDZYsWLJgyYIlC5YsWLJgyYIlC5YsWLIeLNG9fLDkUV5pdZVGef009asMSlEmZVE25Z7ycV1yfQ2P65JHaZROGZSiTMqibMo9pZPmpDlpTpqT5qQ5aU6ak+akBWlBWpAWpAVpQVqQFqQFaUGaSBNpIk2kiTSRJtJEmkgTaUlakpakJWlJWpKWpCVpSVqSVqQVaUVakVakFWlFWpFWpBVpTVqT1qQ1aU1ak9akNWlNWpO2SdukbdI2aZu0TdombZO2SduT9tx7fZSL0iidMihFmZRF2ZSkLdIWaYu0RdoibZG2SFukLdIWabDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKw5Ln3+ihJgyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWJKwJGFJwpKEJQlLEpYkLElYkrAkYUnCkoQlCUsSliQsSViSsCRhScKShCUJSxKWJCxJWJKwJGFJwpLn3quusin3lI/3cfoqF6VRXq9i76sM/lSUSVmUTbmnDNKCtCDt8T7OoyQtSAvSgrQgLUgTaSJNpIk0kSbSRJpIE2kiLUlL0pK0JC1JS9KStCQtSUvSirQirUgr0oq0Iq1IK9KKtCKtSWvSmrQmrUlr0pq0Jq1Ja9I2aZu0TdombZO2SdukbdI2E7BnAh57r9dfeOy93l0n/th7fZZOeU/T4++KMimLsin3lBdLnuWVtq/SKK9js6u8Rvp2lUlZlE25p5ylEmfZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZdnWVXZ9nVWXZ1ll2dZVdn2dVZdnWWXZ1lV2fZ1Vl2dZZd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eRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5FZJXIXkVklcheRWSVyF5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJayJ5TSSvieQ1kbwmktdE8ppIXhPJ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wxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LkLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5LSSvheS1kLwWktdC8lpIXgvJayF5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10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3ltJK+N5LWRvDaS10by2kheG8lrI3nt596rrtIonfJ6r6OvUpRJeb3Xsa+y+dM95UhLOkda0jnSks6RlvRj7/VZkrZIe7yP8yhJW6QZaUaakWakGWlGmpFmpBlpRpqT5qQ5aU6ak+akOWlOmpPmpAVpQVqQFqQFaUFakBakBWlBmkgTaSJNpIk0kSbSRJpIE2lJWpKWpCVpSVqSlqQlaUlaklakFWnFBBQTUKRdLGm7yqQsynta51Xe0/r6ZxdLnuWiNEqnDMor7ZqsiyW9//bzT//vD3/90x/+5c9//O+f/uH/3v7z3//3L//6P3/6z788//N//r//Ov/Pv/z1T3/+85/+45//66//+a9//Lf//esf//nP//mv9//vp9v9f+5T+Y8rf7b1T29/ef36j+z5V//x7TLw57crp3/6+Se//5duP79dRL791/XX365/f367mL3/57r/Z9fb3933f+/3f3//F7Z/9j1//+1f6/5/xyS+gaimQd9+brv//+Ir2j9b3P8o548sfrYrpPij+tmvf9gnN+3nspNb++e+mmz61s92/YvFCbH1s+X1Z5yRWG8HfP2ZfXuW/va3f/rb/w8=",
|
|
3813
|
-
"verification_key": "
|
|
3829
|
+
"bytecode": "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",
|
|
3830
|
+
"debug_symbols": "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3GfOfebcZ8595txnzn3m3GfOfebcZ8595txnzn3m3GfOfebcZ8595txnzn3m3GfOfebcZ8595txnzn3m3GfOfebcZ8595txnzn3m3GfOfebcZ8595txnzn3m3GfOfebcZ8595txnzn3m3GfOfebcZ8595txnzn3m3GfOfebcZ8595txnzn3m3GfOfebcZ8595txnzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs5j5jxmzmPmPGbOY+Y8Zs41c66Zc82ca+ZcM+eaOdfMuWbONXOumXPNnGvmXDPnmjnXzLlmzjVzrplzzZxr5lwz55o518y5Zs41c66Zc82ca+ZcM+eaOdfMuWbONXOumXPNnGvmXDPnmjnXzLlmzjVzrplzzZxr5lwz55o518y5Zs41c66Zc82ca+ZcM+eaOdfMuWbONXOumXPNnGvmXDPnmjnXzLlmzjVzrplzzZxr5lwz55o518y5Zs41c66Zc82ca+ZcM+eaOdfMuWbONXOumXPNnGvmXDPnmjnXzLlmzjVzrplzzZxr5lwz55o518y5Zs41c66Zc82ca+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmPGfOc+Y8Z85z5jxnznPmvGbOa+a8Zs5r5rxmzmvm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MVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlAUsClgQsCVgSsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIliSsCRhScKShCUJSxKWJCxJWJKwJGFJwpKEJQlLEpYkLElYkrAkYUnCkoQlCUsSliQsSViSsCRhScKShCUJSxKWJCxJWJKwJGFJwpKEJQlLEpYkLElYkrAkYUnCkoQlCUsSliQsSViS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vArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CsmrkLwKyauQvArJq5C8CslrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymjaigbQRDaSNaCBtRANpIxpIG2lJ2khL0kZakjbSkrSRlqQt0hZpi7RFmpFmpBlpRpqRZqQZaUaakWakOWlOmpPmpDlpTpqT5qQ5aU5akBakBWlBWpAWpAVpQVqQFqSJNJEm0kSaSBNpIk2kiTSRlqQlaUlakpakJWlJWpKWpCVpRVqRVqQVaUVakVakFWlFWpHWpDVpTVqT1qQ1aU1ak9akNWmbtE3aJm2TtknbpG3SNmmbtJGWpI+0JH2kJekjLUkfaUn6SEvSR1qSDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJw5LHsuvdk5OPZddneaXVVRrl9dPUrzIoRZmURdmUe8pZnE+fxfn0WZxPn8X59FmcT58P4aTPh3DS50M46fMhnPT5EE76Jm2TtknbpG3SNmmbtE3aJm0+hJMxH8LJmA/hZMyHcDLmQzgZ8yGcjPkQTsZ8CCdjPoSTMR/CybiRtkhbpC3SFmmLtEXaIm2RtkhbpBlpRpqRZqQZaUaakWakGWlGmpPmpDlpTpqT5qQ5aU6ak+akBWlBWpAWpAVpQVqQFqQFaUGaSBNpIk2kiTSRJtJEmkgTaUlakpakJWlJWpKWpCVpSVqSVqQVaUVakVakFWlFWpFWpBVpsCRgScCSgCUBSwKWBCwJWBKwJGBJwJKAJQFLApYELAlYErAkYEnAkoAlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiUJSxKWJCxJWJKwJGFJwpKEJQlLEpYkLElYkrAkYUnCkoQlCUsSliQsSViSsCRhScKShCUJSxKWJCxJWJKwJGFJwpKEJQlLEpYkLElYkrAkYUnCkoQlCUsSliQsSViSsCRhScKShCUJSxKWJCxJWJKwJGFJwpKEJQlLEpYkLElYkrAkYUnCkoQlCUsSliQsSViSsCRhScKShCUJSxKWJCxJWJKwJGFJwpKEJQlLEpYkLElYkrAkYUnCkoQlCUsSliQsSViSsCRhScKShCUJSxKWJCxJWFKwpGBJwZKCJQVLCpYULClYUrCkYEnBkoIlBUsKlhQsKVhSsKRgScGSgiUFSwqWIHlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS10TymkheE8lrInlNJK+J5DWRvCaS13zuveoqg1KU13sdfZVF2ZTXex37Xo60JPdIS3KPtCT3SEtyj7Qk90hL8rH3+ixJE2mP93GuMklL0pK0JC1JS9KStCQtSUvSirQirUgr0oq0Iq1IK9KKtCKtSWvSmrQmrUlr0pq0Jq1Ja9I2aZu0TdombZO2SdukbdI2aSNAqtsIkOo2AqS6jQCpbiNAqtsIkOo2AqS6jQCpbiNAqtsIkOp2I22RtkhbpC3S1pmAeu69PkrSLpbc5Tj12Ht9lnvKiyW6/u7FkmdplE4ZlKJMyittX2VTXsdm9/IBkNtVGqVTBqUozzJQsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaLLsWy67Fsmux7FosuxbLrsWya7HsWiy7FsuuxbJrsexaBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInBEoMlBksMlhgsMVhisMRgicESgyUGSwyWGCwxWGKwxGCJwRKDJQZLDJYYLDFYYrDEYInDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscVjisMRhicMShyUOSxyWOCxxWOKwxGGJwxKHJQ5LHJY4LHFY4rDEYYnDEoclDkscljgscViC5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkheC8lrIXktJK+F5LWQvBaS10LyWkhe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",
|
|
3831
|
+
"verification_key": "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"
|
|
3814
3832
|
},
|
|
3815
3833
|
{
|
|
3816
3834
|
"name": "lookup_validity",
|
|
@@ -3890,8 +3908,8 @@
|
|
|
3890
3908
|
}
|
|
3891
3909
|
}
|
|
3892
3910
|
},
|
|
3893
|
-
"bytecode": "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",
|
|
3894
|
-
"debug_symbols": "
|
|
3911
|
+
"bytecode": "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",
|
|
3912
|
+
"debug_symbols": "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"
|
|
3895
3913
|
},
|
|
3896
3914
|
{
|
|
3897
3915
|
"name": "verify_private_authwit",
|
|
@@ -5676,11 +5694,6 @@
|
|
|
5676
5694
|
"error_kind": "string",
|
|
5677
5695
|
"string": "Attempted to read past end of BoundedVec"
|
|
5678
5696
|
},
|
|
5679
|
-
"2754040237334517471": {
|
|
5680
|
-
"error_kind": "fmtstring",
|
|
5681
|
-
"length": 92,
|
|
5682
|
-
"item_types": []
|
|
5683
|
-
},
|
|
5684
5697
|
"3387382714057837913": {
|
|
5685
5698
|
"error_kind": "string",
|
|
5686
5699
|
"string": "Note storage slot mismatch."
|
|
@@ -5697,6 +5710,11 @@
|
|
|
5697
5710
|
"error_kind": "string",
|
|
5698
5711
|
"string": "Can't read a transient note with a zero contract address"
|
|
5699
5712
|
},
|
|
5713
|
+
"12327971061804302172": {
|
|
5714
|
+
"error_kind": "fmtstring",
|
|
5715
|
+
"length": 98,
|
|
5716
|
+
"item_types": []
|
|
5717
|
+
},
|
|
5700
5718
|
"12469291177396340830": {
|
|
5701
5719
|
"error_kind": "string",
|
|
5702
5720
|
"string": "call to assert_max_bit_size"
|
|
@@ -5736,9 +5754,9 @@
|
|
|
5736
5754
|
}
|
|
5737
5755
|
}
|
|
5738
5756
|
},
|
|
5739
|
-
"bytecode": "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/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VvXhyHL63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/rcqgyPL6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfqmyOLKf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6te4chy+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63ag9HltP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1U/cmQ5/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W/NchxZTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzWbcmQ5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9b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",
|
|
5740
|
-
"debug_symbols": "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",
|
|
5741
|
-
"verification_key": "
|
|
5757
|
+
"bytecode": "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/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vVS+OLKf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6syOLKc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+tyubIcvrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t+pVjiyn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rdnFkOf1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W8Xpf6s4/W8Vp/+t4vS/VZz+t4rT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vFaf/reL0v1Wc/reK0/9WcfrfKk7/W/UjR5bT/1Zx+t8qTv9bxel/qzj9bxWn/63i9L9VnP63itP/VnH63ypO/1vF6X+rOP1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9Ysx5Hl9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W7MpR5bT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vzV4cWU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81Of1vTU7/W5PT/9bk9L81MziynP63Jqf/rcnpf2ty+t+anP63Jqf/rcnpf2ty+t+anP63Jqf/rcnpf2ty+t+anP63Jqf/rcnpf2ty+t+anP63Jqf/rcnpf2ty+t+anP63Jqf/rcnpf2ty+t+anP63Jqf/rcnpf2ty+t+anP63Jqf/rcnpf2tmc2Q5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzU5/W9NTv9bk9P/1uT0vzWh/rfdUsakZ0zunJaaOb3UPvP2uvXqNzjjzIaNzmp8dpOmzc5pfu5557e44MKLLr6kZavWbdq2a9+hY6fOXbpe2q17j56X9erd5/Ir+l55Vb+r+w8YOGhw8pChw1KGjxiZOuqa0WPS0seOyxifOWHitZMmX3f9DTdOuSkwNZAVuDlwS+DWwG2B2wN3BO4M3BW4O3BP4N7AfYH7Aw8EpgX8gezA9MCMwIOBhwIPBx4JPBp4LPB4YGbgicCTgacCTweeCTwbmBWYHZgTeC7wfGBu4IXAvMCLgZcC8wMLAi8HFgZeCbwaWBRYHFgSWBpYFlgeWBFYGVgVWB1YE1gbeC2wLrA+sCHwemBjYFNgc2BL4I3Am4GtgW2BQEAC2wM7AjsDbwV2Bd4OvBN4N7A78F5gT2Bv4P3AB4F9gQ8DHwX2Bz4OHAh8Evg08Fng88AXgS8DXwW+DnwT+DbwXeD7wA+Bg4FDgcOBHwM/BX4O/BL4NXAk8FvgaOBY4PfAH4HjgT8Df4kRI4YhhhLDFMMnRqwYcWLEi5EgRqIYxcQoLkYJMUqKUUqM0mKUEaOsGOXEKC9GBTEqilFJjMpiVBGjqhjVxKguRg0xaopxihinipEkRi0xThOjthh1xDhdjLpi1BOjvhgNxDhDjDPFaChGIzHOEqOxGGeL0USMpmI0E+McMZqLca4Y54lxvhgtxLhAjAvFuEiMi8W4RIyWYrQSo7UYbcRoK0Y7MdqL0UGMjmJ0EqOzGF3E6CrGpWJ0E6O7GD3E6CnGZWL0EqO3GH3EuFyMK8ToK8aVYlwlRj8xrhajvxgDxBgoxiAxBouRLMYQMYaKMUyMFDGGizFCjJFipIoxSoxrxBgtxhgx0sRIF2OsGOPEyBBjvBiZYkwQY6IY14oxSYzJYlwnxvVi3CDGjWJMEeMmMaaKkSXGzWLcIsatYtwmxu1i3CHGnWLcJcbdYtwjxr1i3CfG/WI8IMY0MfxiZIsxXYwZYjwoxkNiPCzGI2I8KsZjYjwuxkwxnhDjSTGeEuNpMZ4R41kxZokxW4w5YjwnxvNizBXjBTHmifGiGC+JMV+MBWK8LMZCMV4R41UxFomxWIwlYiwVY5kYy8VYIcZKMVaJsVqMNWKsFeM1MdaJsV6MDWK8LsZGMTaJsVmMLWK8IcabYmwVY5sYATFEjO1i7BBjpxhvibFLjLfFeEeMd8XYLcZ7YuwRY68Y74vxgRj7xPhQjI/E2C/Gx2IcEOMTMT4V4zMxPhfjCzG+FOMrMb4W4xsxvhXjOzG+F+MHMQ6KcUiMw2L8KMZPYvwsxi9i/CrGETF+E+OoGMfE+F2MP8Q4LsafYvwlKkaUIUqJMkX5RMWKihMVLypBVKKoYqKKiyohqqSoUqJKiyojqqyocqLKi6ogqqKoSqIqi6oiqqqoaqKqi6ohqqaoU0SdKipJVC1Rp4mqLaqOqNNF1RVVT1R9UQ1EnSHqTFENRTUSdZaoxqLOFtVEVFNRzUSdI6q5qHNFnSfqfFEtRF0g6kJRF4m6WNQlolqKaiWqtag2otqKaieqvagOojqK6iSqs6guorqKulRUN1HdRfUQ1VPUZaJ6ieotqo+oy0VdIaqvqCtFXSWqn6irRfUXNUDUQFGDRA0WlSxqiKihooaJShE1XNQIUSNFpYoaJeoaUaNFjRGVJipd1FhR40RliBovKlPUBFETRV0rapKoyaKuE3W9qBtE3ShqiqibRE0VlSXqZlG3iLpV1G2ibhd1h6g7Rd0l6m5R94i6V9R9ou4X9YCoaaL8orJFTRc1Q9SDoh4S9bCoR0Q9KuoxUY+LminqCVFPinpK1NOinhH1rKhZomaLmiPqOVHPi5or6gVR80S9KOolUfNFLRD1sqiFol4R9aqoRaIWi1oiaqmoZaKWi1ohaqWoVaJWi1ojaq2o10StE7Ve1AZRr4vaKGqTqM2itoh6Q9SboraK2iYqIEpEbRe1Q9ROUW+J2iXqbVHviHpX1G5R74naI2qvqPdFfSBqn6gPRX0kar+oj0UdEPWJqE9FfSbqc1FfiPpS1Feivhb1jahvRX0n6ntRP4g6KOqQqMOifhT1k6ifRf0i6ldRR0T9JuqoqGOifhf1h6jjov4U9ZeYMWJqV1ZimmL6xIwVM07MeDETxEwUs5iYxcUsIWZJMUuJWVrMMmKWFbOcmOXFrCBmRTEriVlZzCpiVhWzmpjVxawhZk0xTxHzVDGTxKwl5mli1hazjpini1lXzHpi1hezgZhniHmmmA3FbCTmWWI2FvNsMZuI2VTMZmKeI2ZzMc8V8zwxzxezhZgXiHmhmBeJebGYl4jZUsxWYrYWs42YbcVsJ2Z7MTuI2VHMTmJ2FrOLmF3FvFTMbmJ2F7OHmD3FvEzMXmL2FrOPmJeLeYWYfcW8UsyrxOwn5tVi9hdzgJgDxRwk5mAxk8UcIuZQMYeJmSLmcP0Bv/4wXn9wrj/k1h9I6w+P9Qe9+kNZ/QGq/rBTfzCpP0TUH/jpD+f0B2n6Qy/9AZX+MEl/8KM/pNEfqOgPP/QHFfpDBf0BgH5Yrx+s64fg+oG1frisHwTrh7b6Aat+GKofXOqHjPqBoH54px+06Ydi+gGWftikHwzphzj6gYt+OKIfZOiHDvoBgb6Z1zfe+iZZ39Dqm099o6hv6vQNmL5Z0jc2+iZE3zDoi3t9Ia4vmvUFrr4Y1ReO+iJPX5DN65WSOSEjrV1yZvK+mLoxhjJ9sXHxCYnFipcoWap0mbLlyleoWKlylarVqteoecqpSbVOq13n9GnT9sU0yc6a3XpoakbF7B0747/9edvmEdOmnXypcuGXkrJ37KlasXaN/ns2577UOHvHLV2PVq/TrceM3JfOzt7RWA1/5oll3a7KfemS7B1H+2+/7OAT9WNyX2qXvSM7rvQdu9TQTbkvdSicUW+Q7B0fvH5mr93t407Ne9G3PHvHZwk926sl91pefC17x/ziu9qseSphYPDF9aFe3BzqxTdCvbgr1Itvh3pxT6gX3w/14r5QL34Y6sVPQr34WagXvwr14jehXjwc6sUfQ714JNSLR0O9+HuoF/8I8WKsEepFM9SL8aFeTAz1YplQL5YN9WKlUC9WCfVitVAvVg/1YlKoF08L9WLdUC/WD/Vi1xA1Hz8/e8ddPbq3a3TXPl/wxQWhXnw51Iu6vF+suG5Au9p/9d8XMzRrXvtJYzNSxo9PTU+bPs3+4XdPp28Y6fQNyU7fMN7pG1KcviHJ6RuG/vNWKc3pG0b885Z1GH1KmfQMQ/95UxpGP3Hp9Gp1PKXhTt8wgX4M/NJI/T9w4q6lH3Qmnd6OD3rsf7b7j7BdPu6vcfqGs+jL2pnO1qR/3hZNpe+HpP8DU3K8HybRyff/5RVZQ/qZnkAvPr4/1Hb6hqvpLjqa/gbHl3COL7AG/Xc1w1il/x4iIG8Y4PQNMTOz99ZP/vurDoOGpo8Zm5yZOmR0yqD0jOSh+n8mpmTkCA26NiN57NiUjH0xlbLmtE1PG585Peu5dqkZKUMzVdbzndMyU0akZMy6vFlT+29JFHy/4ej9U9sVfH+Ms/ztsma3TR492l88T2dur5TR+qAnpjibSUxMYQXlVOGlnLkM0x9OtE0fOznvkNpZ52QRPzHzklHPvJ0HM5/dOzN9rD87zEwLnKO2czqkpoy2//XZ4s+d+Ljm5JGWyXqxQ3pGSuqItJz/++DeOhMyU0enZk4+8cWctnnF2uPvWr3iRKlOm+bPmn/iOzathw3L2Qh5s/BnPdc7dczY0SknppObrMBkfY6WYlK7rBfbpKYl53yjJ7PH2AdzVcy5l+rUfUYmp+WoBIs1L8lzXSaMGdt5eHbeGypmze+cNuzETMPukHMj9DR7f9Mvuxd3aToma3YfvVv92cH3527Vk0ecvffs1PGDxqcOSxmUMny4/oHe+BN0hoxBGSl6w+cDQN7Gr/o/3vgdotz4HU4WVamoi98orGB6vvGVVVzP3HLg7YIDa9asWd3SJ+bbkHlhJ4689MmIky+3t4ZGuybto14TozBSrGuQnwzlC5JhbEbqxOTMlM7je+uqbv93Ubc9UdO98kq6EBeCifLIkDfnZy9vEj7eKBwf+gwEM3gDmw5ewaZK0cHmhYmpKdcOSkvPTNlnfPM/hshlUULkspP1V7lwuTs7kzFmYYVYbyDSwToni3h+iHQIDiwlH5YhHQr+ROX+pGPBn5i5P+l0crGq5+dOZ6t8vp90scrn+0lXq3y+n1xqPdp8P+lmPfh8P+ke/Elc/p/0CP4kPv9PegZ/klD41CU6O3WdCysUc6aQUJiWiVaxghdglpN8vvNd1g68fosp+Mb2DjdFfsqLsbpgccUGN35IEhqzNKytEAzyqBDx3G68gqmDxZSXvPB89dX7penJw7KtpWeJwhXjgopzdAlkpORbHUtYUecrcKbiGGcqzqMzFR/xOAuuXDywciEU47GVi/8v3788XyGYxzvCbYgHCQlR35EkOr2YiN6Rwqxs8YhUDPOmEm7eVNLNm0pFREGYN5V2k6mMmzeVdfOmcm7eVD7imwrQvUKQ2oUKp6KzwlGwP1gyhHWICk53ToEDqxjhwCo50050fmCVwh9YxaiRUMkj86xcuFAqWLMUgmVl61GEEa0USjRYsta7/ZdPPgbsmJLZXd9Vjs/OeqFTSvLY1hkZyZMtWSsZYe/fK2ZnzTkR7g8O8j0bTDBC3uHviykX/qFA+McLYX9ihv1JfOiDKh4T+vUSYV4vGeb1UmFeLx3m9TJhXi8b5vVyYV4vHxP2iBPC/iQx3ANdF1rFck5hiIc9+U9/6P9ndfVCdWP9YYynPz0xiZgizOjkpyEfhEEv5qwi/u5wTyaif3bpgtMRblEMjyirCgPRCGvHpnVqhfhrBp8Eh0lmFk5mRrj6/U/wHyloMQ/P5xju8Z+Lu/tCaZS1xMPv8+gTGVZPKXiXaFqvPLxZvwrWsDCSsRGvphIiTdPJYxwzkma+5zhzonzo4uSezrRmKTir4pa3OrjlM4MPHwsqlrC8sfBxlnR2nD4HN4emNUvBWZWyvLXwrEo7m1WsgxtJ05ql4KzKWN5aeFZlnc0qzsFNp2nNUnBW5SxvLTyr8s5mFe/gDse0Zik4q0rWe50wmlUiahYrpGm5aaqS+9lN3itVrbmt11MFA6tY3nPyYjbCfaG+DnZ+x+zLB9WcDxr9gfvCrULV/J9UhhKpGPy0Mvg2Ma7N1Z4W6bM35AhiInyoUEi6uLOSKub8WrI4/4OJ4k4e7ZSwTq2QpZWwrjoO+hIRXLKE7ZXQf4L/FwTn2l6eup9jISZ5eNWY/1P08JdOET84MiJd3sQ62LjFsU8likf9/YLECDeZeaBfFHbmYUCf7y6lMOiLi1EzV3tpoSUzAPiYoe6b54a/9s33Raswmr6ImnGRrtF9Dq7RjfBXrj5rOvwjLCPSdWccsCMTImqWjlTxYT8QSoyoWfiaL8Fad/hGMSJdsSVadwpOIyPSFRtyvxJZszBeilk1I3zvF/mcsUMkJCACyYUFSjgSSI1004UIjC4sUMqRQEqkGyxEIMT1cxlHAkmRbqYQgczCAuUcCaRHunFCBEYUFqjgSCDNyadulZ3ZVkXnV+CVPfzUDb+jrBj2CryKdWqFTL6Kdf/jN5tVIlw3VAEuRdxLlvBesqT3kqW8lyztvWQZ7yXLei9Z7l9x4OX/FUVU9l+xlrH/illW+FeUellGXRa+1VJiVIj6V8kqOXmWVsKptmMnLxHhYVZseJcvAf7Sw7GUM3pNuvDhtu6eX+AfYVguDSJc70KLWCH/19jzfRCR7ye+wqt48iex1uS538zeEPXnJxUcraIli+fPqnJ/hcVSKpb9EP6XeswIT0hCfB86b5hY+NPUvKEvwuP1+II/s9xtFy+8EfOGCQV/ZrmjLpb3lfvwd7Mq0gdpRqTPs4o7+NZlqQgoKw5YbCn7J04lQmCwlBinn3ziJEZmpCMt7q66Ih1M+OcEz7UfNyF59Piwh5IY4lBKiHFm3gYVB0tf3FoaEVaglIOvtha3ln6EEinj4EusxcM/ICsDWHKFiLMsGenDxrCwqhhRs/ADsgpWyuM3i8WtlwcFNSta3urg2sGiWT7yx4/hPsyLqFn4AZn1w8hIvPGF9azi0f3+pP54Lnd77CzIxKpBuwtzuNUKH25V68YptNGrBYeVwh5SVd4hFXdzSPn2baRDKvG/OEslbA+pagQYty98QFWtUAp3QCX+l+eolA21Ch1SPrj+I89RqYhXeKUjHlK5f+NZKhvxkCr8G89S+YiHVPHfeJaKRTykyv/GsxQb8ZCqRPywu4Tlshj/2C3fFw3D3x8VD36CXPBKoBpw2RXCuKphX8SsFvrrRTfknYPPwjpLyGtyX+Rrci19k+WavOCxVrUuDu5oVbHvAVeN9MWxKvm/OBb+JBS+/aseHIb9CKJGyNWqHnm1aohxZ95qfRl2w1WLcsMlht9w1W03XI3Cp6N6xMvAGtbtGO6QqvMOqZqbQ6oW8TKwhnUj/3vOUvjLwBrIde0/+ByVjHhIpf6NO6l0xEMq8288S2UjHlK5f+NZKh/xkKr+L85StHfyxSLe9laO+PsrVSP+0klChIe7CcHvTkfXI+qyLI96RImxvsi6RIWec3zBj3rM4KnNV1gJwYB8rycGDy9kgmLWi5SCWvGFlqSYGIHci6GTL8UF35Z75gvmjgudO6HgwSWE+6goV7DgGxItH2GcvFLflLueUZ643L8iZX/iwiyHGeaMhlhwS7uFggseL8Y7ece2u+DHUnmpciM+DRPh+FvAPvAMmME35MtcLEw9hr1DPflyiRDLU8xyugssj37g/0mBE5AQfFuBeiweDAm9FwoeXDGbeixe8A3FC9fjB+EK0emvNnhU1yU3Le9x4Lexde3rOspEi5o3vKDklXWn2vfHWzgiJXNQ8oTMkYOuTc1M04zeF3PW/7hN3m1Rtsm7La9N47+v16ZdF80K7n5hO9rDaB91x8FWYa/FVNhvAphhvwngO7kcNf8BrUNbOWkdWj/CrzJHO5HWzr+xYob/VorjrYL/RoSyoN3aWmVJsLVKa02kvieA5A/dy8NsFa57SiukderJX0cEeqb+O64N6/2TrwyTvOk/e5tX9xaNiq7/7IJBg3IcdtyE9MzUlLTMfTG9/8fu2jlKd+0cvpO1Q16pqE0FaEKb75eh3PSXPXG0BZ6OdLKKRGtBndjdq+GG+A9njfKPHLf1vouS7q2054bjHeFOrGcP655xoMnTDZb3bL80K+vKAYU6sYZ5o1FQKL9bdvH0Nyuj7ngc+XczPewVG+lXK4usR4liXD477OYRoh9IPNgN2IjYpeiEL50W9hcP7b/NFxfiA6SE3O/ytY/0a4RG1vwTWf8+kB5jZ1g+lcrLa31n7rYNkTGxwcmMjSOI5hRACL32DlvUJFjrMUK23hOGhHxTfMS6Tsw7EJd5Iy1du1BL1/FkxmYODiZPz+ZQXJ39YmGytY14ooqFFwyWcfCcI+8rFul9YX8LNvHZHn/3sgt11MVCnYB2J0/AxZHWy+fgF3kTrFs8zNuKLcg9tlCfEOf7bd/CUy7W5qQz9YxoBrm13DEsDqy/Sx76RiM4pYjfcojUjC0hD3PRXXd39uq6u0fRPdGPMtHO+G9/3rZ5xDT7C/zZ+gI/83//B2o6RnlZ3/FfcFnfzuFlffi+ce1D/1GaDl5e1nco6j9KExbnZghrjNz1rnCS6AjS0SuCFOFfjlkwLCXnL9Klj08ZNDI15879lP+7W/xf/1w80l+XCrfF/wmPxVXhLW6GuDQ4cZCFO7GZ1uPMTTz78iZNC/disy7nyYef4YGR/0I08k2hkXtDVr5JzHun7m8++cxK56b3mHjr/j7zp1SY1eDL0lV+mHDRxKP70sPn883qNmF0mKOK8IQ20i+y/cO4VbPouDV3dGYusWr9d1Fy8t9/FyUn/hXxRUn1CHv+5AccYbZ24XsvX6WTtzMRrnR8Ia50DOxmyXdSvWrkRkdNonrwZOQl+fdcciUV4V8GrTc+56Z6UGraoJRJKUP1x4HpaYOGJg8dWfgPgv6vv6Tg1R8ErfIvRFuEDQLlaxf1jEPssefCfowe63Q9HX+MHqG5g2O64o26Lb2/w323wgj73YpY2+9WVHXSe6CQidWJuko6RG12MZH/TvS/6wP+2v/kD/hrFPyWi5P2mMHk1i+DrD75R3X/PrbOae1z/aBtjh1Mmxbmz+6YEf4OTnaY74sYjD/M3eFf+F2FhSfS6LXSDpzzd4sfLbgIFaM02QreGFNMcD55wgUvB+A/GlrwYjJ34XOvTwvmLPw9YTOh0MUE/CFlmOwxs9qlTix0poJAyzvs3IXIXmk9eX8vcd6XTh4pOL1ibq8wTr6/uMensVhQOMx6qHknE1qWJSa4PmHeZfz9XCF43mzDcx57FFbPx3VLHRQ4GXlfQC6W/WrwZGSmD8pIHpY6aV9M2YLL6PwLCPnfHxflbox39n7T7jTGBw8s/597NkJfZBecj8O/GlkMdO5E2xNvRqouFe5dPmt1mUB4qOryhXVvn1MzjgtTqGF+GSIhpBUlhr8ESYiP+oQV2DHBM/P/AG+pie5btgUA",
|
|
5758
|
+
"debug_symbols": "tZ3djuTGsYTfZa/3gpV/ValXMQ4M2dYxBCxkQ5YMHBh+98MqMiN6Z9FUT/esL8yY1XQEK9lfdhXJ5vzn099++svvf//zz7/87z/+9emHP/3n019+/fnLl5///ucv//jrj7/9/I9f9n/9z6dt/l+zTz/0+O/nT239FPtPvv8k8ycZn36wbf8hj61u57adWzm3em7t3Pq5jXPbz+3pp6efnX52+tnpZ6efnX52+tnpZ6efnX52+vnp56efn35++vnp56efn34+/WTfjnObxza2c9vOrZxbPbd2bv3cxrk9/eL0i9Ovn3799OunXz/9+unXT79++vXTr59+/fQbp984/cbpN6af7Vs7t35u49z2czvObR7b3M5tO7dybk+/PP3y9MvTL0+/PP3y9GvbVqKVkBJaYprqFF4iSvQSo0Seok1nn6KVkBLTeUxhJXZn36aIEr3EKJGnkK1EKyEltISVKGcpZylnKWcpZy1nLWctZy1nLWct5wmRzyFPipawGvLkw2cNJyCHiBK9xCiRp5iUHKKVkBJaopy9nL2cvZy9nL2co5yjnKOco5yjnKOco5yjnKOco5x7OU90fI59snMILWElvESeYoLhMcX85T6FlfASUaKXGCXyFBOQQ7QSUqKcs5yznLOcs5yznPN0lm0r0UpICS1hJbxElOglRolybuXcyrmVcyvnVs6tnFs5t3Ju5dzKWcpZylnKWcpZylnKWcpZylnKWcpZy1nLWctZy1nLWctZy1nLWctZy9nK2crZytnK2crZytnK2crZytnK2cvZy9nL2cvZy9nL2ct5YZVTjBJ5ioXVEq2ElNASVsJLRIlyjnKOcu7l3Mu5l3Mv517OvZzHyZcsZJboJUaJEz2ZyMSaQ2gJK+Eldp+QKXqJUWL3CZ1Tj61EKyEltISV8BJRopcYJcq5lXMr51bOrZxbOU9AwqaIo6XoAmSJUSJPsQBZopWQElrCSniJcpZylnKWctZy1nLWctZy1nLWctZy1nLWctZytnK2crZytnK2crZytnK2crZytnL2cvZy9nL2cvZy9nL2cvZy9nL2co5yjnKOco5yjnKOco5yjnKOco5y7uXcy3DNzXyKKNFLzLfWEnmKOUGL+ao5QzuElDhnKTqshJc4P/F1YhXrX0aJ6ZxzBr2VaCV2574m11rCSniJKNFLjBJ5CJugHaKVkBJawkp4iSjRS4wS5dzKuZVzK+dWzq2cWzm3cm7l3Mq5lbOUs5SzlLOUs5SzlLOUs5SzlLOUs5azlrOWs5azlrOWs5azlrOWs5bzBK23KaZz29dcutZc+0+z8cmx0WNjx8aPze4u++/bWrFNv/l5f2zasZFjo8fGjo0fmzg2/diMtZlDGMdCbRzrtKbHuqzZsS5bWz23+283P9Zla9vP7f46Oddf0o7119rquZ3DkGP9tbZzIP1Yf+m5/lI91ltru79e7Vhvra2dWz+3cW7z2M5PMbW9Ml5rWc39p6if1gTy2EzSP6/ixVG8uQTuWALL8d/6NBvzX2dl2lmZ/+7/WAvpP//2608/zV+4WVnv6+1//vjrT7/89umHX37/8uXzp3//+OX39Uv/+uePv6ztbz/+uv/XvVQ//fK3fbsb/u/PX36a6r+f+ert/ks92vni2AIv36e+jxrsH5anwd7paRDjUYMhZTBs3OzBV6/X+6+P2QaPEawzDu99fd/0fH1v21Ovl3q93M2/KqDNjnxWMBIOe+t52MKjxrBLe8oitJdF2H2LvCiE93ovdU9atK/fCu2yFq3x3ZT3qjl/6f77Ecdzn9nZXQu5b7GfFLA6prsOvzeUy3om6tmbP3VI+khYZH/KYvTqDbu8b9Hi9cPaXz+s4/XDmt/5sKaWxT4tGk8dkwwc1hxPvTP2uVXtxT67irsWoi8f1tmcXzys4i8fVonve1j3qamjoHq/B8t4vaD5ckF1e7mg2r53QW/eofbkmxwddJ/x61OoaUP725fedy3UXz6sGq8f1v76YR3f97DuZ9KtDsrUN/M1f4dJ9IBJartrYhfv0r2QNW+0uPUY8bhHOD1G3Pe46KP7ObSq6n7yTODxjr3omEJbl3xuJL0DlrFt9z2u3qbC+cZ+nuveSPrVMWkDyGp/qhY+OA67P46LLpr7iY/TI+3GY5/iPu5hWFWk63bXw9sHeFxMRUevz6WRNw7pD1c0BG10x+Q5TkJtg4c/65E1lNhb+12Py8aROtg4PJ/rPl+ZRNw18atmOrSYbeOreeA7ChIoyH6C77mimrCodh+X+IADE+17gh/WhCMZTzYw7MV+XtyeaGAPtsCrSoyGZj7k4ohc7IUMTBe2du+tdWUQvRvOiWS7M4xLh8E31rD+lENgH26Xng/Tnq32IKU9cV4l8UmS/e6cq+v3nTDtzfdm3iY3u6GPNyyQMWdOtMiH58G9a/Xv3scNXO1ri35xPEfWQFL9mZ3YL8/WAdkvvur9nbj4WN4vJ8Njv+4Lj9G+shhX5dz/5ziqzXlM9gtLX7tcrZG24cpPkZsZ1zcucnXejicTOJj9Ou3XDnp1moln/qK35zxS0W/y5gTkNx5+2fawgB43Nd1XO4/vRmKxljnu7sbVW4wfqfLVQuvNW2xcfbJvgoXFvuwcfKP29g4TC749LPOeydWZ+Q0LC9/c7g4m21X7MZzW3S+Tb3JvP65N3BImcb8i1yY9gW6Om5PUj1dkP+NGXsb9w3t5UkET5yVu3uv+ZiQXswzjhHq/hsfpo3/d0fOil7Z90Yj3mESPuxW9OiNqIK45+48/N5Cbnv5mIG27+mTB27z3uDdVud4JxzDMLnZCrrBv+HwTnf0CLvbGRT/ig6Ft9hGfDG3zVz8a9gnB1Tkj9vXbk5rvM2mYz+ptTb41GS9/OlzvyIOfdI+b3Jx7f5/Jg5+X7eoa04eU5MFPzEv+fMN++M0F3Lf8tasPfzU2kiH3mmq7usoUgdOs0eVmLO2tydXCiUv7vbfdX9n/gclwYHOz9PnW5OpMfseZxX1tn8+ZWMcbbT+/1540GfzEGzcH5xsTuXq3NkWTvqlIvGmvcjlTlcDVzJvFeZM31FxdcXpHj7666vSOHn115enBHi39A3r0pcmjPVry9Yb08Gj69uRoHm301yYyeDvD1Z5cvOsd71j3i3e9Xrxhd1zQGn27WXmHPL4fHWdSxu3lgW/2I65OKWXyPMTF+/3qItQ76Lu8EPU4fZov02fbB9B3afIoffYB04HLHXkUnGuTDwAncb0zb66IffOGvTqX64rzTW63J87egmPbB8zU5PISDE585bgYzNVpK7PqJOLt4v3uH3LiqvmHnLlq/vKpq+b6AfRdmjxKn79+9up6Rx6l79rkA+jbPxhxeV1vzgx885b1q5ulBHuyT6VuLmu/KUlcnRxQfPh1zZv369tbx/5gRzp3xO7uyPUcGKeeLW/uA/lmDhzXx4ZvtZCbWw7enLRpcTEhGBtvmN213j2Zdr3iCtwO8tXND/4ej6687eDm2uHTHrcnod7h4Zs6z3P2ux6RVzO1USth309R3rtQ0/p2ddEM51vjqztbxjv2I/Bm9VB/3cP0SY8+4JFPejguIu7yybEMvNl3ef+4XL7HEtdkfbu5XP/2/XF18SpxrjT7/dslWx9XJcW1Be83J9Lfa7K9bsI36n5c8lmT1h8zuSrrzZUSuajr1WWfh+v6Bybb6yaP1vXa5APqOudonOnJkybrfNtpYvoBJj4+wCT0A2rytInwWrqIP2uCqw37yarn96TRxJ41ce7J8zUJzvRGe9YElwh3E3m6JhzOeHY4qniz2c3q5ptbua8ua0nH7Fe624XJ1a1AnP6aZj5pYrhSaKb6rAmuAu8X2eJJEzfMOa++ZHRtErxUEPHscPiVL4uLd+zjJukfMJynTXrjaX5tH2Biz+4Jp2s25P7XheTqypbjfEncfp9uvGc3cJ3fRlyMpdn33A3fOBG/vRD0rpLOKStMnn2v7q/ENHp7tpPcmrSmrw/neRNervf27Hv1K5NnO4lzSe+i96c3Ivpd32mCU3IuF1/Tk6uLWg/uxuWnHu+uGxfzebm68mJ+872Mm8+aFs965F2Py8EkJp37GYGLjyt99J7Fm4q8OTEoV1+nEn7BWcbtzfNvPa4uDwjP94jFcx7K77jpDTDv82j5AR7tZQ+7uWtoPFkPT55Du72u9tZjXB1bzIn2Y3v32+tydR1Lgh7hd79BLlcXOlrynH727SkP4f2GcvuVvW88Xv7sv94L9qAt2/29sO+6Fw3nnES+ei7Cuzz0Azy2lz3Im3x1OeCtx9VJeH5HpNnNx/67PIxfmTH7CI/+pIdj5W0Rz3pgpWqjvT6WZz18w1i8ba976LMeRo+4/zVuHy9Te7kXIK7FBS1X16we24vrft7RO+Kig4W83s+vPB7t5/FyJ73ei8f6ecR33YsH+/kfeOgHeGwvezzYz3t7vZ9fejzYzx/36E96PNbP/8DjoX7+8Fie9Xiwnz/soc96PNbPx8ud9HovHuvnQ75rP++Or9D0vF/PYa/zdunxIG+Pe/QnPR7j7Q88HuLt4bE86/Egbw976LMej/GWL5+Gut6Lx3jLl89CXZ4vyY3fNmv51DkXXV9aWh56e5ryfR44JvtZj/6yh9w+liPfcyKL3/LYLp4kptdnGB+6QUavvmb14A0y1/vx2A0yj3vcv0HmDzweukHm2uOxG2SuPR67QebyDbK/yfCFlesz4Vcmggc2qcizV4H5oKPZnZ81GbhGb9leN/Gn76AwNLNLk6sTc4GTjO32QrK+uRdTr+6ACsEMZH/r31ylePPdKL38gpUJvmD11YXkb0yuvhvF71ne3BNqj3//NqKzh9w2xDcWenU7p+yXB7AU87ypyJt7KFUuz6099CwBlctHpT16T7Ze3rH78D3ZevkVq4fuydbLR/o9eBfz9fGJjbdPxDby/vG5/polTvE/9WRal+BVtZuL89+8166e6vfwN+j/wMUx4d115pMuIXSJ8fS+PPZ1/stbqh/9luQf7MrrDwVw4V17cjtNe7wpdcPjrbr5m+cK/M/+449//fnXr//k0Xqq+PyTMLE3jDgeB72249zmsZ1PhJ6nnubztNdWPv0wp3Pzidpra/PxNscztfN8JPe89jmfqr2249zm8fvzMeK5/mzAuZ1+fvzlpPkNr/n87bX1cxuzo7TjidyHGKvHHH88aYn5APFDtBLzOd3rwd1awkrMR3XPxyzNJ/UfYjrP9+V8aneb3XI+qX9dnZ9P6j9EKyEltISV8BLTed4TPh/nfYhRItfM4viLSodoJdazxfvxkO82H7E/n/J9iOk8H181n/N9iF5iOsf5p5XavBN1Pqn/ENN5npacj+xfnxXzT1kcwkp4iSjRS4wSeYqxlWglynmU8yjnUc6jnEc5j3Ie5ZzlnOWc5ZzlnOWc5ZzlnOWc5ZzlvP7y0qkalEAplEE5VEB1qAGFjIaMhoyGjIaMhoyGjIaMhoyGjIYMQYYgQ5AhyBBkCDIEGYIMQYYgQ5GhyFBkKDIUGYoMRYYiQ5GhyDBkGDIMGYYMQ4Yhw5BhyDBkGDIcGY4MR4Yjw5HhyHBkODIcGY6MQEYgI5ARyAhkBDICGYGMQEYgoyOjIwMwN9DcgHMDzw1ANxDdgHQD0w1QN1DdgHUD1w1gN5DdgHYD2w1wN9DdgHcD3w2ANxDegHgD4w2QN1DegHkD5wLOBZwLOBdwLuBcwLmAcwHnAs4FnAs4F3Au4FzAuYBzAecCzgWcCzgXcC7gXMC5gHMB5wLOBZwLOBdwLuBcwLmAcwHnAs4FnAs4F3Au4FzAuYBzAecCzgWcCzgXcC7gXMC5gHMB5wLOBZwLOBdwLuBcwLmAcwHnAs4FnAs4F3Au4FzAuYBzAecCzgWcCzgXcC7gXMC5gHMB5wLOBZwLOBdwLuBcwLmAcwHnAs4FnAs4F3Au4FzAuYBzAecCzgWcCzgXcC7gXMC5gHMB5wLOBZwLOBdwruBcwbmCcwXnCs4VnCs4V3Cu4FzBuYJzBecKzhWcKzhXcK7gXMG5gnMF5wrOFZwrOFdwruBcwbmCcwXnCs4VnCs4V3Cu4FzBuYJzBecKzhWcKzhXcK7gXMG5gnMF5wrOFZwrOFdwruBcwbmCcwXnCs4VnCs4V3Cu4FzBuYJzBecKzhWcKzhXcK7gXMG5gnMF5wrOFZwrOFdwruBcwbmCcwXnCs4VnCs4V3Cu4FzBuYJzBecKzhWcKzhXcK7gXMG5gnMF5wrOFZwrOFdwruBcwbmCcwXnBs4NnBs4N3Bu4NzAuYFzA+cGzg2cGzg3cG7g3MC5gXMD5wbODZwbODdwbuDcwLmBcwPnBs4NnBs4N3Bu4NzAuYFzA+cGzg2cGzg3cG7g3MC5gXMD5wbODZwbODdwbuDcwLmBcwPnBs4NnBs4N3Bu4NzAuYFzA+cGzg2cGzg3cG7g3MC5gXMD5wbODZwbODdwbuDcwLmBcwPnBs4NnBs4N3Bu4NzAuYFzA+cGzg2cGzg3cG7g3MC5gXMD5wbODZwbODdwbuDcwLmBcwPnBs4NnBs4N3Du4NzBuYNzB+cOzh2cOzh3cO7g3MG5g3MH5w7OHZw7OHdw7uDcwbmDcwfnDs4dnDs4d3Du4NzBuYNzB+cOzh2cOzh3cO7g3MG5g3MH5w7OHZw7OHdw7uDcwbmDcwfnDs4dnDs4d3Du4NzBuYNzB+cOzh2cOzh3cO7g3MG5g3MH5w7OHZw7OHdw7uDcwbmDcwfnDs4dnDs4d3Du4NzBuYNzB+cOzh2cOzh3cO7g3MG5g3MH5w7OHZw7OHdw7uDcwbmDcwfnDs4dnDs4d3Du4NzBuYNzB+cBzgOcBzgPcB7gPMB5gPMA5wHOA5wHOA9wHuA8wHmA8wDnAc4DnAc4D3Ae4DzAeYDzAOcBzgOcBzgPcB7gPMB5gPMA5wHOA5wHOA9wHuA8wHmA8wDnAc4DnAc4D3Ae4DzAeYDzAOcBzgOcBzgPcB7gPMB5gPMA5wHOA5wHOA9wHuA8wHmA8wDnAc4DnAc4D3Ae4DzAeYDzAOcBzgOcBzgPcB7gPMB5gPMA5wHOA5wHOA9wHuA8wHmA8wDnAc4DnAc4D3Ae4DzAeYDzAOcBzgOcBzgPcN7BeQfnHZx3cN7BeQfnHZx3cN7BeQfnHZx3cN4X5/NmzL44P5RBOVRAdagBlaUW54dqUMgQZAgyBBmCDEGGIEOQochQZCgyFBmKDEWGIkORochQZBgyDBmGDEOGIcOQsTift5D0xfmhBtTKmH9tdnF+qAYlUApl9drF+aGQsTg/fm9AISOQEcgIZAQyAhmBjEBGYByBcQQyOjI6MjoyOjIW54dyqIDCODoyFudLLc4P1aAEChkDGQMZAxkDGQO1GhhHYhyJcSQyFueHQq0StUrUKpGRyMjKGNsG1aAESqEMyqEqY2wdakBVrUbboJDRkNGQ0ZDRkNECqkMNKIxDkCENSqAUyqCQIcgQZAgyBBmKWinGoRiHYhyKDHUo1EpRK0WtFBmGDEOGIcOQYaiVYRyGcRjGAc6H4Xg4auWolaNW4Hw4MhwZjgxwPsD5AOcDnA9wPgIZgeMBzgc4H+B8BDICGeB8gPMBzgc4H+B8gPMBzkdHRsfxAOcDnA9wPgYyBjLA+QDnA5wPcD7A+QDnA5yPREbieIDzAc4HOB+JjEQGOB/gfIDzBOcJzhOcJzjPrTJyc6iA6lADChkNGeA8wXmC8wTnCc4TnCc4z4aMVscjwXmC8wTnKcgQZIDzBOcJzhOcJzhPcJ7gPBUZqlCoFThPcJ6KDEUGOE9wnuA8wXmC8wTnCc4Tn+eJz/ME5wnOE5wnPs8Tn+cJzhOcJzhPcJ7gPMF5gvMMZASOBzhPcJ7gPAMZgQxwnuA8wXmC8wTnCc4TnGdHRsfxAOcJzhOcZ0fGQAY4T3Ce4DzBeYLzBOcJznMgY+B4gPME5wnOM5GRyADnCc4TnCc4T3DeNoC+y0ZZMbtUSqN0yqDsdBiUTGtMa0wD9LtUSqN0Sqa1TjkoExLw75JpwjRhmjBNmIYWsEuOTTg24diUadooWUllJZWVVKYp05RpyjRlmrGSxrEZx2YcmzHNeNyMlTRW0lhJY5ozzZnmTHOmOSvpHJtzbM6xOdOcxy1YyWAlg5UMpgXTgmnBtGBasJLBsXWOrXNsnWmdx62zkp2V7KxkZ1pnWmfaYNpg2mAlB8c2OLbBsQ2mDR63wUoOVjJZyWRaMi2ZlkxLpiUrmRxbcmzsJcdNdyvtuOvulEKplEbpdAjKTjkomcZe0thLGntJYy85bsE70ppTBmWnHJRME6axlzT2ksZe0thLGntJYy9p7CXHDXlHmuC4NfaSxl7S2EuaMk2Zxl7S2Esae0ljL2nsJY29pLGXHLfnHWnG48Ze0thLGntJM6axlzTj2JxjYy9pzjRnmjONvaSxlzT2kuYc29FL5v3Mxw178xbkdtyxN+9Wbscte6dUSqOcabmCVy85ZacclAm5eskpV9randVLTqmURumUQbnS1ihWLzllQq5ecsqV1pcUSqU0ypWWSwZlX89eWHJQ5pRrQLOXlGyUQqmURumUQdkpByXS1o19JRulUCqlUTplUHbKQbnSZqnXLX4lV5ovKZQzra2XzV5S0ilnWjt+t1OO9YWdJRNy9hKRlTZ7SUmhnGly/K5RzrT5vYS2bvkr2Slnmq7dmb1EdL1s9hKZXwZp676/kkI50+YXPtu69U9sOcxeIrZGMXuJ2IqYvWQ9vbWt2/9K5vpG05Szl5ScabF8Zy8pOdNiRcxeIrEiZi+RWLsze4n05Tt7icxvXrV1I2DJmTaW2ewlJWfaWL6zl5ScaWNFzF5S0tc3ZJYMyr6+WbLkoEwUNTYUNVjJYCVnLylpKGo4ihqBos5echY1WMlIyM5Kzl5SkpXsSmkoancUdfaSs6i9o6idlZy95JSDlRyNkpUcSslKzl5SkpVcveSUrOTqJYdcveQo6uolR1GTlUxWcvWSUzqKunrJUdTVS46irl5yFDVRyXXzYElUct0+WBKVXDcQlvQq6rqF8CjquofwKOq6ifAo6rqL8Kjkuo2wJCq5biQsiUquWwlLopLrZsKSqOS6nbAkKrluKCw501YzX7cU6upy657CkkbplEHZKQdlQs5eUrJRMk2ZpkxTpinTlGnKNGWaMc2YZkwzphnTjGnGNGOaMc2Y5kxzpjnTnGnONGear7R13LxTDsqVtg5WbJSNUiiV0iidkmnBtGBaJGTfKJnWmdaZ1pnWmdaDslOutAVDZ9pg2miUQqmUTBtMG0wbTBuDkpVMVjI5tuTYUrGTaQhOp2Qlk5VMVjKRtm5QLNkohVIpjdIpg7JTopLrTsUjeN2qWLJRCqVSMq0xrTGtMa0NSo5NODbh2IRjE1TSBJU0ccqg7JSDkmnKNGWaMk1ZSeXYlGNTjk05NmUllZU0VtJYSWMljZU0phnTjGnGNGMljWNzjs05NufYnJV0VtJZSfYSYy8x9hJjLzH2EmMvMfYSYy8x9hJjL7Hg2IJjC1aSvcTYS6yzkp2V7Kwke4mxlxh7ibGXWGclO8c2OLbBsQ2ObbCSg5UcrORgJQcrOVhJ9hJjLzH2EmMvsWQlk2NLji05tuTYkpVMVNK3jbJRCqVSIs3ZS5y9xNlLfBuUGJu3jbJRCiUq6Q2V9OaUQdkpByXT2EucvcTZS1yUkmMTjk04NuHYBJV0YSWVlVRWUllJZSXZS5y9xNlLnL3ElZVUjs04NuPYjGMzVtJYSWMljZU0VtJYSfYSZy9x9hJnL3FnJZ1jc47NOTbn2JyVdFYyWMlgJYOVDFaSvcTZS5y9xNlLPFjJ4Ng6x8Z5iXNe4p2V7KxkZyU7K9lZyc5Kspc4e4mzlzh7iQ9WkvMS57zEOS9xzkt8sJKDlUxWMlnJZCWTlWQvcfYSZy9x9hJPVpLzkuC8JDgvCc5LYkMlY0MlY3PKoOyUg5Jp7CXBXhLsJdGU0iidMig7JSoZDZUM2SgbpVAqJdPYS4K9JNhLQgYlx8Z5SXBeEpyXhLKSykoqK6mspLKSykqylwR7SbCXBHtJGCvJeUlwXhKclwTnJWGspLGSzko6K+mspLOS7CXBXhLsJcFeEs5Kcl4SnJcE5yXBeUkEKxmsZLCSXOME1zjBNU6wlwR7SbCXBHtJcI0TnJcE5yXBeUlwXhJc4wTXOME1TnCNE1zjBNc4wV4S7CXBXhLsJcE1TnBeEpyXBOclwXlJcI0TXOME1zjBNU5wjRNc4wR7SWcv6ewlnb2kc43TOS/pnJd0zks65yWda5zONU7nGqdzjdO5xulc43T2ks5e0tlLOntJ5xqnc17SOS/pnJd0zks61zida5zONU7nGqdzjdO5xunsJZ29pLOXdPaSzjVO57ykc17SOS/pnJd0rnE61zida5zONU7nGqdzjdPZSzp7SWcv6ewlnWucznlJ57ykc17SOS/pXON0rnE61zida5zONU7nGqezl3T2ks5e0tlLOtc4nfOSznlJ57ykc17SucbpXON0rnE61zida5zONU5nL+nsJZ29pLOXdK5xOuclnfOSznlJ57ykc43TucbpXON0rnE61zida5zOXtI5L+mcl3TOSzrXOJ29pLOXdPaSznlJ57yks5cM9pJx9JKxpFDOtPkH1Nq6aVTX5ZR112jJoOyUM23+FZy27hw9/3X1klM2SqFUvKwxrTGtMa0xrTGtMU2YJkwTpgnThGnCNGGaME2YJkxTpinTlGnKNGWaMk2ZpkxTpinTjGnGNGOaMc2YZkwzphnTjGnGNGeaM82Z5kxzpjnTnGnONGeaMy2YFkwLpgXTgmnBtGBaMC2YFkzrTOtM60zrTOtM60zrTOtM60zrTBtMG0wbTBtMG0wbTBtMG0wbTBtMS6Yl05JpybRkWjItmZZMS6Yl0tZNqSUbpVAiLdlLkr0k2UuSvSTZS5K9JNlLkr0k2UuSvSTZS5K9JNlLkr0k2UuSvSTZS5K9JNlLkr0k2UuSvSTZS5K9JNlLkr0k2UuSvSTZS5K9JNlLkr0k2UuSvSTZS5K9JNlLkr0k2UuSvSTZS5K9JNlLkr0k2UuSvSTZS5K9JNlLkr0k2UuSvSTZS5K9JNlLkr0k2UuSvSTZS5K9JI9ecsh5D8a6R+C4rfWUnXKmzQcGt3Vn634RbsrVS0450+Zz59q6ubWkUhrlHNt84HNbN7iW7JSDcqbNP0DV1k2uuq7SrrtcSwrlvL9kXRZdN7qqrrGtXnLKoOyUgy9LyONraodk2uol64nL//7x159//MuXn/716Yf/zGcd/v7LX+u5hvuPv/3fP+u//OXXn798+fnvf/7nr//4609/+/3Xn+YzEOd/+7StZyDu//+nFp+lzWckNv5Tfhab/yTnr/5pP1n+eT+//D+fP+n8ab+CvJ9q339av75fJfi8n/KfP7b54+j77+Z8vc7Xz1fsB0oTv7+/2ud/NiR2+9xhMLbPQ+Z/92/3KPBPYp9lhXT+U/+s64UDuf5Z/U3ufCLk/wM=",
|
|
5759
|
+
"verification_key": "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"
|
|
5742
5760
|
},
|
|
5743
5761
|
{
|
|
5744
5762
|
"name": "process_message",
|
|
@@ -5902,6 +5920,15 @@
|
|
|
5902
5920
|
"error_kind": "string",
|
|
5903
5921
|
"string": "Input length must be a multiple of 32"
|
|
5904
5922
|
},
|
|
5923
|
+
"5417577161503694006": {
|
|
5924
|
+
"error_kind": "fmtstring",
|
|
5925
|
+
"length": 56,
|
|
5926
|
+
"item_types": [
|
|
5927
|
+
{
|
|
5928
|
+
"kind": "field"
|
|
5929
|
+
}
|
|
5930
|
+
]
|
|
5931
|
+
},
|
|
5905
5932
|
"8223423166324634981": {
|
|
5906
5933
|
"error_kind": "fmtstring",
|
|
5907
5934
|
"length": 75,
|
|
@@ -5926,14 +5953,6 @@
|
|
|
5926
5953
|
}
|
|
5927
5954
|
]
|
|
5928
5955
|
},
|
|
5929
|
-
"8992688621799713766": {
|
|
5930
|
-
"error_kind": "string",
|
|
5931
|
-
"string": "Invalid public keys hint for address"
|
|
5932
|
-
},
|
|
5933
|
-
"9530675838293881722": {
|
|
5934
|
-
"error_kind": "string",
|
|
5935
|
-
"string": "Writer did not write all data"
|
|
5936
|
-
},
|
|
5937
5956
|
"9791669845391776238": {
|
|
5938
5957
|
"error_kind": "string",
|
|
5939
5958
|
"string": "0 has a square root; you cannot claim it is not square"
|
|
@@ -6014,8 +6033,8 @@
|
|
|
6014
6033
|
}
|
|
6015
6034
|
}
|
|
6016
6035
|
},
|
|
6017
|
-
"bytecode": "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",
|
|
6018
|
-
"debug_symbols": "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jd/81LJZF/uGdfHfdV30tj5mobf62qlCCz0VZeiLNViOUr+jxnixxmpE0GL9xRp8eLHoy9u0s03lxRqD3o4PPyv76SfDt99RZ+r08a2f+yOrj8dp83dvTn9S4sqdpbfxu5a4+LOj+5+DpM3c7Pn23L1Fpeuc++Hqv19fCl7wvu9U2SyFvJ9gu08CXkyw7boon+N5/Jb053XZ11ifCK5qz7fH7sRStfEQV+ylGtem1urbD+bq28/ldg1DF+cK2ru3yNufxOADfvcb/aeXLNsfxOBVuFHHSyUudulvS1z7nPD2d86vtflv8+K2xtjjG/ZfKsGJROz2Uon41EqOdHutxLW3FfZZceldhf1SXHpT4epSvFpiHeDVyksH+PzZm1VCX9uptm5Dq/mLS0HzqPXb2yvyWonGFyRa7/JiiUvvjWy/CnftrZE40bz5RHa7GOt30e/or63JtbbT3V692B9yu9hOcXtttF/sDdmvyKXOkKsr8mKJi10ht/d7QvYlLnWEXF2RV0tc6wbZ3lpd6wXZl7jUCXJxRV4tcbELxHevQr2fOdcm7rYFfN0vj66vFLjyexi33cThlZdLb+/OPG4LXGmk2Re40EazDyri8vbwrciPPTR998pSN95Kf/551b77cp/ZulE3e7jA+vzKct/9/tT9bqyve6k2NkW2n5VSLpAocfOrW/TarMXuJkT76oa3x09Eml4uYevjrMUetsRXSnQ+/P+YEF8pMdb99T05yysl6u3hdxIfvpDylaX48Irjayvia2qv9PLSihSC/z5v+tpStMELaDd5qYSsj1jdz+v6tET/hrectmvCY5Lmr20MWb+g++FtvFe352slmq0P7bbHGxm5lesl1rHV/OFV7ZdL+EslfH0z4o7jtRLOUnR5qcSo3JHpa9uir18/ao8/NftqifraTu1rdrJ1qa+VWFNR7XFi8EslOivSy2slHj5sMl7cqbf1JbNRXlqKymuz9yck/bUSxs9IPVwsfi7Rt9+7q2saqHz4Gal+fTEGdyHjpXFW+UpMffylvy+VWEf4He21EuupbH38tc+vleBT2GJvl9BXl+LhEdHttRLGthjl7aX4vFP/+f5f//TnX//+L7/97c9/+sevf/vrf93/5f/OYn//9U//+ttfzv/67//91z8//L//+L//mf/Pv/79199++/U//uU///63P//l3/7773+Zleb/98vt/I9/us9O+h/ud0H2z3/4pdz/u8n9KfP9wcC4//d2/+/3K7ku8/+Lvzx7bu7/EX/5+Nv32bj7f+g//+9c3P8H"
|
|
6036
|
+
"bytecode": "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",
|
|
6037
|
+
"debug_symbols": "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"
|
|
6019
6038
|
},
|
|
6020
6039
|
{
|
|
6021
6040
|
"name": "sync_state",
|
|
@@ -6086,6 +6105,15 @@
|
|
|
6086
6105
|
"error_kind": "string",
|
|
6087
6106
|
"string": "Input length must be a multiple of 32"
|
|
6088
6107
|
},
|
|
6108
|
+
"5417577161503694006": {
|
|
6109
|
+
"error_kind": "fmtstring",
|
|
6110
|
+
"length": 56,
|
|
6111
|
+
"item_types": [
|
|
6112
|
+
{
|
|
6113
|
+
"kind": "field"
|
|
6114
|
+
}
|
|
6115
|
+
]
|
|
6116
|
+
},
|
|
6089
6117
|
"8223423166324634981": {
|
|
6090
6118
|
"error_kind": "fmtstring",
|
|
6091
6119
|
"length": 75,
|
|
@@ -6110,14 +6138,6 @@
|
|
|
6110
6138
|
}
|
|
6111
6139
|
]
|
|
6112
6140
|
},
|
|
6113
|
-
"8992688621799713766": {
|
|
6114
|
-
"error_kind": "string",
|
|
6115
|
-
"string": "Invalid public keys hint for address"
|
|
6116
|
-
},
|
|
6117
|
-
"9530675838293881722": {
|
|
6118
|
-
"error_kind": "string",
|
|
6119
|
-
"string": "Writer did not write all data"
|
|
6120
|
-
},
|
|
6121
6141
|
"9791669845391776238": {
|
|
6122
6142
|
"error_kind": "string",
|
|
6123
6143
|
"string": "0 has a square root; you cannot claim it is not square"
|
|
@@ -6215,8 +6235,8 @@
|
|
|
6215
6235
|
}
|
|
6216
6236
|
}
|
|
6217
6237
|
},
|
|
6218
|
-
"bytecode": "H4sIAAAAAAAA/+19eXyVx3Uod7+S7r4ILSC0gRCSWMTq3Rhsg20MNrYxzoIFyFgxIKwFEJhFgJeYOAWMm6R9bZrYxjSJs/pladO8JE2a18a36Wvy6sR1fmmatk7aLE6TtK/5uckT5t7vnu+bOWdmvjsf+q51+eui+ebMmbPPmTMzvjOn3/Oh4bHd27YMj/SN9E87Pf7h64YGdu4c2LGqb+fOs9NOnXry1KmvNE+j/3lOTfw7fQYAeqXdP/7sqsHdwyNPjp9bPTDUv23EO/7c2t0j/Tv6h56+c3GvGKa1v0ep/9F3W/tPUxv/3ePPXCDB6RoDzvnb+3f2jQzs7VfDZNo0FoJXFcJHLuCyvW+kb9XgnjFjSi++GyIFoF9EfVPJqL9bA+rPbBwZ3HP6DIKphUmrnr1hoH/n9gmwvxx+6dzXn/jUV86PPPfs7yZfjr6vprv6yMMP/6zxpzN+77WHn7Z2XG2g9cE7VwixClq7X2+Me/VnfPfc/4lfD9bcePxj+17+zq2j0Rl9X5712LP3fPX0rB9tecTa8Qaj4w/f9ftH4h8780fNXblfBW/8nR9v+cXawIqXcw/V//mx13/02pPWjjcaHf/2nte/+0L8yQP7n/jcwRVz030fefKln//r177+0fgvvv/8gy8ttXZcU6IerVXrn7D2vwn0X7ZEQfrz/W9W68/gf4taf0bE1hmEH3/m/HdXPpFb+IPXqx9f13di/+KT39z0kwN1z83+53c8P+MjSWvHW42O/ziy6vTI9F3LfhL+xhOLPtA483u/fO6FV/9jrH/Fj1/94adbfmHtuN7oqEiqDYWOdb0dl+15799kXpnb+vfXfvEj88/W/7L9ylc+u+YDr/36L/8fp+NtStrAkPh2pe4+a/eNSt0ZBt2hIKCdPdsYAb1Tof83PjqQs/a/S8AuT+GHteMmNc1i6Ha3Xb+S779ZrT9D+HvU+jMe/i2Sch6wdnwr6Og53jr8nqonPOu+fKznhUj1l3+08v3Xrcp9/cTjs+Ifeb+149sKHeddWfXas48ffnjaPzz3b+/+j3mfv7Yn2bQyOf9bv/93jbuH3lL/mrXj29WmOsPafwsQ8UXqnLpXqTujn32ShGY6blWbNsOobWr9GTe7Xa1/2Nq/X61/lbX/fWr9q639d6j1j1j736/WP2rtP6BkWZut3d+h1L3H2v0Bpe4Lrd13KnVfZO2+S41211r771YafqW1+6BS9+ut3fcodb/B2v1Bpe63WrsPKXXfYu0+rNS9z9p9RKn7Vmv3UaXu26zd9yp1327tvk+pe7+1+36l7vdZu48pdd9h7X5Aqfv91u4HlboPWLs/pNT9AWv3Q0rdd1q7H1bqvsva/YhS993W7i8eVeo/yPQfV+q/h+l/TKn/ENP/uFL/Yab/CaX+I0z/h5X6jzL9H1Hqv5fp/6hS//1M/8eU+o8x/d+p1P8A0/9xpf4Hmf4nlfofYvq/SzJG/QOm5xOSPb907vb+kdGh3flsV65+w/iHbxgc6h/YsfvCH5767OjIwM6BkbEb+0fuvPhrYqCR/v0jr0ybPv78uv5dg0NjK7dvH+ofHobJKazFi7b40BY/2hJAW4JoSwhtCaMtVWhLNdpSg7ZE0JYo2hJDW+JoSwJtSaItKbQljbZk0JYs2lKLtky/IFjnNg7s2rOz/6IMl9v/TCG28JNlS5RgPnPnot4V9F/FmJ46xaak65RM1Ybxp9cN7gX56PriDgMDukFt0dEysX0ysLtvaGyi0/o9TxmAn56QlYskLYwERnh+7e7tF5PflsHrVTO95sGLQxjDs3P2WqnRCFF7diJ3P9TPb63Dhmtkh2ssDscBaUTamgFOxECaIe7XjuJR90/6sG6AB3UDPKIb4JhugAPa2XxcO8QTuiEOux/FfVOR0Y+5Xv9GdQM84H4zq98VHHG94Z5Y5U49m3OwHCTHEhU2FCNX2QjXGAaNbxs0xbecWTYUh5fvVC/sNIMeCWYfPpbPPqzu3zq645bBHadOnbUuHPMdV4//8Zr+vj0rh4b6xiAzmpHv7+Z/P2PaWWZxNbEeGn/24oeneY3N/IWftcvFpdc08wQ/nZ/gDf0j2+6/o2/Hjv7tE9McPnXqNIL3Kgs8duWBr8NmqG5tK6/DZuBy2qhJTmeQ2mgi7ifzxL1lsG/7qr49w6M7J/QUyzvUIwLhOcPh+SKEu54n8bwGxlDk72ueVM81MBxvUiP6LKs0zSpgM83a0gwpZ2lrgayxtLUWc5t88ZpmFa9pcDqFLOVdebjsNwymMyDSlraZEOkJ2JbMQRFGnurPX8T4jf+s33MWGsJ1ozu5XWcycGdgSiGDgfWTRvi1CRieoFF2PoyPqyc4rNECpcvQAjFznqk2bAobdiY77Ew4bwsbmmAbAnLWR2+ZsDh33N+3+/oHR/t2DqPQm8bP3TS6a8/a+6BtePFFVjCaCoRYj43ZxE6jqUi9Zy4Mc/rFr40/c8Fon0GURp4xM8hADafeDEKIFRm6Ul2IZ+JCPEOTEM+kaVWiI7lWiftg3oz/AW0IyGZSiJtMzowR4uYXX2EFY5ZQiGex05jFCPFLlOjIJNn3sTqNS+Us1WI8ZamchUtlkyapnEUaBzwEmcUyEbSiSfZmdrhmwmA0i/MWtiEe1Q1xVDfAfdrnfNz9EA/qBnhEN8Ax3QAHdAM85H5lcTERJRygW2Qbz/LZhXjA9cKtf87DU89CvPi4bogPaEfxJJob4QRjzaWt+SSCsWY8GJulKRhrJoNcZs4tasMmsWFb2GFb4LyZhBJoQ0C2kUuEFgiMXSK05TyzWcFoFa4RWtl5tFrXCDlPM7PSbYYrMj1STKXAmgkxLpGlEmLcgotxsyYxbqFpZR22VfVkpwr7wbwtbGiDbQjIdlKMWyEwVozbc56lrGS0CcW4jZ1HGyvGCynhkVnrTkMTxRy5bFPikefn6nLZhstlqya5bCPtAzPndrU5v4YKETtsO5y3hQ2zYRsCcg4pl+0QGCuXc3KeVaxczpZQh9nsTGazknk1JT4yknkHxQsZAA+yNMVFe46adC1SF+05uGjP1iTac0jOWKjRAVFjBKFDQv462OE6CG/YIVxd2AW4TzfAAd0AR3UDPKQb4LBugAd1AzzserHZqxvgkG6AeKZOGSKwyrqRPKYd4gnXWwh8Le4aM6tdo4+4n88T+Qe3S85BFxsJp+asX3KOTkWbc8L1Nsf9oV3FpbqWM9p1er/75/zoFIx09E+a3XaYQyQPOtTW71erJw868OTBHE3JAw6p5qDJg7kQNYaMoBVNHsxlh5tLcGau0MPYBbhPN8AB10/5oG6AR3QDxL2La7iCm7EKnyeRz/iCzTWSs1f7nI+63ijiUbJr2HLE/WwpA7O41/WieNj9fD7ifvVzwHIf0w1x2P2Tdn/0qX/OB6Ygn8sg/MRX0W/iWOxgJdCpBDruMDoDLhZF42e7diQfdr83OKbf61vyae36sos2rnEjsovtzmUX2wGlrMPOVRu2WYlBYN4WNnTCNgTkPLLqbi4Exlbdzct5l7FyAYZFq+462Zl0FgmYr7rzLmLKmh3YVWonKNhBCLIiU33qgjwXF+QOTYI8l6QVLk9zSba322M7DdIqCg6Y8Xb4GbNHgItCpxo34uqi0ImLwlxNotBJ08o67Dy1YWOoAWKHnQfnbWFDF2xDQHaTNm0eBMbatO6c93ZWMroKlEAr3LvYeXSxFm0dq1O4WM1z/ODEPFysOjWJ1Txa5a3Ddmk6OMFlB5i3hQ3dsA0B2UOKVRcExopVT867hRWrbglX2c3OpJsVrHsY+zhPQlO4yidlj+e96cezSMg8QlEVhTagrqhduKLO06SoXSStcH3pIsW6055YvxlAWgVWxnXRXoQS2K5LPh6hBjIHWtayALqVAFzOAuhRArCOBTBfCcBGFsACJQA3sgAWKgG4mwWwSAnAahZArxKAW6ymYTFhKJeo2apb1Q3lEtxQLtZkKJewOrMYNZRLIWqMPi2FyoMMt5QdbimhokuFeVG7AF98RDfEYd0AD+kGeFA3wL26AQ7oBnhYN8B92gXxuPshahftMfeyBfhvtwu3dn3Gt3bevAqNb3K4SKPdz5cDrrc5+j3+PtdzZXgKSuIh17N5uGJxdKD4uH6f36MbyUH9OM53M8h82279OC5wL2vybUNlIDwL9YOsc6/w5Nse1D/pRWXA60XuFfCyMrhtZWAdF5UBji6mo3MC3ut6t/Wg9sDspOtjx/2uT8VoX3RoXxZpT/5OrGIs+w1LCk2c3ZelpZXsFAATuy9L8d2XJZp2XzikWgJIZR12mdqwUWzYZeywy+C8LWxYDtsQkCvIepJlEBhbT7Ii51vACsbyAiXQMqXl7DyWF8mXrybxzaOER2ZXsNtKkGWEXC5X41G3ulwux+VymSa5XM4TEIOwFmqsgKgxXFxR6LcHFR12sBWEvTDa8KMNtiE+rBviEd0A9+oGOKAb4EHX0xDPBNuFOKwb4CHXc8X9gnhYN8B92gXxuPshahftMdezRbsk7tfO5mPud6aHXc8WfJPDNsRH3T/px3VDfEA7iie1QTwvXri8aeOmMfcHYkfdbxjdH86OMcXSS4s/OzVlaTrhZ0xZqLblsI03GInl8FLnlsNLbS+HjZ91UzEqGK0E5VPEKLk+EBqfgs6nDFIf+qNy9y8QyyGymoJsOex+T8AGf2C3psHexgkzWoMppMFDPJnNlNtZACuUANzFArhMCcB6a8R2ORG/XqEWQh5Xj1+vwOPXyzXFr1ew7L4cjV+vhKgxogBa0UNeV7LDXUlI15VCK2gXIO7t7EIc1g3wkG6AB3UD3Ksb4IB2No9rh3jM9WwpA9nGQwa7EPe5Xhb127CjFbaUDvCw66eMh4bugajdQoy5ly3Gz27XC7f7g5JDlRiiEkNUnFUlhqjEEJUYYurEEI4R0f2yjZfSuki4T7ieLwfc76AfmXqeoAyiHO1zPuR6Ng9XLI4OFB/Xv4Su0w9yuX6QXfpBrtDNnd36cWzTjeOgboBDugE+qJ+Kl1UYo2XSPfpBztcPckEZUNIBo9tbBuasqwyMhYs12/i5sAymPeTmuMI51swvAxyXl0Ew5cC0F7k+9tlTBiZ30M2uywFeO6fZQ2UQBAy612MX1sQnXb9s3+/6zUbt+R7tGSntlW7sjTZXFJo4paZXqlV71liwLQA2cDVGAiOgpaZXaCo15ZDqiiKpLNS4CqLGkPGqQj/0/per2MGuIvhSAVgB6DKA1uJ94Gc7NVmjTvgZU+uNm6Or1CxCu7o5ugo3R1dqMkdXkbSyUONqiBpDR9CKplauZoe7mmCN0YbXCtmGeFQ3xFHdAPdpn/Nx90M8qBvgEd0Ax3QDHNDOlXHdEIfLQKFPuF4UtVPxkOtF8Yj77bZ+wdk3BS2EfoXWrn54JY57zOIUlMXD7g9K2EPEYGXeoGnV0wA/YxIB+DrkarWlwJPq65Cr8XXIVZrWIVeTtLJQ4xqIGkNH0Iom3q9hh7uGYM01QndmFyBuk+xCHNYN8JBugAd1A9yrG+CAdjaPa4d4zPVsKQPZxv2tXYj7XC+L+m3Y0QpbSgd42PVTxuMq90DUbiHG3MsW42e364Xb/UHJoSkYQwy7PyjR7wkOTj3ZroQQUyOEqKwyKquMSjhbCWfLM5x1jIjul238MLiLhPuE6/lywP2e4JGp5wnKwJ1qn/Mh17N5uGJxdKD4uP5sTp1uJHfrx3G5fpBt+kF2lQEle3XjOKQb4IP6J32Zm8Un3zboXsY4YCqc1Owu/SBXlIFmT0mJ7NEPcr5+kAumpm73loHWdJWB+3KxZhs/F5bBtIfc7L6cY838MsBxeRn4bAemvcj10fieMjC5g252XQ7w2jnNHiqDIGDQvR67kKU56fpE0n7X77Nqz0Bqz5FqLwNmrye4rNBUeh1+tQXbAmADV2MkMAJah3+Zc3X4lxVJpViHn++3XjdfKgArAG0BZM6z49p8jZpCdatr8zW4Nl+tSZs5lLoa1eZrIWoMFa+VCJyuZYe7lmDMtUJfZRcgvhdlF+KodhSPaof4iG6I+7SjeMz1KO7VDXBAOxEf1w3xAe0onnQ9FY+UgUKfcL9CH3c9o/e734jpF53DrmfLsPvt7Lj7Jeeg+4OI4SloFgdcr89l4An0Q9QuimP62cKkWPAl6rVqq8SZ6kvUa/El6jWalqjXkot5CzVWQtQYKoJWdPN8JTvcSoIxK8Wm2zbEo7ohjuoGuE/7nI+7H+JB3QCP6AY4phvggHaujLtf/7TzGQ+d7EIc1o7iCdebiAH3G7FHXI/iEfcLjnY+H3a/a2GvEQNZ9QZNsWQD/IxJ8ePR5Eq1gO4R9WhyJR5NXqspmlxJ0spCjesgagwdQStaIHMdO9x1BGuuE+qnXYC4TbILcVg3wEO6AR7UDXCvboAD2tk8rh3iMdezpQxkG3ePdiHuc70s7nM/n/e5326fcD2fD7tfcI67H6J2kzPmXrYYP7tdL9zuj3IOuZ6GlaCkEpRUgpJKUFIJSipByRRki/tlG79dykXC7X6bc8D9Ht/9zsr9EXwZSOIh17N5uGJxdKD4uP41eZ1+kMv1g+zSD3KFbu7s1o9jm24cB3UDHHIvhs5xWjsVHywD0RnSj2OPfpDz9YNcUAaUdMCK95aBfeyaiorogIVcODXtz/IyYM38MsBx+ZTy2cbPRa4PpvaUgckddLPrcoDXzmn2UBkEAS4OnQuL7JOuzwPsd/12qPYEkvYUl/biPvZyoLZCE6e6tkutwDVqwbYA2MDVGAmMgFbXtmmqru1iSdUGSGUdtltt2Ag2bDc7bDect4UNPRLOa/5Hb+kfHr7j/r7d1z842rdzGIXeM37uptFde9beBwaYnwtfxgpGT4ES6L01Pew8eorke+bCOKdz4SWU8HzwzhVCOt5pJUg3IZc9ajyqU5fLHlwuuzXJZQ9PQAzCWqgxH6LGcHG+jPCww80nLIbRdkQ3wIdcjyF+yFEZovFzputnPaAb4GHtfDmuG+KY64mIb/jYhviYdojjuiHucz1fDuoGuNf9ovi4bogPaEfxpNVxdmkLIzz/oDWM6HIujOgiwtv5anP+nhKHwLwtbFgA2xCQvWR4Ox8CY8Pb3lz4ACsYYNgWbNgF7EwWsAHuKBuw44KlRuRpfnXBmo8LVo8mwZpPBv44f+fz2CBaZdBMuKQAraddgeDN1WSv5pqohUuPzMLp+yyABUoA/ogF0KsEoJMFsFwJwGdZACuUAHyaOhgsA2CcBXCdEoC3sQBWKQGYywJYrQRgMQvgeiUAP2QB3KAEYA0L4EYlAJ9jAaxRAnCaBbBWCcAqFsBNSgB+xQK4WQnAkyyAW5QAvMYCuFXNIzSzEDaoQfBhdnI9aydvhaNYvMq6oudT9pDrcQ+5TpOH5MxmHWH118NJy4NcLwuS4dp6TVy7lTdPMIqFa2akWJRFwb8yDUQrKLsAH9QNED8iZp/v83UjuVM/jgv0g+zVD3K5fpB1upkzqB/HFfpBriwLkAv1g7xOP8hV+kGu1g/yev0gb9BufR/Tj+SN2pEc14/kGv0g17rZkZ0vxu7aQd6sH+Qt+kG2uBlkvu02NmCte/aGgf6d2yci1V8Ov3Tu60986ivnR5579neTL0ffV9NdfeThh3/W+NMZv/faw8+UnHLbRGVNpCCkWAgL1SAkOYkXgwBXf8Z3z/2f+PVgzY3HP7bv5e/cOhqd0fflWY89e89XT8/60ZZHqZSLVGJ3GifnYgyujLfiNWyzqHSLFPqcVe4qSfQ5SfHVha7tf/cnof/80O/4P/nt1wb3/Wrek3914xNf+PCVZ3I9Vx/d+IPf/ek6Ksdid219gxqEGJVlkczps2kWg3Y/fNfvH4l/7MwfNXflfhW88Xd+vOUXawMrXs49VP/nx17/0WtnOfkRGbI3/jo9SGVGpGae4aRGjMH/9p7Xv/tC/MkD+5/43MEVc9N9H3nypZ//69e+/tH4L77//IMvLeMkReTEhacoiuvqtLGJ8GsmuQwSFvWYgfWeL+yLwFTH3RAIux/izcW/aIz7G+sS3UNsXnjVZlevnprx4qkZj6bUjJd1Sh5088IHUWMclk+8/+ljR/MRLtAHtis1QxzQjuK4boj7dAM8ohvgXt0AD7p+ymNTUBCHtaN4TDvEE64XRe1UPOR6UdSufXjBoXsER7vZZkvRfURU4lcLDLzqUYkfj0p8mqISP0mqD98wQamBHbtX9e3c+dQnR0cGdg6MjF2IF1f17Rke3TlBxOfX9e8aHBqbADI0ERHCqOWP1/T37Vk5NNQ3Bujp95wZP7dxYNeenf1gC3HR+LMXPzxdaLwYCXueROFPt7bkcb4e+fuaJ82g+f8zEZXleFCN6Mzm4YYCNtOsLbdBylnaboessbRtNET3XXzxmmYVr2lwOs9cYOzpXP1debjsNwymfoi0pS0AkZ6AbQniizDyVH/+IsZv/Gf9nrNQgdeN7uR2DTBw/ZhSyGBQUXeo7jg7/azVDEDC2lrzlG6SPpY3Sav7t47uuGVwx6lTZxH9X823R946zF5g9ussx36tYOwXbKxDrAvf5BHrYlmBwj2dp7hUr0h+xdFVHN2UcXTWT0wJJloYvEZacvyZ899d+URu4Q9er358Xd+J/YtPfnPTTw7UPTf7n9/x/IyPpArJvaoHmKSiH9ogREMD5qQif95sWjGQi28yRh40a/Jn8pp83ejOB27vHxka6J9I0A7uGD51Sl3h1iF/v1VK4fjxhpewuj7Hra4Pt7peTVaXsxLz6rC6Hr7V9TltdW910uoGLoXV9RBW16vV6gbsWF0fYXX9lNWFci2yul6z1TUFIvKGUgKDSpBVCbIqQdaUCbJwDM5dPD/GNRZeTlDjy1X9j5JtxES8dsdQ357TZ7jGoBKKVEKRSigyZUIRwnyZKxwcTkABBIiV5j+OrDo9Mn3Xsp+Ev/HEog80zvzeL5974dX/GOtf8eNXf/jpll+WbKLuMlaMn9GxVjWyagAIb6Va9WfGuH9qNjnf6cnbnLv6dg5s7xvpX7l7+xvEu373g6P9o/3bbx0c6R+e+OP1e/t3j9hawN6A/P1GhQXsuYlV9OgQeiNp9OmNo1utq3cjo4p0ivEOWRudSIrGclVfMlR7DyluUatcxwiHF3fc4cVxhxfT5PDirMOL6XB4fr7Di5e1w0teCofnJxxeTKvDS9pxeHHC4SUohwcsZlzk8GJmh+eHQ1jhxjGlkMHA+kkMi6PRxSySj4ya9ImxSf5c1csG9YcpTKNiWk1wmL/iYPmDWzNF2d6kbs2SuDVLaLJmSdaaJXRYszjfmiXvUrFmdylYMyA8WIvPhkVjBTGeq/qFEW78ExPmAOWapeBC4kR0Nwt+Row3Q9N4M+BnTPYg32+LtSWItoTgVCxtYXTrtKrQwhw7roaoWtpqUHiRIrw896q/b/2mroSg3AKqvgRQCBsbCV1dwwhGA+jI8rgOwmBa64tgUSvayCRfGooUZtWmMVf9cUNtfsNg2yihNpz5N8qpTaOVO406V1+NhHw36RyoqSjcCIlaeCJi/GSvvGkGXRmf2gK/I+MEMEYLEic0Y77LSrGG4iQLehrDpptAYgkg+ws5spjIVb/TAJ7EgDewq66FcD4YC8jLrZppzFpy1Vmw8kKGaGa53CBcD9J4NUAUuXjVG3jtpWxNHdPYAu0KglwrO6MWCVq3kXMCEFo5c2rLVc8i5tQMFZwwV00Yck2IcLaCiISDVlOuut1Aa0xB0RuEDqSNpHIrM8sm0FUBkVahLNJ8a4XocfnWBfhGubYGnmuDFs8y4VaJYKqVmDAdTLVaTV2rTufQSkRFbToHahN6oXaenOU77cI6zZbV5XaOTMzOVV8OZAKTVUQj22mNnDB+V4k1crYdjZzDdpoN8SJs6RzGxbbD70h/Dex1O+KvW+DXlL9OsP4avSOiAWFAoigdLPkbctU7DdCoSUkY3toABeaC4SOQORqrW8SeuoEM2W156oRJvnjCuoHwaolSPXU76UManNLuu+Sij1ZqTqgPa7VnF1pz1W8R24U2OsMibUzaKLvQCu2HPCLtQlmk+dZu8go8vm2V9NQJ0lO3sTnVPOL3WluSMIKztKVgAGdpS8Owx9KWgbJmactCUbO01ZoEM2/BvqVuHM9T4dCEIRo0gD+iFpq3Syj8bHvKMcH7EbFyzLHjNDvYTnMo5QAetUMBEbFydMgqxxwOgTpy1Qe1hLFz2NR0w6XYdmkltl3a2G0X1EBJ7Ls0GIR6iNh3KSqBLW+Mb800iCMbiUxEMz8T8S4D+PP6vTXm2VqEnu20Q56tnfRs5JKsXWldK1LedtmIhOfZ2nPV79Xk2QieN1I8R/MObWKeL+Qvq99vTOmUWc18punkrU2+TbF6LmWM8SS6Sg0oCY+NWMq0UmLYMxtKH7rcsCFyrbIil+Dr5IcokWuENOGkjgHwosGRn10DaigbeKBjJeiET2UXtk5V/JR3Yeuc34WtIy1pqe49qeAPTeEis2kC2rCkp2yWuZGf+vxfPME2tpVsbQwVRPJPiN2+Ukm8Ul2sGnCxqtMkVhz+1hFi1ag27LVK7ADzZrbIQBu240GKlSkbz4pVc676RWIzDRWrJnYeTaxYfQ1dm24h1qYJdm2KbVyn0Y3wDKGsWRReLbsR/i0qCkGDy7pzgvwUL7Ssy1V/23Bjz6HlBfey5QWAwHiBQZItMAAkZkoMAJHxIoMMW2QAyMyUGQBCFwsNeGWr1f9UcokkdRYhjgomx94lHC/NTOD2Lq7J3iXIOhf7xUwBfjFToqxLM1OXIkcQIHIEca2lmSk7pZkJiDRurNnSTHCIKiEqN4ybSzMDcAiikCJOb+FwMCDqPANSpZkBcWlmnG/JXjeo/yEUOFtOEReumBJyRexxbmqlZpp4gybB9WFRk0figTau+qzxKVijqHDCSTLQiUJJYfFK5mpCcJ/EIg9JBaFNoDWySbyUlMNggDrSLSU7Yx6TU7maqJjJcRazpJATKTnRS/KxSkKseI5n1eCesbzj4Vyvg7sG6E+VK2DjZxUuVeC6kYLUp6lC8IBIugKodMXM1HrBuIloZ/9Iv0GvMzboFTijcoVEwK3HWALOHWMJoMWsJrfErKQSJvYhp5HI4Uw8/1Se528MY7DcTvTEjdpiHjp6krxAqnLOSW8wHS/rSweSkx1Ml/M5JxDKqp5zglFwCeecOBhQ7k1XMB3jBtM1y8E5J1kXCgbwO2iqkpUjmRPDJVRMVcLOIaYAYqzW6jBW9S4+lPmEurEqFqY/74CxwrMCG4nyojuI8qI7iTTuXUR50SaivOhudm/D+LmZe4it5naHL0Ihzv+HFC468hOVyCHJ8ao1jVdNiLefMLIxx+PBGG5k/ZqMbIykFa5enJ3gONQLVjiDuZqXjIVmn8rKTPHup2XqhA46vzILqqzMQhA1joLk+6GpkRA7WIjUuIKhPqod4sO6IR7RDXCvboADrp+yfj5rn/Oo++d8WDuK47ohHtINcJ/2OZ/QDfGg+yXniOvV75D7iTimHcXjrmfL/jLw+MdcT0X9dnbY/VQsA0M77HorNhVDO/2Cs8+9bDF+znR/WKKdLwfcb7lPuN7mjLmfiI9rh3iSSdSByk6/Qk4kSAznh5/ZSrPIT9uP7DSU/IhScKnaI0ohG48oLVV7RKl4u6tCaanidkOvelKu3vnS0nqytBQ/EVPPCidoXat0MgOX9waxT7cL8bB2FMd1QzykG+A+7XM+oRviQfdLzhHdAAdcLzj6iTjmeiLudz8R8a0F18j23gqfNUA85noq6vd+w+6nYhm4v2HX+5YB19swBxT6hOtDO31sMX7OdH+wqJ0vB9xvuU+43ua4P1jEE0q2IbIJJXCVhF9hPV8vl1Cqt5cikJ+2Ywml+kVqCaUGGwmlRWoJJV7xV+TGyatMzGqqFMxKjnepKyGv0DTeFfAzvBJSNpMnpXhXsFcCaBzIAHY39cRCVqEEPS4nH3EUJPcxrPuKH9Silih/qPVCUTqLzhaO1tXnIm8rlFE3vIweIDCueI1skcQawAB48wqS45cZwLdSLPCTQhLncRaMTAAOaeJtSIa3LEhQzR1GGUuela014cfj8U7xHcm1IqmLK0ldrUDq9ihJ3ZAk1jypC3MQqM3FGw3go4xwhGWlLkxKXfyS16YT44U1jWemTYkV7/aOmFQTR0xqiAsoI9a2O4o/p1vb7iz+ZO7suav4k7l3ZlPxJ3PvDHjQkLlbZjMksaXtHlwLC+QizsnEDFX7rp6XhIOQ8laRq4EwEJGrYUWuRi4WqEFBcu9zAM6dNQI1udhVhhF4ir3PxwgeSpXyxeo7m8S5johz5zoiRSbgR5U45zpA6yJsuAw7XIbgeUaYw7ALEK/htAtxVDuKR7VDfEQ3xH3aUTzmehT36gY4oJ2Ij+uG+IB2FE+6nopHykChT7hfoY+7ntH7y4DRx9xvdMZ1Qxx2PxX1K+BB11PxUMVyTwnLrY8txs+Z7l8XaOfLAfdb7hOutzljUzDm3ulAzG3N05jeb5dPEcTk8jQx6h6lIP/qvQyRcalVS3r41DMutXjGJaMp41JLco95RxqgxpC6HhJWz1Y3AJm2lzNCOqXJaevd6o71It9v5n+f9p5V3uruVdnq9jKKF5FQvAhJZ0rxIozigfHifMWrYTZcohlUApANF5D2DXJyrbFcdKMBfDqxoctofsjxO3RCuOYHNWl+iDzGpP2islBZ36lYNdnXlAW13qlYZedOxRBEGn/ZgL1TEdaYiO5UDJrvVDRtFlrhhjClkMHA+onp5J/MnYp+8Z2KPKvjz0UXiC8o97O3RBvKid4SHZK7JZqHVSgXXSy+uzokuqDczwd9g2FmlylYI/EF5WHZ67pDHLzCuejlxAXlYQWhfQP54n97IRQMdR6DAepItyrZGfOYXJWLXitmcpDFLCzkRJWc6IX5WK12/ILykPztlkVC6Lqg/IL845e8+kXS5UelK+DYBeV+pQvKqfsGg47HSkHn7xsMkvUoitfgQfbxhwvIF+LquqD8en7UFrB5QXnxcPalLmAkxgtrGi8sOZ4jRXzEeNWaxquWHM+vaTxTyaRiKaexTtzFLeSM9oufjn3jTRwE6iaFrJdfmHXgJlsIWoOLemsVEBE/ZVNvB/sGXu4GTMSKPSgBbbCD/eZJxT4OsWfyYLi/a3Dc3xGPNdZr8ncNZJrOfm4ggx3ucDg3cIOTuYGmS5EbyBC5gXqtuYEmO7mBBog0/lQrmxsA9q9BFAjXm3MDGTiEFW4DphQyGFg/MRkKEzAU1wZz0L6G4CTYY1A+OsKQWhuoJsLGNatJfFbdxjXjNq5Jk41rZm1cE0qNFogaE8C0QAuEDNfCDtdCxESmB7i1g0zqB5nSDzKtDWS+bX0FYAVgBWAF4CUCSBUfNbGthvfeSq0Ewwp72mm5LEb6ko8nPF4X/TI6LHq8Lg/jPk4mIJ2LzTZAf5UqPMlQtGjEkGpCkAJ9b+ag1ZSL/hVIUJjCbR9ErxCC5dv8qgFYYYwn0TAvYC9OkteZZkgVyu1HFCo90sJURzO5Y5I2yQ/Dn+Zc9P+Kj6mmxQc+b+bKZPTbEsxvco75aTvMT5fI/BjJ/FqF3FlMyPwmkvmCY+ATyvkDMfOx4pNamvmxXPRfJJifdo75MSHzmwiSe5XMBaAKw3wgGmpH1EXMT5dyQH1COX9uX/PjQs3/5eSafbHm19rR/CbyKgHOfQhANKoUzL44w11LMj9Om/3aXPS3YubH7Zn9eC7mnVzNj9thfrxE5sdI5tcpBJmxEpkfM0k0h/mxKGA+FcPHeTE8AI4J9DlBKMJ3GLFUAa2WDju6onvn2GhpQOpeM3b2jjMKU6sXSkKclIR62gxMaGodUSEEjQi/LoJ67Dbt+D5R2vnHbtNkhICf108L1Eo+DIg5XBdxA/ZCuL26CHnZrinKNlMaDWYvLI7mWOVwiUFcjFoiNzONTZDJ1sZmaDqx9QTiaJtpi9mSi/VM7vqqRehoW8ncEtKpje3UCqnC6FabhFNK8xZtpa2vmmlH25SLrZB0tC32HC0dPDDGGgAsZqEYw+2B5y6E0tFhHcZL+ASfmuRtU/cJPtwneDX5BB9LdC/qE/wQNU5hUL7fbrxOmioFwQEO6AaInze3C3FYO4rHtEM8oRviQddT8ZDrRfGIdjYfdb/g7NMGEBh63bM+7nrZGXW/7Bx2v+k+5F7pLh/LrV9yjrhe/Q65n4hjrifiXteL9t5KDOFGE6Z/UXDM/Y5Ae0yCP3DlHqvoftE5OPWc37D7jdhjFcPtRu0rA6uondEjriei+02Y+2PZ/WWgzg+7ns/uj7ff4f5YVrvVPuD+FIT73YB+FA9MRZNzaOqZnCPuj8IecT+Kx1zPZ+36rH9jctz9EPddMvXzgKer8t9uKfy4l1NG4bnwblSppQRKV/oEVGErlykErOjA+5LwEgaI2LIlOGIfzn7xbavbfvtWjAWc+3cCRZ4inYJk3UOpd0huReuXguYWP0vFfEsADl6oJJ1X8o1NW5WoCEZhdMOg8Xp7jCm8swlEBegDcT2Jn3q2NYghQ98ogl6B2yhbktrAUfbGXLwFlqRa0G6ELMbGZ9FuJAxWCH6GgRRXwi/kT6ZDfD0Pp4AxJFRG1QJGQLhmFBFklsbzv/dxi9ziMkWItSUWIda47IRfA3nIq5Gsu+CcjA1CBUEQqrVZ7FcLXnQkL7sqIxtxjZyNyGqyEdmSbEQebj9/KtfbshDZsrIQN0tYiHjFQpRqIeI2LUQcvDRcuSVczy3hgcot4TZvAgu8SW8Jh8sTxVvCA3AI+7eEczAgbgkPSN0SHkBcgt+kT4xTCOTigwb1h0u6PviNdWnxv72EJIUIaxZWk+2kujUL49YspMmahem1hG5rFk6oWLOEnbOXQcSerdVhzxKTbc9CuD17Qt2eJQyNel7engVl7ZmlrQoibWkDF+zeQZzuu5N9/9n4eZe1Ddz9vomIZe5mD4MbPzdzDFEwFz9ZcgZwmpGakUj1VUKqMgup1jkZUiXfXCFVUndIlXA+pEpMVkgl+96Gl+BkgLAmiu7NxgNuCbm9ilKsSYJMiVuokYSoMWvoJNR1ZLgkO1ySyAwloWNDQNbQuy3O3FkR4hvLGq+dc/1ehf0Km8/48NWF99pO/OPEnRWwN//OioBb3W/AOfeLK0wNRI2RbtMDc/Lbgo5Jt+GQubId1HtnBfVICSrbQVK2/bRsT8SiX6AuDDBFlYUXSB7AUKlm3znyCPGvkXvnyMPBviYX/wp454jBvh6uD55GXkPkKGXEcaWM4EpZo0kpOY9L1uiIiT18VYg4HROvcjImjl2KmNhDxMQ1WmPimJ2YOELExFEqJoZyLYqJa8wxsQcOQTxpWkPHxBwMrJ/UwK9l0oweJM1YbdInXu3Qd4k0I8C0WkwrU0xeR0hShLBmUTXZvlvdmkVxaxbRZM2irDWLOGjNoptUrNkmO+FyDdoy34ZF4wrifxRcdvxVZvMVsA/dYPawRPcQK5NG+Bkx3gxN480gFMJbLPSztPggwliJ3t1oDL+eyGbOQLP/d7N5TgxeVbElz73EftYcG0ooq6w4GaNQpfDr9kofCF5JjleFNCrsNcflpDGOXtepY1pxQqASOgdKFOmHkCjFs5LGz/UM2UEuIcW4qhT8jnS/YIwU4n6TmEuwUswDhCQv/ujt5RHERQNbs4BjGSO5+k4DeByPn5nFzAI4H4wF5HIsSWOWyiXS4udkk4QvXGMPrwhEkYvXdKL+KWKK4iyNKWgAEOQ4t8qlJGidIecEIPDuysvkEjOJOSWhghPmCn1KKCF+v2A+B61ELtEqrs9K0eEQQi6SyuyLFSARnlFARPyAQEb2AYEUn2+dVMrC5M44PghaPPzOzRkKopqWi1HS6I3hOpxDmghDMjoHygi9UJYnZ/lOu9BaU1ldznIvmE6sEN8unkI0Mktr5ITxu0KskbV2NHID26kW4kXY0g2Mi83C72T9dRbx16kS/PUqdX9tSAfXW0cM0DfgS4eCtzZAgblg+AhkjsQqcZPYU0eIBY1NT21KInKF9VbCq3lK9dRZ0odEnNLuO+SijzQ1J9SHpe3ZhXQusVlsFzLkmlbemGQou2DzVeOsUBZpvmVNXoHHt3vFVjmLUD9DUz+bS2yzZZU9JVpl9sLtLLTKKhwVUX8DSf0MRI8l0IZc4h2ScZKHjJNqRccqUVLN56alEsUyzOfQtM29RNomSVx5HCeOOSaI1E2EqBBJEUVqaaJILQsSOCwhvLnEwZK3nqgysAgjqKCqowljqpc+c2mVkyb4GTGeT9N4PvgZBtJsUYz4BMgLlx0njCOcSxUcuq+oxsT8Iw5m7G3sP056xh4vp4ySxsirIEfi8zQKuwofy+8qrO7fOrrjlsEdp06dRTYkV/O3FLyN2AYmsgXhOcvZgljBbEHAxkZkuxMpQ7jU+uqi8WZpGm8W/Ax/l6D0ZbcJd/Ea7A9LyJku5K536n5tAP8AQ1kps8wmVMXVLRG56hA/f4l2TrxE8yP0WCgxowi4V4Kd0xY+Th8u2d5TTp9d1fkllEzxxg0f/EyOrqwT9nLI488lPqHbCfupiCgiQZwI6SQo4pDjNWsar1kuyCjdAplwF1ugL6BOV5QFWsuRjGiu7ocG6C9R9ieisKHjFdqfqJz98XJRTvyF2P7wg9W1EvOJ8qyPl7I+Exh9veTaJ8r6xCiX26rJ5bZOgsttdXgHHt0Yj0kYqBhxCJs2UDEJPf4OOqw4kohwX12s+7gB/BXKQpIBHOvoojI6w5IqKmfyopLmTM7RTWjiP4kdXZTc6CWJI7QZK7gdW8afvnXQ/IRVse8FQ4MWq0XNhX1++BPtFDN3ikp1il6w41wNWcEat/ilKOyMsoWd+V4b1Gs344ZcrJCv3YxBvFDKxa2Uy0Puw7skzBwyXeGAszUvZQBMsaiJwM4iDPkub+EakaTPMCL/NUnHbOMlnJdtuc8mczGDTdW5GW9aJqOTRKqom0h1rySpUElNmiXVB3/yMt7JXgNqAofqYbQmWtQabK+QFwN6qBgwlUtmDMp+gtognKOpTHMO/Exh9qYKHC5ZF7DSnFKT5pVETQYDO6MKWzktm2ErNwBmaMo2I3lJY+fCK178fvx9f6WwRZgR5lA5O8JzgDRYca1VI+JV6O1NWfSSxgx6SWMtdUljVhUzFSqCUTgVNcbPVfZYQ4H06QcZtQeSuUzSVOmFVR5vQWtqjQLp5AbKjs3WZMdml27Honw7tq7kuHWJlUgpwo6lVWEr2zFOqRvADLVjaUk7Nn/5ywu+9s3wO+zV6MnL7mzCjilai4WoHcugdiyN2rEsZccyqpipUBGMQpUgrtJUPpmWsGP2QUbtgWTsWArqLWbH7iXumfABS8Zd7GwyPrhdZQVgGEose7UePRmxxRjxPiIQNnIfxQUvmJ8llwDIlLwQsGLl7byYFvTl5VOSuWQR4bfiCL+xB1WcPMQVXUh4DcB9xFcJ/CuphYefOHIZk+IS17UMGh/cT/nIuZp85Fz4mfSRLD8EgOmPkZFMXWnemf90fmf+xv6Rjff3DfVv39i/bah/BD+Tl0BbkmhLSu1M3oTsnkVhVaEtPrQlirbEz8pghuNJ7aW0Y2LhI7bgOGLRbjJ17hmvQ9N4HfAzzArr2Ckw4U4kwNs1JcDb4WfCvYLkuO09v838Pb9i4uQENV2SyZ2amNxZGW9Sxpunabx5k6Ck86ijY52aTrp2ws8u9Xhio/B+dFg7RiGem/7PBugP0kZBfrpRfFvNdGE4dtaPgLiZPj1IHLrzKQyXkJNHcry4pvEmdX7yZ2YNDm2ikMQP+hIQ7xGctMaFNqHJcSfgZ8R4SU3jJSXHu9Tz69Q0XicRCDl1G0OnhHH9quphR7LKKpWb/k0D9P+mDlNNHaJrPqVrcFDM22+hqUo7vM3kpv+pAfolmrcUgVLErNYqMD4lzMimyYsx5dO4wHdYiJ4lsuSKG1U2bmevxTPhWU2HMDYQh/4sBxxeyKdRVvYPL+pdsXoihzK2Z+QM/2zCBjyFUnuGPKGQ4J5QOIscgUhgV7Hzv08n+H/PJM7aQErQhW4lrGNWk3XMws/sFqfVctfdyR+Ji9MS5HlSMgSwHjY3OXOZu9miT2+8fyei5NtRhLm0WEPTIpFLviamRZKgxWY6uiQuyklI0SLxwfVDVqGB8HFGdGkSxK5JcNNdEv7zdZRd4srVG7mbDNPPG8B/S9+Cc8ku7FI85nOjRCjO3YCJUEVFyVwqXHItzjSisDzFshvak/zGQHUJh55u5J7Wmf57BvAozXB7JwylzUlc2ClFZsMcK3Py/IOdMiepEoBSAp8sXQJgN/DJ5jzfQ0OfDB36XOiqEvxQQyGBThL5e0oQAGGoaQ2BfJAVelK6pvKAUs/SN+M6vHpgL1rQFcHTjOtGd6KeOYKTgDmmlIF2QHAWESHe3VzzljJevm15geLXXE38mgs/u0Qp+LkOH4orhh14pLVOU6S1Dn5GjJfWNJ5MrQytHdeL47TUYvUNAog9b4vgJgP4MqrswUcfJJS+nMQPoeM1Ij5QwkBg5ddUjGHCinfjRcqooEytpBBapgmhZQSZPERE4nX8PgwvHpF4NEUkXpJWeGEQbd0CCsMtE8aQPvq6JL33YXSp3Yfhs3EfRpfifRgXlaE2zNeW21nJ9Olb4vioA31+TWdn/fAzDCQ3kiAubwbiuFhToLAYfoaBVD7/7MulBksOEzcQa/vSjx8qWy7O3dYAM9SqxSVLrXt/uv/0tVd2vm6vdEA+dbgYCEOJD9atQ0utE2ipdRwttU5SpdYJVcxUqAhG4Wyx5zHt01TTES9aX1sAmZpo01LHLZZNlA2P8Q3/qDgD7CNuUFlDX3xkzQBD3194R4qxWRcbWIn7reUfcYzacrMFEgPztgdSDxkE+Qx1uazXZGSoiQrfjYmYjy6bCEhUe5vOaQLMVjPIRKXRhmk/5PZcL9+7XACGL9r8mhZtfvgZMd4STeMtgZ9dorz3Eoll5btt153dz19UrjBAn6Yv1kXG9bOZnZjQ7EpeQBPjK+rvii+g4W8R3i8hlzFeABalArBYLvX7JQdJVBAdF1188YYSsg7lJslLToyKMTF14uJbKOXT/x7cl8jUqiVFW59+hRoMD76zmQIdUYhcXDZL4JIlcGFr+ExnbnnKkT1p6PN5bMggLTY3c59UzBQBf9gm4Fu4gFOfNwB/lLJA3ZryNd3ws0q+Rke+JqIwXLe78jXTnc/XTLebr7EqA7jZ+RpUBVniBQlluAZ+RozXoGm8BviZPMhrhELDea23wSmhCc5Avr+b/31omrrQzFARmmnUy+s++tkMwGTj5XU8FebRlAqT3a64VtN415o+45V6/GPJedDH0IfyON4krApb2ZuEiQveieezw5I5tF/ccuvnHv37n76KMSjMMigs1GLOLaHXEjk0xStmH0ZzaBE0hxZGc2hRKocWUcVMhYpgFEbQw8IcGs0YHOAaewCZHFpIUvUdMTW8JXDqVZAJc5Hta9M0Xhv87BLVJ7Sh28zFVMa/o74cSWUYMHZw+BjKZcYM0L+ik5PyRSriu7xD9u/yDuVSv1a+y9sggXg+IeWbvCcw+m3JvopKZYSpm6y9eI4Jz0N7yStu/WxRA+6TQ2rzjKn7ZMLv+jWt8EIkraiQgGP6jZ8Jbd7kvDD+t+ug1lcAVgBWAEoBxFcqpYcBITnzW/pAfjxnG5bwKorU88LPhCDZDDD+FAMRQWw24cYpdk3PFz9GFxFthoRFGwzyhyaiuXRvAaOGl8UbWuklJRxv8HFJknmLAXw5dbwhRIpuhNyDDNMvcuiJYyLwM3mQ4hVbiHyCLyyKWtMr4cOVeObJL9r/9pu3sg0rdBdDXQC1RyHyCRHU7YGfKWRuFJMOAfUokahwCmmKEqMkrRTfMRO5KcWnHMoB4CXzcEBcL1EVQsjh4MDwANideDqGARftTs7rCX729QRAbEvbRoL6d8BJWdruLP68iU80uTcZ/oS4i56454c4JKRUpheBn4kjht0lnKwIczOAmVUG8AepUDImOqdkipPCVJw0EbntdbhopNQ8jpsEX1m4w4Zw/1xBuE2hD3kyllCLkCBypI8+UzFpnDB09yqERcR7O36CI2EiKoo4Xh0RkduzKiUqitB7VnAT+ZP5TeQL5FvVt2d4dOcEV7CDrSH+vnDEc4Z7dylSGYDf/YoVMdyIFTeo3ft6cee5xBfW7FmTEGFNwqw1yUN88V3qBiNmrGnuIgwGc+oSII1fdXw7tUoSVgmHraskaIbwMt4wve/PwcD6SRhbd1AVzRMULv73FofCSo2hMB6FluqdM3bOvaA2LqbJxsXJpY6FGknS9yShBZIv+0wSoSAAGdQPMqENpGhBWQFYAVgBWAHodoDUaiPGW6nke26iikW9mopFvfCzSz2eOA/xEjqs6CjODn6FfZcB+mUmFoO7HkiZphdykagriqriDfqu52Ke/gcjeB5Da+yK9Xv5Nr9qOFUY40krcwymBhQSvEASVEIlQBXOeVPAL/nTCuCdd6yOntywMdWo8c56pv9NvEnoFSfP1vOB/1SC+UHnmO8VMt9HHrqVlxgTnelNARtHG1Dm+0nmC7ZD/bn0f4mZ77Gn+Z5c+vXJ1XyPkPl+guQqjsNPaj7wRiqXl/hKZL6JyDzmZ0Ji5vvQckuS+b5cplqC+R7nmO+zw3yfkPkBkvmcuAEUhVcpmH1vicz30mZ/gvlZwHwq0vOROWn8MNk5gUHiO4xMg5Gb77DjJS2Z2E/lM7FvzCCfij11SiFZarRE+GlaT5pOl/LTtWmFqYVLDADCogAg00xUbEA5yk9J4Vikz/HEv8/5Y5E+lWORtCeQurJD/oRjydJtbAXwzz967Mg2PKQoHz55Swy4PdQakH0jKEYth0z3CSHYJBC/GKcNXCKXWSzhF2PO+cWE0C9yEgYJIXdSvCwDoAqjCinIKflIS3xrT4y0hnE4LO+6hszVkn4xQfpFlTmBKB+/8zkIUgvEUzsRTWmgiOkzXlnEGvEVQTavHcncDFREfjqREoXUQxmCVMmXdJVHqVBcfXM0KVUqJG/VpdQhDip+yDJeO9cPxXjXAZ0Xhrxx0vKYXrflin0fjMNwUVTxkHG5jGbctgbv4E9lhy0N9jqrwRgiyBxjlJVK5jK7JBx5pERHHsMdeVLoyFOkyUc6ca6/SZkCE+LG5DjpMJOCi7vk626kLEREfIogZGfdHUbEJUSJSziXOSRWiYiddBT3vQXCAIYhzQnT6XNMqKO4UEftJOujJa4dvGSyPkyeZY6yGWdIe+M0s5XQIC10pUKuKUDY8yvhZ8R4DZrGa4CfyYO80k6C1bHrWgJtate1BG1c19KmeF0LzjqPJtZ5ZFiH2DnjDMM91JL7Kk3brlfBzzCQvAJrY/pb+Pupnyj5iPdTDpbAPmWnBBavPwzjWbKI5JUu39jwzW1///EPzFLwXRE7vusqIAwlvhF4BvVgUfRKlwh6pUuWutIlqoqZChXBKJx1eh7TPnuMwQHeYw8gc6VLmApGnLZt3MXJp4krXS49QhMriT91FULpXOaLrkJoIin3VXGyiUqs3UPNgiwf8mjyYx7J8S7TNN5l8DOsIkbHYToT7sJ7fTJ/i67FRPf69HOPG2f3G6D/L1X0RORj8Xt97lE6I210goB4VxG9bPden36J+di51yfzPYfv9XHu7jsbW4Zh509Qh8kT1PbPCvn5i5Kw02eFrnfyrFB0svPoIa1nhaJ2zgqFIdJ4HM+eFYKHB0VnhULms0KmqFf+eI8EBtS1D5JnhcLms0K9BCdLOVTPkFobKOqNHMXjOjYeWo/hNi6qycbRiTj8iZ4YmW1LaNrckEn82weZ0Q8yoB+kTxvIfNv6CsAKwApAKYD0XheedtlKnc5QuRbfJ7f167vk4wkPz2TnqlYje6hFoi+XvdcA3UUdngmKD8/46fdTFXPpBs3WcvAO5LKLLkEBfRLfjQsId+OCZKJHPusbhDSxVW88GUdnsleWcnSGYP0E6GskWB9wjvUOHZwJqh6cAYJRpfXgTKCUgzMTqnkTVSZIHwmISIRoHvpx87XcAzfZ9baK571IakJf8XwYKZ5P2CkwTihMLVSiCQgJTcCdleL5aVO6eP76S1w8H7Bjd6M8Pw1IRJ4IJvZO/FR9JRoOxRCfGKXMWyyXvX9yfWJM6BPp+1OwowS8NcZ5Yq2QkPAfPiI7Y9MnRoU+cVjSJ8bs+USfzUpAn3hhQVUC3qO5EjD7UDlUAoZgDIYpW6hEZavGlS0iVLbo0zYqTujSbvo61zAZnkbsVZlKlA9ObJoSdZpLNRV+LIWfEeM1aBqvQYJ0HJBL7aiBY+WDkUa18sGojfLBxtLKByNQWvWwLigpKh5N43kkx7tc03iXmz7jRSKf1PCql8KGUVYVtvJSIGtFJwsxQ5cJWcnqwc/PXvXYB+4+uwFjEOeh26xQ0WvZTpcDrlpx3aBGxGOo16tFqwezaPXgBqp6sFYVMxUqglEYQTdo3GePMTjATfYAMtWD0ck0NbzqwexniNq4S49QMpf9vKsQSueyX5pEhIjxrtA03hXwM40FBNSa6ApxaV32RTQgEpXW3cd9q2X6bAP0N6gtESJ6w0vrUPsQJUrrTI/Qcx84/5bd0rr7JOYTVS6tm8DoOyWXf0wjSutil/zJvMm56jmoVr5l/AwTx6CnE8egE9a2u4o/U9Y2IJYZa9vdxZ/MzudmSGJL2z24PErUoBnHRhu+K1+D5oeUJ++rxpOFV2vaML4afkaM59c0ninzbE3jw2QoP40fJGL3kONpfOLhyKBzD0cG0TS+9MORKpm+q4XLARpHvet+XxdWEYu88u5RX/d3qaz7PW7Skohgs8uIWWpRzILiGyej3IN9tasN4CGwmYKFT27bd/M6t++GbfMqVaB7EH1wugJ9lZMV6IFLEcJ4iBDGq7UCPWCnAt1HeH+/yfuLLx9Gq7q95gp0DxyCsCdeugKdd/0xsRNvBobVEiD2p9qkT5wajNpmg/ofwgsVmIWR+N4Jn9xb4l5uBVxtu3hh5OOWnFSb7DcP9HLDzHYoWKNq4YTpCy6rTS6Lc8FlbRdRmeFXEFqf+ShCnYRf9fMYDFC3tf8qEL1ArnaRmMleO8/YB+w/Yz+B1VKIFc/xrBrcM2YUYJy1UV7kQ1tq0BbvWRnHQbmRgtQvl6n7QaXLg0qXxU2/YMSsO/tHigUrZ2zQq+isubOt1Ci92WqUVjlSoxT+NVU1oLJOC8lln0LUeH5N45keuVM8rGzwcRf3nG3tOnHlxxuH9BComxQy2H47pRCy5SIxBUTEJZhxO9gnyaqpCHXja9IO9psnFXvTNWrM2TrcPicdt89J3D7HNdlnLrE0rGWRK72TTq9lb3ByLZu9FGvZCLGWjWtdy2btrGWTEGlLWxoiTbyQmBQFbnHzWjYCh7DCTWJKIYOB9ROToZA7TZ00B5lrCE5qPAKd1gcqS9g4xeqJrLqNq5UrgCnFxtWSZRGMjgLUmABmA7RAyHAb2OE2EDERAJnQDzKlH2RGP8iwNpD5tvUVgBWAFYAVgJcIIFVflOXd65zvuZVaCaIrHM4VSGG5VX74ko+H7eYX9yk/pHoGJEjVVoVz06MG6Oep6+AiFC3QV4SyCFKg780ctLK52k9eguf6svihDyPkCdiLk+R1phZShXL7PoWjzOKnmmpln2riPU5Sm6v9M/GBc1wiSeaHc7VflGB+1jnmh+0wP1wi84Mk82MKubOgkPlZkvlBOCxXOb8uZn4QfcuAZH4wV/vXEswPO8d88SutWbq8R8FcAKowzAeiEVJIKMeEzA+TzDe9R8VVzu/Y1/yQUPNfmVyzL9b8mB3Nz/L4BKjCOb1g/FS58USc4Y7JXjLAf5Oq9lUx80P2zP7EpsS/Tq7mh+wwP1Qi84Mk86sUgsxgicwPmiSax/xfUaeqI6RApyFwTKDPCUIRxGH8WnzXSJBmnDN3jSSRhxsydvY6MwpTEz9NFyrlabpQbvo0oqIFGhH1IuVJvXVXV5FyWKVIOUIuACL2woCgw/v4N2DVxfb28eVlW+2JQrysN2vn8hI6iAtSS+RapjELmWxtrIWmE1tPII62lraYG3LTs5O7vtogdLS3kbklpNPtbKfbIFUY3bpdwimFeYu20tZXtbSjzeamN0s62g32HC0dPDDGGgAUZqGihFqhRSPCW3ju58Yj0zvFRSxxusTJTk1ElK7oIK8hwp+BKU3ZanBliwuVTVDVwO/EeZ0vCXlOCSZ9607cjmxR15dExQdT6cc/kU4SLy/fwH15efqVth6lFBfziN4+tsomuL8pRb3lG0UFN+ncs5IpoeByX4gU0SjDdkpDrjOimYH0om4ETcm8Ept6N/oOto6T2oniLgtTiqJxGAPYFtTcGFsW029HxVWsQNdzFCiVm77bAH4n9dIq/8Ho6XcXhK61g+qdoPTFZ+vta2zGSdpkTMz47YainEKVMVGiMsZLUcasHWWkA+okmRWNKxjzpNiYkyGbyYpyTfoAFbL5IE1s+b6SX6dOLWYENgUtoLxHSRF2IQ0/Q0Fy6oqBwqOisnpgrxUTcbfsOUEI7uGH4HsNGzFPSeLFrKR33lJQE3g7b9MPiFOwmJnJQq/GNTOHxM+bSQC/kQ/8qDjsqeV559I21rKU4G+gluUJvI6x1lxzCTrdyiTEQGNKVMu5wVwfaZoGx9nLzSPJF/H3GE70ZMl3VPkUGLoOjmKLpXFqtijMWuPWlBUq+lYkE/pYZq2hEoqwnwKRCB5k3Wtg8B4FOx1H/YPpSZpilEYuAFj0I7npfyCRRypxheD5h1Ju5kzxTpbYWNqmoL+gvF4LuUJQuV5S7Wn5VLXCQhIAWFhCpHod38p/RGzl03bYQi/ckpSVz0zK4pYS3bRQdDN2PCEnJMmQopslI9OoRISYtCm6yYLoJl9nuJOBKBCmPm1vXYHuN2wgQ7Ms9EXcvPqXxKHZbXaWSXRmm71xBRQOoYvv29Ddgzw2vKvPb8tN/5qEzc84d/X5bULF4RJLROGNbKfbIU0Y1dgIqU0pzm2kv8gqqL+UWmUMtfqWglMUJzvTiLikaH+Qzk1/SewPMnb8AW3r2HymieqkxZkEsZ6UelMPWXKYJsU6S8igEVQmv6rgNaIlprc9ttPbCQUsk2Ty9TwejoDxOjWN1wk/czbdC8Yk4qxOTWmkTvgZlonUMTET7uJM9n+pWsc45UzTubq0Afp1Oo9tV7R9Slm4PLKbHdvuCbgsIk6REbFKNjZldc4s8dLOES9pZyWctLPkSkHyKO6VmQTJqUR38v0Ks0mUKD9x21FGcspEGXHVKCMpER6niXzXWlQAECsNeMbbb8zk6trEMWzWjnTR69Q0JUC1lOilHDNC5SVdGdLl25IuKpuaFkcK8ac33o/53e12srt3oJOQrfFN8WOT5eJkBkWnO1EtlMUrzdfFK4jaYzgrfu1xiqg9zqipgl+99jiD1x6nNNUeZ8hQm1FZSlVkQiHlZzmAddQOMlkyT+3dQpNib6FBah4LwKwyMg1iXNgT6pG/aCYO8bJqBTB5ab5WpN2qFWnntCJdulakKlpBaEV60rUiBfEiiPDBOxdJPH6hoDOKl/G0qOtM1nmdyZI6U+rtR83j56/b2bftgesG948/d8fg7X3bB/Y/xTVoy7lSXWtSUs28jbuVt3HneBu/ZLxNKfGWyDe2a8o3thOu3Kl8Yzv67J6Rb6w7qLqSJd8tnoidTxqgD1MHFVJUMtKHri3jJa4tfWVVDB4V1HnKn2KQSnAZpxiS4/hsmCu1r4cAUFvAdMsI9wNr5W7iznDrnupOie8Hz4jLDJFkzZMuKTPMwHiJOOCXIt53LE2hWlx2Bi9KnsHLiLXUsG5iqb7NzqkmGv0sxUW00AK7AylDC3I2V/esRKnFBudEJGtHRLIl0jhDikitvXxehthtXsP6YRh8GJ6YPAuCHSogc8KU+0hwTzzW/U9xeXZMdCP4Wj7oz4qtJmc6PiG7kzwaAKzow5SWTAboGSscKWdumr7YMCH5v6X/4VXYKYtz4yKQ5JY/1n3RYNFnqFuwbS1LEsSyJKUaoisvS1L4siShaVmSohWmxJXuLHpZEuMuS2DyDDJSWC1Q91eqKgqC7JV8Jf0bA3gOBW4zvowVQCe+o6TKpRXtxCn9JysbvNTCMKq9jK3u2xIH8EotGP55WZVHqNxJlxIuKJKyx6Ji3Men635AHcDzQppQZW0qc5LaEoyJzUHUTj0mfmeC8XMh34b82NatCWJHn+BRCOBFKHqCyjdEHMs3EHvZCaG6OWAMPWR0S9+akJBJHSS+YO8ACia4iAwCtBZw36Ku+41YBmN2ZJAjuDGIF5HzIj2RF5XBWIkymCrl5o6EnTWuKCCn6nGipGmNy5xUSvwhKoPil1ZT3HNo9UbxV/0chosRygbJeLNacSJqPjfLVZ8RS/kGO5Xv3MwMwIvIUtymgEhWaABukz0vs4F7lqS+kfLZpnNzTGsMAmcWBpFJ2t8EQRTz9gxgh/LuZ8Qg1EPE7mdRCWxZeRnlXVWC8ib5yttt4L1OTXlTEsorEe/P58b79YvceGzFRs2PzUvKUhA9XnayfoUW5c1QPI9TPE+o7hyk6LAkk6u/RmKNFynR4adxh58ROnyu8JRWZJoiL1lJK5gSscilZUUuwtfJmyiRi0OaUGdzIsDgOGYoSxST/e/mOwmfWbYNL2AMYtCt0CFXfyeTtzNye0WUli3BUXr5q7/6uxdu6t01/swdQ317Tp9hd7rP3d4/Mjq022DPBu6L1PVvNSi/mX3NNA+LuVEqUGhZb/TexXr8oJH1pf/9DzzrGzpnzfaaLh1HRCVM3kpHvKgR5l6tW3+/McutxPPlHFTzY774Lg5cb67+PpZmITXLNY3lPwAlcRtr/TvsfWXIxr2sbABQRenAR/ET9wQGClJcoro0fr7/b6555V9fEatLiQO9s9effPfmdWscH+hvQv/2y6//xY5Tjg/0T+EN13v/57tmqVgaq4r5TTJhaQxAziMajT1dYRiiXdx7yOuPSUQP/hKjh5WlPFwhuCda2r6FIE0YTxuGRgkBynnoOiCMHvxk9BAw2UKGP/5c/RNU9GCyRFSSw6dJ1D+1tPvy6N1zjkqI+kUZzv85WJQqboQQOscW5AAuW+ODCY9jXHBU/z6z3AaKQxW+OId8oVwch5SJV1k7+IodTCNXFz8w/b0G04L8nyMc8hiwqhjyTKxPn7UwIFzsVpAT69hh/tjV1slVY9pXAGjtUFPsUODIH2KCGFDck9Uk178K/M5L13/75EuO+4r3/vLWpcfr2n6m4iuwkkvOfnpMjXzV6vvpMXw/PappPz1GXrNA7VpxlldGGC6ffI8T1S4VgBWApQHkrjG/ZVjGrzHRn2lPDEHHQyz9vWSiy2NrTYtFcevR54nWo69WMS1VaEs1nIKlzfAyd6M37hlr8YY/5pyQkFyLf5G4X5Nai6N50OlKa3GQBEOfp64jIG5mIE4HHTGI9QTETQzEOtARg9hAQLyHgVgPOmIQGwmI7COsDaAjKwyNqndQIzjN5OEERrFiNQN0ZeoIZ8LvTC/XW79sBJ3yFYfWT2Zgk+XuCjYU01g/xOW/kUjwPMGB25ir/zFL+5n6EjwzrabAZzv0ZwKPxhJAUUW0nNZGXIy9Es7BSygG7Ry8bOJJ46S9hDWP6hwoirqG2mJLQb7/G9Vl0d2D/RwRn5lrmGt4nWn4ZkfhMIsBCigqhg+ZWZghwMovPswyg3d0RJTvmCn7itAMPl5heFECXhLAvmQwE+oLglwTO6OZEpSeRc4JQGjizGlWriFGzGkG1Ac72o3VMzUVWLWWW83UkBZvFc8kBABNvc0iadxEVTPNUkCkSSiJNNeaIHpcrjVIPo5QyzPYADiWTTzHFyaCa75cwywDqeeIDQPmnsMYDPfwFXQdW1F4vhiCMdd3nS8GU/gZ9hlsUTDuX8x36ObN5vvVLbLIynQZwG+hDAlrZZokrMwsOxo5IXALxRrZzFMukUa2sJ2aKY2cBboqICLWyBZZjWzmEKgl17BcUiNnkhrZTHHcS3EctcHNIo7znHBzruFqic2XmSVuvlTjmy/NWNqZFh2RvLWynVogTRjmtLrVBayVLM9vJqPomcDY2PC0a9iglQU9EbZqjKCxKFlPMA4oyKniMZY6+NKj1OW6jbR3I5729mpKezeSyzQLNUzRLkPFmcL85UzSkVQAVgBqBuhk9qSRiCg1ZyywRIKPSSQ0jKiGrT7Bkv1TBuh9eInCJU8kHLSVSPCVmEjwCUP8I8Si2/SILREN1roskfCwXCKBzSubNARLE9pZtnhzDY/bSiSIj0WpJhK8bo0iT0vWnPvIombNiYTffVMlEhqJRIIXJBLs1Wgyu52AHMx+JyAHs+MJyMHseQJy4LueKXbXE5CD2fcE5CjufCrUmfrhxPCZVlP1qQRlwwSFalgPCxiAc6SKoGykUFuj7JhFzubTBn1fovxJlMou1OrOJ/1pJZ9koMfNJ31Z0jDPJA1zM70VQXDcqzuf9JeVfNIbHdwaCXyLEjhTipLKNs0ExsZGwLWGsKwzweqlxErHp77Ss+Znt/2kqYRKxwiR8lEsNvySesoniqd8IppSPlHyLGap1Z1fVCiwjMF5P1viBa4+IsJDc+gpUrdMF2zxrrBq+DkRciZ5R+tEuQ7Fe9AmAWBSdEtRXpdfdbi6AggvrsGlDxQp5lgI1fjgnSuEAtrLLl1wS6N4TdgmdUuTcP7qZPrSDVxdE8QLz7uV5BLnq9H24gn3Q9ynG+Bh7XMedz8VD+oGeEQ3wDHdAAdcP+UXj7oexVHXq7N2Nu91ve69eNz1bNYv2i8+4npRfPGYdoiPuV5dysCI6Z/z47ohPqAdxZPup+J4GVgd98ezR6Zg9DmsG+ChSvQ5JZRFf+hUcahTI/4sAzOrP/4cdj+jT0zBaHHnFIwW95eB/zvmflk8XgZmrAwYo90wjrk+dCoDWTxUBqI4pfyV8TPmgMcibuJXueooRgxnfvnGcqMDvPmf/2A29RJT0vEHs5POv8REP2+Bl5Zy6gNSEsKi+GArAOnXDzKoIGM231sodrphAo2BHbsvFO489bHRkYGdAyNjq/u3ju64ZXDHqVNnx59f179rcGhsAsZQ//BwoePq8T9e09+3Z+XQUN8YVJS7kO838b9P+s6On9s4sGvPzn646z/+7MUPT/Ma72L++MbkrF0u6o3vkusyeqVKjLlSBb83SWMRw7YpU8QwqN0TPOr+xLT2YKwM1tHa57zX/ZHTuOvXGdoF56GK3JQMsJLbnyKZ+P2un/Mh17PZ/ZVn+nXlwBRMcu+rBIqVQNEdDn+oYmVLlxv3bzGNaJ/zw1MwfTzm/jBsSm4aT8W9fP0K6P7Ks4qzmhLOqlIPUcm8vHkzL/o9gfaTFGWw+NPOF+2F3GWQ03+8YnPcKNtDFZszNfjifpujFC0ajy2xTw2ZLtCQr1cxILJPDYE9+RRbjpPvxqleSKveP6JcvZDGqxdSmqoX0mRpD35/XZpldQYyCRkuww6XIaQnA7lUqRsj6sbSEDWGjqA1oCAJaYI1AGRQP8iQzWfJW/77aDP62lvpguLVKigh5wQlVLqgBNH39Eqn4xVa6Rh0jo5B23TM99ujTTdEuTW7AA/qBnhIN8B9ugHu1Q1wQDdAPM62DfGo6yc96v45H9aO4rh2iA+7Xxj3uV4Wh12P4RH3a8tUFJwDrpdE/EiZa+asnSv7y0BZjlVMTsXkuCRYfMz9cU4Z8OXxigK6kdFDFQWcGnzRntrQnjiY2BVhTgjiWTbFHYdbtO44JJ3bcUiiWTbRjkO+34Pa9huEdtE2xBO6Ie7TDXBAN8ADugEOa+fKcdcTcdj1GL74TteLNr64co+F0M6XIxWrWLGK7rCKB1zPldEyUJaH3W8h3K/P+l2B+12+dj7vrTi/ypxdgeLo1Asg3uF6DPUb7Ud1Qzzo/qCpDJxpRZ1dOGX3hw9TcmWqXXBGpp6u4LsYb+bMEP6sk4scgfVYBSiQTWnaNknBz4jxEprGS0iOF9I0Xgh+ht6+mWZu3/QXYK5n94wyMmXzmf/zoyusWy/ZAlDORlSt2l5QTH0jqhbfiMpq2oiqZZmTLTLHQo3pEDWGcdOhRiDDTWeHm07IwvQiTysAKwArACcFoLI5jRZ+WA1ILWFOp6tZtIC6OZ2Om9NaTeaUQ+Ra1JzWQdQYBtQJOVrHDlZHcLQcAAIPIpQ67zfSbx8NPvO2bT0d0et/Xpc6e/yarzxx7JqObtZt4VJX5/ghyTpc6qZrkro6UrUt1KiHqDEsqC/068MGq2cHqyd4Wi8RFSiDzLdtsRnpvfbtmVGOKMh0/eZfrNrDdq2X6Xrvhq/Us10bZLo+9KEr72W7Ngq6+go/2K4zZEZ99Ojyt7BdZ8p0vTA627VJTd45519nqUGoYSE0F9BPL5r20qzvLR3rql02uH7vie/d8fzhzNOdr8brfjp65d7/emXQqjc1Bam7e/yZm0Z37Tmda4pgAt1y/pb+4eE77u/bbZbqmuJP7/i5C1DW3geGaMk1HTWAx60IeAgz5lWjS7e6GfPiZsyjyYx5WTPgQc2YD6LGmAhfoR969NTHDuYjbI5PnNiwDfFh3RCP6Aa4VzfAAe1EfEQ3xGHdAA/pBnhw6rH5iPvVWTuKo7oB7tNOxOOuF5z9ZeAHjrmeisPu9wMnyoDRJ6aerxpwP1v2u3/Oj+uG+IB2FE9WYgg3WggnfL51M9Bb/BllGsF6LcI0+iEQBFE/i6ifQNQLP7M+yAnG8/Ef5AwQi+2g4/dlBfHFdkDTYjvIkjOALrZDEDVqx9avwD2wtreFo96nLv1dyPdr+N8HPWeVn7rsUnnq0sNoiUdCSzwknSkt8bD5JvCZpQ308527vX9kdGg3g2578WcVhm47i247gW4V/IwYz6NpPA/8DAOJ5vrycHdxMn3tuaZ3XrBKO3eeztWj72DMtqM0c9hOsyFWBNnmMIYS9uQbyjmEoexwfHOlAzeUczQZyg6WnnNQQzkXosaIE2hF90LmssPNJSR0LvSw2kHOLpmnc1kK5UdmNoc7IYEtbfMKvTbxZWSaVUamQYzzitbakwfLfsMgMxvixepvLNd0zsjUf9DauaW4QWVpaS1umVpa2ootebjNtzG6OkfCpM4h5ZUyqXOo8eKaxovDzzCQ+eIuM9TqAtTNHIbMyTX9RcnCugMVVo5x61SFrWzcOgkNmYsbPojYsiU4Yvve96FdB2fc9ycYFzpZxnYKvc88thN4CJohYpcaEbeaFdgHDYSpxc9SMd8SgIPnDUPLPBazeaqYqVARjMIoCGidaY81HJCG5ugCCLRSO8iwPZDP3DHUt+c05owJ05bSZNpSkqY0oWm8BPxschx1inXU6DSVXPV35F31HIiZlewdxZ8hhQivgyB7yBTjWck+V43sHBuPkX0eRMHS1oV7VQmyzy2Qva1anuwdJitWonechwZ804ipdljbugu9tqkTodMgwuXyRJgL8UKL1TuZYvXZxWiPjWU6cy0JI7j8V1RAbicEZLbR/yeMSnRLWL5uViW65SxfNzVeQtN4Ccnx5mgabw413hwJE6No2UOSnqRD03gdCkH5hSQXTxh5MfksvyGHvxXDXVT8Y7q4guLC9RrK+i+EfZhbGH3WgkragkpbdJtcmlU6QGudJoUCIP36Qc5ledqtRtYeK4V6UH80HxLY0raghLRFt520RQfES6ciNxgK9yMVVep2XJW6nVelbhVV6oGoMUIKWuux4XrY4XoIue+BAYB2kB0VVbqAFxWDFn0MZopJhdvIUbiO3KwlBtxeYsHTZXy1hcXfpWrZ4ZxadpSulnX6dcivH2TXJKllx6SrZZeEh7OlcDcZHu7HKqrU6bgqdTqvSp0qqtQNUaPCsHr9kd08/SC7Ss79drEyiqlSN6FKPSWo0jw7qtQJ8SKTapiP6SQUQ5GINo7Hz5PbAylFMebReyCwAuU7s/MlKDf2j2wY3bpzYNvN/WPDK3dv39A3NDLQtzNfVnKaX04yL3oaqQOZaLAUphidApZPsVl0EbNgHxedBwVZXt3AJoMVYhcUNHlf2FlUCCLH04Pn3XqYvFs32H+9ddDsPovdLqQiEDTnE2jew6DZI+GsFhAQtzIQ50PXi0BcSEDcxkBcADripFzIkHIBSkoIkSBlL7kz1sQgCtJDvRjMxcTUtzMQwVeLMYhLCIj9DMTFoCNOzCUMMRejxIQQCWIuJdC8j0FzCeiIQVxGsmcWA3Mp6IrBXE5guYOBuAx0xIm5nCHmMpSYECJBzBUEmvczaC4HHZkCKuhj80ba+gmwPAuQT0AYuxj5BMjJMn6l1jLCWV+m5i+j6s76MtxZL9PkrC9j2bYMjWIvh6gx8eHlEiHn5exwlxMh5+USbtU+yE79IHv0g5yvH2S3fpCL9IPs1Q9yhX6QS/SDXKof5GJ019cjbZaKRSN4kJHFUF/Eor6IQD0LP6NWolk072BcOTDr4yhSSBlyR9G/smmPRbnm3xigP0URo9tJogN0axWixV6C6LXwM4rotRJE/zyKlIjo93CI3ptr/pwB+n9RxOhWCEp78QXdYgkNX0rI9P10/IhGZm/oCYIGVsfXa8Qm+Ta/6rVQhar6J62MNWLsgAJZFxfJykjREkgrQncWazIki+FnlsktIoK7Xsdv1urFg7tFmoK7XoI3XgWGAgKfv25n37YHrhvcP/7ChsHh/oHtg7t7N/QP7RodmfhycPcZqJR+yHc/aVFUFryLcK3thuR1jtv+cuH2IjSUX0zaetDaoJA2WCyniN36QS4vmaeLUdPH5ICXEDZlaQkJ6V47CeluiJd1gWvyiwVyPHPnol520Q0zRfm1MOqkep/eOLoV0WO0U/fT60Z3clFrpvz5dE3BzXTCNPQSpmGxmhj51E3DYtw09GoyDYtJWuHivVjgwOVdyBKCNUvkQuZnSzScNqz2Ipw13ZpYw4lnpgt9NM1Pea508xz7Ryf0dGRg47a+nX1DEz+fhD7UBw2kF/LQp6Cn3bgHt5mw7sY3UmwmrLvxjRRTUM6uVRbnmhuN82g1nA8W5prjxgdRwqAvMr6qt361kNCLJY7rxRJcLxZq0gsOSxbypPXj1+/a2r99e//2VaNDe/sn+rwHESYe+0x7TcbPBVJyPZ9AcA29q4VzvAfneAfsUPhqJvFVD/gK98rMTkAAAmOFtzvX3GxUffzMwQIqG0uqsi2gcqAIsUs/yE79IBsZRemEhNVzTK4DfuZcNYYNgZ2caowOYajQRRJYIQcwD+YAuvx2SkbWUOfT5pnrSb5QLCe5uX/srr6dA9vfQOn2/gdH+4dHzqJVIZ1oyzy0pQtt6T5rqTHh/g/ccrLI/MUZFHIHcuHK+jPkiApWusfx4KHHeSvdo2Kl50PUGOMBWmcohALzCXtkKtnWDrJ7ypa5ziFiLON6iXvZ6yWMn3PZCyYAcKkrJoKaTpcFTZ9xbr1uHmD5rHh44yoVuzBXFbayXZg7Tl0Mg9qMuZJXN7zr/KkPPP659uP2bnyRj0SCgKslRhSXo1s+nejVDXPRqxvmUVc3dKpipkJFMArn5pw8pn32GMMBaPwM2wPJXIpgOuqJGRZPyfpow5fOwfWiRZMv5RiuFtSXmihFBeJ1mi4WACD9+kG2TtIVES2TfpfTHGLNRIn8pJ4D1iXyHSoiL319Wb1+AzdbP8g5FZF/YzmIJcxamIQZ6NfOD9XOGLHjp5nYsaX4M0rdM4i+mzIHqacx7mjcxT2d3Pweo+rjFG76J/L/CNRNaGzSUmI5ypfwcpQOYTnKXDvpjk4yaJlDXryEqmALEfCvQYnX4RzxZguJx70GU0S8ubx5QmEgjE0rBrSVsMA48WY7R7wWO8RrERKvgyReKxmctCkQr71IPKRT20cLZoR3j2A7RIo1J2255k8ZtNvLYh0lBSICgRctpbxe1VhFA7SAgYtPULmjfnAJa147MKdnfLEUMfdLipWHLH+W5pq/KL46dxlZQCR/7mMZxIo48rIC97LL0DLIpe4sg1yqVgYpc/CHAklucy9VgLhEaBiWkYbBVNXKCt6yXPPfAMOADYHI9FJKpidAf1Ms0yvsyDTnUMwKiBVx6OoyXKaXmmXapDCYTC92TqZ7hTK9jLB4m1mZXmZPAnulCi1syfRmp2T6B2KZXmJHppfkmv9lUuz0UqpcfYW0TJd3ufomsjRtqa3KIsUqRVNZrkKV4hJVEuos+el1ruRHXK6+lCSwwlb1ErhVvZQuV+9VYHcHGpx2QIDCczOLSNDypXLL7BQKLoaDEnqwhLLh3aq2chFtK1uCwFY65UFjuLVZYicqXGLHUi+FNGEEc4XJthJiu4SQwEXguBzxiEoSw1rxEZUk/AwDCW65zEPaUtzGZSXCk2vpKPmZ33VWGvkIs+tXha1sdv1WdOAzTLhJ9ktuig7N2vfiy0dG+zEW0A9IIZ0CbKcksSmq+DTUzaiqB9BNUT+6KRqkNkUDqpipUBGMwmiHQeP19hjD7GCaXn62So0hdXIyc2LVn/f846ufOmCMYvQvjF943Ygr7SGrtPuKbDFxKVz8wPT3qiKDuQNUw5cwrLBCRbtR+DzXYnit/J+CxW4F1ljHDvLHDlsnF8a0pQDQ2qEKcPGiQW7pKdCzRMZFv/rZ9d//f3vmiBlXcHkbWOtj9FE+wYxLeZ+G9+IYCCFYXycRlFpmSj1mF1ZD7rfqZj/s/GN2YdaCBAgrXaU27G9A6P3cHYO3920f2P8UNEKA02DWYDjASMzgh1GDX2WUqP97yRHBb0qWzv9GYwrjvHzLLRifQkhwbDLpbDAUyrXcZgBfT4V0fuwxOtMbhWgKIGw+1xeCP7EpXTg/aK2aAhNDulWRWRsfBMbSoyrXssmwa3vQIRBih2hiTwC/R5y3qSY1DulUw3aqhnhZmQYUp4Y55AmmUSU65FmF8tWDd6p+42SoYdZBb7RLyJxCqoLzlEUuDEfi+BkAHRVJhsw+dOHuMzHAUOCi1yx1oRBAvRFTtRCEfLG0hQq93qpeQuE3AuMV8iUUJh3UGDqgchAwy4HPtDjCOgXNnQIEBQM64x3TsoPQB2xKHlK0mfdtPDpx9xCc9ekcyAD2tpLdbqMVUS/rdsdV3a6XdjMTbvcRA/gJKbeLxmcFJ5lH+u0QCcx/sZ41LEwSVvP8qtEJAmKmO7F4Ogm8KmZ/1hgkeQKdrtjzVnEQCOdaPmwAP8XQO2wyaLirpFwaU/BVVXRwXIq810DoKWpMH0su8FkBxO+hRO0D3zjgKIlo0GcvGuToOkCMGC9gvZMSBgkXsoPWOAeUfVQjdz9W2w+FqiHaBCVMcU0NxN5G0BUm/UkVabFVoh4vGvV4eVHPOKVyZKCIyWWYnEq1wnI2hE7FRNeiaSoxv/LoP/722+86WP9TcX6lxIGuev++d0aWfuwTjg/0fM3fXvdn7w+/XSVjZJUHU4BKKLmXkiQfZUjRwv9q3jNZVWAvgWe9/5yNO2rU4o5pLLkAKMxzc9/vDRf3prmrzu8Y0vsXqktaEei/lNhcC5a4uebHN9eqhJtrnOV0VYnLaY7tqYH2Vn7DQxx1BclsRhgOy/InmGv5FlVw6SFdg1fWK1NbE1sM0Xut5Eg9hAY5zBLT5F4YmQFTtLRVE4FXDW5LJFbKxS2knxMrZUfMor/8NJNTDFlNClxpooyP6ufFAK8Jd0AC7Bryl6iKI6Y3QJneYK612gD9nwz3A5TcBCm5CVHuVHahFMRXnpQ1ps43V6ECxtl6qXa80Kka33qp0rT1Uk2eGpb3XIDACoVO1bDQqcZPalyA1Lgq0nnQC8wwtuswmfEiqq/Qr3OCxtZkQWNb2xX4FxIyPcI77ADwss4SmNKIAkyx9EXZThEKEYBlFF8FRsxr5GrYH/NsIefKR6uFno0bPtqgXQ2pYlFIZDoVS6lntSDjIsj/iAQ6SGxnrWHdJkC66DhLXJ9eMfvddY1/+WDE8YVwwN/4vuaP3XuL0kLYknEC1PWKMk6WfQ0j6L5L564Ks5OEu92Q4243hLvdoCa3GyINH77O4DgyY3m3XiEfFSbioXIASJksv0SIGHh69cBeJNu4SVwi0bpKNc42rWS5kfYpA/gN9rBGbSNztC8g7ORjN2+8MmQ9xy+HMOhnSZ6DACvwRmktQ5hArvWAQZh1OGEodNEqjpBsFQe/qqX1NrDfRFasyC9U4D4VHlNWqWbYAnSGrXWTrZIRT4k5rgBdMkJk7E2xmokwkxCrhYWxWhWZlWMsWBUZOJmyBXJbxuwOqo8v0f2Grh1QcF3GXNizoCYOyEMMCHOWdAVWwKRRPIl/QHxuLoDuAxPKNGGwdouVqcqOMnFzWQArIj9D1C95zMqEF7GbA3anlMknVKYAUR+1mdyapKtWfGLZ93D9G6jlQPp5P7h+yLTzY1o4sULkzbUeNrA5SZZuMI1e+B2GD7HZSlfceNFCFk6o7nM8VCfOnXg1heo+O6oaIAmskCHzwQxZwE8KsFdWZGzMdA0lZz623qv4mURyza+wLgjiGIUkHGOYjYZ9wmi4mo27w8JO/F3UatoFTzim9xoXRs3TvI/a+vuTEuWF9UR5IZkoL+icYwrZifJCslGeDZCbKZWqsheKqpTlgf5gWG5O+sPiYAtLeFdRMj0B+qNima6xI9N0uruKTncTRVUmmQ7C/pOwcgna2T8NEsFWtT0JDBaZTBh1WzK92SmZ/oJYpsN2ZDqca/3SpNjpKirjUCMt0yYv7Eo7TdXnbSKzjVWUyQ0p7E4EiWg7BD9TSIyHHY+2w84nxsN2tiarSAIrRNthGG1X+e3lloM2z+8EQXbZkVOv8vgSYX9AggIhAuJmWoXwgyOlbgQFtW4EeZzbCPLY3ggCTNK+0RKcQrtLBkBK/z0S20T/jiaS0G0iIjLw5Fr/0wD9q1IO9HjIFJq8nfAKjQt3oxMMSpiXkK2UAXZYytCqrfzM928vQY1x0KmoRcUzmqpWqUVpQHDGz4ZsUe7PA7SmTNyfgrNSrkJWdlZB551VUMVZmcJYKsgNKNiOEBk3ixxBBaACwBJ9X1ubbd+3lev72uYaoOc45fvWvMl93zau72tbeAl8X+hN5fsk3NiEAlQK8KZVCvDenEskSU1xqgCvbYP2Ary2PzCAb6wU4BX/nGt71CDMPe4qwGt7e/kV4G3jbs22ba8U4An9yBQowGsbMnTt0Td3AV7bfg0FeNv4ButgpQDPvjK5oAAPl/1LV4DXdtLA5r2VArxKAd5FqJIFeCKRqRTgIZseLijAa3tWQwEeEuWdrxTgCU1QpQBPf7FS22c1FOBt44P+00oBnn2ZrhTg2Zfpr2sowNvGLcBr++tKAZ6TdrpSgHeRhJUCPHcW4E1kl0u8pOFMMP7o33q3fdXx2yD+661/fdvP/mDuNMcHavlizda7XnnfWxwf6KEXh577TfLD/yIeyGLBlN/p4KpfMcVvGEYDPv9NGL8VEcW7mabxEaGuQg4Uh2LfkGn38QEytziLHoSpsVoiX3FY5JWaGlVIYQukkG1IVdYHcmqKMJWRwkAhRaQST+e0/UdebP8/8/WxSvKxBQA=",
|
|
6219
|
-
"debug_symbols": "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UA+SIA0aThwODgeHg8PB4eBwcDg4HBwODkcPRw9HD0cPRw/HzHMlox4kQdPBRsNp5vmmElSDWhAFcVAPkqBwSDg0HBoODYeGQ8Oh4dBwaDg0HBqOEY4RjhGOEY4RjhGOEY4RjhGO4Q5rKtpUgmpQC6IgDupBEqRB4SjhKOEo4SjhKOEo4SjhKOEo4SjhqOGo4ajhqOGo4ajhqOGo4ajhqOFo4WjhaOFo4WjhaOFo4WjhaOFo4aBwUDgoHJbnYkRBHPRwjMtIgjRoOM0831SCalALoiAOCgeHg8PB4ejh6OHo4ejh6OHo4ejh6OHo4ejhkHBIOCQcEg4Jh4RDwiHhkHBIODQcGg4Nh4ZDw6Hh0HBoODQcGo4RjhGOEY4RjhGOEY4RjhGOEY7hDmtc2lSCalALoiAO6kESpEHhKOEo4SjhKOEo4SjhKOEo4SjhKOGo4ajhqOGo4ajhqOGo4ajhqOGo4WjhaOFo4WjhaOFo4WjhaOFo4WjhoHBQOCgcFA4KB4Uj8pwizynynCLPKfKcIs8p8pwizynynCLPKfKcIs8p8pwizynynCLPKfKcIs8p8pwizynynCLPKfKcIs8p8pwizynynCLPKfKcIs8p8pwizynynCLPKfKcIs8p8pwizynynCLPKfKcIs8p8pwizynynCLPKfKcIs8p8pwizynynCLPKfKcIs858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPOfKcI8858pwjzznynCPPe+R5jzzvkec98rxHnvfI8x553iPPe+R5jzzvkec98rxHnvfI8x553iPPe+R5jzzvkec98rxHnvfI8x553iPPe+R5jzzvkec98rxHnvfI8x553iPPe+R5jzzvkec98rxHnvfI8x553iPPe+R5jzzvkefWqzXshTPL80Uc1IMkSIOG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"
|
|
6238
|
+
"bytecode": "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",
|
|
6239
|
+
"debug_symbols": "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dFA6KB2cDk4Hp4PTwengdHA6OB2cDk6HpGPkeSenmtSShoOdOEmSNKknWdDI80UlqSa1pHRoOjQdmg5Nh6ajp6Ono6ejp6Ono6ejp6Ono6ejp8PSYemwdFg6LB2WDkuHpcPSYeHwSUWLSlJNakmUxEmSpEk9KR0lHSUdJR0lHSUdJR0lHSUdJR0lHTUdNR01HTUdNR01HTUdNR01HTUdLR0tHS0dLR0tHS0dLR0tHS0dnuc6yPN8Ukl6OOxyakmUxEmSpEk9yYJGni8qSengdHA6OB2cDk4Hp4PTIemQdEg6JB2SDkmHpEPSIemQdGg6NB2aDk2HpkPToenQdGg6NB09HT0dPR09HT0dPR09HT0dPR09HZYOS4elw9Jh6bB0WDosHZYOC4dPXFpUkmpSS6IkTpIkTepJ6SjpKOko6SjpKOko6SjpKOko6SjpqOmo6ajpqOmo6ajpqOmo6ajpqOlo6WjpaOlo6WjpaOlo6WjpaOlo6aB0UDoyzynznDLPKfOcMs8p85wyzynznDLPKfOcMs8p85wyzynznDLPKfOcMs8p85wyzynznDLPKfOcMs8p85wyzynznDLPKfOcMs8p85wyzynznDLPKfOcMs8p85wyzynznDLPKfOcMs8p85wyzynznDLPKfOcMs8p85wyzynznDLPKfOcMs8p85wyzynznDLPKfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznznDPPOfOcM88585wzzznzXDLPJfNcMs8l81wyzyXzXDLPJfNcMs8l81wyzyXzXDLPJfNcMs8l81wyzyXzXDLPJfNcMs8l81wyzyXzXDLPJfNcMs8l81wyzyXzXDLPJfNcMs8l81wyzyXzXDLPJfNcMs99npb5x2ae55NKUk1qSZTESZKkST0pHZwOTgeng9PB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"
|
|
6220
6240
|
},
|
|
6221
6241
|
{
|
|
6222
6242
|
"name": "public_dispatch",
|
|
@@ -6631,7 +6651,7 @@
|
|
|
6631
6651
|
},
|
|
6632
6652
|
"112": {
|
|
6633
6653
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/internals_functions_generation/external/private.nr",
|
|
6634
|
-
"source": "use crate::macros::{\n internals_functions_generation::external::helpers::{create_authorize_once_check, get_abi_relevant_attributes},\n utils::{\n fn_has_authorize_once, fn_has_noinitcheck,
|
|
6654
|
+
"source": "use crate::macros::{\n internals_functions_generation::external::helpers::{create_authorize_once_check, get_abi_relevant_attributes},\n utils::{\n fn_has_allow_phase_change, fn_has_authorize_once, fn_has_noinitcheck, is_fn_initializer, is_fn_only_self,\n is_fn_view, module_has_initializer, module_has_storage,\n },\n};\nuse crate::protocol::meta::utils::derive_serialization_quotes;\nuse std::meta::type_of;\n\npub(crate) comptime fn generate_private_external(f: FunctionDefinition) -> Quoted {\n let module_has_initializer = module_has_initializer(f.module());\n let module_has_storage = module_has_storage(f.module());\n\n // Private functions undergo a lot of transformations from their Aztec.nr form into a circuit that can be fed to\n // the Private Kernel Circuit. First we change the function signature so that it also receives\n // `PrivateContextInputs`, which contain information about the execution context (e.g. the caller).\n let original_params = f.parameters();\n\n let original_params_quotes =\n original_params.map(|(param_name, param_type)| quote { $param_name: $param_type }).join(quote {, });\n\n let params = quote { inputs: aztec::context::inputs::PrivateContextInputs, $original_params_quotes };\n\n let mut body = f.body().as_block().unwrap();\n\n // The original params are hashed and passed to the `context` object, so that the kernel can verify we've received\n // the correct values.\n let (args_serialization, _, serialized_args_name) = derive_serialization_quotes(original_params, false);\n\n let storage_init = if module_has_storage {\n // Contract has Storage defined so we initialize it.\n quote {\n let storage = Storage::init(&mut context);\n }\n } else {\n // Contract does not have Storage defined, so we set storage to the unit type `()`. ContractSelf requires a\n // storage struct in its constructor. Using an Option type would lead to worse developer experience and higher\n // constraint counts so we use the unit type `()` instead.\n quote {\n let storage = ();\n }\n };\n\n let contract_self_creation = quote {\n #[allow(unused_variables)]\n let mut self = {\n $args_serialization\n let args_hash = aztec::hash::hash_args($serialized_args_name);\n let mut context = aztec::context::PrivateContext::new(inputs, args_hash);\n $storage_init\n let self_address = context.this_address();\n let call_self: CallSelf<&mut aztec::context::PrivateContext> = CallSelf { address: self_address, context: &mut context };\n let enqueue_self: EnqueueSelf<&mut aztec::context::PrivateContext> = EnqueueSelf { address: self_address, context: &mut context };\n let call_self_static: CallSelfStatic<&mut aztec::context::PrivateContext> = CallSelfStatic { address: self_address, context: &mut context };\n let enqueue_self_static: EnqueueSelfStatic<&mut aztec::context::PrivateContext> = EnqueueSelfStatic { address: self_address, context: &mut context };\n let internal: CallInternal<&mut aztec::context::PrivateContext> = CallInternal { context: &mut context };\n aztec::ContractSelf::new_private(&mut context, storage, call_self, enqueue_self, call_self_static, enqueue_self_static, internal)\n };\n };\n\n let original_function_name = f.name();\n\n // Modifications introduced by the different marker attributes.\n let internal_check = if is_fn_only_self(f) {\n let assertion_message = f\"Function {original_function_name} can only be called by the same contract\";\n quote { assert(self.msg_sender() == self.address, $assertion_message); }\n } else {\n quote {}\n };\n\n let view_check = if is_fn_view(f) {\n let assertion_message = f\"Function {original_function_name} can only be called statically\".as_quoted_str();\n quote { assert(self.context.inputs.call_context.is_static_call, $assertion_message); }\n } else {\n quote {}\n };\n\n let (assert_initializer, mark_as_initialized) = if is_fn_initializer(f) {\n (\n quote { aztec::macros::functions::initialization_utils::assert_initialization_matches_address_preimage_private(*self.context); },\n quote { aztec::macros::functions::initialization_utils::mark_as_initialized_private(self.context); },\n )\n } else {\n (quote {}, quote {})\n };\n\n // Initialization checks are not included in contracts that don't have initializers.\n let init_check = if module_has_initializer & !is_fn_initializer(f) & !fn_has_noinitcheck(f) {\n quote { aztec::macros::functions::initialization_utils::assert_is_initialized_private(self.context); }\n } else {\n quote {}\n };\n\n // Phase checks are skipped in functions that request to manually handle phases\n let initial_phase_store = if fn_has_allow_phase_change(f) {\n quote {}\n } else {\n quote { let within_revertible_phase: bool = self.context.in_revertible_phase(); }\n };\n\n let no_phase_change_check = if fn_has_allow_phase_change(f) {\n quote {}\n } else {\n quote { \n assert_eq(\n within_revertible_phase,\n self.context.in_revertible_phase(),\n f\"Phase change detected on function with phase check. If this is expected, use #[allow_phase_change]\",\n ); \n }\n };\n\n // Inject the authwit check if the function is marked with #[authorize_once].\n let authorize_once_check = if fn_has_authorize_once(f) {\n create_authorize_once_check(f, true)\n } else {\n quote {}\n };\n\n // Finally, we need to change the return type to be `PrivateCircuitPublicInputs`, which is what the Private Kernel\n // circuit expects.\n let return_value_var_name = quote { macro__returned__values };\n\n let return_value_type = f.return_type();\n let return_value = if body.len() == 0 {\n quote {}\n } else if return_value_type != type_of(()) {\n // The original return value is serialized and hashed before being passed to the context.\n let (body_without_return, last_body_expr) = body.pop_back();\n let return_value = last_body_expr.quoted();\n let return_value_assignment = quote { let $return_value_var_name: $return_value_type = $return_value; };\n\n let (return_serialization, _, serialized_return_name) =\n derive_serialization_quotes([(return_value_var_name, return_value_type)], false);\n\n body = body_without_return;\n\n quote {\n $return_value_assignment\n $return_serialization\n self.context.set_return_hash($serialized_return_name);\n }\n } else {\n let (body_without_return, last_body_expr) = body.pop_back();\n if !last_body_expr.has_semicolon()\n & last_body_expr.as_for().is_none()\n & last_body_expr.as_assert().is_none()\n & last_body_expr.as_for_range().is_none()\n & last_body_expr.as_assert_eq().is_none()\n & last_body_expr.as_let().is_none() {\n let unused_return_value_name = f\"_{return_value_var_name}\".quoted_contents();\n body = body_without_return.push_back(quote { let $unused_return_value_name = $last_body_expr; }\n .as_expr()\n .unwrap());\n }\n quote {}\n };\n\n let context_finish = quote { self.context.finish() };\n\n // Preserve all attributes that are relevant to the function's ABI.\n let abi_relevant_attributes = get_abi_relevant_attributes(f);\n\n let fn_name = f\"__aztec_nr_internals__{original_function_name}\".quoted_contents();\n\n let to_prepend = quote {\n aztec::oracle::version::assert_compatible_oracle_version();\n $contract_self_creation\n $initial_phase_store\n $assert_initializer\n $init_check\n $internal_check\n $view_check\n $authorize_once_check\n };\n\n let body_quote = body.map(|expr| expr.quoted()).join(quote { });\n\n let to_append = quote {\n $return_value\n $mark_as_initialized\n $no_phase_change_check\n $context_finish\n };\n\n quote {\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_private]\n $abi_relevant_attributes\n fn $fn_name($params) -> return_data aztec::protocol::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs {\n $to_prepend\n $body_quote\n $to_append\n }\n }\n}\n"
|
|
6635
6655
|
},
|
|
6636
6656
|
"114": {
|
|
6637
6657
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/internals_functions_generation/external/utility.nr",
|
|
@@ -6643,15 +6663,15 @@
|
|
|
6643
6663
|
},
|
|
6644
6664
|
"120": {
|
|
6645
6665
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/notes.nr",
|
|
6646
|
-
"source": "use crate::note::note_getter_options::PropertySelector;\nuse std::{collections::bounded_vec::BoundedVec, meta::type_of};\n\n/// Maximum number of note types within 1 contract.\ncomptime global MAX_NOTE_TYPES: u32 = 128;\n\n/// A BoundedVec containing all the note types within this contract.\npub comptime mut global NOTES: BoundedVec<Type, MAX_NOTE_TYPES> = BoundedVec::new();\n\ncomptime mut global NOTE_TYPE_ID_COUNTER: u32 = 0;\n\n/// The note type id is set by enumerating the note types.\ncomptime fn get_next_note_type_id() -> Field {\n // We assert that the note type id fits within 7 bits\n assert(\n NOTE_TYPE_ID_COUNTER < MAX_NOTE_TYPES,\n f\"A contract can contain at most {MAX_NOTE_TYPES} different note types\",\n );\n\n let note_type_id = NOTE_TYPE_ID_COUNTER as Field;\n NOTE_TYPE_ID_COUNTER += 1;\n note_type_id\n}\n\n/// Generates default `NoteType` implementation for a given note struct `s` and returns it as a quote.\n///\n/// ```noir\n/// impl NoteType for NoteStruct {\n/// fn get_id() -> Field {\n/// ...\n/// }\n/// }\n/// ```\ncomptime fn generate_note_type_impl(s: TypeDefinition, note_type_id: Field) -> Quoted {\n let name = s.name();\n let typ = s.as_type();\n let note_type_name: str<_> = f\"{name}\".as_quoted_str!();\n let max_note_packed_len = crate::messages::logs::note::MAX_NOTE_PACKED_LEN;\n\n quote {\n impl aztec::note::note_interface::NoteType for $name {\n fn get_id() -> Field {\n // This static assertion ensures the note's packed length doesn't exceed the maximum allowed size.\n // While this check would ideally live in the Packable trait implementation, we place it here since\n // this function is always generated by our macros and the Packable trait implementation is not.\n //\n // Note: We set the note type name and max packed length as local variables because injecting them\n // directly into the error message doesn't work.\n let note_type_name = $note_type_name;\n let max_note_packed_len: u32 = $max_note_packed_len; // Casting to u32 to avoid the value to be printed in hex.\n let note_packed_len = <$typ as Packable>::N;\n std::static_assert(note_packed_len <= $max_note_packed_len, f\"{note_type_name} has a packed length of {note_packed_len} fields, which exceeds the maximum allowed length of {max_note_packed_len} fields\");\n\n $note_type_id\n }\n }\n }\n}\n\n/// Generates default `NoteHash` trait implementation for a given note struct `s` and returns it as a quote.\n///\n/// # Generated Implementation\n///\n/// ```noir\n/// impl NoteHash for NoteStruct {\n/// fn compute_note_hash(self, owner: AztecAddress, storage_slot: Field, randomness: Field) -> Field { ... }\n///\n/// fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullification: Field, owner:\n/// AztecAddress) -> Field { ... }\n///\n/// unconstrained fn compute_nullifier_unconstrained(note_hash_for_nullification: Field, owner: AztecAddress) ->\n/// Field { ... }\n/// }\n/// ```\ncomptime fn generate_note_hash_trait_impl(s: TypeDefinition) -> Quoted {\n let name = s.name();\n\n quote {\n impl aztec::note::note_interface::NoteHash for $name {\n fn compute_note_hash(self, owner: aztec::protocol::address::AztecAddress, storage_slot: Field, randomness: Field) -> Field {\n let inputs = aztec::protocol::traits::Packable::pack(self).concat( [aztec::protocol::traits::ToField::to_field(owner), storage_slot, randomness]);\n aztec::protocol::hash::poseidon2_hash_with_separator(inputs, aztec::protocol::constants::DOM_SEP__NOTE_HASH)\n }\n\n fn compute_nullifier(\n self,\n context: &mut aztec::context::PrivateContext,\n owner: aztec::protocol::address::AztecAddress,\n note_hash_for_nullification: Field,\n ) -> Field {\n let owner_npk_m = aztec::keys::getters::get_public_keys(owner).npk_m;\n // We invoke hash as a static trait function rather than calling owner_npk_m.hash() directly\n // in the quote to avoid \"trait not in scope\" compiler warnings.\n let owner_npk_m_hash = aztec::protocol::traits::Hash::hash(owner_npk_m);\n let secret = context.request_nhk_app(owner_npk_m_hash);\n aztec::protocol::hash::poseidon2_hash_with_separator(\n [note_hash_for_nullification, secret],\n aztec::protocol::constants::DOM_SEP__NOTE_NULLIFIER as Field,\n )\n }\n\n unconstrained fn compute_nullifier_unconstrained(\n self,\n owner: aztec::protocol::address::AztecAddress,\n note_hash_for_nullification: Field,\n ) -> Field {\n let owner_npk_m = aztec::keys::getters::get_public_keys(owner).npk_m;\n // We invoke hash as a static trait function rather than calling owner_npk_m.hash() directly\n // in the quote to avoid \"trait not in scope\" compiler warnings.\n let owner_npk_m_hash = aztec::protocol::traits::Hash::hash(owner_npk_m);\n let secret = aztec::keys::getters::get_nhk_app(owner_npk_m_hash);\n aztec::protocol::hash::poseidon2_hash_with_separator(\n [note_hash_for_nullification, secret],\n aztec::protocol::constants::DOM_SEP__NOTE_NULLIFIER as Field,\n )\n }\n }\n }\n}\n\n/// Generates note properties struct for a given note struct `s`.\n///\n/// Example:\n/// ```\n/// struct TokenNoteProperties {\n/// amount: aztec::note::note_getter_options::PropertySelector,\n/// npk_m_hash: aztec::note::note_getter_options::PropertySelector\n/// randomness: aztec::note::note_getter_options::PropertySelector\n/// }\n///\n/// impl aztec::note::note_interface::NoteProperties<TokenNoteProperties> for TokenNote {\n/// fn properties() -> TokenNoteProperties {\n/// Self {\n/// amount: aztec::note::note_getter_options::PropertySelector { index: 0, offset: 0, length: 32 },\n/// npk_m_hash: aztec::note::note_getter_options::PropertySelector { index: 1, offset: 0, length: 32 },\n/// randomness: aztec::note::note_getter_options::PropertySelector { index: 2, offset: 0, length: 32 }\n/// }\n/// }\n/// }\n/// ```\ncomptime fn generate_note_properties(s: TypeDefinition) -> Quoted {\n let name = s.name();\n\n let struct_name = f\"{name}Properties\".quoted_contents();\n\n let property_selector_type = type_of(PropertySelector { index: 0, offset: 0, length: 0 });\n\n let note_fields = s.fields_as_written();\n\n let properties_types = note_fields.map(|(name, _, _)| quote { pub $name: $property_selector_type }).join(quote {,});\n\n // TODO #8694: Properly handle non-field types https://github.com/AztecProtocol/aztec-packages/issues/8694\n let mut properties_list = @[];\n for i in 0..note_fields.len() {\n let (name, _, _) = note_fields[i];\n let i = i as u8;\n properties_list = properties_list.push_back(\n quote { $name: aztec::note::note_getter_options::PropertySelector { index: $i, offset: 0, length: 32 } },\n );\n }\n\n let properties = properties_list.join(quote {,});\n\n quote {\n pub struct $struct_name {\n $properties_types\n }\n\n impl aztec::note::note_interface::NoteProperties<$struct_name> for $name {\n fn properties() -> $struct_name {\n $struct_name {\n $properties\n }\n }\n }\n }\n}\n\n/// Generates the core note functionality for a struct:\n///\n/// - NoteTypeProperties: Defines the structure and properties of note fields\n/// - NoteType trait implementation: Provides the note type ID\n/// - NoteHash trait implementation: Handles note hash and nullifier computation\n///\n/// # Requirements\n///\n/// The note struct must:\n/// - Implement the `Packable` trait\n/// - Not exceed `MAX_NOTE_PACKED_LEN` when packed\n///\n/// # Registration\n///\n/// Registers the note in the global `NOTES` BoundedVec to enable note processing functionality.\n///\n/// # Generated Code\n///\n/// For detailed documentation on the generated implementations, see:\n/// - `generate_note_properties()`\n/// - `generate_note_type_impl()`\n/// - `generate_note_hash_trait_impl()`\npub comptime fn note(s: TypeDefinition) -> Quoted {\n assert_has_packable(s);\n\n // We register the note in the global `NOTES` BoundedVec because we need that information inside the #[aztec] macro\n // to generate note processing functionality.\n NOTES.push(s.as_type());\n\n let note_properties = generate_note_properties(s);\n let note_type_id = get_next_note_type_id();\n let note_type_impl = generate_note_type_impl(s, note_type_id);\n let note_hash_impl = generate_note_hash_trait_impl(s);\n\n quote {\n $note_properties\n $note_type_impl\n $note_hash_impl\n }\n}\n\n/// Generates code for a custom note implementation that requires specialized note hash or nullifier computation.\n///\n/// # Generated Code\n/// - NoteTypeProperties: Defines the structure and properties of note fields\n/// - NoteType trait implementation: Provides the note type ID\n///\n/// # Requirements\n///\n/// The note struct must:\n/// - Implement the `Packable` trait\n/// - Not exceed `MAX_NOTE_PACKED_LEN` when packed\n///\n/// # Registration\n///\n/// Registers the note in the global `NOTES` BoundedVec to enable note processing functionality.\n///\n/// # Use Cases\n///\n/// Use this macro when implementing a note that needs custom:\n/// - Note hash computation logic\n/// - Nullifier computation logic\n///\n/// The macro omits generating default NoteHash trait implementation, allowing you to provide your own.\n///\n/// # Example\n/// ```\n/// #[custom_note]\n/// struct CustomNote {\n/// value: Field,\n/// metadata: Field\n/// }\n///\n/// impl NoteHash for CustomNote {\n/// // Custom note hash computation...\n/// fn compute_note_hash(...) -> Field { ... }\n///\n/// // Custom nullifier computation...\n/// fn compute_nullifier(...) -> Field { ... }\n/// fn compute_nullifier_unconstrained(...) -> Field { ... }\n/// }\n/// ```\npub comptime fn custom_note(s: TypeDefinition) -> Quoted {\n assert_has_packable(s);\n\n // We register the note in the global `NOTES` BoundedVec because we need that information inside the #[aztec] macro\n // to generate note processing functionality.\n NOTES.push(s.as_type());\n\n let note_type_id = get_next_note_type_id();\n let note_properties = generate_note_properties(s);\n let note_type_impl = generate_note_type_impl(s, note_type_id);\n\n quote {\n $note_properties\n $note_type_impl\n }\n}\n\n/// Asserts that the given note implements the `Packable` trait.\n///\n/// We require that notes have the `Packable` trait implemented because it is used when emitting a note in a log or as\n/// an offchain message.\ncomptime fn assert_has_packable(note: TypeDefinition) {\n let packable_constraint = quote { crate::protocol::traits::Packable }.as_trait_constraint();\n let note_name = note.name();\n\n assert(\n note.as_type().implements(packable_constraint),\n f\"{note_name} does not implement Packable trait. Either implement it manually or place #[derive(Packable)] on the note struct before #[note] macro invocation.\",\n );\n}\n"
|
|
6666
|
+
"source": "use crate::note::note_getter_options::PropertySelector;\nuse std::{collections::bounded_vec::BoundedVec, meta::type_of};\n\n/// Maximum number of note types within 1 contract.\ncomptime global MAX_NOTE_TYPES: u32 = 128;\n\n/// A BoundedVec containing all the note types within this contract.\npub comptime mut global NOTES: BoundedVec<Type, MAX_NOTE_TYPES> = BoundedVec::new();\n\ncomptime mut global NOTE_TYPE_ID_COUNTER: u32 = 0;\n\n/// The note type id is set by enumerating the note types.\ncomptime fn get_next_note_type_id() -> Field {\n // We assert that the note type id fits within 7 bits\n assert(\n NOTE_TYPE_ID_COUNTER < MAX_NOTE_TYPES,\n f\"A contract can contain at most {MAX_NOTE_TYPES} different note types\",\n );\n\n let note_type_id = NOTE_TYPE_ID_COUNTER as Field;\n NOTE_TYPE_ID_COUNTER += 1;\n note_type_id\n}\n\n/// Generates default `NoteType` implementation for a given note struct `s` and returns it as a quote.\n///\n/// ```noir\n/// impl NoteType for NoteStruct {\n/// fn get_id() -> Field {\n/// ...\n/// }\n/// }\n/// ```\ncomptime fn generate_note_type_impl(s: TypeDefinition, note_type_id: Field) -> Quoted {\n let name = s.name();\n let typ = s.as_type();\n let note_type_name: str<_> = f\"{name}\".as_quoted_str!();\n let max_note_packed_len = crate::messages::logs::note::MAX_NOTE_PACKED_LEN;\n\n quote {\n impl aztec::note::note_interface::NoteType for $name {\n fn get_id() -> Field {\n // This static assertion ensures the note's packed length doesn't exceed the maximum allowed size.\n // While this check would ideally live in the Packable trait implementation, we place it here since\n // this function is always generated by our macros and the Packable trait implementation is not.\n //\n // Note: We set the note type name and max packed length as local variables because injecting them\n // directly into the error message doesn't work.\n let note_type_name = $note_type_name;\n let max_note_packed_len: u32 = $max_note_packed_len; // Casting to u32 to avoid the value to be printed in hex.\n let note_packed_len = <$typ as Packable>::N;\n std::static_assert(note_packed_len <= $max_note_packed_len, f\"{note_type_name} has a packed length of {note_packed_len} fields, which exceeds the maximum allowed length of {max_note_packed_len} fields\");\n\n $note_type_id\n }\n }\n }\n}\n\n/// Generates default `NoteHash` trait implementation for a given note struct `s` and returns it as a quote.\n///\n/// # Generated Implementation\n///\n/// ```noir\n/// impl NoteHash for NoteStruct {\n/// fn compute_note_hash(self, owner: AztecAddress, storage_slot: Field, randomness: Field) -> Field { ... }\n///\n/// fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullification: Field, owner:\n/// AztecAddress) -> Field { ... }\n///\n/// unconstrained fn compute_nullifier_unconstrained(note_hash_for_nullification: Field, owner: AztecAddress) ->\n/// Field { ... }\n/// }\n/// ```\ncomptime fn generate_note_hash_trait_impl(s: TypeDefinition) -> Quoted {\n let name = s.name();\n\n quote {\n impl aztec::note::note_interface::NoteHash for $name {\n fn compute_note_hash(self, owner: aztec::protocol::address::AztecAddress, storage_slot: Field, randomness: Field) -> Field {\n let inputs = aztec::protocol::traits::Packable::pack(self).concat( [aztec::protocol::traits::ToField::to_field(owner), storage_slot, randomness]);\n aztec::protocol::hash::poseidon2_hash_with_separator(inputs, aztec::protocol::constants::DOM_SEP__NOTE_HASH)\n }\n\n fn compute_nullifier(\n self,\n context: &mut aztec::context::PrivateContext,\n owner: aztec::protocol::address::AztecAddress,\n note_hash_for_nullification: Field,\n ) -> Field {\n let owner_npk_m = aztec::keys::getters::get_public_keys(owner).npk_m;\n // We invoke hash as a static trait function rather than calling owner_npk_m.hash() directly\n // in the quote to avoid \"trait not in scope\" compiler warnings.\n let owner_npk_m_hash = aztec::protocol::traits::Hash::hash(owner_npk_m);\n let secret = context.request_nhk_app(owner_npk_m_hash);\n aztec::protocol::hash::poseidon2_hash_with_separator(\n [note_hash_for_nullification, secret],\n aztec::protocol::constants::DOM_SEP__NOTE_NULLIFIER as Field,\n )\n }\n\n unconstrained fn compute_nullifier_unconstrained(\n self,\n owner: aztec::protocol::address::AztecAddress,\n note_hash_for_nullification: Field,\n ) -> Option<Field> {\n // Note: In the current PXE implementation, if public keys are available then the nullifier\n // hiding key (nhk) is also available, so we don't need to handle get_nhk_app potentially\n // failing. The Option is only needed for the try_get_public_keys call.\n aztec::keys::getters::try_get_public_keys(owner).map(|public_keys| {\n let owner_npk_m = public_keys.npk_m;\n // We invoke hash as a static trait function rather than calling owner_npk_m.hash() directly\n // in the quote to avoid \"trait not in scope\" compiler warnings.\n let owner_npk_m_hash = aztec::protocol::traits::Hash::hash(owner_npk_m);\n let secret = aztec::keys::getters::get_nhk_app(owner_npk_m_hash);\n aztec::protocol::hash::poseidon2_hash_with_separator(\n [note_hash_for_nullification, secret],\n aztec::protocol::constants::DOM_SEP__NOTE_NULLIFIER as Field,\n )\n })\n }\n }\n }\n}\n\n/// Generates note properties struct for a given note struct `s`.\n///\n/// Example:\n/// ```\n/// struct TokenNoteProperties {\n/// amount: aztec::note::note_getter_options::PropertySelector,\n/// npk_m_hash: aztec::note::note_getter_options::PropertySelector\n/// randomness: aztec::note::note_getter_options::PropertySelector\n/// }\n///\n/// impl aztec::note::note_interface::NoteProperties<TokenNoteProperties> for TokenNote {\n/// fn properties() -> TokenNoteProperties {\n/// Self {\n/// amount: aztec::note::note_getter_options::PropertySelector { index: 0, offset: 0, length: 32 },\n/// npk_m_hash: aztec::note::note_getter_options::PropertySelector { index: 1, offset: 0, length: 32 },\n/// randomness: aztec::note::note_getter_options::PropertySelector { index: 2, offset: 0, length: 32 }\n/// }\n/// }\n/// }\n/// ```\ncomptime fn generate_note_properties(s: TypeDefinition) -> Quoted {\n let name = s.name();\n\n let struct_name = f\"{name}Properties\".quoted_contents();\n\n let property_selector_type = type_of(PropertySelector { index: 0, offset: 0, length: 0 });\n\n let note_fields = s.fields_as_written();\n\n let properties_types = note_fields.map(|(name, _, _)| quote { pub $name: $property_selector_type }).join(quote {,});\n\n // TODO #8694: Properly handle non-field types https://github.com/AztecProtocol/aztec-packages/issues/8694\n let mut properties_list = @[];\n for i in 0..note_fields.len() {\n let (name, _, _) = note_fields[i];\n let i = i as u8;\n properties_list = properties_list.push_back(\n quote { $name: aztec::note::note_getter_options::PropertySelector { index: $i, offset: 0, length: 32 } },\n );\n }\n\n let properties = properties_list.join(quote {,});\n\n quote {\n pub struct $struct_name {\n $properties_types\n }\n\n impl aztec::note::note_interface::NoteProperties<$struct_name> for $name {\n fn properties() -> $struct_name {\n $struct_name {\n $properties\n }\n }\n }\n }\n}\n\n/// Generates the core note functionality for a struct:\n///\n/// - NoteTypeProperties: Defines the structure and properties of note fields\n/// - NoteType trait implementation: Provides the note type ID\n/// - NoteHash trait implementation: Handles note hash and nullifier computation\n///\n/// # Requirements\n///\n/// The note struct must:\n/// - Implement the `Packable` trait\n/// - Not exceed `MAX_NOTE_PACKED_LEN` when packed\n///\n/// # Registration\n///\n/// Registers the note in the global `NOTES` BoundedVec to enable note processing functionality.\n///\n/// # Generated Code\n///\n/// For detailed documentation on the generated implementations, see:\n/// - `generate_note_properties()`\n/// - `generate_note_type_impl()`\n/// - `generate_note_hash_trait_impl()`\npub comptime fn note(s: TypeDefinition) -> Quoted {\n assert_has_packable(s);\n\n // We register the note in the global `NOTES` BoundedVec because we need that information inside the #[aztec] macro\n // to generate note processing functionality.\n NOTES.push(s.as_type());\n\n let note_properties = generate_note_properties(s);\n let note_type_id = get_next_note_type_id();\n let note_type_impl = generate_note_type_impl(s, note_type_id);\n let note_hash_impl = generate_note_hash_trait_impl(s);\n\n quote {\n $note_properties\n $note_type_impl\n $note_hash_impl\n }\n}\n\n/// Generates code for a custom note implementation that requires specialized note hash or nullifier computation.\n///\n/// # Generated Code\n/// - NoteTypeProperties: Defines the structure and properties of note fields\n/// - NoteType trait implementation: Provides the note type ID\n///\n/// # Requirements\n///\n/// The note struct must:\n/// - Implement the `Packable` trait\n/// - Not exceed `MAX_NOTE_PACKED_LEN` when packed\n///\n/// # Registration\n///\n/// Registers the note in the global `NOTES` BoundedVec to enable note processing functionality.\n///\n/// # Use Cases\n///\n/// Use this macro when implementing a note that needs custom:\n/// - Note hash computation logic\n/// - Nullifier computation logic\n///\n/// The macro omits generating default NoteHash trait implementation, allowing you to provide your own.\n///\n/// # Example\n/// ```\n/// #[custom_note]\n/// struct CustomNote {\n/// value: Field,\n/// metadata: Field\n/// }\n///\n/// impl NoteHash for CustomNote {\n/// // Custom note hash computation...\n/// fn compute_note_hash(...) -> Field { ... }\n///\n/// // Custom nullifier computation...\n/// fn compute_nullifier(...) -> Field { ... }\n/// fn compute_nullifier_unconstrained(...) -> Field { ... }\n/// }\n/// ```\npub comptime fn custom_note(s: TypeDefinition) -> Quoted {\n assert_has_packable(s);\n\n // We register the note in the global `NOTES` BoundedVec because we need that information inside the #[aztec] macro\n // to generate note processing functionality.\n NOTES.push(s.as_type());\n\n let note_type_id = get_next_note_type_id();\n let note_properties = generate_note_properties(s);\n let note_type_impl = generate_note_type_impl(s, note_type_id);\n\n quote {\n $note_properties\n $note_type_impl\n }\n}\n\n/// Asserts that the given note implements the `Packable` trait.\n///\n/// We require that notes have the `Packable` trait implemented because it is used when emitting a note in a log or as\n/// an offchain message.\ncomptime fn assert_has_packable(note: TypeDefinition) {\n let packable_constraint = quote { crate::protocol::traits::Packable }.as_trait_constraint();\n let note_name = note.name();\n\n assert(\n note.as_type().implements(packable_constraint),\n f\"{note_name} does not implement Packable trait. Either implement it manually or place #[derive(Packable)] on the note struct before #[note] macro invocation.\",\n );\n}\n"
|
|
6647
6667
|
},
|
|
6648
6668
|
"123": {
|
|
6649
6669
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/discovery/mod.nr",
|
|
6650
|
-
"source": "use crate::protocol::{address::AztecAddress, debug_log::{debug_log, debug_log_format}};\n\npub mod nonce_discovery;\npub mod partial_notes;\npub mod private_events;\npub mod private_notes;\npub mod process_message;\n\nuse crate::{\n messages::{\n discovery::process_message::process_message_ciphertext,\n logs::note::MAX_NOTE_PACKED_LEN,\n processing::{\n get_private_logs, pending_tagged_log::PendingTaggedLog, validate_and_store_enqueued_notes_and_events,\n },\n },\n utils::array,\n};\n\npub struct NoteHashAndNullifier {\n /// The result of NoteHash::compute_note_hash\n pub note_hash: Field,\n /// The result of NoteHash::compute_nullifier_unconstrained (since all of message discovery is unconstrained)
|
|
6670
|
+
"source": "use crate::protocol::{address::AztecAddress, debug_log::{debug_log, debug_log_format}};\n\npub mod nonce_discovery;\npub mod partial_notes;\npub mod private_events;\npub mod private_notes;\npub mod process_message;\n\nuse crate::{\n messages::{\n discovery::process_message::process_message_ciphertext,\n logs::note::MAX_NOTE_PACKED_LEN,\n processing::{\n get_private_logs, pending_tagged_log::PendingTaggedLog, validate_and_store_enqueued_notes_and_events,\n },\n },\n utils::array,\n};\n\npub struct NoteHashAndNullifier {\n /// The result of NoteHash::compute_note_hash\n pub note_hash: Field,\n /// The result of NoteHash::compute_nullifier_unconstrained (since all of message discovery is unconstrained).\n /// This is `None` if the nullifier cannot be computed (e.g., because the nullifier hiding key is not available).\n pub inner_nullifier: Option<Field>,\n}\n\n/// A function which takes a note's packed content, address of the emitting contract, note nonce, storage slot and note\n/// type ID and attempts to compute its note hash (not hashed by note nonce nor siloed by address) and inner nullifier\n/// (not siloed by address).\n///\n/// This function must be user-provided as its implementation requires knowledge of how note type IDs are allocated in\n/// a contract. The `#[aztec]` macro automatically creates such a contract library method called\n/// `_compute_note_hash_and_nullifier`, which looks something like this:\n///\n/// ```\n/// |packed_note, owner, storage_slot, note_type_id, contract_address, randomness, note_nonce| {\n/// if note_type_id == MyNoteType::get_id() {\n/// assert(packed_note.len() == MY_NOTE_TYPE_SERIALIZATION_LENGTH);\n///\n/// let note = MyNoteType::unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n///\n/// let note_hash = note.compute_note_hash(owner, storage_slot, randomness);\n/// let note_hash_for_nullification = aztec::note::utils::compute_note_hash_for_nullification(\n/// HintedNote{ note, contract_address, metadata: SettledNoteMetadata::new(note_nonce).into() },\n/// storage_slot\n/// );\n///\n/// let inner_nullifier = note.compute_nullifier_unconstrained(owner, note_hash_for_nullification);\n///\n/// Option::some(\n/// aztec::messages::discovery::NoteHashAndNullifier {\n/// note_hash, inner_nullifier\n/// }\n/// )\n/// } else if note_type_id == MyOtherNoteType::get_id() {\n/// ... // Similar to above but calling MyOtherNoteType::unpack_content\n/// } else {\n/// Option::none() // Unknown note type ID\n/// };\n/// }\n/// ```\npub type ComputeNoteHashAndNullifier<Env> = unconstrained fn[Env](/* packed_note */BoundedVec<Field, MAX_NOTE_PACKED_LEN>, /*\n owner */ AztecAddress, /* storage_slot */ Field, /* note_type_id */ Field, /* contract_address */ AztecAddress, /*\nrandomness */ Field, /* note nonce */ Field) -> Option<NoteHashAndNullifier>;\n\n/// Performs the state synchronization process, in which private logs are downloaded and inspected to find new private\n/// notes, partial notes and events, etc., and pending partial notes are processed to search for their completion logs.\n/// This is the mechanism via which a contract updates its knowledge of its private state.\n///\n/// Note that the state is synchronized up to the latest block synchronized by PXE (referred to as \"anchor block\").\n/// That should be close to the chain tip as block synchronization is performed before contract function simulation is\n/// done.\n///\n/// Receives the address of the contract on which discovery is performed along with its\n/// `compute_note_hash_and_nullifier` function.\npub unconstrained fn do_sync_state<Env>(\n contract_address: AztecAddress,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n) {\n debug_log(\"Performing state synchronization\");\n\n // First we process all private logs, which can contain different kinds of messages e.g. private notes, partial\n // notes, private events, etc.\n let mut logs = get_private_logs(contract_address);\n logs.for_each(|i, pending_tagged_log: PendingTaggedLog| {\n debug_log_format(\n \"Processing log with tag {0}\",\n [pending_tagged_log.log.get(0)],\n );\n\n // We remove the tag from the pending tagged log and process the message ciphertext contained in it.\n let message_ciphertext = array::subbvec(pending_tagged_log.log, 1);\n\n process_message_ciphertext(\n contract_address,\n compute_note_hash_and_nullifier,\n message_ciphertext,\n pending_tagged_log.context,\n );\n logs.remove(i);\n });\n\n // Then we process all pending partial notes, regardless of whether they were found in the current or previous\n // executions.\n partial_notes::fetch_and_process_partial_note_completion_logs(contract_address, compute_note_hash_and_nullifier);\n\n // Finally we validate all notes and events that were found as part of the previous processes, resulting in them\n // being added to PXE's database and retrievable via oracles (get_notes) and our TS API (PXE::getPrivateEvents).\n validate_and_store_enqueued_notes_and_events(contract_address);\n}\n"
|
|
6651
6671
|
},
|
|
6652
6672
|
"124": {
|
|
6653
6673
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/discovery/nonce_discovery.nr",
|
|
6654
|
-
"source": "use crate::messages::{discovery::ComputeNoteHashAndNullifier, logs::note::MAX_NOTE_PACKED_LEN};\n\nuse crate::protocol::{\n address::AztecAddress,\n constants::MAX_NOTE_HASHES_PER_TX,\n debug_log::debug_log_format,\n hash::{compute_note_hash_nonce, compute_siloed_note_hash, compute_unique_note_hash},\n traits::ToField,\n};\n\n/// A struct with the discovered information of a complete note, required for delivery to PXE. Note that this is *not*\n/// the complete note information, since it does not include content, storage slot, etc.\npub struct DiscoveredNoteInfo {\n pub note_nonce: Field,\n pub note_hash: Field,\n pub inner_nullifier: Field,\n}\n\n/// Searches for note nonces that will result in a note that was emitted in a transaction. While rare, it is possible\n/// for multiple notes to have the exact same packed content and storage slot but different nonces, resulting in\n/// different unique note hashes. Because of this this function returns a *vector* of discovered notes, though in most\n/// cases it will contain a single element.\n///\n/// Due to how nonces are computed, this function requires knowledge of the transaction in which the note was created,\n/// more specifically the list of all unique note hashes in it plus the value of its first nullifier.\npub unconstrained fn attempt_note_nonce_discovery<Env>(\n unique_note_hashes_in_tx: BoundedVec<Field, MAX_NOTE_HASHES_PER_TX>,\n first_nullifier_in_tx: Field,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n contract_address: AztecAddress,\n owner: AztecAddress,\n storage_slot: Field,\n randomness: Field,\n note_type_id: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n) -> BoundedVec<DiscoveredNoteInfo, MAX_NOTE_HASHES_PER_TX> {\n let discovered_notes = &mut BoundedVec::new();\n\n debug_log_format(\n \"Attempting nonce discovery on {0} potential notes on contract {1} for storage slot {2}\",\n [unique_note_hashes_in_tx.len() as Field, contract_address.to_field(), storage_slot],\n );\n\n // We need to find nonces (typically just one) that result in a note hash that, once siloed into a unique note\n // hash, is one of the note hashes created by the transaction.\n unique_note_hashes_in_tx.for_eachi(|i, expected_unique_note_hash| {\n // Nonces are computed by hashing the first nullifier in the transaction with the index of the note in the new\n // note hashes array. We therefore know for each note in every transaction what its nonce is.\n let candidate_nonce = compute_note_hash_nonce(first_nullifier_in_tx, i);\n\n // Given note nonce, note content and metadata, we can compute the note hash and silo it to check if it matches\n // the note hash at the array index we're currently processing. TODO(#11157): handle failed\n // note_hash_and_nullifier computation\n let hashes = compute_note_hash_and_nullifier(\n packed_note,\n owner,\n storage_slot,\n note_type_id,\n contract_address,\n randomness,\n candidate_nonce,\n )\n .expect(f\"Failed to compute a note hash for note type {note_type_id}\");\n\n let siloed_note_hash = compute_siloed_note_hash(contract_address, hashes.note_hash);\n let unique_note_hash = compute_unique_note_hash(candidate_nonce, siloed_note_hash);\n\n if unique_note_hash == expected_unique_note_hash {\n // Note that while we did check that the note hash is the preimage of the expected unique note hash, we\n // perform no validations on the nullifier - we fundamentally cannot, since only the application knows how\n // to compute nullifiers. We simply trust it to have provided the correct one: if it hasn't, then PXE may\n // fail to realize that a given note has been nullified already, and calls to the application could result\n // in invalid transactions (with duplicate nullifiers). This is not a concern because an application\n // already has more direct means of making a call to it fail the transaction.\n discovered_notes.push(\n DiscoveredNoteInfo {\n note_nonce: candidate_nonce,\n note_hash: hashes.note_hash,\n inner_nullifier: hashes.inner_nullifier,\n },\n );\n\n // We don't exit the loop - it is possible (though rare) for the exact same note content to be present\n // multiple times in the same transaction with different nonces. This typically doesn't happen due to notes\n // containing random values in order to hide their contents.\n }\n });\n\n debug_log_format(\n \"Found valid nonces for a total of {0} notes\",\n [discovered_notes.len() as Field],\n );\n\n *discovered_notes\n}\n\nmod test {\n use crate::{\n messages::{discovery::NoteHashAndNullifier, logs::note::MAX_NOTE_PACKED_LEN},\n note::{\n HintedNote,\n note_interface::{NoteHash, NoteType},\n note_metadata::SettledNoteMetadata,\n utils::compute_note_hash_for_nullification,\n },\n oracle::random::random,\n test::mocks::mock_note::MockNote,\n utils::array,\n };\n\n use crate::protocol::{\n address::AztecAddress,\n hash::{compute_note_hash_nonce, compute_siloed_note_hash, compute_unique_note_hash},\n traits::{FromField, Packable},\n };\n\n use super::attempt_note_nonce_discovery;\n\n // This implementation could be simpler, but this serves as a nice example of the expected flow in a real\n // implementation, and as a sanity check that the interface is sufficient.\n unconstrained fn compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n owner: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: AztecAddress,\n randomness: Field,\n note_nonce: Field,\n ) -> Option<NoteHashAndNullifier> {\n if note_type_id == MockNote::get_id() {\n let note = MockNote::unpack(array::subarray(packed_note.storage(), 0));\n let note_hash = note.compute_note_hash(owner, storage_slot, randomness);\n\n let note_hash_for_nullification = compute_note_hash_for_nullification(\n HintedNote {\n note,\n contract_address,\n owner,\n randomness,\n storage_slot,\n metadata: SettledNoteMetadata::new(note_nonce).into(),\n },\n );\n\n let inner_nullifier = note.compute_nullifier_unconstrained(owner, note_hash_for_nullification);\n\n Option::some(NoteHashAndNullifier { note_hash, inner_nullifier })\n } else {\n Option::none()\n }\n }\n\n global VALUE: Field = 7;\n global FIRST_NULLIFIER_IN_TX: Field = 47;\n global CONTRACT_ADDRESS: AztecAddress = AztecAddress::from_field(13);\n global OWNER: AztecAddress = AztecAddress::from_field(14);\n global STORAGE_SLOT: Field = 99;\n global RANDOMNESS: Field = 99;\n\n #[test]\n unconstrained fn no_note_hashes() {\n let unique_note_hashes_in_tx = BoundedVec::new();\n let packed_note = BoundedVec::new();\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n packed_note,\n );\n\n assert_eq(discovered_notes.len(), 0);\n }\n\n #[test(should_fail_with = \"Failed to compute a note hash\")]\n unconstrained fn failed_hash_computation() {\n let unique_note_hashes_in_tx = BoundedVec::from_array([random()]);\n let packed_note = BoundedVec::new();\n let note_type_id = 0; // This note type id is unknown to compute_note_hash_and_nullifier\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n note_type_id,\n packed_note,\n );\n\n assert_eq(discovered_notes.len(), 0);\n }\n\n struct NoteAndData {\n note: MockNote,\n note_nonce: Field,\n note_hash: Field,\n unique_note_hash: Field,\n inner_nullifier: Field,\n }\n\n unconstrained fn construct_note(value: Field, note_index_in_tx: u32) -> NoteAndData {\n let note_nonce = compute_note_hash_nonce(FIRST_NULLIFIER_IN_TX, note_index_in_tx);\n\n let hinted_note = MockNote::new(value)\n .contract_address(CONTRACT_ADDRESS)\n .owner(OWNER)\n .randomness(RANDOMNESS)\n .storage_slot(STORAGE_SLOT)\n .note_metadata(SettledNoteMetadata::new(note_nonce).into())\n .build_hinted_note();\n let note = hinted_note.note;\n\n let note_hash = note.compute_note_hash(OWNER, STORAGE_SLOT, RANDOMNESS);\n let unique_note_hash = compute_unique_note_hash(\n note_nonce,\n compute_siloed_note_hash(CONTRACT_ADDRESS, note_hash),\n );\n let inner_nullifier =\n note.compute_nullifier_unconstrained(OWNER, compute_note_hash_for_nullification(hinted_note));\n\n NoteAndData { note, note_nonce, note_hash, unique_note_hash, inner_nullifier }\n }\n\n #[test]\n unconstrained fn single_note() {\n let note_index_in_tx = 2;\n let note_and_data = construct_note(VALUE, note_index_in_tx);\n\n let mut unique_note_hashes_in_tx = BoundedVec::from_array([\n random(), random(), random(), random(), random(), random(), random(),\n ]);\n unique_note_hashes_in_tx.set(note_index_in_tx, note_and_data.unique_note_hash);\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n BoundedVec::from_array(note_and_data.note.pack()),\n );\n\n assert_eq(discovered_notes.len(), 1);\n let discovered_note = discovered_notes.get(0);\n\n assert_eq(discovered_note.note_nonce, note_and_data.note_nonce);\n assert_eq(discovered_note.note_hash, note_and_data.note_hash);\n assert_eq(discovered_note.inner_nullifier, note_and_data.inner_nullifier);\n }\n\n #[test]\n unconstrained fn multiple_notes_same_preimage() {\n let first_note_index_in_tx = 3;\n let first_note_and_data = construct_note(VALUE, first_note_index_in_tx);\n\n let second_note_index_in_tx = 5;\n let second_note_and_data = construct_note(VALUE, second_note_index_in_tx);\n\n // Both notes have the same preimage (and therefore packed representation), so both should be found in the same\n // call.\n assert_eq(first_note_and_data.note, second_note_and_data.note);\n let packed_note = first_note_and_data.note.pack();\n\n let mut unique_note_hashes_in_tx = BoundedVec::from_array([\n random(), random(), random(), random(), random(), random(), random(),\n ]);\n unique_note_hashes_in_tx.set(first_note_index_in_tx, first_note_and_data.unique_note_hash);\n unique_note_hashes_in_tx.set(second_note_index_in_tx, second_note_and_data.unique_note_hash);\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n BoundedVec::from_array(packed_note),\n );\n\n assert_eq(discovered_notes.len(), 2);\n\n assert(discovered_notes.any(|discovered_note| {\n (discovered_note.note_nonce == first_note_and_data.note_nonce)\n & (discovered_note.note_hash == first_note_and_data.note_hash)\n & (discovered_note.inner_nullifier == first_note_and_data.inner_nullifier)\n }));\n\n assert(discovered_notes.any(|discovered_note| {\n (discovered_note.note_nonce == second_note_and_data.note_nonce)\n & (discovered_note.note_hash == second_note_and_data.note_hash)\n & (discovered_note.inner_nullifier == second_note_and_data.inner_nullifier)\n }));\n }\n}\n"
|
|
6674
|
+
"source": "use crate::messages::{discovery::ComputeNoteHashAndNullifier, logs::note::MAX_NOTE_PACKED_LEN};\n\nuse crate::protocol::{\n address::AztecAddress,\n constants::MAX_NOTE_HASHES_PER_TX,\n debug_log::debug_log_format,\n hash::{compute_note_hash_nonce, compute_siloed_note_hash, compute_unique_note_hash},\n traits::ToField,\n};\n\n/// A struct with the discovered information of a complete note, required for delivery to PXE. Note that this is *not*\n/// the complete note information, since it does not include content, storage slot, etc.\npub struct DiscoveredNoteInfo {\n pub note_nonce: Field,\n pub note_hash: Field,\n pub inner_nullifier: Field,\n}\n\n/// Searches for note nonces that will result in a note that was emitted in a transaction. While rare, it is possible\n/// for multiple notes to have the exact same packed content and storage slot but different nonces, resulting in\n/// different unique note hashes. Because of this this function returns a *vector* of discovered notes, though in most\n/// cases it will contain a single element.\n///\n/// Due to how nonces are computed, this function requires knowledge of the transaction in which the note was created,\n/// more specifically the list of all unique note hashes in it plus the value of its first nullifier.\npub unconstrained fn attempt_note_nonce_discovery<Env>(\n unique_note_hashes_in_tx: BoundedVec<Field, MAX_NOTE_HASHES_PER_TX>,\n first_nullifier_in_tx: Field,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n contract_address: AztecAddress,\n owner: AztecAddress,\n storage_slot: Field,\n randomness: Field,\n note_type_id: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n) -> BoundedVec<DiscoveredNoteInfo, MAX_NOTE_HASHES_PER_TX> {\n let discovered_notes = &mut BoundedVec::new();\n\n debug_log_format(\n \"Attempting nonce discovery on {0} potential notes on contract {1} for storage slot {2}\",\n [unique_note_hashes_in_tx.len() as Field, contract_address.to_field(), storage_slot],\n );\n\n // We need to find nonces (typically just one) that result in a note hash that, once siloed into a unique note\n // hash, is one of the note hashes created by the transaction.\n unique_note_hashes_in_tx.for_eachi(|i, expected_unique_note_hash| {\n // Nonces are computed by hashing the first nullifier in the transaction with the index of the note in the new\n // note hashes array. We therefore know for each note in every transaction what its nonce is.\n let candidate_nonce = compute_note_hash_nonce(first_nullifier_in_tx, i);\n\n // Given note nonce, note content and metadata, we can compute the note hash and silo it to check if it matches\n // the note hash at the array index we're currently processing. TODO(#11157): handle failed\n // note_hash_and_nullifier computation\n let hashes = compute_note_hash_and_nullifier(\n packed_note,\n owner,\n storage_slot,\n note_type_id,\n contract_address,\n randomness,\n candidate_nonce,\n )\n .expect(f\"Failed to compute a note hash for note type {note_type_id}\");\n\n let siloed_note_hash = compute_siloed_note_hash(contract_address, hashes.note_hash);\n let unique_note_hash = compute_unique_note_hash(candidate_nonce, siloed_note_hash);\n\n if unique_note_hash == expected_unique_note_hash {\n // Note that while we did check that the note hash is the preimage of the expected unique note hash, we\n // perform no validations on the nullifier - we fundamentally cannot, since only the application knows how\n // to compute nullifiers. We simply trust it to have provided the correct one: if it hasn't, then PXE may\n // fail to realize that a given note has been nullified already, and calls to the application could result\n // in invalid transactions (with duplicate nullifiers). This is not a concern because an application\n // already has more direct means of making a call to it fail the transaction.\n discovered_notes.push(\n DiscoveredNoteInfo {\n note_nonce: candidate_nonce,\n note_hash: hashes.note_hash,\n // TODO: The None case will be handled in a followup PR.\n // https://linear.app/aztec-labs/issue/F-265/store-external-notes\n inner_nullifier: hashes.inner_nullifier.expect(\n f\"Failed to compute nullifier for note type {note_type_id}\",\n ),\n },\n );\n\n // We don't exit the loop - it is possible (though rare) for the exact same note content to be present\n // multiple times in the same transaction with different nonces. This typically doesn't happen due to notes\n // containing random values in order to hide their contents.\n }\n });\n\n debug_log_format(\n \"Found valid nonces for a total of {0} notes\",\n [discovered_notes.len() as Field],\n );\n\n *discovered_notes\n}\n\nmod test {\n use crate::{\n messages::{discovery::NoteHashAndNullifier, logs::note::MAX_NOTE_PACKED_LEN},\n note::{\n HintedNote,\n note_interface::{NoteHash, NoteType},\n note_metadata::SettledNoteMetadata,\n utils::compute_note_hash_for_nullification,\n },\n oracle::random::random,\n test::mocks::mock_note::MockNote,\n utils::array,\n };\n\n use crate::protocol::{\n address::AztecAddress,\n hash::{compute_note_hash_nonce, compute_siloed_note_hash, compute_unique_note_hash},\n traits::{FromField, Packable},\n };\n\n use super::attempt_note_nonce_discovery;\n\n // This implementation could be simpler, but this serves as a nice example of the expected flow in a real\n // implementation, and as a sanity check that the interface is sufficient.\n unconstrained fn compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n owner: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: AztecAddress,\n randomness: Field,\n note_nonce: Field,\n ) -> Option<NoteHashAndNullifier> {\n if note_type_id == MockNote::get_id() {\n let note = MockNote::unpack(array::subarray(packed_note.storage(), 0));\n let note_hash = note.compute_note_hash(owner, storage_slot, randomness);\n\n let note_hash_for_nullification = compute_note_hash_for_nullification(\n HintedNote {\n note,\n contract_address,\n owner,\n randomness,\n storage_slot,\n metadata: SettledNoteMetadata::new(note_nonce).into(),\n },\n );\n\n let inner_nullifier = note.compute_nullifier_unconstrained(owner, note_hash_for_nullification);\n\n Option::some(NoteHashAndNullifier { note_hash, inner_nullifier })\n } else {\n Option::none()\n }\n }\n\n global VALUE: Field = 7;\n global FIRST_NULLIFIER_IN_TX: Field = 47;\n global CONTRACT_ADDRESS: AztecAddress = AztecAddress::from_field(13);\n global OWNER: AztecAddress = AztecAddress::from_field(14);\n global STORAGE_SLOT: Field = 99;\n global RANDOMNESS: Field = 99;\n\n #[test]\n unconstrained fn no_note_hashes() {\n let unique_note_hashes_in_tx = BoundedVec::new();\n let packed_note = BoundedVec::new();\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n packed_note,\n );\n\n assert_eq(discovered_notes.len(), 0);\n }\n\n #[test(should_fail_with = \"Failed to compute a note hash\")]\n unconstrained fn failed_hash_computation() {\n let unique_note_hashes_in_tx = BoundedVec::from_array([random()]);\n let packed_note = BoundedVec::new();\n let note_type_id = 0; // This note type id is unknown to compute_note_hash_and_nullifier\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n note_type_id,\n packed_note,\n );\n\n assert_eq(discovered_notes.len(), 0);\n }\n\n struct NoteAndData {\n note: MockNote,\n note_nonce: Field,\n note_hash: Field,\n unique_note_hash: Field,\n inner_nullifier: Field,\n }\n\n unconstrained fn construct_note(value: Field, note_index_in_tx: u32) -> NoteAndData {\n let note_nonce = compute_note_hash_nonce(FIRST_NULLIFIER_IN_TX, note_index_in_tx);\n\n let hinted_note = MockNote::new(value)\n .contract_address(CONTRACT_ADDRESS)\n .owner(OWNER)\n .randomness(RANDOMNESS)\n .storage_slot(STORAGE_SLOT)\n .note_metadata(SettledNoteMetadata::new(note_nonce).into())\n .build_hinted_note();\n let note = hinted_note.note;\n\n let note_hash = note.compute_note_hash(OWNER, STORAGE_SLOT, RANDOMNESS);\n let unique_note_hash = compute_unique_note_hash(\n note_nonce,\n compute_siloed_note_hash(CONTRACT_ADDRESS, note_hash),\n );\n let inner_nullifier = note\n .compute_nullifier_unconstrained(OWNER, compute_note_hash_for_nullification(hinted_note))\n .expect(f\"Could not compute nullifier for note owned by {OWNER}\");\n\n NoteAndData { note, note_nonce, note_hash, unique_note_hash, inner_nullifier }\n }\n\n #[test]\n unconstrained fn single_note() {\n let note_index_in_tx = 2;\n let note_and_data = construct_note(VALUE, note_index_in_tx);\n\n let mut unique_note_hashes_in_tx = BoundedVec::from_array([\n random(), random(), random(), random(), random(), random(), random(),\n ]);\n unique_note_hashes_in_tx.set(note_index_in_tx, note_and_data.unique_note_hash);\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n BoundedVec::from_array(note_and_data.note.pack()),\n );\n\n assert_eq(discovered_notes.len(), 1);\n let discovered_note = discovered_notes.get(0);\n\n assert_eq(discovered_note.note_nonce, note_and_data.note_nonce);\n assert_eq(discovered_note.note_hash, note_and_data.note_hash);\n assert_eq(discovered_note.inner_nullifier, note_and_data.inner_nullifier);\n }\n\n #[test]\n unconstrained fn multiple_notes_same_preimage() {\n let first_note_index_in_tx = 3;\n let first_note_and_data = construct_note(VALUE, first_note_index_in_tx);\n\n let second_note_index_in_tx = 5;\n let second_note_and_data = construct_note(VALUE, second_note_index_in_tx);\n\n // Both notes have the same preimage (and therefore packed representation), so both should be found in the same\n // call.\n assert_eq(first_note_and_data.note, second_note_and_data.note);\n let packed_note = first_note_and_data.note.pack();\n\n let mut unique_note_hashes_in_tx = BoundedVec::from_array([\n random(), random(), random(), random(), random(), random(), random(),\n ]);\n unique_note_hashes_in_tx.set(first_note_index_in_tx, first_note_and_data.unique_note_hash);\n unique_note_hashes_in_tx.set(second_note_index_in_tx, second_note_and_data.unique_note_hash);\n\n let discovered_notes = attempt_note_nonce_discovery(\n unique_note_hashes_in_tx,\n FIRST_NULLIFIER_IN_TX,\n compute_note_hash_and_nullifier,\n CONTRACT_ADDRESS,\n OWNER,\n STORAGE_SLOT,\n RANDOMNESS,\n MockNote::get_id(),\n BoundedVec::from_array(packed_note),\n );\n\n assert_eq(discovered_notes.len(), 2);\n\n assert(discovered_notes.any(|discovered_note| {\n (discovered_note.note_nonce == first_note_and_data.note_nonce)\n & (discovered_note.note_hash == first_note_and_data.note_hash)\n & (discovered_note.inner_nullifier == first_note_and_data.inner_nullifier)\n }));\n\n assert(discovered_notes.any(|discovered_note| {\n (discovered_note.note_nonce == second_note_and_data.note_nonce)\n & (discovered_note.note_hash == second_note_and_data.note_hash)\n & (discovered_note.inner_nullifier == second_note_and_data.inner_nullifier)\n }));\n }\n}\n"
|
|
6655
6675
|
},
|
|
6656
6676
|
"125": {
|
|
6657
6677
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/discovery/partial_notes.nr",
|
|
@@ -6699,7 +6719,7 @@
|
|
|
6699
6719
|
},
|
|
6700
6720
|
"148": {
|
|
6701
6721
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/messages/processing/mod.nr",
|
|
6702
|
-
"source": "pub(crate) mod event_validation_request;\n\nmod message_context;\npub use message_context::MessageContext;\n\npub(crate) mod note_validation_request;\npub(crate) mod log_retrieval_request;\npub(crate) mod log_retrieval_response;\npub(crate) mod pending_tagged_log;\n\nuse crate::{\n capsules::CapsuleArray,\n event::EventSelector,\n messages::{\n discovery::partial_notes::DeliveredPendingPartialNote,\n logs::{event::MAX_EVENT_SERIALIZED_LEN, note::MAX_NOTE_PACKED_LEN},\n processing::{\n log_retrieval_request::LogRetrievalRequest, log_retrieval_response::LogRetrievalResponse,\n note_validation_request::NoteValidationRequest, pending_tagged_log::PendingTaggedLog,\n },\n },\n oracle,\n};\nuse crate::protocol::{address::AztecAddress, hash::sha256_to_field};\nuse event_validation_request::EventValidationRequest;\n\n// Base slot for the pending tagged log array to which the fetch_tagged_logs oracle inserts found private logs.\nglobal PENDING_TAGGED_LOG_ARRAY_BASE_SLOT: Field =\n sha256_to_field(\"AZTEC_NR::PENDING_TAGGED_LOG_ARRAY_BASE_SLOT\".as_bytes());\n\nglobal NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\n/// Searches for private logs emitted by `contract_address` that might contain messages for one of the local accounts,\n/// and stores them in a `CapsuleArray` which is then returned.\npub(crate) unconstrained fn get_private_logs(contract_address: AztecAddress) -> CapsuleArray<PendingTaggedLog> {\n // We will eventually perform log discovery via tagging here, but for now we simply call the `fetchTaggedLogs`\n // oracle. This makes PXE synchronize tags, download logs and store the pending tagged logs in a capsule array.\n oracle::message_processing::fetch_tagged_logs(PENDING_TAGGED_LOG_ARRAY_BASE_SLOT);\n\n CapsuleArray::at(contract_address, PENDING_TAGGED_LOG_ARRAY_BASE_SLOT)\n}\n\n/// Enqueues a note for validation by PXE, so that it becomes aware of a note's existence allowing for later retrieval\n/// via `get_notes` oracle. The note will be scoped to `contract_address`, meaning other contracts will not be able to\n/// access it unless authorized.\n///\n/// In order for the note validation and insertion to occur, `validate_and_store_enqueued_notes_and_events` must be\n/// later called. For optimal performance, accumulate as many note validation requests as possible and then validate\n/// them all at the end (which results in PXE minimizing the number of network round-trips).\n///\n/// The `packed_note` is what `getNotes` will later return. PXE indexes notes by `storage_slot`, so this value is\n/// typically used to filter notes that correspond to different state variables. `note_hash` and `nullifier` are the\n/// inner hashes, i.e. the raw hashes returned by `NoteHash::compute_note_hash` and `NoteHash::compute_nullifier`. PXE\n/// will verify that the siloed unique note hash was inserted into the tree at `tx_hash`, and will store the nullifier\n/// to later check for nullification.\n///\n/// `owner` is the address used in note hash and nullifier computation, often requiring knowledge of their nullifier\n/// secret key.\n///\n/// `recipient` is the account to which the note message was delivered (i.e. the address the message was encrypted to).\n/// This determines which PXE account can see the note - other accounts will not be able to access it (e.g. other\n/// accounts will not be able to see one another's token balance notes, even in the same PXE) unless authorized. In\n/// most cases `recipient` equals `owner`, but they can differ in scenarios like delegated discovery.\npub(crate) unconstrained fn enqueue_note_for_validation(\n contract_address: AztecAddress,\n owner: AztecAddress,\n storage_slot: Field,\n randomness: Field,\n note_nonce: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n note_hash: Field,\n nullifier: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) {\n // We store requests in a `CapsuleArray`, which PXE will later read from and deserialize into its version of the\n // Noir `NoteValidationRequest`\n CapsuleArray::at(contract_address, NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT).push(\n NoteValidationRequest {\n contract_address,\n owner,\n storage_slot,\n randomness,\n note_nonce,\n packed_note,\n note_hash,\n nullifier,\n tx_hash,\n recipient,\n },\n )\n}\n\n/// Enqueues an event for validation by PXE, so that it can be efficiently validated and then inserted into the event\n/// store.\n///\n/// In order for the event validation and insertion to occur, `validate_and_store_enqueued_notes_and_events` must be\n/// later called. For optimal performance, accumulate as many event validation requests as possible and then validate\n/// them all at the end (which results in PXE minimizing the number of network round-trips).\npub(crate) unconstrained fn enqueue_event_for_validation(\n contract_address: AztecAddress,\n event_type_id: EventSelector,\n randomness: Field,\n serialized_event: BoundedVec<Field, MAX_EVENT_SERIALIZED_LEN>,\n event_commitment: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) {\n // We store requests in a `CapsuleArray`, which PXE will later read from and deserialize into its version of the\n // Noir `EventValidationRequest`\n CapsuleArray::at(contract_address, EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT).push(\n EventValidationRequest {\n contract_address,\n event_type_id,\n randomness,\n serialized_event,\n event_commitment,\n tx_hash,\n recipient,\n },\n )\n}\n\n/// Validates all note and event validation requests enqueued via `enqueue_note_for_validation` and\n/// `enqueue_event_for_validation`, inserting them into the note database and event store respectively, making them\n/// queryable via `get_notes` oracle and our TS API (PXE::getPrivateEvents).\n///\n/// This automatically clears both validation request queues, so no further work needs to be done by the caller.\npub
|
|
6722
|
+
"source": "pub(crate) mod event_validation_request;\n\nmod message_context;\npub use message_context::MessageContext;\n\npub(crate) mod note_validation_request;\npub(crate) mod log_retrieval_request;\npub(crate) mod log_retrieval_response;\npub(crate) mod pending_tagged_log;\n\nuse crate::{\n capsules::CapsuleArray,\n event::EventSelector,\n messages::{\n discovery::partial_notes::DeliveredPendingPartialNote,\n logs::{event::MAX_EVENT_SERIALIZED_LEN, note::MAX_NOTE_PACKED_LEN},\n processing::{\n log_retrieval_request::LogRetrievalRequest, log_retrieval_response::LogRetrievalResponse,\n note_validation_request::NoteValidationRequest, pending_tagged_log::PendingTaggedLog,\n },\n },\n oracle,\n};\nuse crate::protocol::{address::AztecAddress, hash::sha256_to_field};\nuse event_validation_request::EventValidationRequest;\n\n// Base slot for the pending tagged log array to which the fetch_tagged_logs oracle inserts found private logs.\nglobal PENDING_TAGGED_LOG_ARRAY_BASE_SLOT: Field =\n sha256_to_field(\"AZTEC_NR::PENDING_TAGGED_LOG_ARRAY_BASE_SLOT\".as_bytes());\n\nglobal NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\nglobal LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT: Field = sha256_to_field(\n \"AZTEC_NR::LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT\".as_bytes(),\n);\n\n/// Searches for private logs emitted by `contract_address` that might contain messages for one of the local accounts,\n/// and stores them in a `CapsuleArray` which is then returned.\npub(crate) unconstrained fn get_private_logs(contract_address: AztecAddress) -> CapsuleArray<PendingTaggedLog> {\n // We will eventually perform log discovery via tagging here, but for now we simply call the `fetchTaggedLogs`\n // oracle. This makes PXE synchronize tags, download logs and store the pending tagged logs in a capsule array.\n oracle::message_processing::fetch_tagged_logs(PENDING_TAGGED_LOG_ARRAY_BASE_SLOT);\n\n CapsuleArray::at(contract_address, PENDING_TAGGED_LOG_ARRAY_BASE_SLOT)\n}\n\n/// Enqueues a note for validation by PXE, so that it becomes aware of a note's existence allowing for later retrieval\n/// via `get_notes` oracle. The note will be scoped to `contract_address`, meaning other contracts will not be able to\n/// access it unless authorized.\n///\n/// In order for the note validation and insertion to occur, `validate_and_store_enqueued_notes_and_events` must be\n/// later called. For optimal performance, accumulate as many note validation requests as possible and then validate\n/// them all at the end (which results in PXE minimizing the number of network round-trips).\n///\n/// The `packed_note` is what `getNotes` will later return. PXE indexes notes by `storage_slot`, so this value is\n/// typically used to filter notes that correspond to different state variables. `note_hash` and `nullifier` are the\n/// inner hashes, i.e. the raw hashes returned by `NoteHash::compute_note_hash` and `NoteHash::compute_nullifier`. PXE\n/// will verify that the siloed unique note hash was inserted into the tree at `tx_hash`, and will store the nullifier\n/// to later check for nullification.\n///\n/// `owner` is the address used in note hash and nullifier computation, often requiring knowledge of their nullifier\n/// secret key.\n///\n/// `recipient` is the account to which the note message was delivered (i.e. the address the message was encrypted to).\n/// This determines which PXE account can see the note - other accounts will not be able to access it (e.g. other\n/// accounts will not be able to see one another's token balance notes, even in the same PXE) unless authorized. In\n/// most cases `recipient` equals `owner`, but they can differ in scenarios like delegated discovery.\npub(crate) unconstrained fn enqueue_note_for_validation(\n contract_address: AztecAddress,\n owner: AztecAddress,\n storage_slot: Field,\n randomness: Field,\n note_nonce: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n note_hash: Field,\n nullifier: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) {\n // We store requests in a `CapsuleArray`, which PXE will later read from and deserialize into its version of the\n // Noir `NoteValidationRequest`\n CapsuleArray::at(contract_address, NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT).push(\n NoteValidationRequest {\n contract_address,\n owner,\n storage_slot,\n randomness,\n note_nonce,\n packed_note,\n note_hash,\n nullifier,\n tx_hash,\n recipient,\n },\n )\n}\n\n/// Enqueues an event for validation by PXE, so that it can be efficiently validated and then inserted into the event\n/// store.\n///\n/// In order for the event validation and insertion to occur, `validate_and_store_enqueued_notes_and_events` must be\n/// later called. For optimal performance, accumulate as many event validation requests as possible and then validate\n/// them all at the end (which results in PXE minimizing the number of network round-trips).\npub(crate) unconstrained fn enqueue_event_for_validation(\n contract_address: AztecAddress,\n event_type_id: EventSelector,\n randomness: Field,\n serialized_event: BoundedVec<Field, MAX_EVENT_SERIALIZED_LEN>,\n event_commitment: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) {\n // We store requests in a `CapsuleArray`, which PXE will later read from and deserialize into its version of the\n // Noir `EventValidationRequest`\n CapsuleArray::at(contract_address, EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT).push(\n EventValidationRequest {\n contract_address,\n event_type_id,\n randomness,\n serialized_event,\n event_commitment,\n tx_hash,\n recipient,\n },\n )\n}\n\n/// Validates all note and event validation requests enqueued via `enqueue_note_for_validation` and\n/// `enqueue_event_for_validation`, inserting them into the note database and event store respectively, making them\n/// queryable via `get_notes` oracle and our TS API (PXE::getPrivateEvents).\n///\n/// This automatically clears both validation request queues, so no further work needs to be done by the caller.\npub unconstrained fn validate_and_store_enqueued_notes_and_events(contract_address: AztecAddress) {\n oracle::message_processing::validate_and_store_enqueued_notes_and_events(\n contract_address,\n NOTE_VALIDATION_REQUESTS_ARRAY_BASE_SLOT,\n EVENT_VALIDATION_REQUESTS_ARRAY_BASE_SLOT,\n );\n}\n\n/// Efficiently queries the node for logs that result in the completion of all `DeliveredPendingPartialNote`s stored in\n/// a `CapsuleArray` by performing all node communication concurrently. Returns a second `CapsuleArray` with Options\n/// for the responses that correspond to the pending partial notes at the same index.\n///\n/// For example, given an array with pending partial notes `[ p1, p2, p3 ]`, where `p1` and `p3` have corresponding\n/// completion logs but `p2` does not, the returned `CapsuleArray` will have contents `[some(p1_log), none(),\n/// some(p3_log)]`.\npub(crate) unconstrained fn get_pending_partial_notes_completion_logs(\n contract_address: AztecAddress,\n pending_partial_notes: CapsuleArray<DeliveredPendingPartialNote>,\n) -> CapsuleArray<Option<LogRetrievalResponse>> {\n let log_retrieval_requests = CapsuleArray::at(contract_address, LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT);\n\n // We create a LogRetrievalRequest for each PendingPartialNote in the CapsuleArray. Because we need the indices in\n // the request array to match the indices in the partial note array, we can't use CapsuleArray::for_each, as that\n // function has arbitrary iteration order. Instead, we manually iterate the array from the beginning and push into\n // the requests array, which we expect to be empty.\n let mut i = 0;\n let pending_partial_notes_count = pending_partial_notes.len();\n while i < pending_partial_notes_count {\n let pending_partial_note = pending_partial_notes.get(i);\n log_retrieval_requests.push(\n LogRetrievalRequest { contract_address, unsiloed_tag: pending_partial_note.note_completion_log_tag },\n );\n i += 1;\n }\n\n oracle::message_processing::bulk_retrieve_logs(\n contract_address,\n LOG_RETRIEVAL_REQUESTS_ARRAY_BASE_SLOT,\n LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT,\n );\n\n CapsuleArray::at(contract_address, LOG_RETRIEVAL_RESPONSES_ARRAY_BASE_SLOT)\n}\n"
|
|
6703
6723
|
},
|
|
6704
6724
|
"155": {
|
|
6705
6725
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr",
|
|
@@ -6771,7 +6791,7 @@
|
|
|
6771
6791
|
},
|
|
6772
6792
|
"182": {
|
|
6773
6793
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/keys.nr",
|
|
6774
|
-
"source": "use crate::protocol::{\n address::{AztecAddress, PartialAddress},\n point::Point,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n};\n\n#[oracle(
|
|
6794
|
+
"source": "use crate::protocol::{\n address::{AztecAddress, PartialAddress},\n point::Point,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n};\n\npub unconstrained fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n try_get_public_keys_and_partial_address(address).expect(f\"Public keys not registered for account {address}\")\n}\n\n#[oracle(utilityTryGetPublicKeysAndPartialAddress)]\nunconstrained fn try_get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> Option<[Field; 13]> {}\n\npub unconstrained fn try_get_public_keys_and_partial_address(\n address: AztecAddress,\n) -> Option<(PublicKeys, PartialAddress)> {\n try_get_public_keys_and_partial_address_oracle(address).map(|result: [Field; 13]| {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: result[0], y: result[1], is_infinite: result[2] != 0 } },\n ivpk_m: IvpkM { inner: Point { x: result[3], y: result[4], is_infinite: result[5] != 0 } },\n ovpk_m: OvpkM { inner: Point { x: result[6], y: result[7], is_infinite: result[8] != 0 } },\n tpk_m: TpkM { inner: Point { x: result[9], y: result[10], is_infinite: result[11] != 0 } },\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n })\n}\n"
|
|
6775
6795
|
},
|
|
6776
6796
|
"184": {
|
|
6777
6797
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/message_processing.nr",
|
|
@@ -6799,49 +6819,49 @@
|
|
|
6799
6819
|
},
|
|
6800
6820
|
"192": {
|
|
6801
6821
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/version.nr",
|
|
6802
|
-
"source": "/// The ORACLE_VERSION constant is used to check that the oracle interface is in sync between PXE and Aztec.nr. We need\n/// to version the oracle interface to ensure that developers get a reasonable error message if they use incompatible\n/// versions of Aztec.nr and PXE. The TypeScript counterpart is in `oracle_version.ts`.\n///\n/// @dev Whenever a contract function or Noir test is run, the `utilityAssertCompatibleOracleVersion` oracle is called\n/// and if the oracle version is incompatible an error is thrown.\npub global ORACLE_VERSION: Field =
|
|
6822
|
+
"source": "/// The ORACLE_VERSION constant is used to check that the oracle interface is in sync between PXE and Aztec.nr. We need\n/// to version the oracle interface to ensure that developers get a reasonable error message if they use incompatible\n/// versions of Aztec.nr and PXE. The TypeScript counterpart is in `oracle_version.ts`.\n///\n/// @dev Whenever a contract function or Noir test is run, the `utilityAssertCompatibleOracleVersion` oracle is called\n/// and if the oracle version is incompatible an error is thrown.\npub global ORACLE_VERSION: Field = 11;\n\n/// Asserts that the version of the oracle is compatible with the version expected by the contract.\npub fn assert_compatible_oracle_version() {\n // Safety: This oracle call returns nothing: we only call it to check Aztec.nr and Oracle interface versions are\n // compatible. It is therefore always safe to call.\n unsafe {\n assert_compatible_oracle_version_wrapper();\n }\n}\n\nunconstrained fn assert_compatible_oracle_version_wrapper() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION);\n}\n\n#[oracle(utilityAssertCompatibleOracleVersion)]\nunconstrained fn assert_compatible_oracle_version_oracle(version: Field) {}\n\nmod test {\n use super::{assert_compatible_oracle_version_oracle, ORACLE_VERSION};\n\n #[test]\n unconstrained fn compatible_oracle_version() {\n assert_compatible_oracle_version_oracle(ORACLE_VERSION);\n }\n\n #[test(should_fail_with = \"Incompatible oracle version. TXE is using version\")]\n unconstrained fn incompatible_oracle_version() {\n let arbitrary_incorrect_version = 318183437;\n assert_compatible_oracle_version_oracle(arbitrary_incorrect_version);\n }\n}\n"
|
|
6803
6823
|
},
|
|
6804
|
-
"
|
|
6824
|
+
"211": {
|
|
6805
6825
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/state_vars/single_private_immutable.nr",
|
|
6806
6826
|
"source": "use crate::{\n context::{PrivateContext, UtilityContext},\n keys::getters::{get_nhk_app, get_public_keys},\n note::{\n lifecycle::create_note,\n note_getter::{get_note, view_note},\n note_interface::{NoteHash, NoteType},\n NoteMessage,\n },\n oracle::nullifiers::check_nullifier_exists,\n state_vars::StateVariable,\n};\n\nuse crate::protocol::{\n constants::DOM_SEP__INITIALIZATION_NULLIFIER,\n hash::poseidon2_hash_with_separator,\n traits::{Hash, Packable},\n};\n\nmod test;\n\n/// Contract-wide immutable private state.\n///\n/// A state variable that holds a single private value that is set once and remains unchanged forever (unlike\n/// [`crate::state_vars::private_immutable::PrivateImmutable`], which holds one private value _per account_ - hence the\n/// name 'single').\n///\n/// Because this private value has no semantic owner, it is up to the application to determine which accounts will\n/// learn of its existence via [`crate::note::note_message::NoteMessage::deliver_to`].\n///\n/// # Usage\n///\n/// Unlike [`crate::state_vars::private_immutable::PrivateImmutable`] which is \"owned\" (requiring wrapping in an\n/// [`crate::state_vars::owned::Owned`] state variable), SinglePrivateImmutable is used directly in storage:\n///\n/// ```noir\n/// #[storage]\n/// struct Storage<Context> {\n/// your_variable: SinglePrivateImmutable<YourNote, Context>,\n/// }\n/// ```\n///\n/// # Example\n///\n/// A contract's configuration parameters can be represented as a SinglePrivateImmutable. Once set during contract\n/// deployment or initial setup, these parameters remain constant for the lifetime of the contract. For example, an\n/// account contract's signing public key is typically stored using SinglePrivateImmutable. Note that the configuration\n/// would be visible only to the parties to which the [`NoteMessage`] returned from the `initialize(...)` function is\n/// delivered.\n///\n/// # Requirements\n///\n/// The contract that holds this state variable must have keys associated with it. This is because the initialization\n/// nullifier includes the contract's nullifier hiding key (nhk) in its preimage and because the contract is set as\n/// the owner of the underlying note. This is expected to not ever be a problem because the contracts that use\n/// SinglePrivateImmutable generally have keys associated with them (account contracts or escrow contracts).\npub struct SinglePrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n\nimpl<Note, Context> StateVariable<1, Context> for SinglePrivateImmutable<Note, Context> {\n fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n\n fn get_storage_slot(self) -> Field {\n self.storage_slot\n }\n}\n\nimpl<Note, Context> SinglePrivateImmutable<Note, Context> {\n /// Computes the initialization nullifier using the provided secret.\n fn compute_initialization_nullifier(self, secret: Field) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot, secret],\n DOM_SEP__INITIALIZATION_NULLIFIER,\n )\n }\n}\n\nimpl<Note> SinglePrivateImmutable<Note, &mut PrivateContext> {\n /// Computes the nullifier that will be created when this SinglePrivateImmutable is first initialized.\n ///\n /// This function is primarily used internally by the `initialize` method, but may also be useful for contracts\n /// that need to check if a SinglePrivateImmutable has been initialized.\n fn get_initialization_nullifier(self) -> Field {\n let contract_address = self.context.this_address();\n let contract_npk_m = get_public_keys(contract_address).npk_m;\n let contract_npk_m_hash = contract_npk_m.hash();\n let secret = self.context.request_nhk_app(contract_npk_m_hash);\n self.compute_initialization_nullifier(secret)\n }\n\n /// Initializes a SinglePrivateImmutable state variable instance with a permanent `note` and returns a\n /// [`NoteMessage`] that allows you to decide what method of note message delivery to use.\n ///\n /// This function inserts the single, permanent note for this state variable. It can only be called once per\n /// SinglePrivateImmutable. Subsequent calls will fail because the initialization nullifier will already exist.\n pub fn initialize(self, note: Note) -> NoteMessage<Note>\n where\n Note: NoteType + NoteHash + Packable,\n {\n let nullifier = self.get_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n // The note owner is set to the contract's address. Strictly speaking, specifying a note owner is not required\n // here, as this note is never intended to be nullified. However, we must provide an owner because Aztec.nr\n // does not currently support notes without an owner, or with a zero-address owner; attempting to use a zero\n // address as the owner will result in an error during note message processing.\n //\n // This error should never happen in practice because SinglePrivateImmutable is typically used in contracts\n // that require keys to function properly. Specifically, this state variable is commonly used in account\n // contracts and escrow contracts, both of which are deployed with public keys. This is a general pattern:\n // contracts that use SinglePrivateImmutable need public keys because users need to add these keys to their PXE\n // to be able to load the configuration stored in the SinglePrivateImmutable.\n //\n // Anyway, this could be avoided by allowing of storing of states in nullifiers as is tracked by\n // https://linear.app/aztec-labs/issue/F-217/allow-storing-state-in-nullifiers\n let note_owner = self.context.this_address();\n create_note(self.context, note_owner, self.storage_slot, note)\n }\n\n /// Reads the permanent note of a SinglePrivateImmutable state variable instance.\n ///\n /// If this SinglePrivateImmutable state variable has not yet been initialized, no note will exist: the call will\n /// fail and the transaction will not be provable.\n ///\n /// Since the note is immutable, there's no risk of reading stale data or race conditions - the note never changes\n /// after initialization.\n ///\n pub fn get_note(self) -> Note\n where\n Note: NoteType + NoteHash + Packable,\n {\n // The note owner is set to none rather than msg_sender(), which means that anyone with access to this note in\n // the PXE can read it.\n let confirmed_note = get_note(self.context, Option::none(), self.storage_slot);\n\n // Because the notes obtained from SinglePrivateImmutable are not meant to be nullified and get_note(...)\n // function has already constrained the note (by pushing a read request to the context), we can return just the\n // note and skip the additional data in ConfirmedNote.\n confirmed_note.note\n }\n}\n\nimpl<Note> SinglePrivateImmutable<Note, UtilityContext>\nwhere\n Note: NoteType + NoteHash + Eq,\n{\n /// Computes the nullifier that will be created when this SinglePrivateImmutable is first initialized.\n unconstrained fn get_initialization_nullifier(self) -> Field {\n let contract_address = self.context.this_address();\n let contract_npk_m = get_public_keys(contract_address).npk_m;\n let contract_npk_m_hash = contract_npk_m.hash();\n let secret = get_nhk_app(contract_npk_m_hash);\n self.compute_initialization_nullifier(secret)\n }\n\n /// Returns whether this SinglePrivateImmutable has been initialized.\n pub unconstrained fn is_initialized(self) -> bool {\n let nullifier = self.get_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n\n /// Returns the permanent note in this SinglePrivateImmutable state variable instance.\n pub unconstrained fn view_note(self) -> Note\n where\n Note: Packable,\n {\n // The note owner is set to none rather than msg_sender(), which means that anyone with access to this note in\n // the PXE can read it.\n view_note(Option::none(), self.storage_slot).note\n }\n}\n"
|
|
6807
6827
|
},
|
|
6808
|
-
"
|
|
6828
|
+
"238": {
|
|
6809
6829
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/append.nr",
|
|
6810
6830
|
"source": "/// Appends the elements of the second `BoundedVec` to the end of the first one. The resulting `BoundedVec` can have\n/// any arbitrary maximum length, but it must be large enough to fit all of the elements of both the first and second\n/// vectors.\npub fn append<T, let ALen: u32, let BLen: u32, let DstLen: u32>(\n a: BoundedVec<T, ALen>,\n b: BoundedVec<T, BLen>,\n) -> BoundedVec<T, DstLen> {\n let mut dst = BoundedVec::new();\n\n dst.extend_from_bounded_vec(a);\n dst.extend_from_bounded_vec(b);\n\n dst\n}\n\nmod test {\n use super::append;\n\n #[test]\n unconstrained fn append_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::new();\n let b: BoundedVec<_, 14> = BoundedVec::new();\n\n let result: BoundedVec<Field, 5> = append(a, b);\n\n assert_eq(result.len(), 0);\n assert_eq(result.storage(), std::mem::zeroed());\n }\n\n #[test]\n unconstrained fn append_non_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let result: BoundedVec<Field, 8> = append(a, b);\n\n assert_eq(result.len(), 6);\n assert_eq(result.storage(), [1, 2, 3, 4, 5, 6, std::mem::zeroed(), std::mem::zeroed()]);\n }\n\n #[test(should_fail_with = \"out of bounds\")]\n unconstrained fn append_non_empty_vecs_insufficient_max_len() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let _: BoundedVec<Field, 5> = append(a, b);\n }\n}\n"
|
|
6811
6831
|
},
|
|
6812
|
-
"
|
|
6832
|
+
"241": {
|
|
6813
6833
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subarray.nr",
|
|
6814
6834
|
"source": "/// Returns `DstLen` elements from a source array, starting at `offset`. `DstLen` must not be larger than the number of\n/// 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 SrcLen: u32, let DstLen: u32>(src: [T; SrcLen], offset: u32) -> [T; DstLen] {\n assert(offset + DstLen <= SrcLen, \"DstLen too large for offset\");\n\n let mut dst: [T; DstLen] = std::mem::zeroed();\n for i in 0..DstLen {\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 DstLen to be 0, so we always get back an empty 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 = \"DstLen 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"
|
|
6815
6835
|
},
|
|
6816
|
-
"
|
|
6836
|
+
"242": {
|
|
6817
6837
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subbvec.nr",
|
|
6818
6838
|
"source": "use crate::utils::array;\n\n/// Returns `DstMaxLen` elements from a source BoundedVec, starting at `offset`. `offset` must not be larger than the\n/// original length, and `DstLen` 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 `DstLen` 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 SrcMaxLen: u32, let DstMaxLen: u32>(\n bvec: BoundedVec<T, SrcMaxLen>,\n offset: u32,\n) -> BoundedVec<T, DstMaxLen> {\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(bvec.storage(), offset), bvec.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 = \"DstLen 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 support capacity increases\n let _: BoundedVec<_, 11> = subbvec(bvec, 0);\n }\n\n #[test(should_fail_with = \"DstLen 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"
|
|
6819
6839
|
},
|
|
6820
|
-
"
|
|
6840
|
+
"245": {
|
|
6821
6841
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/bytes_to_fields.nr",
|
|
6822
6842
|
"source": "use std::static_assert;\n\n// These functions are used to facilitate the conversion of log ciphertext between byte and field representations.\n//\n// `bytes_to_fields` uses fixed-size arrays since encryption contexts have compile-time size information.\n// `bytes_from_fields` uses BoundedVec for flexibility in unconstrained contexts where sizes are dynamic.\n//\n// Together they provide bidirectional conversion between bytes and fields when processing encrypted logs.\n\n/// Converts the input bytes into an array of fields. A Field is ~254 bits meaning that each field can store 31 whole\n/// bytes. Use `bytes_from_fields` to obtain the original bytes array.\n///\n/// The input bytes are chunked into chunks of 31 bytes. Each 31-byte chunk is viewed as big-endian, and is converted\n/// into a Field. For example, [1, 10, 3, ..., 0] (31 bytes) is encoded as [1 * 256^30 + 10 * 256^29 + 3 * 256^28 + ...\n/// + 0] Note: N must be a multiple of 31 bytes\npub fn bytes_to_fields<let N: u32>(bytes: [u8; N]) -> [Field; N / 31] {\n // Assert that N is a multiple of 31\n static_assert(N % 31 == 0, \"N must be a multiple of 31\");\n\n let mut fields = [0; N / 31];\n\n // Since N is a multiple of 31, we can simply process all chunks fully\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 fields\n}\n\n/// Converts an input BoundedVec of fields into a BoundedVec of bytes in big-endian order. Arbitrary Field arrays are\n/// not allowed: this is assumed to be an array obtained via `bytes_to_fields`, i.e. one that actually represents\n/// bytes. To convert a Field array into bytes, use `fields_to_bytes`.\n///\n/// Each input field must contain at most 31 bytes (this is constrained to be so). Each field is converted into 31\n/// big-endian bytes, and the resulting 31-byte chunks are concatenated back together in the order of the original\n/// fields.\npub fn bytes_from_fields<let N: u32>(fields: BoundedVec<Field, N>) -> BoundedVec<u8, N * 31> {\n let mut bytes = BoundedVec::new();\n\n for i in 0..fields.len() {\n let field = fields.get(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.push(field_as_bytes[j]);\n }\n }\n\n bytes\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{bytes_from_fields, bytes_to_fields};\n\n #[test]\n unconstrained fn random_bytes_to_fields_and_back(input: [u8; 93]) {\n let fields = bytes_to_fields(input);\n\n // At this point in production, the log flies through the system and we get a BoundedVec on the other end. So\n // we need to convert the field array to a BoundedVec to be able to feed it to the `bytes_from_fields`\n // function.\n let fields_as_bounded_vec = BoundedVec::<_, 6>::from_array(fields);\n\n let bytes_back = bytes_from_fields(fields_as_bounded_vec);\n\n // Compare the original input with the round-tripped result\n assert_eq(bytes_back.len(), input.len());\n assert_eq(subarray(bytes_back.storage(), 0), input);\n }\n\n #[test(should_fail_with = \"N must be a multiple of 31\")]\n unconstrained fn bytes_to_fields_input_length_not_multiple_of_31() {\n // Try to convert 32 bytes (not a multiple of 31) to fields\n let _fields = bytes_to_fields([0; 32]);\n }\n\n}\n"
|
|
6823
6843
|
},
|
|
6824
|
-
"
|
|
6844
|
+
"246": {
|
|
6825
6845
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/fields_to_bytes.nr",
|
|
6826
6846
|
"source": "// These functions are used to facilitate the conversion of log plaintext represented as fields into bytes and back.\n//\n// `fields_to_bytes` uses fixed-size arrays since encryption contexts have compile-time size information.\n// `fields_from_bytes` uses BoundedVec for flexibility in unconstrained contexts where sizes are dynamic.\n//\n// Together they provide bidirectional conversion between fields and bytes.\n\n/// Converts an input array of fields into a single array of bytes. Use `fields_from_bytes` to obtain the original\n/// field array. Each field is converted to a 32-byte big-endian array.\n///\n/// For example, if you have a field array [123, 456], it will be converted to a 64-byte array:\n/// [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123, // First field (32 bytes)\n/// 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,200] // Second field (32 bytes)\n///\n/// Since a field is ~254 bits, you'll end up with a subtle 2-bit \"gap\" at the big end, every 32 bytes. Be careful that\n/// such a gap doesn't leak information! This could happen if you for example expected the output to be\n/// indistinguishable from random bytes.\npub fn fields_to_bytes<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_as_bytes: [u8; 32] = fields[i].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\n/// Converts an input BoundedVec of bytes into a BoundedVec of fields. Arbitrary byte arrays are not allowed: this is\n/// assumed to be an array obtained via `fields_to_bytes`, i.e. one that actually represents fields. To convert a byte\n/// array into Fields, use `bytes_to_fields`.\n///\n/// The input bytes are chunked into chunks of 32 bytes. Each 32-byte chunk is viewed as big-endian, and is converted\n/// into a Field. For example, [1, 10, 3, ..., 0] (32 bytes) is encoded as [1 * 256^31 + 10 * 256^30 + 3 * 256^29 + ...\n/// + 0] Note 1: N must be a multiple of 32 bytes Note 2: The max value check code was taken from\n/// std::field::to_be_bytes function.\npub fn fields_from_bytes<let N: u32>(bytes: BoundedVec<u8, N>) -> BoundedVec<Field, N / 32> {\n // Assert that input length is a multiple of 32\n assert(bytes.len() % 32 == 0, \"Input length must be a multiple of 32\");\n\n let mut fields = BoundedVec::new();\n\n let p = std::field::modulus_be_bytes();\n\n // Since input length is a multiple of 32, we can simply process all chunks fully\n for i in 0..bytes.len() / 32 {\n let mut field = 0;\n\n // Process each byte in the 32-byte chunk\n let mut ok = false;\n\n for j in 0..32 {\n let next_byte = bytes.get(i * 32 + j);\n field = field * 256 + next_byte as Field;\n\n if !ok {\n if next_byte != p[j] {\n assert(next_byte < p[j], \"Value does not fit in field\");\n ok = true;\n }\n }\n }\n assert(ok, \"Value does not fit in field\");\n\n fields.push(field);\n }\n\n fields\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{fields_from_bytes, fields_to_bytes};\n\n #[test]\n unconstrained fn random_fields_to_bytes_and_back(input: [Field; 3]) {\n // Convert to bytes\n let bytes = fields_to_bytes(input);\n\n // At this point in production, the log flies through the system and we get a BoundedVec on the other end. So\n // we need to convert the field array to a BoundedVec to be able to feed it to the `fields_from_bytes`\n // function. 113 is an arbitrary max length that is larger than the input length of 96.\n let bytes_as_bounded_vec = BoundedVec::<_, 113>::from_array(bytes);\n\n // Convert back to fields\n let fields_back = fields_from_bytes(bytes_as_bounded_vec);\n\n // Compare the original input with the round-tripped result\n assert_eq(fields_back.len(), input.len());\n assert_eq(subarray(fields_back.storage(), 0), input);\n }\n\n #[test(should_fail_with = \"Input length must be a multiple of 32\")]\n unconstrained fn to_fields_assert() {\n // 143 is an arbitrary max length that is larger than 33\n let input = BoundedVec::<_, 143>::from_array([\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, 25, 26, 27, 28, 29,\n 30, 31, 32, 33,\n ]);\n\n // This should fail since 33 is not a multiple of 32\n let _fields = fields_from_bytes(input);\n }\n\n #[test]\n unconstrained fn fields_from_bytes_max_value() {\n let max_field_as_bytes: [u8; 32] = (-1).to_be_bytes();\n let input = BoundedVec::<_, 32>::from_array(max_field_as_bytes);\n\n let fields = fields_from_bytes(input);\n\n // The result should be a largest value storable in a field (-1 since we are modulo-ing)\n assert_eq(fields.get(0), -1);\n }\n\n // In this test we verify that overflow check works by taking the max allowed value, bumping a random byte and then\n // feeding it to `fields_from_bytes` as input.\n #[test(should_fail_with = \"Value does not fit in field\")]\n unconstrained fn fields_from_bytes_overflow(random_value: u8) {\n let index_of_byte_to_bump = random_value % 32;\n\n // Obtain the byte representation of the maximum field value\n let max_field_value_as_bytes: [u8; 32] = (-1).to_be_bytes();\n\n let byte_to_bump = max_field_value_as_bytes[index_of_byte_to_bump as u32];\n\n // Skip test execution if the selected byte is already at maximum value (255). This is acceptable since we are\n // using fuzz testing to generate many test cases.\n if byte_to_bump != 255 {\n let mut input = BoundedVec::<_, 32>::from_array(max_field_value_as_bytes);\n\n // Increment the selected byte to exceed the field's maximum value\n input.set(index_of_byte_to_bump as u32, byte_to_bump + 1);\n\n // Attempt the conversion, which should fail due to the value exceeding the field's capacity\n let _fields = fields_from_bytes(input);\n }\n }\n\n}\n"
|
|
6827
6847
|
},
|
|
6828
|
-
"
|
|
6848
|
+
"249": {
|
|
6829
6849
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/point.nr",
|
|
6830
6850
|
"source": "use crate::protocol::{point::Point, utils::field::sqrt};\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 = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Returns: true if p.y <= MOD_DIV_2, else false.\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 the\n // sign we check if the y coordinate is less or equal than the field's modulus minus 1 divided by 2. Ideally we'd\n // do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is equivalent,\n // 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\n/// Returns a `Point` in the Grumpkin curve given its x coordinate.\n///\n/// Because not all values in the field are valid x coordinates of points in the curve (i.e. there is no corresponding\n/// y value in the field that satisfies the curve equation), it may not be possible to reconstruct a `Point`.\n/// `Option::none()` is returned in such cases.\npub fn point_from_x_coord(x: Field) -> Option<Point> {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n sqrt(rhs).map(|y| Point { x, y, is_infinite: false })\n}\n\n/// Returns a `Point` in the Grumpkin curve given its x coordinate and sign for the y coordinate.\n///\n/// Because not all values in the field are valid x coordinates of points in the curve (i.e. there is no corresponding\n/// y value in the field that satisfies the curve equation), it may not be possible to reconstruct a `Point`.\n/// `Option::none()` is returned in such cases.\n///\n/// @param x - The x coordinate of the point @param sign - The \"sign\" of the y coordinate - determines whether y <=\n/// (Fr.MODULUS - 1) / 2\npub fn point_from_x_coord_and_sign(x: Field, sign: bool) -> Option<Point> {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n\n sqrt(rhs).map(|y| {\n // If there is a square root, we need to ensure it has the correct \"sign\"\n let y_is_positive = !BN254_FR_MODULUS_DIV_2.lt(y);\n let final_y = if y_is_positive == sign { y } else { -y };\n Point { x, y: final_y, is_infinite: false }\n })\n}\n\nmod test {\n use crate::protocol::point::Point;\n use crate::utils::point::{\n BN254_FR_MODULUS_DIV_2, get_sign_of_point, point_from_x_coord, point_from_x_coord_and_sign,\n };\n\n #[test]\n unconstrained fn test_point_from_x_coord_and_sign() {\n // Test positive y coordinate\n let x = 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73;\n let sign = true;\n let p = point_from_x_coord_and_sign(x, sign).unwrap();\n\n assert_eq(p.x, x);\n assert_eq(p.y, 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a);\n assert_eq(p.is_infinite, false);\n\n // Test negative y coordinate\n let x2 = 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5;\n let sign2 = false;\n let p2 = point_from_x_coord_and_sign(x2, sign2).unwrap();\n\n assert_eq(p2.x, x2);\n assert_eq(p2.y, 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0);\n assert_eq(p2.is_infinite, false);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_valid() {\n // x = 8 is a known quadratic residue - should give a valid point\n let result = point_from_x_coord(Field::from(8));\n assert(result.is_some());\n\n let point = result.unwrap();\n assert_eq(point.x, Field::from(8));\n // Check curve equation y^2 = x^3 - 17\n assert_eq(point.y * point.y, point.x * point.x * point.x - 17);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_invalid() {\n // x = 3 is a non-residue for this curve - should give None\n let x = Field::from(3);\n let maybe_point = point_from_x_coord(x);\n assert(maybe_point.is_none());\n }\n\n #[test]\n unconstrained fn test_both_roots_satisfy_curve() {\n // Derive a point from x = 8 (known to be valid from test_point_from_x_coord_valid)\n let x: Field = 8;\n let point = point_from_x_coord(x).unwrap();\n\n // Check y satisfies curve equation\n assert_eq(point.y * point.y, x * x * x - 17);\n\n // Check -y also satisfies curve equation\n let neg_y = 0 - point.y;\n assert_eq(neg_y * neg_y, x * x * x - 17);\n\n // Verify they are different (unless y = 0)\n assert(point.y != neg_y);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_and_sign_invalid() {\n // x = 3 has no valid point on the curve (from test_point_from_x_coord_invalid)\n let x = Field::from(3);\n let result_positive = point_from_x_coord_and_sign(x, true);\n let result_negative = point_from_x_coord_and_sign(x, false);\n\n assert(result_positive.is_none());\n assert(result_negative.is_none());\n }\n\n #[test]\n unconstrained fn test_get_sign_of_point() {\n // Derive a point from x = 8, then test both possible y values\n let point = point_from_x_coord(8).unwrap();\n let neg_point = Point { x: point.x, y: 0 - point.y, is_infinite: false };\n\n // One should be \"positive\" (y <= MOD_DIV_2) and one \"negative\"\n let sign1 = get_sign_of_point(point);\n let sign2 = get_sign_of_point(neg_point);\n assert(sign1 != sign2);\n\n // y = 0 should return true (0 <= MOD_DIV_2)\n let zero_y_point = Point { x: 0, y: 0, is_infinite: false };\n assert(get_sign_of_point(zero_y_point) == true);\n\n // y = MOD_DIV_2 should return true (exactly at boundary)\n let boundary_point = Point { x: 0, y: BN254_FR_MODULUS_DIV_2, is_infinite: false };\n assert(get_sign_of_point(boundary_point) == true);\n\n // y = MOD_DIV_2 + 1 should return false (just over boundary)\n let over_boundary_point = Point { x: 0, y: BN254_FR_MODULUS_DIV_2 + 1, is_infinite: false };\n assert(get_sign_of_point(over_boundary_point) == false);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_zero() {\n // x = 0: y^2 = 0^3 - 17 = -17, which is not a quadratic residue in BN254 scalar field\n let result = point_from_x_coord(0);\n assert(result.is_none());\n }\n\n #[test]\n unconstrained fn test_bn254_fr_modulus_div_2() {\n // Verify that BN254_FR_MODULUS_DIV_2 == (p - 1) / 2 This means: 2 * BN254_FR_MODULUS_DIV_2 + 1 == p == 0 (in\n // the field)\n assert_eq(2 * BN254_FR_MODULUS_DIV_2 + 1, 0);\n }\n\n}\n"
|
|
6831
6851
|
},
|
|
6832
|
-
"
|
|
6852
|
+
"250": {
|
|
6833
6853
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/random.nr",
|
|
6834
6854
|
"source": "use crate::oracle::random::random;\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"
|
|
6835
6855
|
},
|
|
6836
|
-
"
|
|
6856
|
+
"251": {
|
|
6837
6857
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/remove_constraints.nr",
|
|
6838
6858
|
"source": "/// Calls a function and returns its return value, but removes any constraints associated with calling the function,\n/// behaving as if the function was unconstrained.\npub unconstrained fn remove_constraints<Env, T>(f: fn[Env]() -> T) -> T {\n f()\n}\n\n/// Calls a function and returns its return value, removing any constraints associated with calling the function if\n/// `condition` is true, behaving as if the function was unconstrained.\n///\n/// Requires `condition` to be a compile time constant.\npub fn remove_constraints_if<Env, T>(condition: bool, f: fn[Env]() -> T) -> T {\n // If `condition` is not a compile-time constant, then the compiler won't optimize away the branch not taken in the\n // if statement below, and we may end up with constraints for `f` regardless of the runtime value of `condition`.\n assert_constant(condition);\n\n if condition {\n // Safety: the purpose of this function is to execute `f` with no constraints when `condition` is true.\n unsafe {\n remove_constraints(f)\n }\n } else {\n f()\n }\n}\n\nmod test {\n use super::remove_constraints;\n\n fn return_unit() -> () {\n ()\n }\n\n fn return_field() -> Field {\n 5\n }\n\n #[test]\n fn returns_unit() {\n let expected = return_unit();\n // Safety: this is a test\n let actual = unsafe { remove_constraints(|| return_unit()) };\n assert_eq(actual, expected);\n }\n\n #[test]\n fn returns_original_value() {\n let expected = return_field();\n // Safety: this is a test\n let actual = unsafe { remove_constraints(|| return_field()) };\n assert_eq(actual, expected);\n }\n\n #[test]\n unconstrained fn returns_unit_unconstrained() {\n let expected = return_unit();\n let actual = remove_constraints(|| return_unit());\n assert_eq(actual, expected);\n }\n\n #[test]\n unconstrained fn returns_original_value_unconstrained() {\n let expected = return_field();\n let actual = remove_constraints(|| return_field());\n assert_eq(actual, expected);\n }\n}\n"
|
|
6839
6859
|
},
|
|
6840
|
-
"
|
|
6860
|
+
"260": {
|
|
6841
6861
|
"path": "/home/aztec-dev/nargo/github.com/noir-lang/poseidon/v0.2.3/src/poseidon2.nr",
|
|
6842
6862
|
"source": "use std::default::Default;\nuse std::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)\n }\n\n pub(crate) 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 self.state[0] += self.cache[0];\n self.state[1] += self.cache[1];\n self.state[2] += self.cache[2];\n self.state = crate::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>(input: [Field; N], in_len: u32) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut state = [0; 4];\n state[RATE] = iv;\n\n if std::runtime::is_unconstrained() {\n for i in 0..(in_len / RATE) {\n state[0] += input[i * RATE];\n state[1] += input[i * RATE + 1];\n state[2] += input[i * RATE + 2];\n state = crate::poseidon2_permutation(state, 4);\n }\n\n // handle remaining elements after last full RATE-sized chunk\n let num_extra_fields = in_len % RATE;\n if num_extra_fields != 0 {\n let remainder_start = in_len - num_extra_fields;\n state[0] += input[remainder_start];\n if num_extra_fields > 1 {\n state[1] += input[remainder_start + 1]\n }\n }\n } else {\n let mut states: [[Field; 4]; N / RATE + 1] = [[0; 4]; N / RATE + 1];\n states[0] = state;\n\n // process all full RATE-sized chunks, storing state after each permutation\n for chunk_idx in 0..(N / RATE) {\n for i in 0..RATE {\n state[i] += input[chunk_idx * RATE + i];\n }\n state = crate::poseidon2_permutation(state, 4);\n states[chunk_idx + 1] = state;\n }\n\n // get state at the last full block before in_len\n let first_partially_filled_chunk = in_len / RATE;\n state = states[first_partially_filled_chunk];\n\n // handle remaining elements after last full RATE-sized chunk\n let remainder_start = (in_len / RATE) * RATE;\n for j in 0..RATE {\n let idx = remainder_start + j;\n if idx < in_len {\n state[j] += input[idx];\n }\n }\n }\n\n // always run final permutation unless we just completed a full chunk\n // still need to permute once if in_len is 0\n if (in_len == 0) | (in_len % RATE != 0) {\n state = crate::poseidon2_permutation(state, 4)\n };\n\n state[0]\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"
|
|
6843
6863
|
},
|
|
6844
|
-
"
|
|
6864
|
+
"271": {
|
|
6845
6865
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/abis/block_header.nr",
|
|
6846
6866
|
"source": "use crate::{\n abis::{\n append_only_tree_snapshot::AppendOnlyTreeSnapshot, global_variables::GlobalVariables,\n state_reference::StateReference,\n },\n constants::{BLOCK_HEADER_LENGTH, DOM_SEP__BLOCK_HEADER_HASH, GENESIS_BLOCK_HEADER_HASH},\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Empty, Hash, Serialize},\n};\nuse std::meta::derive;\n\n// docs:start:block-header\n#[derive(Deserialize, Eq, Serialize)]\npub struct BlockHeader {\n pub last_archive: AppendOnlyTreeSnapshot,\n pub state: StateReference,\n\n // The hash of the sponge blob for this block, which commits to the tx effects added in this block.\n // Note: it may also include tx effects from previous blocks within the same checkpoint.\n // When proving tx effects from this block only, we must refer to the `sponge_blob_hash` in the previous block\n // header to show that the effect was added after the previous block.\n // The previous block header can be validated using a membership proof of the last leaf in `last_archive`.\n pub sponge_blob_hash: Field,\n\n pub global_variables: GlobalVariables,\n pub total_fees: Field,\n pub total_mana_used: Field,\n}\n// docs:end:block-header\n\nimpl Empty for BlockHeader {\n fn empty() -> Self {\n Self {\n last_archive: AppendOnlyTreeSnapshot::empty(),\n state: StateReference::empty(),\n sponge_blob_hash: 0,\n global_variables: GlobalVariables::empty(),\n total_fees: 0,\n total_mana_used: 0,\n }\n }\n}\n\nimpl Hash for BlockHeader {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(self.serialize(), DOM_SEP__BLOCK_HEADER_HASH)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let header = BlockHeader::empty();\n // We use the BLOCK_HEADER_LENGTH constant to ensure that there is a match\n // between the derived trait implementation and the constant.\n let serialized: [Field; BLOCK_HEADER_LENGTH] = header.serialize();\n let deserialized = BlockHeader::deserialize(serialized);\n assert(header.eq(deserialized));\n}\n\n#[test]\nfn hash_of_genesis_block_header() {\n let mut header = BlockHeader::empty();\n // The following values are taken from world_state.test.cpp > WorldStateTest.GetInitialTreeInfoForAllTrees.\n header.state.l1_to_l2_message_tree.root =\n 0x0d582c10ff8115413aa5b70564fdd2f3cefe1f33a1e43a47bc495081e91e73e5;\n header.state.partial.note_hash_tree.root =\n 0x2ac5dda169f6bb3b9ca09bbac34e14c94d1654597db740153a1288d859a8a30a;\n header.state.partial.nullifier_tree.root =\n 0x1ec3788cd1c32e54d889d67fe29e481114f9d4afe9b44b229aa29d8ad528dd31;\n header.state.partial.nullifier_tree.next_available_leaf_index = 128;\n header.state.partial.public_data_tree.root =\n 0x23c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a9;\n header.state.partial.public_data_tree.next_available_leaf_index = 128;\n\n let hash = header.hash();\n assert_eq(hash, GENESIS_BLOCK_HEADER_HASH);\n}\n\n#[test]\nfn hash_of_empty_block_header_match_typescript() {\n let header = BlockHeader::empty();\n let hash = header.hash();\n\n // Value from block_header.test.ts \"computes empty hash\" test\n let test_data_empty_hash = 0x2332f3e8426f1e4fbf66323836e2de1916d47eeb53feb7d3d09ee30d001374be;\n assert_eq(hash, test_data_empty_hash);\n}\n"
|
|
6847
6867
|
},
|
|
@@ -6849,71 +6869,71 @@
|
|
|
6849
6869
|
"path": "std/array/mod.nr",
|
|
6850
6870
|
"source": "use crate::cmp::{Eq, Ord};\nuse crate::convert::From;\nuse crate::runtime::is_unconstrained;\n\nmod check_shuffle;\nmod quicksort;\n\nimpl<T, let N: u32> [T; N] {\n /// Returns the length of this array.\n ///\n /// ```noir\n /// fn len(self) -> Field\n /// ```\n ///\n /// example\n ///\n /// ```noir\n /// fn main() {\n /// let array = [42, 42];\n /// assert(array.len() == 2);\n /// }\n /// ```\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n /// Returns this array as a vector.\n ///\n /// ```noir\n /// let array = [1, 2];\n /// let vector = array.as_vector();\n /// assert_eq(vector, [1, 2].as_vector());\n /// ```\n #[builtin(as_vector)]\n pub fn as_vector(self) -> [T] {}\n\n /// Returns this array as a vector.\n /// This method is deprecated in favor of `as_vector`.\n ///\n /// ```noir\n /// let array = [1, 2];\n /// let vector = array.as_slice();\n /// assert_eq(vector, [1, 2].as_vector());\n /// ```\n #[builtin(as_vector)]\n #[deprecated(\"This method has been renamed to `as_vector`\")]\n pub fn as_slice(self) -> [T] {}\n\n /// Applies a function to each element of this array, returning a new array containing the mapped elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.map(|a| a * 2);\n /// assert_eq(b, [2, 4, 6]);\n /// ```\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let uninitialized = crate::mem::zeroed();\n let mut ret = [uninitialized; N];\n\n for i in 0..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n /// Applies a function to each element of this array along with its index,\n /// returning a new array containing the mapped elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.mapi(|i, a| i + a * 2);\n /// assert_eq(b, [2, 5, 8]);\n /// ```\n pub fn mapi<U, Env>(self, f: fn[Env](u32, T) -> U) -> [U; N] {\n let uninitialized = crate::mem::zeroed();\n let mut ret = [uninitialized; N];\n\n for i in 0..self.len() {\n ret[i] = f(i, self[i]);\n }\n\n ret\n }\n\n /// Applies a function to each element of this array.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let mut b = [0; 3];\n /// let mut i = 0;\n /// a.for_each(|x| {\n /// b[i] = x;\n /// i += 1;\n /// });\n /// assert_eq(a, b);\n /// ```\n pub fn for_each<Env>(self, f: fn[Env](T) -> ()) {\n for i in 0..self.len() {\n f(self[i]);\n }\n }\n\n /// Applies a function to each element of this array along with its index.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let mut b = [0; 3];\n /// a.for_eachi(|i, x| {\n /// b[i] = x;\n /// });\n /// assert_eq(a, b);\n /// ```\n pub fn for_eachi<Env>(self, f: fn[Env](u32, T) -> ()) {\n for i in 0..self.len() {\n f(i, self[i]);\n }\n }\n\n /// Applies a function to each element of the array, returning the final accumulated value. The first\n /// parameter is the initial value.\n ///\n /// This is a left fold, so the given function will be applied to the accumulator and first element of\n /// the array, then the second, and so on. For a given call the expected result would be equivalent to:\n ///\n /// ```rust\n /// let a1 = [1];\n /// let a2 = [1, 2];\n /// let a3 = [1, 2, 3];\n ///\n /// let f = |a, b| a - b;\n /// a1.fold(10, f); //=> f(10, 1)\n /// a2.fold(10, f); //=> f(f(10, 1), 2)\n /// a3.fold(10, f); //=> f(f(f(10, 1), 2), 3)\n ///\n /// assert_eq(a3.fold(10, f), 10 - 1 - 2 - 3);\n /// ```\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n /// Same as fold, but uses the first element as the starting element.\n ///\n /// Requires the input array to be non-empty.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [1, 2, 3, 4];\n /// let reduced = arr.reduce(|a, b| a + b);\n /// assert(reduced == 10);\n /// }\n /// ```\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n /// Returns true if all the elements in this array satisfy the given predicate.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 2];\n /// let all = arr.all(|a| a == 2);\n /// assert(all);\n /// }\n /// ```\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n /// Returns true if any of the elements in this array satisfy the given predicate.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 5];\n /// let any = arr.any(|a| a == 5);\n /// assert(any);\n /// }\n /// ```\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n\n /// Concatenates this array with another array.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr1 = [1, 2, 3, 4];\n /// let arr2 = [6, 7, 8, 9, 10, 11];\n /// let concatenated_arr = arr1.concat(arr2);\n /// assert(concatenated_arr == [1, 2, 3, 4, 6, 7, 8, 9, 10, 11]);\n /// }\n /// ```\n pub fn concat<let M: u32>(self, array2: [T; M]) -> [T; N + M] {\n let mut result = [crate::mem::zeroed(); N + M];\n for i in 0..N {\n result[i] = self[i];\n }\n for i in 0..M {\n result[i + N] = array2[i];\n }\n result\n }\n}\n\nimpl<T, let N: u32> [T; N]\nwhere\n T: Ord + Eq,\n{\n /// Returns a new sorted array. The original array remains untouched. Notice that this function will\n /// only work for arrays of fields or integers, not for any arbitrary type. This is because the sorting\n /// logic it uses internally is optimized specifically for these values. If you need a sort function to\n /// sort any type, you should use the [`Self::sort_via`] function.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let arr = [42, 32];\n /// let sorted = arr.sort();\n /// assert(sorted == [32, 42]);\n /// }\n /// ```\n pub fn sort(self) -> Self {\n self.sort_via(|a, b| a <= b)\n }\n}\n\nimpl<T, let N: u32> [T; N]\nwhere\n T: Eq,\n{\n /// Returns a new sorted array by sorting it with a custom comparison function.\n /// The original array remains untouched.\n /// The ordering function must return true if the first argument should be sorted to be before the second argument or is equal to the second argument.\n ///\n /// Using this method with an operator like `<` that does not return `true` for equal values will result in an assertion failure for arrays with equal elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let arr = [42, 32]\n /// let sorted_ascending = arr.sort_via(|a, b| a <= b);\n /// assert(sorted_ascending == [32, 42]); // verifies\n ///\n /// let sorted_descending = arr.sort_via(|a, b| a >= b);\n /// assert(sorted_descending == [32, 42]); // does not verify\n /// }\n /// ```\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n // Safety: `sorted` array is checked to be:\n // a. a permutation of `input`'s elements\n // b. satisfying the predicate `ordering`\n let sorted = unsafe { quicksort::quicksort(self, ordering) };\n\n if !is_unconstrained() {\n for i in 0..N - 1 {\n assert(\n ordering(sorted[i], sorted[i + 1]),\n \"Array has not been sorted correctly according to `ordering`.\",\n );\n }\n check_shuffle::check_shuffle(self, sorted);\n }\n sorted\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Converts a byte array of type `[u8; N]` to a string. Note that this performs no UTF-8 validation -\n /// the given array is interpreted as-is as a string.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let hi = [104, 105].as_str_unchecked();\n /// assert_eq(hi, \"hi\");\n /// }\n /// ```\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n /// Returns an array of the string bytes.\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n\nmod test {\n #[test]\n fn map_empty() {\n assert_eq([].map(|x| x + 1), []);\n }\n\n global arr_with_100_values: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2, 54,\n 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41, 19, 98,\n 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21, 43, 86, 35,\n 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15, 127, 81, 30, 8,\n 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n global expected_with_100_values: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30, 32,\n 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58, 61, 62,\n 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82, 84, 84, 86,\n 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114, 114, 116, 118,\n 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n fn sort_u32(a: u32, b: u32) -> bool {\n a <= b\n }\n\n #[test]\n fn test_sort() {\n let mut arr: [u32; 7] = [3, 6, 8, 10, 1, 2, 1];\n\n let sorted = arr.sort();\n\n let expected: [u32; 7] = [1, 1, 2, 3, 6, 8, 10];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_100_values() {\n let mut arr: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2,\n 54, 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41,\n 19, 98, 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21,\n 43, 86, 35, 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15,\n 127, 81, 30, 8, 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n\n let sorted = arr.sort();\n\n let expected: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30,\n 32, 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58,\n 61, 62, 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82,\n 84, 84, 86, 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114,\n 114, 116, 118, 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_100_values_comptime() {\n let sorted = arr_with_100_values.sort();\n assert(sorted == expected_with_100_values);\n }\n\n #[test]\n fn test_sort_via() {\n let mut arr: [u32; 7] = [3, 6, 8, 10, 1, 2, 1];\n\n let sorted = arr.sort_via(sort_u32);\n\n let expected: [u32; 7] = [1, 1, 2, 3, 6, 8, 10];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_via_100_values() {\n let mut arr: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2,\n 54, 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41,\n 19, 98, 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21,\n 43, 86, 35, 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15,\n 127, 81, 30, 8, 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n\n let sorted = arr.sort_via(sort_u32);\n\n let expected: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30,\n 32, 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58,\n 61, 62, 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82,\n 84, 84, 86, 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114,\n 114, 116, 118, 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n assert(sorted == expected);\n }\n\n #[test]\n fn mapi_empty() {\n assert_eq([].mapi(|i, x| i * x + 1), []);\n }\n\n #[test]\n fn for_each_empty() {\n let empty_array: [Field; 0] = [];\n empty_array.for_each(|_x| assert(false));\n }\n\n #[test]\n fn for_eachi_empty() {\n let empty_array: [Field; 0] = [];\n empty_array.for_eachi(|_i, _x| assert(false));\n }\n\n #[test]\n fn map_example() {\n let a = [1, 2, 3];\n let b = a.map(|a| a * 2);\n assert_eq(b, [2, 4, 6]);\n }\n\n #[test]\n fn mapi_example() {\n let a = [1, 2, 3];\n let b = a.mapi(|i, a| i + a * 2);\n assert_eq(b, [2, 5, 8]);\n }\n\n #[test]\n fn for_each_example() {\n let a = [1, 2, 3];\n let mut b = [0, 0, 0];\n let b_ref = &mut b;\n let mut i = 0;\n let i_ref = &mut i;\n a.for_each(|x| {\n b_ref[*i_ref] = x * 2;\n *i_ref += 1;\n });\n assert_eq(b, [2, 4, 6]);\n assert_eq(i, 3);\n }\n\n #[test]\n fn for_eachi_example() {\n let a = [1, 2, 3];\n let mut b = [0, 0, 0];\n let b_ref = &mut b;\n a.for_eachi(|i, a| { b_ref[i] = i + a * 2; });\n assert_eq(b, [2, 5, 8]);\n }\n\n #[test]\n fn concat() {\n let arr1 = [1, 2, 3, 4];\n let arr2 = [6, 7, 8, 9, 10, 11];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1, 2, 3, 4, 6, 7, 8, 9, 10, 11]);\n }\n\n #[test]\n fn concat_zero_length_with_something() {\n let arr1 = [];\n let arr2 = [1];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1]);\n }\n\n #[test]\n fn concat_something_with_zero_length() {\n let arr1 = [1];\n let arr2 = [];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1]);\n }\n\n #[test]\n fn concat_zero_lengths() {\n let arr1: [Field; 0] = [];\n let arr2: [Field; 0] = [];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, []);\n }\n}\n"
|
|
6851
6871
|
},
|
|
6852
|
-
"
|
|
6872
|
+
"318": {
|
|
6853
6873
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
|
|
6854
6874
|
"source": "use crate::{\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{AZTEC_ADDRESS_LENGTH, DOM_SEP__CONTRACT_ADDRESS_V1, MAX_FIELD_VALUE},\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, ToPoint, TpkM},\n traits::{Deserialize, Empty, FromField, Packable, Serialize, ToField},\n utils::field::sqrt,\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 std::{\n embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n ops::Add,\n};\nuse std::meta::derive;\n\n// Aztec address\n#[derive(Deserialize, Eq, Packable, Serialize)]\npub struct AztecAddress {\n pub inner: Field,\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 AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n /// Returns an address's `AddressPoint`, which can be used to create shared secrets with the owner\n /// of the address. If the address is invalid (i.e. it is not a properly derived Aztec address), then this\n /// returns `Option::none()`, and no shared secrets can be created.\n pub fn to_address_point(self) -> Option<AddressPoint> {\n // We compute the address point by taking our address as x, and then solving for y in the\n // equation which defines the grumpkin curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = x * x * x - 17;\n\n // An invalid AztecAddress is one for which no y coordinate satisfies the curve equation, which we'll\n // identify by proving that the square root of y_squared does not exist.\n sqrt(y_squared).map(|y| {\n // If we get a negative y coordinate (y > (r - 1) / 2), we swap it to the\n // positive one (where y <= (r - 1) / 2) by negating it.\n let final_y = if Self::is_positive(y) { y } else { -y };\n\n AddressPoint { inner: Point { x: self.inner, y: final_y, is_infinite: false } }\n })\n }\n\n /// Determines whether a y-coordinate is in the lower (positive) or upper (negative) \"half\" of the field.\n /// I.e.\n /// y <= (r - 1)/2 => positive.\n /// y > (r - 1)/2 => negative.\n /// An AddressPoint always uses the \"positive\" y.\n fn is_positive(y: Field) -> bool {\n // Note: The field modulus r is MAX_FIELD_VALUE + 1.\n let MID = MAX_FIELD_VALUE / 2; // (r - 1) / 2\n let MID_PLUS_1 = MID + 1; // (r - 1)/2 + 1\n // Note: y <= m implies y < m + 1.\n y.lt(MID_PLUS_1)\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n //\n // address = address_point.x\n // |\n // address_point = pre_address * G + Ivpk_m (always choose \"positive\" y-coord)\n // | ^\n // | |.....................\n // pre_address .\n // / \\ .\n // / \\ .\n // partial_address public_keys_hash .\n // / \\ / / \\ \\ .\n // / \\ Npk_m Ivpk_m Ovpk_m Tpk_m .\n // contract_class_id \\ |...................\n // / | \\ \\\n // artifact_hash | public_bytecode_commitment salted_initialization_hash\n // | / / \\\n // private_function_tree_root deployer_address salt initialization_hash\n // / \\ / \\\n // ... ... constructor_fn_selector constructor_args_hash\n // / \\\n // / \\ / \\\n // leaf leaf leaf leaf\n // ^\n // |\n // |---h(function_selector, vk_hash)\n // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n // Each of these represents a private function of the contract.\n\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 DOM_SEP__CONTRACT_ADDRESS_V1,\n );\n\n // Note: `.add()` will fail within the blackbox fn if either of the points are not on the curve. (See tests below).\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 secret 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_class_id(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\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 check_max_field_value() {\n // Check that it is indeed r-1.\n assert_eq(MAX_FIELD_VALUE + 1, 0);\n}\n\n#[test]\nfn check_is_positive() {\n assert(AztecAddress::is_positive(0));\n assert(AztecAddress::is_positive(1));\n assert(!AztecAddress::is_positive(-1));\n assert(AztecAddress::is_positive(MAX_FIELD_VALUE / 2));\n assert(!AztecAddress::is_positive((MAX_FIELD_VALUE / 2) + 1));\n}\n\n// Gives us confidence that we don't need to manually check that the input public keys need to be on the curve for `add`,\n// because the blackbox function does this check for us.\n#[test(should_fail_with = \"is not on curve\")]\nfn check_embedded_curve_point_add() {\n // Choose a point not on the curve:\n let p1 = Point { x: 1, y: 1, is_infinite: false };\n let p2 = Point::generator();\n let _ = p1 + p2;\n}\n\n// Gives us confidence that we don't need to manually check that the input public keys need to be on the curve for `add`,\n// because the blackbox function does this check for us.\n#[test(should_fail_with = \"is not on curve\")]\nfn check_embedded_curve_point_add_2() {\n // Choose a point not on the curve in the 2nd position.\n let p1 = Point::generator();\n let p2 = Point { x: 1, y: 1, is_infinite: false };\n let _ = p1 + p2;\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 0x105626366aab4a53d471701395a4e0e04af65ad1fad8483c74de338f397f226c;\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], DOM_SEP__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x0b661dee14f3871040a5938dbc5c1a7977aede0b64cff6b7faa168d11a288d75;\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 // We use the AZTEC_ADDRESS_LENGTH constant to ensure that there is a match between the derived trait\n // implementation and the constant.\n let serialized: [Field; AZTEC_ADDRESS_LENGTH] = address.serialize();\n let deserialized = AztecAddress::deserialize(serialized);\n assert_eq(address, deserialized);\n}\n\n#[test]\nfn to_address_point_valid() {\n // x = 8 where x^3 - 17 = 512 - 17 = 495, which is a residue in this field\n let address = AztecAddress { inner: 8 };\n let maybe_point = address.to_address_point();\n assert(maybe_point.is_some());\n\n let point = maybe_point.unwrap().inner;\n // check that x is preserved\n assert_eq(point.x, Field::from(8));\n\n // check that the curve equation holds: y^2 == x^3 - 17\n assert_eq(point.y * point.y, point.x * point.x * point.x - 17);\n}\n\n#[test]\nunconstrained fn to_address_point_invalid() {\n // x = 3 where x^3 - 17 = 27 - 17 = 10, which is a non-residue in this field\n let address = AztecAddress { inner: 3 }; //\n let maybe_point = address.to_address_point();\n assert(maybe_point.is_none());\n}\n"
|
|
6855
6875
|
},
|
|
6856
|
-
"
|
|
6876
|
+
"321": {
|
|
6857
6877
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr",
|
|
6858
6878
|
"source": "use crate::{\n address::{aztec_address::AztecAddress, salted_initialization_hash::SaltedInitializationHash},\n constants::DOM_SEP__PARTIAL_ADDRESS,\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Empty, Serialize, ToField},\n};\nuse std::meta::derive;\n\n// Partial address\n#[derive(Deserialize, Eq, Serialize)]\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 Empty for PartialAddress {\n fn empty() -> Self {\n Self { inner: 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 DOM_SEP__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\nmod test {\n use crate::{address::partial_address::PartialAddress, traits::{Deserialize, Serialize}};\n\n #[test]\n fn serialization_of_partial_address() {\n let item = PartialAddress::from_field(1);\n let serialized: [Field; 1] = item.serialize();\n let deserialized = PartialAddress::deserialize(serialized);\n assert_eq(item, deserialized);\n }\n}\n"
|
|
6859
6879
|
},
|
|
6860
|
-
"
|
|
6880
|
+
"323": {
|
|
6861
6881
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr",
|
|
6862
6882
|
"source": "use crate::{\n address::aztec_address::AztecAddress, constants::DOM_SEP__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField,\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\n#[derive(Eq)]\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 DOM_SEP__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
|
|
6863
6883
|
},
|
|
6864
|
-
"
|
|
6884
|
+
"332": {
|
|
6865
6885
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr",
|
|
6866
6886
|
"source": "use crate::{\n address::{aztec_address::AztecAddress, partial_address::PartialAddress},\n contract_class_id::ContractClassId,\n public_keys::PublicKeys,\n traits::{Deserialize, Hash, Serialize, ToField},\n};\nuse std::meta::derive;\n\n#[derive(Deserialize, Eq, Serialize)]\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 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\nmod test {\n use crate::{\n address::AztecAddress,\n constants::CONTRACT_INSTANCE_LENGTH,\n contract_class_id::ContractClassId,\n contract_instance::ContractInstance,\n public_keys::PublicKeys,\n traits::{Deserialize, FromField, Serialize},\n };\n\n #[test]\n fn serde() {\n let instance = ContractInstance {\n salt: 6,\n deployer: AztecAddress::from_field(12),\n contract_class_id: ContractClassId::from_field(13),\n initialization_hash: 156,\n public_keys: PublicKeys::default(),\n };\n\n // We use the CONTRACT_INSTANCE_LENGTH constant to ensure that there is a match between the derived trait\n // implementation and the constant.\n let serialized: [Field; CONTRACT_INSTANCE_LENGTH] = instance.serialize();\n\n let deserialized = ContractInstance::deserialize(serialized);\n\n assert(instance.eq(deserialized));\n }\n\n}\n"
|
|
6867
6887
|
},
|
|
6868
|
-
"
|
|
6888
|
+
"339": {
|
|
6869
6889
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
|
|
6870
6890
|
"source": "// TODO: Expose other wrapped functions than debug (info, warn)\n// ['silent', 'fatal', 'error', 'warn', 'info', 'verbose', 'debug', 'trace']\n\npub global SILENT_LOG_LEVEL: u8 = 0;\npub global FATAL_LOG_LEVEL: u8 = 1;\npub global ERROR_LOG_LEVEL: u8 = 2;\npub global WARN_LOG_LEVEL: u8 = 3;\npub global INFO_LOG_LEVEL: u8 = 4;\npub global VERBOSE_LOG_LEVEL: u8 = 5;\npub global DEBUG_LOG_LEVEL: u8 = 6;\npub global TRACE_LOG_LEVEL: u8 = 7;\n\n/// 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/// Same as debug_log, but allows to customize the log level.\n/// Consider changing just to 'log'\npub fn debug_log_with_level<let N: u32>(log_level: u8, msg: str<N>) {\n debug_log_format_with_level(log_level, 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_array_oracle_wrapper(DEBUG_LOG_LEVEL, msg, args) };\n}\n\n/// Same as debug_log_format, but allows to customize the log level.\n/// Consider changing just to 'log_format'\npub fn debug_log_format_with_level<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\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_array_oracle_wrapper(log_level, msg, args) };\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` slice.\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 slice: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format_slice<let M: u32>(log_level: u8, msg: str<M>, args: [Field]) {\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_slice_oracle_wrapper(log_level, msg, args) };\n}\n\n// We provide two versions of the debug log oracle: one that takes args as a slice and another one that takes args as an array.\n// We do this since conversion from array to slice generates overhead in public functions, since opcodes need to be emitted for the conversion.\n// By exposing the two flavors, we avoid conversions since the AVM is able to handle both arrays an slices in this oracle.\n\nunconstrained fn debug_log_slice_oracle_wrapper<let M: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field],\n) {\n debug_log_slice_oracle(log_level, msg, args);\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(utilityDebugLog)]\nunconstrained fn debug_log_slice_oracle<let M: u32>(log_level: u8, msg: str<M>, args: [Field]) {}\n\nunconstrained fn debug_log_array_oracle_wrapper<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_array_oracle(log_level, msg, N, args);\n}\n\n#[oracle(utilityDebugLog)]\nunconstrained fn debug_log_array_oracle<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n length: u32,\n args: [Field; N],\n) {}\n"
|
|
6871
6891
|
},
|
|
6872
|
-
"
|
|
6892
|
+
"350": {
|
|
6873
6893
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
|
|
6874
6894
|
"source": "mod poseidon2_chunks;\n\nuse crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_log::{PrivateLog, PrivateLogData},\n transaction::tx_request::TxRequest,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, DOM_SEP__NOTE_HASH_NONCE,\n DOM_SEP__PRIVATE_LOG_FIRST_FIELD, DOM_SEP__SILOED_NOTE_HASH, DOM_SEP__SILOED_NULLIFIER,\n DOM_SEP__UNIQUE_NOTE_HASH, FUNCTION_TREE_HEIGHT, NULL_MSG_SENDER_CONTRACT_ADDRESS,\n TWO_POW_64,\n },\n merkle_tree::root_from_sibling_path,\n messaging::l2_to_l1_message::L2ToL1Message,\n poseidon2::Poseidon2Sponge,\n side_effect::{Counted, Scoped},\n traits::{FromField, Hash, ToField},\n utils::field::{field_from_bytes, field_from_bytes_32_trunc},\n};\n\npub use poseidon2_chunks::poseidon2_absorb_in_chunks_existing_sponge;\nuse poseidon2_chunks::poseidon2_absorb_in_chunks;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\n\n// TODO: refactor these into their own files: sha256, poseidon2, some protocol-specific hash computations, some merkle computations.\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 DOM_SEP__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(note_nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [note_nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, DOM_SEP__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_note_nonce_and_unique_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n let note_nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(note_nonce, siloed_note_hash)\n}\n\npub fn compute_siloed_note_hash(contract_address: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), note_hash],\n DOM_SEP__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique, siloed note hashes from siloed note hashes.\n///\n/// The protocol injects uniqueness into every note_hash, so that every single note_hash in the\n/// tree is unique. This prevents faerie gold attacks, where a malicious sender could create\n/// two identical note_hashes for a recipient (meaning only one would be nullifiable in future).\n///\n/// Most privacy protocols will inject the note's leaf_index (its position in the Note Hashes Tree)\n/// into the note, but this requires the creator of a note to wait until their tx is included in\n/// a block to know the note's final note hash (the unique, siloed note hash), because inserting\n/// leaves into trees is the job of a block producer.\n///\n/// We took a different approach so that the creator of a note will know each note's unique, siloed\n/// note hash before broadcasting their tx to the network.\n/// (There was also a historical requirement relating to \"chained transactions\" -- a feature that\n/// Aztec Connect had to enable notes to be spent from distinct txs earlier in the same block,\n/// and hence before an archive block root had been established for that block -- but that feature\n/// was abandoned for the Aztec Network for having too many bad tradeoffs).\n///\n/// (\n/// Edit: it is no longer true that all final note_hashes will be known by the creator of a tx\n/// before they send it to the network. If a tx makes public function calls, then _revertible_\n/// note_hashes that are created in private will not be made unique in private by the Reset circuit,\n/// but will instead be made unique by the AVM, because the `note_index_in_tx` will not be known\n/// until the AVM has executed the public functions of the tx. (See an explanation in\n/// reset_output_composer.nr for why).\n/// For some such txs, the `note_index_in_tx` might still be predictable through simulation, but\n/// for txs whose public functions create a varying number of non-revertible notes (determined at\n/// runtime), the `note_index_in_tx` will not be deterministically derivable before submitting the\n/// tx to the network.\n/// )\n///\n/// We use the `first_nullifier` of a tx as a seed of uniqueness. We have a guarantee that there will\n/// always be at least one nullifier per tx, because the init circuit will create one if one isn't\n/// created naturally by any functions of the tx. (Search \"protocol_nullifier\").\n/// We combine the `first_nullifier` with the note's index (its position within this tx's new\n/// note_hashes array) (`note_index_in_tx`) to get a truly unique value to inject into a note, which\n/// we call a `note_nonce`.\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 compute_note_nonce_and_unique_note_hash(siloed_note_hash, first_nullifier, note_index_in_tx)\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: Scoped<Counted<NoteHash>>) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.innermost())\n }\n}\n\npub fn compute_siloed_nullifier(contract_address: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), nullifier],\n DOM_SEP__SILOED_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: Scoped<Counted<Nullifier>>) -> Field {\n let value = nullifier.innermost().value;\n // Q: shouldn't we be checking whether the _whole_ scoped, counted, nullifier struct is empty?\n // A: We don't have to. The init and inner circuits add a contract address only to non-empty nullifiers.\n // So we know we should silo it if the contract address is not empty.\n if nullifier.contract_address.is_zero() {\n // Return `.value` instead of 0, because already-siloed nullifiers also have a zero\n // contract_address field, and we of course want to return that already-siloed nullifier\n // (we just don't want to silo it a second time).\n value\n } else {\n compute_siloed_nullifier(nullifier.contract_address, value)\n }\n}\n\npub fn create_protocol_nullifier(tx_request: TxRequest) -> Scoped<Counted<Nullifier>> {\n // The protocol nullifier is ascribed a special side-effect counter of 1. No other side-effect\n // can have counter 1 (see `validate_as_first_call` for that assertion).\n Nullifier { value: tx_request.hash(), note_hash: 0 }.count(1).scope(\n NULL_MSG_SENDER_CONTRACT_ADDRESS,\n )\n}\n\npub fn compute_siloed_private_log_first_field(\n contract_address: AztecAddress,\n field: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), field],\n DOM_SEP__PRIVATE_LOG_FIRST_FIELD,\n )\n}\n\npub fn silo_private_log(private_log: Scoped<Counted<PrivateLogData>>) -> PrivateLog {\n let log = private_log.innermost().log;\n if private_log.contract_address.is_zero() {\n log\n } else {\n let mut fields = log.fields;\n fields[0] = compute_siloed_private_log_first_field(private_log.contract_address, fields[0]);\n PrivateLog::new(fields, log.length)\n }\n}\n\npub fn compute_contract_class_log_hash(log: [Field; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS]) -> Field {\n poseidon2_hash(log)\n}\n\npub fn compute_app_siloed_secret_key(\n master_secret_key: EmbeddedCurveScalar,\n app_address: AztecAddress,\n app_secret_key_domain_separator: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [master_secret_key.hi, master_secret_key.lo, app_address.to_field()],\n app_secret_key_domain_separator,\n )\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 contract_address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n let recipient_bytes: [u8; 20] = recipient.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let rollup_version_id_bytes: [u8; 32] = rollup_version_id.to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n\n let mut bytes: [u8; 148] = std::mem::zeroed();\n for i in 0..32 {\n bytes[i] = contract_address_bytes[i];\n bytes[i + 32] = rollup_version_id_bytes[i];\n // 64 - 84 are for recipient.\n bytes[i + 84] = chain_id_bytes[i];\n bytes[i + 116] = content_bytes[i];\n }\n\n for i in 0..20 {\n bytes[64 + i] = recipient_bytes[i];\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: Scoped<L2ToL1Message>,\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.inner.recipient,\n msg.inner.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// TODO: consider a variant that enables domain separation with a u32 (we seem to have standardised u32s for domain separators)\n/// Computes sha256 hash of 2 input fields.\n///\n/// @returns A truncated field (i.e., the first byte is always 0).\npub fn accumulate_sha256(v0: Field, v1: Field) -> Field {\n // Concatenate two fields into 32 x 2 = 64 bytes\n let v0_as_bytes: [u8; 32] = v0.to_be_bytes();\n let v1_as_bytes: [u8; 32] = v1.to_be_bytes();\n let hash_input_flattened = v0_as_bytes.concat(v1_as_bytes);\n\n sha256_to_field(hash_input_flattened)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n poseidon::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 = [separator.to_field()].concat(inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n/// Computes a Poseidon2 hash over a dynamic-length subarray of the given input.\n/// Only the first `in_len` fields of `input` are absorbed; any remaining fields are ignored.\n/// The caller is responsible for ensuring that the input is padded with zeros if required.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n sponge.squeeze()\n}\n\n// NB the below is the same as poseidon::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_in_chunks(input, in_len);\n sponge.squeeze()\n}\n\n// This function is unconstrained because it is intended to be used in unconstrained context only as\n// in constrained contexts it would be too inefficient.\npub unconstrained fn poseidon2_hash_with_separator_bounded_vec<let N: u32, T>(\n inputs: BoundedVec<Field, N>,\n separator: T,\n) -> 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.get(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 = poseidon::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 = poseidon::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\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 == 0x3b18c58c739716e76429634a61375c45b3b5cd470c22ab6d3e14cee23dd992);\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 == 0xaab2a5828156782b12a1dc6f336e2bc627eb1b9514b02d511f66296990c050);\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 L2ToL1Message { recipient: EthAddress::from_field(1), content: 2 }.scope(\n AztecAddress::from_field(3),\n ),\n version,\n chainId,\n );\n\n // The following value was generated by `yarn-project/stdlib/src/hash/hash.test.ts`\n let hash_from_typescript = 0x0081edf209e087ad31b3fd24263698723d57190bd1d6e9fe056fc0c0a68ee661;\n\n assert_eq(hash, hash_from_typescript);\n}\n\n#[test]\nunconstrained fn poseidon2_hash_with_separator_bounded_vec_matches_non_bounded_vec_version() {\n let inputs = BoundedVec::<Field, 4>::from_array([1, 2, 3]);\n let separator = 42;\n\n // Hash using bounded vec version\n let bounded_result = poseidon2_hash_with_separator_bounded_vec(inputs, separator);\n\n // Hash using regular version\n let regular_result = poseidon2_hash_with_separator([1, 2, 3], separator);\n\n // Results should match\n assert_eq(bounded_result, regular_result);\n}\n"
|
|
6875
6895
|
},
|
|
6876
|
-
"
|
|
6896
|
+
"363": {
|
|
6877
6897
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr",
|
|
6878
6898
|
"source": "pub use serde::serialization::{derive_deserialize, derive_serialize};\n\npub mod utils;\n\n/// Generates the generic parameter declarations for a struct's trait implementation.\n///\n/// This function takes a struct type definition and generates the generic parameter declarations\n/// that go after the `impl` keyword. For example, given a struct with generics `N: u32` and `T`,\n/// it generates `<let N: u32, T>`.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate generic declarations for\n///\n/// # Returns\n/// A quoted code block containing the generic parameter declarations, or an empty quote if the struct\n/// has no generic parameters\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Container<T, let N: u32> {\n/// items: [T; N],\n/// count: u32\n/// }\n/// ```\n///\n/// This function generates:\n/// ```\n/// <let N: u32, T>\n/// ```\ncomptime fn get_generics_declarations(s: TypeDefinition) -> Quoted {\n let generics = s.generics();\n\n if generics.len() > 0 {\n let generics_declarations_items = generics\n .map(|(name, maybe_integer_typ)| {\n // The second item in the generics tuple is an Option of an integer type that is Some only if\n // the generic is numeric.\n if maybe_integer_typ.is_some() {\n // The generic is numeric, so we return a quote defined as e.g. \"let N: u32\"\n let integer_type = maybe_integer_typ.unwrap();\n quote {let $name: $integer_type}\n } else {\n // The generic is not numeric, so we return a quote containing the name of the generic (e.g. \"T\")\n quote {$name}\n }\n })\n .join(quote {,});\n quote {<$generics_declarations_items>}\n } else {\n // The struct doesn't have any generics defined, so we just return an empty quote.\n quote {}\n }\n}\n\n/// Generates the `where` clause for a trait implementation that constrains non-numeric generic type parameters.\n///\n/// This function takes a struct type definition and a trait name, and generates a `where` clause that\n/// requires all non-numeric generic type parameters to implement the specified trait.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the where clause for\n/// - `trait_name`: The name of the trait that non-numeric generic parameters must implement\n///\n/// # Returns\n/// A quoted code block containing the where clause, or an empty quote if the struct has no non-numeric\n/// generic parameters\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Container<T, let N: u32> {\n/// items: [T; N],\n/// count: u32\n/// }\n/// ```\n///\n/// And trait name \"Serialize\", this function generates:\n/// ```\n/// where T: Serialize\n/// ```\ncomptime fn get_where_trait_clause(s: TypeDefinition, trait_name: Quoted) -> Quoted {\n let generics = s.generics();\n\n // The second item in the generics tuple is an Option of an integer type that is Some only if the generic is\n // numeric.\n let non_numeric_generics =\n generics.filter(|(_, maybe_integer_typ)| maybe_integer_typ.is_none());\n\n if non_numeric_generics.len() > 0 {\n let non_numeric_generics_declarations =\n non_numeric_generics.map(|(name, _)| quote {$name: $trait_name}).join(quote {,});\n quote {where $non_numeric_generics_declarations}\n } else {\n // There are no non-numeric generics, so we return an empty quote.\n quote {}\n }\n}\n\n/// Generates a `Packable` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Packable` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Packable for MyStruct {\n/// let N: u32 = 2;\n///\n/// fn pack(self) -> [Field; 2] {\n/// let mut result: [Field; 2] = [0_Field; 2];\n/// let mut offset: u32 = 0_u32;\n/// let packed_member: [Field; 1] = self.x.pack();\n/// let packed_member_len: u32 = <Field as Packable>::N;\n/// for i in 0_u32..packed_member_len {\n/// {\n/// result[i + offset] = packed_member[i];\n/// }\n/// }\n/// offset = offset + packed_member_len;\n/// let packed_member: [Field; 1] = self.y.pack();\n/// let packed_member_len: u32 = <Field as Packable>::N;\n/// for i in 0_u32..packed_member_len {\n/// {\n/// result[i + offset] = packed_member[i];\n/// }\n/// }\n/// offset = offset + packed_member_len;\n/// result\n/// }\n///\n/// fn unpack(packed: [Field; 2]) -> Self {\n/// let mut offset: u32 = 0_u32;\n/// let mut member_fields: [Field; 1] = [0_Field; 1];\n/// for i in 0_u32..<AztecAddress as Packable>::N {\n/// member_fields[i] = packed[i + offset];\n/// }\n/// let x: AztecAddress = <AztecAddress as Packable>::unpack(member_fields);\n/// offset = offset + <AztecAddress as Packable>::N;\n/// let mut member_fields: [Field; 1] = [0_Field; 1];\n/// for i in 0_u32..<Field as Packable>::N {\n/// member_fields[i] = packed[i + offset];\n/// }\n/// let y: Field = <Field as Packable>::unpack(member_fields);\n/// offset = offset + <Field as Packable>::N;\n/// Self { x: x, y: y }\n/// }\n/// }\n/// ```\npub comptime fn derive_packable(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Packable` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_packable_clause = get_where_trait_clause(s, quote {Packable});\n\n // The following will give us:\n // <type_of_struct_member_1 as Packable>::N + <type_of_struct_member_2 as Packable>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::traits::Packable>::N\n }\n })\n .join(quote {+})\n } else {\n quote {0}\n };\n\n // For structs containing a single member, we can enhance performance by directly returning the packed member,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let pack_function_body = if params.len() > 1 {\n // For multiple struct members, generate packing code that:\n // 1. Packs each member\n // 2. Copies the packed fields into the result array at the correct offset\n // 3. Updates the offset for the next member\n let packing_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let packed_member = $crate::traits::Packable::pack(self.$param_name);\n let packed_member_len = <$param_type as $crate::traits::Packable>::N;\n for i in 0..packed_member_len {\n result[i + offset] = packed_member[i];\n }\n offset += packed_member_len;\n }\n })\n .join(quote {});\n\n quote {\n let mut result = [0; Self::N];\n let mut offset = 0;\n\n $packing_of_struct_members\n\n result\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n $crate::traits::Packable::pack(self.$param_name)\n }\n } else {\n quote {\n [0; Self::N]\n }\n };\n\n // For structs containing a single member, we can enhance performance by directly unpacking the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let unpack_function_body = if params.len() > 1 {\n // For multiple struct members, generate unpacking code that:\n // 1. Unpacks each member\n // 2. Copies packed fields into member array at correct offset\n // 3. Updates offset for next member\n let unpacking_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let mut member_fields = [0; <$param_type as $crate::traits::Packable>::N];\n for i in 0..<$param_type as $crate::traits::Packable>::N {\n member_fields[i] = packed[i + offset];\n }\n let $param_name = <$param_type as $crate::traits::Packable>::unpack(member_fields);\n offset += <$param_type as $crate::traits::Packable>::N;\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n let mut offset = 0;\n $unpacking_of_struct_members\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::traits::Packable::unpack(packed) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::traits::Packable for $typ\n $where_packable_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n $pack_function_body\n }\n\n #[inline_always]\n fn unpack(packed: [Field; Self::N]) -> Self {\n $unpack_function_body\n }\n }\n }\n}\n\nmod test {\n use crate::traits::{Deserialize, Packable, Serialize};\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct Empty {}\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct Smol {\n a: Field,\n b: Field,\n }\n\n #[derive(Deserialize, Eq, Serialize)]\n pub struct HasArray {\n a: [Field; 2],\n b: bool,\n }\n\n #[derive(Deserialize, Eq, Serialize)]\n pub struct Fancier {\n a: Smol,\n b: [Field; 2],\n c: [u8; 3],\n d: str<16>,\n }\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct HasArrayWithGenerics<T, let N: u32> {\n pub fields: [T; N],\n pub length: u32,\n }\n\n #[test]\n fn packable_on_empty() {\n let original = Empty {};\n let packed = original.pack();\n assert_eq(packed, [], \"Packed does not match empty array\");\n let unpacked = Empty::unpack(packed);\n assert_eq(unpacked, original, \"Unpacked does not match original\");\n }\n\n #[test]\n fn packable_on_smol() {\n let smol = Smol { a: 1, b: 2 };\n let serialized = smol.serialize();\n assert(serialized == [1, 2], serialized);\n\n // None of the struct members implements the `Packable` trait so the packed and serialized data should be the same\n let packed = smol.pack();\n assert_eq(packed, serialized, \"Packed does not match serialized\");\n }\n\n #[test]\n fn packable_on_contains_array_with_generics() {\n let struct_with_array_of_generics = HasArrayWithGenerics { fields: [1, 2, 3], length: 3 };\n let packed = struct_with_array_of_generics.pack();\n assert(packed == [1, 2, 3, 3], packed);\n\n let unpacked = HasArrayWithGenerics::unpack(packed);\n assert(unpacked == struct_with_array_of_generics);\n }\n\n}\n"
|
|
6879
6899
|
},
|
|
6880
|
-
"
|
|
6900
|
+
"365": {
|
|
6881
6901
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/point.nr",
|
|
6882
6902
|
"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 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\npub fn validate_on_curve(p: Point) {\n // y^2 == x^3 - 17\n let x = p.x;\n let y = p.y;\n if p.is_infinite {\n // Assert the canonical representation of infinity\n assert_eq(x, 0, \"Point at infinity should have canonical representation (0 0)\");\n assert_eq(y, 0, \"Point at infinity should have canonical representation (0 0)\");\n } else {\n assert_eq(y * y, x * x * x - 17, \"Point not on curve\");\n }\n}\n\n// TODO(#11356): use compact representation here.\nimpl Packable for Point {\n let N: u32 = POINT_LENGTH;\n\n fn pack(self) -> [Field; Self::N] {\n self.serialize()\n }\n\n fn unpack(packed: [Field; Self::N]) -> Self {\n Self::deserialize(packed)\n }\n}\n\nmod tests {\n use super::validate_on_curve;\n use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\n #[test]\n unconstrained fn test_validate_on_curve_generator() {\n // The generator point should be on the curve\n let generator = Point::generator();\n validate_on_curve(generator);\n }\n\n #[test]\n unconstrained fn test_validate_on_curve_infinity() {\n // Canonical infinite point (x=0, y=0) should pass\n let infinity = Point { x: 0, y: 0, is_infinite: true };\n validate_on_curve(infinity);\n }\n\n #[test(should_fail_with = \"Point not on curve\")]\n unconstrained fn test_validate_on_curve_invalid_point() {\n // A point not on the curve should fail\n let invalid = Point { x: 1, y: 1, is_infinite: false };\n validate_on_curve(invalid);\n }\n\n #[test(should_fail_with = \"Point at infinity should have canonical representation (0 0)\")]\n unconstrained fn test_validate_on_curve_infinity_non_canonical_x() {\n // Infinite point with non-zero x should fail\n let invalid_infinity = Point { x: 1, y: 0, is_infinite: true };\n validate_on_curve(invalid_infinity);\n }\n\n #[test(should_fail_with = \"Point at infinity should have canonical representation (0 0)\")]\n unconstrained fn test_validate_on_curve_infinity_non_canonical_y() {\n // Infinite point with non-zero y should fail\n let invalid_infinity = Point { x: 0, y: 1, is_infinite: true };\n validate_on_curve(invalid_infinity);\n }\n}\n"
|
|
6883
6903
|
},
|
|
6884
|
-
"
|
|
6904
|
+
"366": {
|
|
6885
6905
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
|
|
6886
6906
|
"source": "use crate::constants::TWO_POW_64;\nuse crate::traits::{Deserialize, Serialize};\nuse std::meta::derive;\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\n#[derive(Deserialize, Eq, Serialize)]\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 sponge.squeeze()\n }\n}\n"
|
|
6887
6907
|
},
|
|
6888
|
-
"
|
|
6908
|
+
"373": {
|
|
6889
6909
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr",
|
|
6890
6910
|
"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, DOM_SEP__PUBLIC_KEYS_HASH,\n },\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Hash, Serialize},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse std::{default::Default, meta::derive};\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\n#[derive(Deserialize, Eq, Serialize)]\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\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\n#[derive(Deserialize, Eq, Serialize)]\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\n#[derive(Deserialize, Eq, Serialize)]\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\n#[derive(Deserialize, Eq, Serialize)]\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\n#[derive(Deserialize, Eq, Serialize)]\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\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 PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n DOM_SEP__PUBLIC_KEYS_HASH as Field,\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\nmod test {\n use crate::{\n point::POINT_LENGTH,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n traits::{Deserialize, Serialize},\n };\n use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\n #[test]\n unconstrained 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\n // The following value was generated by `public_keys.test.ts`.\n let expected_public_keys_hash =\n 0x029d92319623fe2e5804a64b35d13e1c4881045371c41f36329b44dfc237d232;\n\n assert(actual.to_field() == expected_public_keys_hash);\n }\n\n #[test]\n unconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n\n // The following value was generated by `public_keys.test.ts`.\n let test_data_default_hash =\n 0x1d631c5b105baebd0f480f04e79aef2a800d6cc5e3814b92cec83034cf9b959e;\n\n assert(actual.to_field() == test_data_default_hash);\n }\n\n #[test]\n unconstrained fn serde() {\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 // We use the PUBLIC_KEYS_LENGTH constant to ensure that there is a match between the derived trait\n let serialized: [Field; POINT_LENGTH * 4] = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys, deserialized);\n }\n}\n"
|
|
6891
6911
|
},
|
|
6892
|
-
"
|
|
6912
|
+
"394": {
|
|
6893
6913
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr",
|
|
6894
6914
|
"source": "use crate::meta::derive_packable;\nuse crate::utils::field::field_from_bytes;\n\npub use serde::serialization::{Deserialize, Serialize};\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty: Eq {\n fn empty() -> Self;\n\n fn is_empty(self) -> bool {\n self.eq(Self::empty())\n }\n\n // Requires this Noir fix: https://github.com/noir-lang/noir/issues/9002\n // fn assert_not_empty<let U: u32>(self, msg: str<U>) { // This msg version was failing with weird compiler errors.\n // // We provide a default impl but it's likely inefficient.\n // // The reason we include this function is because there's a lot of\n // // opportunity for optimisation on a per-struct basis.\n // // You only need to show one element is not empty to know that the whole thing\n // // is not empty.\n // // If you know an element of your struct which should always be nonempty,\n // // you can write an impl that solely checks that that element is nonempty.\n // assert(!self.is_empty(), msg);\n // }\n\n // This default impl is overwritten by types like arrays, because there's a much\n // more efficient approach.\n fn assert_empty<let S: u32>(self, msg: str<S>) {\n assert(self.is_empty(), msg);\n }\n}\n\nimpl Empty for Field {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for bool {\n #[inline_always]\n fn empty() -> Self {\n false\n }\n}\n\nimpl Empty for u1 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u16 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u128 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl<T, let N: u32> Empty for [T; N]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty(); N]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\n\nimpl<T> Empty for [T]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty()]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\nimpl<A, B> Empty for (A, B)\nwhere\n A: Empty,\n B: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n (A::empty(), B::empty())\n }\n}\n\nimpl<T> Empty for Option<T>\nwhere\n T: Eq,\n{\n #[inline_always]\n fn empty() -> Self {\n Option::none()\n }\n}\n\n// pub fn is_empty<T>(item: T) -> bool\n// where\n// T: Empty,\n// {\n// item.eq(T::empty())\n// }\n\n// pub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool\n// where\n// T: Empty,\n// {\n// array.all(|elem| is_empty(elem))\n// }\n\n// pub fn assert_empty<T>(item: T) -> ()\n// where\n// T: Empty,\n// {\n// assert(item.eq(T::empty()))\n// }\n\n// pub fn assert_empty_array<T, let N: u32>(array: [T; N]) -> ()\n// where\n// T: Empty,\n// {\n// // A cheaper option than `is_empty_array` for if you don't need to gracefully\n// // handle a bool result.\n// // Avoids the `&` operator of `is_empty_array`'s `.all()` call.\n// for i in 0..N {\n// assert(is_empty(array[i]));\n// }\n// }\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n #[inline_always]\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u16 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u128 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl<let N: u32> ToField for str<N> {\n #[inline_always]\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value != 0\n }\n}\nimpl FromField for u1 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u16 {\n fn from_field(value: Field) -> Self {\n value as u16\n }\n}\nimpl FromField for u32 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for u128 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u128\n }\n}\n\n/// Trait for efficiently packing and unpacking Noir types into and from arrays of Fields.\n///\n/// The `Packable` trait allows types to be serialized and deserialized with a focus on minimizing the size of\n/// the resulting Field array. This trait is used when storage efficiency is critical (e.g. when storing data\n/// in the contract's public storage).\n///\n/// # Associated Constants\n/// * `N` - The length of the Field array, known at compile time\n#[derive_via(derive_packable)]\npub trait Packable {\n let N: u32;\n\n /// Packs the current value into a compact array of `Field` elements.\n fn pack(self) -> [Field; N];\n\n /// Unpacks a compact array of `Field` elements into the original value.\n fn unpack(fields: [Field; N]) -> Self;\n}\n\n#[test]\nunconstrained fn bounded_vec_serialization() {\n // Test empty BoundedVec\n let empty_vec: BoundedVec<Field, 3> = BoundedVec::from_array([]);\n let serialized = empty_vec.serialize();\n let deserialized = BoundedVec::<Field, 3>::deserialize(serialized);\n assert_eq(empty_vec, deserialized);\n assert_eq(deserialized.len(), 0);\n\n // Test partially filled BoundedVec\n let partial_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2]]);\n let serialized = partial_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(partial_vec, deserialized);\n assert_eq(deserialized.len(), 1);\n assert_eq(deserialized.get(0), [1, 2]);\n\n // Test full BoundedVec\n let full_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2], [3, 4], [5, 6]]);\n let serialized = full_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(full_vec, deserialized);\n assert_eq(deserialized.len(), 3);\n assert_eq(deserialized.get(0), [1, 2]);\n assert_eq(deserialized.get(1), [3, 4]);\n assert_eq(deserialized.get(2), [5, 6]);\n}\n"
|
|
6895
6915
|
},
|
|
6896
|
-
"
|
|
6916
|
+
"395": {
|
|
6897
6917
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_packing.nr",
|
|
6898
6918
|
"source": "use crate::traits::Packable;\n\nglobal BOOL_PACKED_LEN: u32 = 1;\nglobal U8_PACKED_LEN: u32 = 1;\nglobal U16_PACKED_LEN: u32 = 1;\nglobal U32_PACKED_LEN: u32 = 1;\nglobal U64_PACKED_LEN: u32 = 1;\nglobal U128_PACKED_LEN: u32 = 1;\nglobal FIELD_PACKED_LEN: u32 = 1;\nglobal I8_PACKED_LEN: u32 = 1;\nglobal I16_PACKED_LEN: u32 = 1;\nglobal I32_PACKED_LEN: u32 = 1;\nglobal I64_PACKED_LEN: u32 = 1;\n\nimpl Packable for bool {\n let N: u32 = BOOL_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> bool {\n (fields[0] as u1) != 0\n }\n}\n\nimpl Packable for u8 {\n let N: u32 = U8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Packable for u16 {\n let N: u32 = U16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Packable for u32 {\n let N: u32 = U32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Packable for u64 {\n let N: u32 = U64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Packable for u128 {\n let N: u32 = U128_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Packable for Field {\n let N: u32 = FIELD_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0]\n }\n}\n\nimpl Packable for i8 {\n let N: u32 = I8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u8 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8 as i8\n }\n}\n\nimpl Packable for i16 {\n let N: u32 = I16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u16 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16 as i16\n }\n}\n\nimpl Packable for i32 {\n let N: u32 = I32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u32 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32 as i32\n }\n}\n\nimpl Packable for i64 {\n let N: u32 = I64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u64 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Packable for [T; M]\nwhere\n T: Packable,\n{\n let N: u32 = M * <T as Packable>::N;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n let mut result: [Field; Self::N] = std::mem::zeroed();\n for i in 0..M {\n let serialized = self[i].pack();\n for j in 0..<T as Packable>::N {\n result[i * <T as Packable>::N + j] = serialized[j];\n }\n }\n result\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; M] = std::mem::zeroed();\n reader.read_struct_array::<T, <T as Packable>::N, M>(Packable::unpack, result)\n }\n}\n\n#[test]\nfn test_u16_packing() {\n let a: u16 = 10;\n assert_eq(a, u16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i8_packing() {\n let a: i8 = -10;\n assert_eq(a, i8::unpack(a.pack()));\n}\n\n#[test]\nfn test_i16_packing() {\n let a: i16 = -10;\n assert_eq(a, i16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i32_packing() {\n let a: i32 = -10;\n assert_eq(a, i32::unpack(a.pack()));\n}\n\n#[test]\nfn test_i64_packing() {\n let a: i64 = -10;\n assert_eq(a, i64::unpack(a.pack()));\n}\n"
|
|
6899
6919
|
},
|
|
6900
|
-
"
|
|
6920
|
+
"402": {
|
|
6901
6921
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr",
|
|
6902
6922
|
"source": "pub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\npub fn min(f1: Field, f2: Field) -> Field {\n if f1.lt(f2) {\n f1\n } else {\n f2\n }\n}\n\n// TODO: write doc-comments and tests for these magic constants.\n\nglobal KNOWN_NON_RESIDUE: Field = 5; // This is a non-residue in Noir's native Field.\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n\n// @dev: only use this for _huge_ exponents y, when writing a constrained function.\n// If you're only exponentiating by a small value, first consider writing-out the multiplications by hand.\n// Only after you've measured the gates of that approach, consider using the native Field::pow_32 function.\n// Only if your exponent is larger than 32 bits, resort to using this function.\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\n/// Returns Option::some(sqrt) if there is a square root, and Option::none() if there isn't.\npub fn sqrt(x: Field) -> Option<Field> {\n // Safety: if the hint returns the square root of x, then we simply square it\n // check the result equals x. If x is not square, we return a value that\n // enables us to prove that fact (see the `else` clause below).\n let (is_sq, maybe_sqrt) = unsafe { __sqrt(x) };\n\n if is_sq {\n let sqrt = maybe_sqrt;\n validate_sqrt_hint(x, sqrt);\n Option::some(sqrt)\n } else {\n let not_sqrt_hint = maybe_sqrt;\n validate_not_sqrt_hint(x, not_sqrt_hint);\n Option::none()\n }\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.\nunconstrained fn is_square(x: Field) -> bool {\n let v = pow(x, -1 / 2);\n v * (v - 1) == 0\n}\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.\nunconstrained fn tonelli_shanks_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\n// NB: this doesn't return an option, because in the case of there _not_ being a square root, we still want to return a field element that allows us to then assert in the _constrained_ sqrt function that there is no sqrt.\nunconstrained fn __sqrt(x: Field) -> (bool, Field) {\n let is_sq = is_square(x);\n if is_sq {\n let sqrt = tonelli_shanks_sqrt(x);\n (true, sqrt)\n } else {\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // sq * sq = sq // 1 * 1 = 1\n // non-sq * non-sq = sq // -1 * -1 = 1\n // sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n let not_sqrt = tonelli_shanks_sqrt(demo_x_not_square);\n (false, not_sqrt)\n }\n}\n\nfn validate_sqrt_hint(x: Field, hint: Field) {\n assert(hint * hint == x, f\"The claimed_sqrt {hint} is not the sqrt of x {x}\");\n}\n\nfn validate_not_sqrt_hint(x: Field, hint: Field) {\n // We need this assertion, because x = 0 would pass the other assertions in this\n // function, and we don't want people to be able to prove that 0 is not square!\n assert(x != 0, \"0 has a square root; you cannot claim it is not square\");\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n //\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // 1. sq * sq = sq // 1 * 1 = 1\n // 2. non-sq * non-sq = sq // -1 * -1 = 1\n // 3. sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n //\n // We want to demonstrate that this below multiplication falls under bullet-point (2):\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n // I.e. we want to demonstrate that `demo_x_not_square` has Legendre symbol 1\n // (i.e. that it is a square), so we prove that it is square below.\n // Why do we want to prove that it has LS 1?\n // Well, since it was computed with a known-non-residue, its squareness implies we're\n // in case 2 (something multiplied by a known-non-residue yielding a result which\n // has a LS of 1), which implies that x must be a non-square. The unconstrained\n // function gave us the sqrt of demo_x_not_square, so all we need to do is\n // assert its squareness:\n assert(\n hint * hint == demo_x_not_square,\n f\"The hint {hint} does not demonstrate that {x} is not a square\",\n );\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167,\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes: [u8; 31] = field.to_be_bytes();\n assert_eq(inputs, return_bytes);\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158,\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2: [u8; 31] = field2.to_be_bytes();\n\n assert_eq(return_bytes2, return_bytes);\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes: [u8; 32] = max_value.to_be_bytes();\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n\n#[test]\nunconstrained fn sqrt_valid_test() {\n let x = 16; // examples: 16, 9, 25, 81\n let result = sqrt(x);\n assert(result.is_some());\n assert_eq(result.unwrap() * result.unwrap(), x);\n}\n\n#[test]\nunconstrained fn sqrt_invalid_test() {\n let x = KNOWN_NON_RESIDUE; // has no square root in the field\n let result = sqrt(x);\n assert(result.is_none());\n}\n\n#[test]\nunconstrained fn sqrt_zero_test() {\n let result = sqrt(0);\n assert(result.is_some());\n assert_eq(result.unwrap(), 0);\n}\n\n#[test]\nunconstrained fn sqrt_one_test() {\n let result = sqrt(1);\n assert(result.is_some());\n assert_eq(result.unwrap() * result.unwrap(), 1);\n}\n\n#[test]\nunconstrained fn field_from_bytes_empty_test() {\n let empty: [u8; 0] = [];\n let result = field_from_bytes(empty, true);\n assert_eq(result, 0);\n\n let result_le = field_from_bytes(empty, false);\n assert_eq(result_le, 0);\n}\n\n#[test]\nunconstrained fn field_from_bytes_little_endian_test() {\n // Test little-endian conversion: [0x01, 0x02] should be 0x0201 = 513\n let bytes = [0x01, 0x02];\n let result_le = field_from_bytes(bytes, false);\n assert_eq(result_le, 0x0201);\n\n // Compare with big-endian: [0x01, 0x02] should be 0x0102 = 258\n let result_be = field_from_bytes(bytes, true);\n assert_eq(result_be, 0x0102);\n}\n\n#[test]\nunconstrained fn pow_test() {\n assert_eq(pow(2, 0), 1);\n assert_eq(pow(2, 1), 2);\n assert_eq(pow(2, 10), 1024);\n assert_eq(pow(3, 5), 243);\n assert_eq(pow(0, 5), 0);\n assert_eq(pow(1, 100), 1);\n}\n\n#[test]\nunconstrained fn min_test() {\n assert_eq(min(5, 10), 5);\n assert_eq(min(10, 5), 5);\n assert_eq(min(7, 7), 7);\n assert_eq(min(0, 1), 0);\n}\n\n#[test]\nunconstrained fn full_field_comparison_test() {\n assert(full_field_less_than(5, 10));\n assert(!full_field_less_than(10, 5));\n assert(!full_field_less_than(5, 5));\n\n assert(full_field_greater_than(10, 5));\n assert(!full_field_greater_than(5, 10));\n assert(!full_field_greater_than(5, 5));\n}\n\n#[test]\nunconstrained fn sqrt_has_two_roots_test() {\n // Every square has two roots: r and -r (i.e., p - r)\n // sqrt(16) can return 4 or -4\n let x = 16;\n let result = sqrt(x).unwrap();\n assert(result * result == x);\n // The other root is -result\n let other_root = 0 - result;\n assert(other_root * other_root == x);\n // Verify they are different (unless x = 0)\n assert(result != other_root);\n\n // Same for 9: roots are 3 and -3\n let y = 9;\n let result_y = sqrt(y).unwrap();\n assert(result_y * result_y == y);\n let other_root_y = 0 - result_y;\n assert(other_root_y * other_root_y == y);\n assert(result_y != other_root_y);\n}\n\n#[test]\nunconstrained fn sqrt_negative_one_test() {\n let x = 0 - 1;\n let result = sqrt(x);\n assert(result.unwrap() == 0x30644e72e131a029048b6e193fd841045cea24f6fd736bec231204708f703636);\n}\n\n#[test]\nunconstrained fn validate_sqrt_hint_valid_test() {\n // 4 is a valid sqrt of 16\n validate_sqrt_hint(16, 4);\n // -4 is also a valid sqrt of 16\n validate_sqrt_hint(16, 0 - 4);\n // 0 is a valid sqrt of 0\n validate_sqrt_hint(0, 0);\n // 1 is a valid sqrt of 1\n validate_sqrt_hint(1, 1);\n // -1 is also a valid sqrt of 1\n validate_sqrt_hint(1, 0 - 1);\n}\n\n#[test(should_fail_with = \"is not the sqrt of x\")]\nunconstrained fn validate_sqrt_hint_invalid_test() {\n // 5 is not a valid sqrt of 16\n validate_sqrt_hint(16, 5);\n}\n\n#[test]\nunconstrained fn validate_not_sqrt_hint_valid_test() {\n // 5 (KNOWN_NON_RESIDUE) is not a square.\n let x = KNOWN_NON_RESIDUE;\n let hint = tonelli_shanks_sqrt(x * KNOWN_NON_RESIDUE);\n validate_not_sqrt_hint(x, hint);\n}\n\n#[test(should_fail_with = \"0 has a square root\")]\nunconstrained fn validate_not_sqrt_hint_zero_test() {\n // 0 has a square root, so we cannot claim it is not square\n validate_not_sqrt_hint(0, 0);\n}\n\n#[test(should_fail_with = \"does not demonstrate that\")]\nunconstrained fn validate_not_sqrt_hint_wrong_hint_test() {\n // Provide a wrong hint for a non-square\n let x = KNOWN_NON_RESIDUE;\n validate_not_sqrt_hint(x, 123);\n}\n"
|
|
6903
6923
|
},
|
|
6904
|
-
"
|
|
6924
|
+
"408": {
|
|
6905
6925
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/reader.nr",
|
|
6906
6926
|
"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_u64(&mut self) -> u64 {\n self.read() as u64\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() != 0\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 peek_offset(&mut self, offset: u32) -> Field {\n self.data[self.offset + offset]\n }\n\n pub fn advance_offset(&mut self, offset: u32) {\n self.offset += offset;\n }\n\n pub fn finish(self) {\n assert_eq(self.offset, self.data.len(), \"Reader did not read all data\");\n }\n}\n"
|
|
6907
6927
|
},
|
|
6908
|
-
"
|
|
6928
|
+
"409": {
|
|
6909
6929
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/serialization.nr",
|
|
6910
6930
|
"source": "use crate::{reader::Reader, writer::Writer};\n\n// docs:start:serialize\n/// Trait for serializing Noir types into arrays of Fields.\n///\n/// An implementation of the Serialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait (and Deserialize) are\n/// typically used to communicate between Noir and TypeScript (via oracles and function arguments).\n///\n/// # On Following Noir's Intrinsic Serialization\n/// When calling a Noir function from TypeScript (TS), first the function arguments are serialized into an array\n/// of fields. This array is then included in the initial witness. Noir's intrinsic serialization is then used\n/// to deserialize the arguments from the witness. When the same Noir function is called from Noir this Serialize trait\n/// is used instead of the serialization in TS. For this reason we need to have a match between TS serialization,\n/// Noir's intrinsic serialization and the implementation of this trait. If there is a mismatch, the function calls\n/// fail with an arguments hash mismatch error message.\n///\n/// # Associated Constants\n/// * `N` - The length of the output Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Serialize for str<N> {\n/// let N: u32 = N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut writer: Writer<Self::N> = Writer::new();\n/// self.stream_serialize(&mut writer);\n/// writer.finish()\n/// }\n///\n/// fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n/// let bytes = self.as_bytes();\n/// for i in 0..bytes.len() {\n/// writer.write(bytes[i] as Field);\n/// }\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize {\n let N: u32;\n\n fn serialize(self) -> [Field; Self::N];\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>);\n}\n\n/// Generates a `Serialize` trait implementation for a struct type.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A quoted code block containing the trait implementation\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Log<N> {\n/// fields: [Field; N],\n/// length: u32\n/// }\n/// ```\n///\n/// This function generates code equivalent to:\n/// ```\n/// impl<let N: u32> Serialize for Log<N> {\n/// let N: u32 = <[Field; N] as Serialize>::N + <u32 as Serialize>::N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut writer: Writer<Self::N> = Writer::new();\n/// self.stream_serialize(&mut writer);\n/// writer.finish()\n/// }\n///\n/// #[inline_always]\n/// fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n/// Serialize::stream_serialize(self.fields, writer);\n/// Serialize::stream_serialize(self.length, writer);\n/// }\n/// }\n/// ```\npub comptime fn derive_serialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n\n // We care only about the name and type so we drop the last item of the tuple\n let params = nested_struct.0.fields(nested_struct.1).map(|(name, typ, _)| (name, typ));\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Serialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_serialize_clause = get_where_trait_clause(s, quote {Serialize});\n\n let params_len_quote = get_params_len_quote(params);\n\n let function_body = params\n .map(|(name, _typ): (Quoted, Type)| {\n quote {\n $crate::serialization::Serialize::stream_serialize(self.$name, writer);\n }\n })\n .join(quote {});\n\n quote {\n impl$generics_declarations $crate::serialization::Serialize for $typ\n $where_serialize_clause\n {\n let N: u32 = $params_len_quote;\n\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n $crate::serialization::Serialize::stream_serialize(self, &mut writer);\n writer.finish()\n }\n\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n $function_body\n }\n }\n }\n}\n\n// docs:start:deserialize\n/// Trait for deserializing Noir types from arrays of Fields.\n///\n/// An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait is typically used when\n/// deserializing return values from function calls in Noir. Since the same function could be called from TypeScript\n/// (TS), in which case the TS deserialization would get used, we need to have a match between the 2.\n///\n/// # Associated Constants\n/// * `N` - The length of the input Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let M: u32> Deserialize for str<M> {\n/// let N: u32 = M;\n///\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// let mut reader = Reader::new(fields);\n/// let result = Self::stream_deserialize(&mut reader);\n/// reader.finish();\n/// result\n/// }\n///\n/// fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n/// let mut bytes = [0 as u8; M];\n/// for i in 0..M {\n/// bytes[i] = reader.read() as u8;\n/// }\n/// str::<M>::from(bytes)\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize {\n let N: u32;\n\n fn deserialize(fields: [Field; Self::N]) -> Self;\n\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self;\n}\n\n/// Generates a `Deserialize` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Deserialize` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Deserialize for MyStruct {\n/// let N: u32 = <AztecAddress as Deserialize>::N + <Field as Deserialize>::N;\n///\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// let mut reader = Reader::new(fields);\n/// let result = Self::stream_deserialize(&mut reader);\n/// reader.finish();\n/// result\n/// }\n///\n/// #[inline_always]\n/// fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n/// let x = <AztecAddress as Deserialize>::stream_deserialize(reader);\n/// let y = <Field as Deserialize>::stream_deserialize(reader);\n/// Self { x, y }\n/// }\n/// }\n/// ```\npub comptime fn derive_deserialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Deserialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_deserialize_clause = get_where_trait_clause(s, quote {Deserialize});\n\n // The following will give us:\n // <type_of_struct_member_1 as Deserialize>::N + <type_of_struct_member_2 as Deserialize>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::serialization::Deserialize>::N\n }\n })\n .join(quote {+})\n } else {\n quote {0}\n };\n\n // For structs containing a single member, we can enhance performance by directly deserializing the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let function_body = if params.len() > 1 {\n // This generates deserialization code for each struct member and concatenates them together.\n let deserialization_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let $param_name = <$param_type as Deserialize>::stream_deserialize(reader);\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n // This will give us e.g. `a, b, c` for a struct with three fields named `a`, `b`, and `c`.\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n $deserialization_of_struct_members\n\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::serialization::Deserialize::stream_deserialize(reader) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::serialization::Deserialize for $typ\n $where_deserialize_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $function_body\n }\n }\n }\n}\n\n/// Generates a quoted expression that computes the total serialized length of function parameters.\n///\n/// # Parameters\n/// * `params` - An array of tuples where each tuple contains a quoted parameter name and its Type. The type needs\n/// to implement the Serialize trait.\n///\n/// # Returns\n/// A quoted expression that evaluates to:\n/// * `0` if there are no parameters\n/// * `(<type1 as Serialize>::N + <type2 as Serialize>::N + ...)` for one or more parameters\ncomptime fn get_params_len_quote(params: [(Quoted, Type)]) -> Quoted {\n if params.len() == 0 {\n quote { 0 }\n } else {\n let params_quote_without_parentheses = params\n .map(|(_, param_type): (Quoted, Type)| {\n quote {\n <$param_type as $crate::serialization::Serialize>::N\n }\n })\n .join(quote {+});\n quote { ($params_quote_without_parentheses) }\n }\n}\n\ncomptime fn get_generics_declarations(s: TypeDefinition) -> Quoted {\n let generics = s.generics();\n\n if generics.len() > 0 {\n let generics_declarations_items = generics\n .map(|(name, maybe_integer_typ)| {\n // The second item in the generics tuple is an Option of an integer type that is Some only if\n // the generic is numeric.\n if maybe_integer_typ.is_some() {\n // The generic is numeric, so we return a quote defined as e.g. \"let N: u32\"\n let integer_type = maybe_integer_typ.unwrap();\n quote {let $name: $integer_type}\n } else {\n // The generic is not numeric, so we return a quote containing the name of the generic (e.g. \"T\")\n quote {$name}\n }\n })\n .join(quote {,});\n quote {<$generics_declarations_items>}\n } else {\n // The struct doesn't have any generics defined, so we just return an empty quote.\n quote {}\n }\n}\n\ncomptime fn get_where_trait_clause(s: TypeDefinition, trait_name: Quoted) -> Quoted {\n let generics = s.generics();\n\n // The second item in the generics tuple is an Option of an integer type that is Some only if the generic is\n // numeric.\n let non_numeric_generics =\n generics.filter(|(_, maybe_integer_typ)| maybe_integer_typ.is_none());\n\n if non_numeric_generics.len() > 0 {\n let non_numeric_generics_declarations =\n non_numeric_generics.map(|(name, _)| quote {$name: $trait_name}).join(quote {,});\n quote {where $non_numeric_generics_declarations}\n } else {\n // There are no non-numeric generics, so we return an empty quote.\n quote {}\n }\n}\n"
|
|
6911
6931
|
},
|
|
6912
|
-
"
|
|
6932
|
+
"411": {
|
|
6913
6933
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/type_impls.nr",
|
|
6914
6934
|
"source": "use crate::{reader::Reader, serialization::{Deserialize, Serialize}, writer::Writer};\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint;\nuse dep::std::embedded_curve_ops::EmbeddedCurveScalar;\n\nglobal U1_SERIALIZED_LEN: u32 = 1;\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 1;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> bool {\n reader.read() != 0\n }\n}\n\nimpl Serialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u1\n }\n}\n\nimpl Serialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8\n }\n}\n\nimpl Serialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16\n }\n}\n\nimpl Serialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32\n }\n}\n\nimpl Serialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64\n }\n}\n\nimpl Serialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u128\n }\n}\n\nimpl Serialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self);\n }\n}\n\nimpl Deserialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read()\n }\n}\n\nimpl Serialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u8 as Field);\n }\n}\n\nimpl Deserialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8 as i8\n }\n}\n\nimpl Serialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u16 as Field);\n }\n}\n\nimpl Deserialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16 as i16\n }\n}\n\nimpl Serialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u32 as Field);\n }\n}\n\nimpl Deserialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32 as i32\n }\n}\n\nimpl Serialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u64 as Field);\n }\n}\n\nimpl Deserialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Serialize for [T; M]\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n for i in 0..M {\n self[i].stream_serialize(writer);\n }\n }\n}\n\nimpl<T, let M: u32> Deserialize for [T; M]\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut result: [T; M] = std::mem::zeroed();\n for i in 0..M {\n result[i] = T::stream_deserialize(reader);\n }\n result\n }\n}\n\nimpl<T> Serialize for Option<T>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N + 1;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write_bool(self.is_some());\n if self.is_some() {\n self.unwrap_unchecked().stream_serialize(writer);\n } else {\n writer.advance_offset(<T as Serialize>::N);\n }\n }\n}\n\nimpl<T> Deserialize for Option<T>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n if reader.read_bool() {\n Option::some(<T as Deserialize>::stream_deserialize(reader))\n } else {\n reader.advance_offset(<T as Deserialize>::N);\n Option::none()\n }\n }\n}\n\nglobal SCALAR_SIZE: u32 = 2;\n\nimpl Serialize for EmbeddedCurveScalar {\n\n let N: u32 = SCALAR_SIZE;\n\n fn serialize(self) -> [Field; SCALAR_SIZE] {\n [self.lo, self.hi]\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.lo);\n writer.write(self.hi);\n }\n}\n\nimpl Deserialize for EmbeddedCurveScalar {\n let N: u32 = SCALAR_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { lo: fields[0], hi: fields[1] }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { lo: reader.read(), hi: reader.read() }\n }\n}\n\nglobal POINT_SIZE: u32 = 3;\n\nimpl Serialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn serialize(self) -> [Field; Self::N] {\n [self.x, self.y, self.is_infinite as Field]\n }\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.x);\n writer.write(self.y);\n writer.write(self.is_infinite as Field);\n }\n}\n\nimpl Deserialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { x: fields[0], y: fields[1], is_infinite: fields[2] != 0 }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { x: reader.read(), y: reader.read(), is_infinite: reader.read_bool() }\n }\n}\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let u8_arr = <[u8; Self::N] as Deserialize>::stream_deserialize(reader);\n str::<Self::N>::from(u8_arr)\n }\n}\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.as_bytes().stream_serialize(writer);\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n let payload_len = Self::N - 1;\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n let len = reader.peek_offset(payload_len) as u32;\n\n for i in 0..M {\n if i < len {\n new_bounded_vec.push(<T as Deserialize>::stream_deserialize(reader));\n }\n }\n\n // +1 for the length of the BoundedVec\n reader.advance_offset((M - len) * <T as Deserialize>::N + 1);\n\n new_bounded_vec\n }\n}\n\n// This may cause issues if used as program input, because noir disallows empty arrays for program input.\n// I think this is okay because I don't foresee a unit type being used as input. But leaving this comment as a hint\n// if someone does run into this in the future.\nimpl Deserialize for () {\n let N: u32 = 0;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(_reader: &mut Reader<K>) -> Self {\n ()\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Serialize for BoundedVec<T, M>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M + 1; // +1 for the length of the BoundedVec\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.storage().stream_serialize(writer);\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n writer.write_u32(self.len() as u32);\n }\n}\n\n// Create a slice of the given length with each element made from `f(i)` where `i` is the current index\ncomptime fn make_slice<Env, T>(length: u32, f: fn[Env](u32) -> T) -> [T] {\n let mut slice = @[];\n for i in 0..length {\n slice = slice.push_back(f(i));\n }\n slice\n}\n\n// Implements Serialize and Deserialize for an arbitrary tuple type\ncomptime fn impl_serialize_for_tuple(_m: Module, length: u32) -> Quoted {\n // `T0`, `T1`, `T2`\n let type_names = make_slice(length, |i| f\"T{i}\".quoted_contents());\n\n // `result0`, `result1`, `result2`\n let result_names = make_slice(length, |i| f\"result{i}\".quoted_contents());\n\n // `T0, T1, T2`\n let field_generics = type_names.join(quote [,]);\n\n // `<T0 as Serialize>::N + <T1 as Serialize>::N + <T2 as Serialize>::N`\n let full_size_serialize = type_names\n .map(|type_name| quote {\n <$type_name as Serialize>::N\n })\n .join(quote [+]);\n\n // `<T0 as Deserialize>::N + <T1 as Deserialize>::N + <T2 as Deserialize>::N`\n let full_size_deserialize = type_names\n .map(|type_name| quote {\n <$type_name as Deserialize>::N\n })\n .join(quote [+]);\n\n // `T0: Serialize, T1: Serialize, T2: Serialize,`\n let serialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Serialize,\n })\n .join(quote []);\n\n // `T0: Deserialize, T1: Deserialize, T2: Deserialize,`\n let deserialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Deserialize,\n })\n .join(quote []);\n\n // Statements to serialize each field\n let serialized_fields = type_names\n .mapi(|i, _type_name| quote {\n $crate::serialization::Serialize::stream_serialize(self.$i, writer);\n })\n .join(quote []);\n\n // Statements to deserialize each field\n let deserialized_fields = type_names\n .mapi(|i, type_name| {\n let result_name = result_names[i];\n quote {\n let $result_name = <$type_name as $crate::serialization::Deserialize>::stream_deserialize(reader);\n }\n })\n .join(quote []);\n let deserialize_results = result_names.join(quote [,]);\n\n quote {\n impl<$field_generics> Serialize for ($field_generics) where $serialize_constraints {\n let N: u32 = $full_size_serialize;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n\n $serialized_fields\n }\n }\n\n impl<$field_generics> Deserialize for ($field_generics) where $deserialize_constraints {\n let N: u32 = $full_size_deserialize;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n \n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $deserialized_fields\n ($deserialize_results)\n }\n }\n }\n}\n\n// Keeping these manual impls. They are more efficient since they do not\n// require copying sub-arrays from any serialized arrays.\nimpl<T1> Serialize for (T1,)\nwhere\n T1: Serialize,\n{\n let N: u32 = <T1 as Serialize>::N;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: crate::writer::Writer<Self::N> = crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.0.stream_serialize(writer);\n }\n}\n\nimpl<T1> Deserialize for (T1,)\nwhere\n T1: Deserialize,\n{\n let N: u32 = <T1 as Deserialize>::N;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n (<T1 as Deserialize>::stream_deserialize(reader),)\n }\n}\n\n#[impl_serialize_for_tuple(2)]\n#[impl_serialize_for_tuple(3)]\n#[impl_serialize_for_tuple(4)]\n#[impl_serialize_for_tuple(5)]\n#[impl_serialize_for_tuple(6)]\nmod impls {\n use crate::serialization::{Deserialize, Serialize};\n}\n"
|
|
6915
6935
|
},
|
|
6916
|
-
"
|
|
6936
|
+
"412": {
|
|
6917
6937
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/writer.nr",
|
|
6918
6938
|
"source": "pub struct Writer<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Writer<N> {\n pub fn new() -> Self {\n Self { data: [0; N], offset: 0 }\n }\n\n pub fn write(&mut self, value: Field) {\n self.data[self.offset] = value;\n self.offset += 1;\n }\n\n pub fn write_u32(&mut self, value: u32) {\n self.write(value as Field);\n }\n\n pub fn write_u64(&mut self, value: u64) {\n self.write(value as Field);\n }\n\n pub fn write_bool(&mut self, value: bool) {\n self.write(value as Field);\n }\n\n pub fn write_array<let K: u32>(&mut self, value: [Field; K]) {\n for i in 0..K {\n self.data[i + self.offset] = value[i];\n }\n self.offset += K;\n }\n\n pub fn write_struct<T, let K: u32>(&mut self, value: T, serialize: fn(T) -> [Field; K]) {\n self.write_array(serialize(value));\n }\n\n pub fn write_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n value: [T; C],\n serialize: fn(T) -> [Field; K],\n ) {\n for i in 0..C {\n self.write_struct(value[i], serialize);\n }\n }\n\n pub fn advance_offset(&mut self, offset: u32) {\n self.offset += offset;\n }\n\n pub fn finish(self) -> [Field; N] {\n assert_eq(self.offset, self.data.len(), \"Writer did not write all data\");\n self.data\n }\n}\n"
|
|
6919
6939
|
},
|
|
@@ -6921,7 +6941,7 @@
|
|
|
6921
6941
|
"path": "std/option.nr",
|
|
6922
6942
|
"source": "use crate::cmp::{Eq, Ord, Ordering};\nuse crate::default::Default;\nuse crate::hash::{Hash, Hasher};\n\npub struct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::mem::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some {\n self._value\n } else {\n default\n }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n pub fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some {\n self\n } else {\n other\n }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some {\n self\n } else {\n default()\n }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some {\n Option::none()\n } else {\n self\n }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T>\nwhere\n T: Eq,\n{\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T>\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T>\nwhere\n T: Ord,\n{\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n"
|
|
6923
6943
|
},
|
|
6924
|
-
"
|
|
6944
|
+
"422": {
|
|
6925
6945
|
"path": "/home/aztec-dev/nargo/github.com/noir-lang/schnorr/v0.1.3/src/lib.nr",
|
|
6926
6946
|
"source": "use std::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul};\nuse std::hash::{blake2s, pedersen_hash};\n\n// the multiples of BN_P that are still less than 2^254 split into (lo, hi)\nglobal BN_P_m: [(Field, Field); 6] = [\n (0, 0),\n (201385395114098847380338600778089168199, 64323764613183177041862057485226039389),\n (62488423307259231297302594124410124942, 128647529226366354083724114970452078779),\n (263873818421358078677641194902499293141, 192971293839549531125586172455678118168),\n (124976846614518462594605188248820249884, 257295058452732708167448229940904157558),\n (326362241728617309974943789026909418083, 321618823065915885209310287426130196947),\n];\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\npub fn verify_signature<let N: u32>(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; N],\n) -> bool {\n //scalar lo/hi from bytes\n let sig_s = scalar_from_bytes(signature, 0);\n let sig_e = scalar_from_bytes(signature, 32);\n // pub_key is on Grumpkin curve\n let mut is_ok = (public_key.y * public_key.y == public_key.x * public_key.x * public_key.x - 17)\n & (!public_key.is_infinite);\n\n if ((sig_s.lo != 0) | (sig_s.hi != 0)) & ((sig_e.lo != 0) | (sig_e.hi != 0)) {\n let (r_is_infinite, result) =\n calculate_signature_challenge(public_key, sig_s, sig_e, message);\n\n is_ok &= !r_is_infinite;\n for i in 0..32 {\n is_ok &= result[i] == signature[32 + i];\n }\n } else {\n is_ok = false;\n }\n is_ok\n}\n\npub fn assert_valid_signature<let N: u32>(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; N],\n) {\n //scalar lo/hi from bytes\n let sig_s = scalar_from_bytes(signature, 0);\n let sig_e = scalar_from_bytes(signature, 32);\n\n // assert pub_key is on Grumpkin curve\n assert(public_key.y * public_key.y == public_key.x * public_key.x * public_key.x - 17);\n assert(public_key.is_infinite == false);\n // assert signature is not null\n assert((sig_s.lo != 0) | (sig_s.hi != 0));\n assert((sig_e.lo != 0) | (sig_e.hi != 0));\n\n let (r_is_infinite, result) = calculate_signature_challenge(public_key, sig_s, sig_e, message);\n\n assert(!r_is_infinite);\n for i in 0..32 {\n assert(result[i] == signature[32 + i]);\n }\n}\n\nfn calculate_signature_challenge<let N: u32>(\n public_key: EmbeddedCurvePoint,\n sig_s: EmbeddedCurveScalar,\n sig_e: EmbeddedCurveScalar,\n message: [u8; N],\n) -> (bool, [u8; 32]) {\n let g1 = EmbeddedCurvePoint {\n x: 1,\n y: 17631683881184975370165255887551781615748388533673675138860,\n is_infinite: false,\n };\n let reduced_sig_e = normalize_signature(sig_e);\n let r = multi_scalar_mul([g1, public_key], [sig_s, reduced_sig_e]);\n // compare the _hashes_ rather than field elements modulo r\n let pedersen_hash = pedersen_hash([r.x, public_key.x, public_key.y]);\n let pde: [u8; 32] = pedersen_hash.to_be_bytes();\n\n let mut hash_input = [0; N + 32];\n for i in 0..32 {\n hash_input[i] = pde[i];\n }\n for i in 0..N {\n hash_input[32 + i] = message[i];\n }\n\n let result = blake2s(hash_input);\n (r.is_infinite, result)\n}\n\nunconstrained fn __gt(a: Field, b: Field) -> bool {\n b.lt(a)\n}\n\n// gets the quotient of lo/hi when divided by BN254_Fq modulus\nunconstrained fn __get_quotient(hi: Field, lo: Field) -> u32 {\n let mut q: u32 = 0;\n let mut r_hi = hi;\n let mut r_lo = lo;\n let MODULUS = BN_P_m[1];\n\n for _ in 1..6 {\n // check if rhi, rlo is larger than BN_P\n let borrow = r_lo.lt(MODULUS.0);\n\n if borrow {\n r_lo = r_lo + TWO_POW_128;\n // rlo is always larger than BN_P lo now\n r_hi = r_hi - 1;\n }\n\n let MODULUS_hi = MODULUS.1;\n\n let gt_flag = !r_hi.lt(MODULUS_hi);\n\n if gt_flag {\n r_hi = r_hi - MODULUS.1;\n r_lo = r_lo - MODULUS.0;\n if TWO_POW_128.lt(r_lo) | TWO_POW_128.lt(r_hi) {\n break;\n }\n q += 1;\n }\n }\n q\n}\n\n// this method reduces the signature to the range [0, BN254_Fq_MODULUS)\nfn normalize_signature(sig_e: EmbeddedCurveScalar) -> EmbeddedCurveScalar {\n let mut hi = sig_e.hi;\n let mut lo = sig_e.lo;\n // get the quotient\n let q = unsafe { __get_quotient(hi, lo) };\n let MODULUSmq = (BN_P_m[q].0, BN_P_m[q].1);\n let MODULUS = BN_P_m[1];\n // remove MODULUS * q from lo/hi\n let borrow = unsafe { __gt(MODULUSmq.0, lo) };\n // rlo, rhi is the signature without the multiple of MODULUS\n let rlo = lo - MODULUSmq.0 + borrow as Field * TWO_POW_128;\n let rhi = hi - borrow as Field - MODULUSmq.1;\n // now we validate that rlo and rhi are positive\n rlo.assert_max_bit_size::<128>();\n rhi.assert_max_bit_size::<128>();\n // validate that rlo, rhi is smaller than MODULUS\n // if the lo is larger than the modulus lo we have to get a borrow\n let borrow = unsafe { __gt(rlo, MODULUS.0) };\n let rplo = MODULUS.0 - rlo + borrow as Field * TWO_POW_128;\n let rphi = MODULUS.1 - rhi - borrow as Field;\n // check that rplo and rphi are positive\n rplo.assert_max_bit_size::<128>();\n rphi.assert_max_bit_size::<128>();\n EmbeddedCurveScalar::new(rlo, rhi)\n}\n\n//Bytes to scalar: take the first (after the specified offset) 16 bytes of the input as the lo value, and the next 16 bytes as the hi value\nfn scalar_from_bytes(bytes: [u8; 64], offset: u32) -> EmbeddedCurveScalar {\n let mut v: Field = 1;\n let mut lo: Field = 0;\n let mut hi: Field = 0;\n for i in 0..16 {\n lo = lo + (bytes[offset + 31 - i] as Field) * v;\n hi = hi + (bytes[offset + 15 - i] as Field) * v;\n v = v * 256;\n }\n let sig_s = EmbeddedCurveScalar::new(lo, hi);\n sig_s\n}\n\nmod test {\n use super::normalize_signature;\n use super::verify_signature;\n use std::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar};\n\n #[test]\n fn test_zero_signature() {\n let public_key: EmbeddedCurvePoint = EmbeddedCurvePoint {\n x: 1,\n y: 17631683881184975370165255887551781615748388533673675138860,\n is_infinite: false,\n };\n let signature: [u8; 64] = [0; 64];\n let message: [u8; _] = [2; 64]; // every message\n let verified = verify_signature(public_key, signature, message);\n assert(!verified);\n }\n\n #[test]\n fn smoke_test() {\n let message: [u8; 10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n let pub_key_x: Field = 0x04b260954662e97f00cab9adb773a259097f7a274b83b113532bce27fa3fb96a;\n let pub_key_y: Field = 0x2fd51571db6c08666b0edfbfbc57d432068bccd0110a39b166ab243da0037197;\n let signature: [u8; 64] = [\n 1, 13, 119, 112, 212, 39, 233, 41, 84, 235, 255, 93, 245, 172, 186, 83, 157, 253, 76,\n 77, 33, 128, 178, 15, 214, 67, 105, 107, 177, 234, 77, 48, 27, 237, 155, 84, 39, 84,\n 247, 27, 22, 8, 176, 230, 24, 115, 145, 220, 254, 122, 135, 179, 171, 4, 214, 202, 64,\n 199, 19, 84, 239, 138, 124, 12,\n ];\n\n let pub_key = EmbeddedCurvePoint { x: pub_key_x, y: pub_key_y, is_infinite: false };\n let valid_signature = verify_signature(pub_key, signature, message);\n assert(valid_signature);\n super::assert_valid_signature(pub_key, signature, message);\n }\n\n #[test]\n fn test_normalize_signature() {\n let sig_e = EmbeddedCurveScalar::new(\n 201385395114098847380338600778112493540,\n 64323764613183177041862057485226039389,\n );\n let normalized = normalize_signature(sig_e);\n let expected = EmbeddedCurveScalar::new(23325341, 0);\n assert(normalized == expected);\n }\n\n #[test]\n fn test_normalize_signature_2() {\n let sig_e = EmbeddedCurveScalar::new(\n 263873818421358078677641194902522618482,\n 192971293839549531125586172455678118168,\n );\n let normalized = normalize_signature(sig_e);\n let expected = EmbeddedCurveScalar::new(23325341, 0);\n assert(normalized == expected);\n }\n\n}\n\nmod bench {\n use super::{assert_valid_signature, verify_signature};\n use std::embedded_curve_ops::EmbeddedCurvePoint;\n\n #[export]\n pub fn bench_verify_signature(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; 32],\n ) -> bool {\n verify_signature(public_key, signature, message)\n }\n\n #[export]\n pub fn bench_assert_valid_signature(\n public_key: EmbeddedCurvePoint,\n signature: [u8; 64],\n message: [u8; 32],\n ) {\n assert_valid_signature(public_key, signature, message)\n }\n}\n"
|
|
6927
6947
|
},
|
|
@@ -6935,7 +6955,7 @@
|
|
|
6935
6955
|
},
|
|
6936
6956
|
"51": {
|
|
6937
6957
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/account/schnorr_account_contract/src/main.nr",
|
|
6938
|
-
"source": "mod public_key_note;\n\n// Account contract that uses Schnorr signatures for authentication.\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\nuse dep::aztec::macros::aztec;\n\n#[aztec]\npub contract SchnorrAccount {\n use dep::aztec::{\n authwit::{\n account::AccountActions,\n auth::{compute_authwit_message_hash, compute_authwit_nullifier},\n entrypoint::app::AppPayload,\n },\n context::PrivateContext,\n hash::compute_siloed_nullifier,\n macros::{\n functions::{external, initializer, noinitcheck,
|
|
6958
|
+
"source": "mod public_key_note;\n\n// Account contract that uses Schnorr signatures for authentication.\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\nuse dep::aztec::macros::aztec;\n\n#[aztec]\npub contract SchnorrAccount {\n use dep::aztec::{\n authwit::{\n account::AccountActions,\n auth::{compute_authwit_message_hash, compute_authwit_nullifier},\n entrypoint::app::AppPayload,\n },\n context::PrivateContext,\n hash::compute_siloed_nullifier,\n macros::{\n functions::{allow_phase_change, external, initializer, noinitcheck, view},\n storage::storage,\n },\n messages::message_delivery::MessageDelivery,\n oracle::{\n auth_witness::get_auth_witness,\n get_nullifier_membership_witness::get_low_nullifier_membership_witness,\n notes::{get_sender_for_tags, set_sender_for_tags},\n },\n protocol::address::AztecAddress,\n state_vars::SinglePrivateImmutable,\n };\n\n use crate::public_key_note::PublicKeyNote;\n\n #[storage]\n struct Storage<Context> {\n // docs:start:public_key\n signing_public_key: SinglePrivateImmutable<PublicKeyNote, Context>,\n // docs:end:public_key\n }\n\n // Constructs the contract\n #[external(\"private\")]\n #[initializer]\n fn constructor(signing_pub_key_x: Field, signing_pub_key_y: Field) {\n let pub_key_note = PublicKeyNote { x: signing_pub_key_x, y: signing_pub_key_y };\n\n // Safety: The sender for tags is only used to compute unconstrained shared secrets for emitting logs.\n // Since this value is only used for unconstrained tagging and not for any constrained logic,\n // it is safe to load from an unconstrained context.\n // TODO(#15752): Improve the sender_for_tags handling here when the original sender is undefined.\n let original_sender = unsafe { get_sender_for_tags().unwrap_or(self.address) };\n\n // We set the sender for tags to this contract because we don't want to force the user corresponding to this\n // account to add the account deployer as a sender to their PXE. By setting it to this contract, user's PXE\n // will manage to find the note even if the account deployer is not registered as a sender (i.e\n // `pxe.registerSender(accountDeployer)` was not called)\n\n // Safety: Comment from above applies here as well.\n unsafe { set_sender_for_tags(self.address) };\n // The note message gets delivered to the note owner which is set by the SinglePrivateImmutable to be this\n // contract.\n self.storage.signing_public_key.initialize(pub_key_note).deliver(\n MessageDelivery.ONCHAIN_CONSTRAINED,\n );\n // Safety: Comment from above applies here as well.\n unsafe { set_sender_for_tags(original_sender) };\n }\n\n // @dev: If you globally change the entrypoint signature don't forget to update account_entrypoint.ts file (specifically `getEntrypointAbi()`).\n // using noinitcheck is an optimization, it reduces gates by omitting a check that the contract has been initialized\n #[external(\"private\")]\n #[noinitcheck]\n #[allow_phase_change]\n fn entrypoint(app_payload: AppPayload, fee_payment_method: u8, cancellable: bool) {\n // Safety: The sender for tags is only used to compute unconstrained shared secrets for emitting logs.\n // Since this value is only used for unconstrained tagging and not for any constrained logic,\n // it is safe to set from a constrained context.\n unsafe { set_sender_for_tags(self.address) };\n\n let actions = AccountActions::init(self.context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payment_method, cancellable);\n }\n\n #[external(\"private\")]\n #[noinitcheck]\n #[view]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(self.context, is_valid_impl);\n actions.verify_private_authwit(inner_hash)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, outer_hash: Field) -> bool {\n // docs:start:is_valid_impl\n // Load public key from storage\n let storage = Storage::init(context);\n let public_key = storage.signing_public_key.get_note();\n\n // Load auth witness\n // Safety: The witness is only used as a \"magical value\" that makes the signature verification below pass.\n // Hence it's safe.\n let witness: [Field; 64] = unsafe { get_auth_witness(outer_hash) };\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n let pub_key = std::embedded_curve_ops::EmbeddedCurvePoint {\n x: public_key.x,\n y: public_key.y,\n is_infinite: false,\n };\n // Verify signature of the payload bytes\n schnorr::verify_signature(pub_key, signature, outer_hash.to_be_bytes::<32>())\n // docs:end:is_valid_impl\n }\n\n /**\n * @notice Helper function to check validity of private authwitnesses\n * @param consumer The address of the consumer of the message\n * @param message_hash The message hash of the message to check the validity\n * @return True if the message_hash can be consumed, false otherwise\n */\n #[external(\"utility\")]\n unconstrained fn lookup_validity(consumer: AztecAddress, inner_hash: Field) -> bool {\n let public_key = self.storage.signing_public_key.view_note();\n\n let message_hash = compute_authwit_message_hash(\n consumer,\n self.context.chain_id(),\n self.context.version(),\n inner_hash,\n );\n\n let witness: [Field; 64] = get_auth_witness(message_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n let pub_key = std::embedded_curve_ops::EmbeddedCurvePoint {\n x: public_key.x,\n y: public_key.y,\n is_infinite: false,\n };\n let valid_in_private =\n schnorr::verify_signature(pub_key, signature, message_hash.to_be_bytes::<32>());\n\n // Compute the nullifier and check if it is spent\n // This will BLINDLY TRUST the oracle, but the oracle is us, and\n // it is not as part of execution of the contract, so we are good.\n let nullifier = compute_authwit_nullifier(self.address, inner_hash);\n let siloed_nullifier = compute_siloed_nullifier(consumer, nullifier);\n let lower_wit =\n get_low_nullifier_membership_witness(self.context.block_header(), siloed_nullifier);\n let is_spent = lower_wit.leaf_preimage.nullifier == siloed_nullifier;\n\n !is_spent & valid_in_private\n }\n}\n"
|
|
6939
6959
|
},
|
|
6940
6960
|
"53": {
|
|
6941
6961
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/authwit/account.nr",
|
|
@@ -6991,11 +7011,11 @@
|
|
|
6991
7011
|
},
|
|
6992
7012
|
"94": {
|
|
6993
7013
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr",
|
|
6994
|
-
"source": "use crate::{\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX},\n oracle::{key_validation_request::get_key_validation_request
|
|
7014
|
+
"source": "use crate::{\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX},\n oracle::{\n key_validation_request::get_key_validation_request,\n keys::{get_public_keys_and_partial_address, try_get_public_keys_and_partial_address},\n },\n};\nuse crate::protocol::{address::AztecAddress, public_keys::PublicKeys};\n\npub unconstrained fn get_nhk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// A helper function that gets app-siloed outgoing viewing key for a given `ovpk_m_hash`. This function is used in\n// unconstrained contexts only - when computing unconstrained note logs. The safe alternative is `request_ovsk_app`\n// function defined on `PrivateContext`.\npub unconstrained fn get_ovsk_app(ovpk_m_hash: Field) -> Field {\n get_key_validation_request(ovpk_m_hash, OUTGOING_INDEX).sk_app\n}\n\n// Returns all public keys for a given account, applying proper constraints to the context. We read all keys at once\n// since the constraints for reading them all are actually fewer than if we read them one at a time - any read keys\n// that are not required by the caller can simply be discarded.\n// Fails if the public keys are not registered\npub fn get_public_keys(account: AztecAddress) -> PublicKeys {\n // Safety: Public keys are constrained by showing their inclusion in the address's preimage.\n let (public_keys, partial_address) = unsafe { get_public_keys_and_partial_address(account) };\n assert_eq(account, AztecAddress::compute(public_keys, partial_address), \"Invalid public keys hint for address\");\n\n public_keys\n}\n\n/// Returns all public keys for a given account, or `None` if the public keys are not registered in the PXE.\npub unconstrained fn try_get_public_keys(account: AztecAddress) -> Option<PublicKeys> {\n try_get_public_keys_and_partial_address(account).map(|(public_keys, _)| public_keys)\n}\n\nmod test {\n use super::get_public_keys;\n\n use crate::test::helpers::test_environment::TestEnvironment;\n use std::test::OracleMock;\n\n global KEY_ORACLE_RESPONSE_LENGTH: u32 = 13; // 12 fields for the keys, one field for the partial address\n\n #[test(should_fail_with = \"Invalid public keys hint for address\")]\n unconstrained fn get_public_keys_fails_with_bad_hint() {\n let mut env = TestEnvironment::new();\n let account = env.create_light_account();\n\n // Instead of querying for some unknown account, which would result in the oracle erroring out, we mock a bad\n // oracle response to check that the circuit properly checks the address derivation.\n let mut random_keys_and_partial_address = [0; KEY_ORACLE_RESPONSE_LENGTH];\n // We use randomly generated points on the curve, and a random partial address to ensure that this combination\n // does not derive the address and we should see the assertion fail. npk_m\n random_keys_and_partial_address[0] = 0x292364b852c6c6f01472951e76a39cbcf074591fd0e063a81965e7b51ad868a5;\n random_keys_and_partial_address[1] = 0x0a687b46cdc9238f1c311f126aaaa4acbd7a737bff2efd7aeabdb8d805843a27;\n random_keys_and_partial_address[2] = 0x0000000000000000000000000000000000000000000000000000000000000000;\n // ivpk_m\n random_keys_and_partial_address[3] = 0x173c5229a00c5425255680dd6edc27e278c48883991f348fe6985de43b4ec25f;\n random_keys_and_partial_address[4] = 0x1698608e23b5f6c2f43c49a559108bb64e2247b8fc2da842296a416817f40b7f;\n random_keys_and_partial_address[5] = 0x0000000000000000000000000000000000000000000000000000000000000000;\n // ovpk_m\n random_keys_and_partial_address[6] = 0x1bad2f7d1ad960a1bd0fe4d2c8d17f5ab4a86ef8b103e0a9e7f67ec0d3b4795e;\n random_keys_and_partial_address[7] = 0x206db87110abbecc9fbaef2c865189d94ef2c106202f734ee4eba9257fd28bf1;\n random_keys_and_partial_address[8] = 0x0000000000000000000000000000000000000000000000000000000000000000;\n // tpk_m\n random_keys_and_partial_address[9] = 0x05e3bd9cfe6b47daa139613619cf7d7fd8bb0112b6f2908caa6d9b536ed948ed;\n random_keys_and_partial_address[10] = 0x051066f877c9df47552d02e7dc32127ff4edefc8498e813bca1cbd3f5d1be429;\n random_keys_and_partial_address[11] = 0x0000000000000000000000000000000000000000000000000000000000000000;\n // partial address\n random_keys_and_partial_address[12] = 0x236703e2cb00a182e024e98e9f759231b556d25ff19f98896cebb69e9e678cc9;\n\n let _ = OracleMock::mock(\"utilityTryGetPublicKeysAndPartialAddress\").returns(Option::some(\n random_keys_and_partial_address,\n ));\n let _ = get_public_keys(account);\n }\n}\n"
|
|
6995
7015
|
},
|
|
6996
7016
|
"98": {
|
|
6997
7017
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/aztec.nr",
|
|
6998
|
-
"source": "use crate::macros::{\n calls_generation::{\n external_functions::{generate_external_function_calls, generate_external_function_self_calls_structs},\n internal_functions::generate_call_internal_struct,\n },\n dispatch::generate_public_dispatch,\n internals_functions_generation::{create_fn_abi_exports, process_functions},\n notes::NOTES,\n storage::STORAGE_LAYOUT_NAME,\n utils::{\n get_trait_impl_method, is_fn_contract_library_method, is_fn_external, is_fn_internal, is_fn_test,\n module_has_storage,\n },\n};\n\n/// Marks a contract as an Aztec contract, generating the interfaces for its functions and notes, as well as injecting\n/// the `sync_state` utility function.\n///\n/// Note: This is a module annotation, so the returned quote gets injected inside the module (contract) itself.\npub comptime fn aztec(m: Module) -> Quoted {\n // Functions that don't have #[external(...)], #[contract_library_method], or #[test] are not allowed in contracts.\n check_each_fn_macroified(m);\n\n // We generate new functions prefixed with `__aztec_nr_internals__` and we replace the original functions' bodies\n // with `static_assert(false, ...)` to prevent them from being called directly from within the contract.\n let functions = process_functions(m);\n\n // We generate structs and their implementations necessary for convenient functions calls.\n let interface = generate_contract_interface(m);\n let self_call_structs = generate_external_function_self_calls_structs(m);\n let call_internal_struct = generate_call_internal_struct(m);\n\n // We generate ABI exports for all the external functions in the contract.\n let fn_abi_exports = create_fn_abi_exports(m);\n\n // We generate `_compute_note_hash_and_nullifier`, `sync_state` and `process_message` functions only if they are\n // not already implemented. If they are implemented we just insert empty quotes.\n let contract_library_method_compute_note_hash_and_nullifier = if !m.functions().any(|f| {\n f.name() == quote { _compute_note_hash_and_nullifier }\n }) {\n generate_contract_library_method_compute_note_hash_and_nullifier()\n } else {\n quote {}\n };\n let sync_state_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { sync_state }) {\n generate_sync_state()\n } else {\n quote {}\n };\n\n let process_message_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { process_message }) {\n generate_process_message()\n } else {\n quote {}\n };\n let public_dispatch = generate_public_dispatch(m);\n\n quote {\n $interface\n $self_call_structs\n $call_internal_struct\n $functions\n $fn_abi_exports\n $contract_library_method_compute_note_hash_and_nullifier\n $public_dispatch\n $sync_state_fn_and_abi_export\n $process_message_fn_and_abi_export\n }\n}\n\ncomptime fn generate_contract_interface(m: Module) -> Quoted {\n let calls = generate_external_function_calls(m);\n\n let module_name = m.name();\n\n let has_storage_layout = module_has_storage(m) & STORAGE_LAYOUT_NAME.get(m).is_some();\n let storage_layout_getter = if has_storage_layout {\n let storage_layout_name = STORAGE_LAYOUT_NAME.get(m).unwrap();\n quote {\n pub fn storage_layout() -> StorageLayoutFields {\n $storage_layout_name.fields\n }\n }\n } else {\n quote {}\n };\n\n let library_storage_layout_getter = if has_storage_layout {\n quote {\n #[contract_library_method]\n $storage_layout_getter\n }\n } else {\n quote {}\n };\n\n quote {\n pub struct $module_name {\n pub target_contract: aztec::protocol::address::AztecAddress\n }\n\n impl $module_name {\n $calls\n\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> Self {\n Self { target_contract: addr }\n }\n\n pub fn interface() -> Self {\n Self { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $storage_layout_getter\n }\n\n #[contract_library_method]\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> $module_name {\n $module_name { target_contract: addr }\n }\n\n #[contract_library_method]\n pub fn interface() -> $module_name {\n $module_name { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $library_storage_layout_getter\n\n }\n}\n\n/// Generates a contract library method called `_compute_note_hash_and_nullifier` which is used for note discovery (to\n/// create the `aztec::messages::discovery::ComputeNoteHashAndNullifier` function) and to implement the\n/// `compute_note_hash_and_nullifier` unconstrained contract function.\ncomptime fn generate_contract_library_method_compute_note_hash_and_nullifier() -> Quoted {\n if NOTES.len() > 0 {\n // Contracts that do define notes produce an if-else chain where `note_type_id` is matched against the\n // `get_note_type_id()` function of each note type that we know of, in order to identify the note type. Once we\n // know it we call we correct `unpack` method from the `Packable` trait to obtain the underlying note type, and\n // compute the note hash (non-siloed) and inner nullifier (also non-siloed).\n\n let mut if_note_type_id_match_statements_list = @[];\n for i in 0..NOTES.len() {\n let typ = NOTES.get(i);\n\n let get_note_type_id = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteType },\n quote { get_id },\n );\n let unpack = get_trait_impl_method(\n typ,\n quote { crate::protocol::traits::Packable },\n quote { unpack },\n );\n\n let compute_note_hash = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_note_hash },\n );\n\n let compute_nullifier_unconstrained = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_nullifier_unconstrained },\n );\n\n let if_or_else_if = if i == 0 {\n quote { if }\n } else {\n quote { else if }\n };\n\n if_note_type_id_match_statements_list = if_note_type_id_match_statements_list.push_back(\n quote {\n $if_or_else_if note_type_id == $get_note_type_id() {\n // As an extra safety check we make sure that the packed_note BoundedVec has the expected\n // length, since we're about to interpret its raw storage as a fixed-size array by calling the\n // unpack function on it.\n let expected_len = <$typ as $crate::protocol::traits::Packable>::N;\n let actual_len = packed_note.len();\n assert(\n actual_len == expected_len,\n f\"Expected packed note of length {expected_len} but got {actual_len} for note type id {note_type_id}\"\n );\n\n let note = $unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n\n let note_hash = $compute_note_hash(note, owner, storage_slot, randomness);\n \n // The message discovery process finds settled notes, that is, notes that were created in prior transactions and are therefore already part of the note hash tree. We therefore compute the nullification note hash by treating the note as a settled note with the provided note nonce.\n let note_hash_for_nullification = aztec::note::utils::compute_note_hash_for_nullification(\n aztec::note::HintedNote{\n note,\n contract_address,\n owner,\n randomness,\n storage_slot,\n metadata: aztec::note::note_metadata::SettledNoteMetadata::new(note_nonce).into()\n }\n );\n\n let inner_nullifier = $compute_nullifier_unconstrained(note, owner, note_hash_for_nullification);\n\n Option::some(\n aztec::messages::discovery::NoteHashAndNullifier {\n note_hash, inner_nullifier\n }\n )\n }\n },\n );\n }\n\n let if_note_type_id_match_statements = if_note_type_id_match_statements_list.join(quote {});\n\n quote {\n /// Unpacks an array into a note corresponding to `note_type_id` and then computes its note hash (non-siloed) and inner nullifier (non-siloed) assuming the note has been inserted into the note hash tree with `note_nonce`.\n ///\n /// The signature of this function notably matches the `aztec::messages::discovery::ComputeNoteHashAndNullifier` type, and so it can be used to call functions from that module such as `do_sync_state` and `attempt_note_discovery`.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n owner: aztec::protocol::address::AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: aztec::protocol::address::AztecAddress,\n randomness: Field,\n note_nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n $if_note_type_id_match_statements\n else {\n Option::none()\n }\n }\n }\n } else {\n // Contracts with no notes still implement this function to avoid having special-casing, the implementation\n // simply throws immediately.\n quote {\n /// This contract does not use private notes, so this function should never be called as it will unconditionally fail.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n _packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n _owner: aztec::protocol::address::AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _contract_address: aztec::protocol::address::AztecAddress,\n _randomness: Field,\n _nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n panic(f\"This contract does not use private notes\")\n }\n }\n }\n}\n\ncomptime fn generate_sync_state() -> Quoted {\n quote {\n pub struct sync_state_parameters {}\n\n #[abi(functions)]\n pub struct sync_state_abi {\n parameters: sync_state_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn sync_state() {\n let address = aztec::context::UtilityContext::new().this_address();\n \n aztec::messages::discovery::do_sync_state(address, _compute_note_hash_and_nullifier);\n }\n }\n}\n\ncomptime fn generate_process_message() -> Quoted {\n quote {\n pub struct process_message_parameters {\n pub message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n pub message_context: aztec::messages::processing::MessageContext,\n }\n\n #[abi(functions)]\n pub struct process_message_abi {\n parameters: process_message_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn process_message(\n message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n message_context: aztec::messages::processing::MessageContext,\n ) {\n let address = aztec::context::UtilityContext::new().this_address();\n\n aztec::messages::discovery::process_message::process_message_ciphertext(\n address,\n _compute_note_hash_and_nullifier,\n message_ciphertext,\n message_context,\n );\n }\n }\n}\n\n/// Checks that all functions in the module have a context macro applied.\n///\n/// Non-macroified functions are not allowed in contracts. They must all be one of\n/// [`external`](crate::macros::functions::external), [`internal`](crate::macros::functions::internal) or `test`.\ncomptime fn check_each_fn_macroified(m: Module) {\n for f in m.functions() {\n let name = f.name();\n if !is_fn_external(f) & !is_fn_contract_library_method(f) & !is_fn_internal(f) & !is_fn_test(f) {\n // We don't suggest that #[contract_library_method] is allowed because we don't want to introduce another\n // concept\n panic(\n f\"Function {name} must be marked as either #[external(...)], #[internal(...)], or #[test]\",\n );\n }\n }\n}\n"
|
|
7018
|
+
"source": "use crate::macros::{\n calls_generation::{\n external_functions::{generate_external_function_calls, generate_external_function_self_calls_structs},\n internal_functions::generate_call_internal_struct,\n },\n dispatch::generate_public_dispatch,\n internals_functions_generation::{create_fn_abi_exports, process_functions},\n notes::NOTES,\n storage::STORAGE_LAYOUT_NAME,\n utils::{\n get_trait_impl_method, is_fn_contract_library_method, is_fn_external, is_fn_internal, is_fn_test,\n module_has_storage,\n },\n};\n\n/// Marks a contract as an Aztec contract, generating the interfaces for its functions and notes, as well as injecting\n/// the `sync_state` utility function.\n///\n/// Note: This is a module annotation, so the returned quote gets injected inside the module (contract) itself.\npub comptime fn aztec(m: Module) -> Quoted {\n // Functions that don't have #[external(...)], #[contract_library_method], or #[test] are not allowed in contracts.\n check_each_fn_macroified(m);\n\n // We generate new functions prefixed with `__aztec_nr_internals__` and we replace the original functions' bodies\n // with `static_assert(false, ...)` to prevent them from being called directly from within the contract.\n let functions = process_functions(m);\n\n // We generate structs and their implementations necessary for convenient functions calls.\n let interface = generate_contract_interface(m);\n let self_call_structs = generate_external_function_self_calls_structs(m);\n let call_internal_struct = generate_call_internal_struct(m);\n\n // We generate ABI exports for all the external functions in the contract.\n let fn_abi_exports = create_fn_abi_exports(m);\n\n // We generate `_compute_note_hash_and_nullifier`, `sync_state` and `process_message` functions only if they are\n // not already implemented. If they are implemented we just insert empty quotes.\n let contract_library_method_compute_note_hash_and_nullifier = if !m.functions().any(|f| {\n f.name() == quote { _compute_note_hash_and_nullifier }\n }) {\n generate_contract_library_method_compute_note_hash_and_nullifier()\n } else {\n quote {}\n };\n let sync_state_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { sync_state }) {\n generate_sync_state()\n } else {\n quote {}\n };\n\n let process_message_fn_and_abi_export = if !m.functions().any(|f| f.name() == quote { process_message }) {\n generate_process_message()\n } else {\n quote {}\n };\n let public_dispatch = generate_public_dispatch(m);\n\n quote {\n $interface\n $self_call_structs\n $call_internal_struct\n $functions\n $fn_abi_exports\n $contract_library_method_compute_note_hash_and_nullifier\n $public_dispatch\n $sync_state_fn_and_abi_export\n $process_message_fn_and_abi_export\n }\n}\n\ncomptime fn generate_contract_interface(m: Module) -> Quoted {\n let calls = generate_external_function_calls(m);\n\n let module_name = m.name();\n\n let has_storage_layout = module_has_storage(m) & STORAGE_LAYOUT_NAME.get(m).is_some();\n let storage_layout_getter = if has_storage_layout {\n let storage_layout_name = STORAGE_LAYOUT_NAME.get(m).unwrap();\n quote {\n pub fn storage_layout() -> StorageLayoutFields {\n $storage_layout_name.fields\n }\n }\n } else {\n quote {}\n };\n\n let library_storage_layout_getter = if has_storage_layout {\n quote {\n #[contract_library_method]\n $storage_layout_getter\n }\n } else {\n quote {}\n };\n\n quote {\n pub struct $module_name {\n pub target_contract: aztec::protocol::address::AztecAddress\n }\n\n impl $module_name {\n $calls\n\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> Self {\n Self { target_contract: addr }\n }\n\n pub fn interface() -> Self {\n Self { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $storage_layout_getter\n }\n\n #[contract_library_method]\n pub fn at(\n addr: aztec::protocol::address::AztecAddress\n ) -> $module_name {\n $module_name { target_contract: addr }\n }\n\n #[contract_library_method]\n pub fn interface() -> $module_name {\n $module_name { target_contract: aztec::protocol::address::AztecAddress::zero() }\n }\n\n $library_storage_layout_getter\n\n }\n}\n\n/// Generates a contract library method called `_compute_note_hash_and_nullifier` which is used for note discovery (to\n/// create the `aztec::messages::discovery::ComputeNoteHashAndNullifier` function) and to implement the\n/// `compute_note_hash_and_nullifier` unconstrained contract function.\ncomptime fn generate_contract_library_method_compute_note_hash_and_nullifier() -> Quoted {\n if NOTES.len() > 0 {\n // Contracts that do define notes produce an if-else chain where `note_type_id` is matched against the\n // `get_note_type_id()` function of each note type that we know of, in order to identify the note type. Once we\n // know it we call we correct `unpack` method from the `Packable` trait to obtain the underlying note type, and\n // compute the note hash (non-siloed) and inner nullifier (also non-siloed).\n\n let mut if_note_type_id_match_statements_list = @[];\n for i in 0..NOTES.len() {\n let typ = NOTES.get(i);\n\n let get_note_type_id = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteType },\n quote { get_id },\n );\n let unpack = get_trait_impl_method(\n typ,\n quote { crate::protocol::traits::Packable },\n quote { unpack },\n );\n\n let compute_note_hash = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_note_hash },\n );\n\n let compute_nullifier_unconstrained = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_nullifier_unconstrained },\n );\n\n let if_or_else_if = if i == 0 {\n quote { if }\n } else {\n quote { else if }\n };\n\n if_note_type_id_match_statements_list = if_note_type_id_match_statements_list.push_back(\n quote {\n $if_or_else_if note_type_id == $get_note_type_id() {\n // As an extra safety check we make sure that the packed_note BoundedVec has the expected\n // length, since we're about to interpret its raw storage as a fixed-size array by calling the\n // unpack function on it.\n let expected_len = <$typ as $crate::protocol::traits::Packable>::N;\n let actual_len = packed_note.len();\n assert(\n actual_len == expected_len,\n f\"Expected packed note of length {expected_len} but got {actual_len} for note type id {note_type_id}\"\n );\n\n let note = $unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n\n let note_hash = $compute_note_hash(note, owner, storage_slot, randomness);\n \n // The message discovery process finds settled notes, that is, notes that were created in prior transactions and are therefore already part of the note hash tree. We therefore compute the nullification note hash by treating the note as a settled note with the provided note nonce.\n let note_hash_for_nullification = aztec::note::utils::compute_note_hash_for_nullification(\n aztec::note::HintedNote{\n note,\n contract_address,\n owner,\n randomness,\n storage_slot,\n metadata: aztec::note::note_metadata::SettledNoteMetadata::new(note_nonce).into()\n }\n );\n\n let inner_nullifier = $compute_nullifier_unconstrained(note, owner, note_hash_for_nullification);\n\n Option::some(\n aztec::messages::discovery::NoteHashAndNullifier {\n note_hash, inner_nullifier\n }\n )\n }\n },\n );\n }\n\n let if_note_type_id_match_statements = if_note_type_id_match_statements_list.join(quote {});\n\n quote {\n /// Unpacks an array into a note corresponding to `note_type_id` and then computes its note hash (non-siloed) and inner nullifier (non-siloed) assuming the note has been inserted into the note hash tree with `note_nonce`.\n ///\n /// The signature of this function notably matches the `aztec::messages::discovery::ComputeNoteHashAndNullifier` type, and so it can be used to call functions from that module such as `do_sync_state` and `attempt_note_discovery`.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n owner: aztec::protocol::address::AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: aztec::protocol::address::AztecAddress,\n randomness: Field,\n note_nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n $if_note_type_id_match_statements\n else {\n Option::none()\n }\n }\n }\n } else {\n // Contracts with no notes still implement this function to avoid having special-casing, the implementation\n // simply throws immediately.\n quote {\n /// This contract does not use private notes, so this function should never be called as it will unconditionally fail.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n _packed_note: BoundedVec<Field, aztec::messages::logs::note::MAX_NOTE_PACKED_LEN>,\n _owner: aztec::protocol::address::AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _contract_address: aztec::protocol::address::AztecAddress,\n _randomness: Field,\n _nonce: Field,\n ) -> Option<aztec::messages::discovery::NoteHashAndNullifier> {\n panic(f\"This contract does not use private notes\")\n }\n }\n }\n}\n\ncomptime fn generate_sync_state() -> Quoted {\n quote {\n pub struct sync_state_parameters {}\n\n #[abi(functions)]\n pub struct sync_state_abi {\n parameters: sync_state_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn sync_state() {\n let address = aztec::context::UtilityContext::new().this_address();\n \n aztec::messages::discovery::do_sync_state(address, _compute_note_hash_and_nullifier);\n }\n }\n}\n\ncomptime fn generate_process_message() -> Quoted {\n quote {\n pub struct process_message_parameters {\n pub message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n pub message_context: aztec::messages::processing::MessageContext,\n }\n\n #[abi(functions)]\n pub struct process_message_abi {\n parameters: process_message_parameters,\n }\n\n #[aztec::macros::internals_functions_generation::abi_attributes::abi_utility]\n unconstrained fn process_message(\n message_ciphertext: BoundedVec<Field, aztec::messages::encoding::MESSAGE_CIPHERTEXT_LEN>,\n message_context: aztec::messages::processing::MessageContext,\n ) {\n let address = aztec::context::UtilityContext::new().this_address();\n\n aztec::messages::discovery::process_message::process_message_ciphertext(\n address,\n _compute_note_hash_and_nullifier,\n message_ciphertext,\n message_context,\n );\n\n // At this point, the note is pending validation and storage in the database. We must call\n // validate_and_store_enqueued_notes_and_events to complete that process.\n aztec::messages::processing::validate_and_store_enqueued_notes_and_events(address);\n }\n }\n}\n\n/// Checks that all functions in the module have a context macro applied.\n///\n/// Non-macroified functions are not allowed in contracts. They must all be one of\n/// [`external`](crate::macros::functions::external), [`internal`](crate::macros::functions::internal) or `test`.\ncomptime fn check_each_fn_macroified(m: Module) {\n for f in m.functions() {\n let name = f.name();\n if !is_fn_external(f) & !is_fn_contract_library_method(f) & !is_fn_internal(f) & !is_fn_test(f) {\n // We don't suggest that #[contract_library_method] is allowed because we don't want to introduce another\n // concept\n panic(\n f\"Function {name} must be marked as either #[external(...)], #[internal(...)], or #[test]\",\n );\n }\n }\n}\n"
|
|
6999
7019
|
}
|
|
7000
7020
|
}
|
|
7001
7021
|
}
|