@aztec/accounts 0.67.0 → 0.67.1-devnet
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 +342 -224
- package/artifacts/EcdsaRAccount.json +276 -158
- package/artifacts/SchnorrAccount.json +770 -652
- package/artifacts/SchnorrSingleKeyAccount.json +373 -289
- package/package.json +8 -8
|
@@ -1,28 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"transpiled": true,
|
|
3
|
-
"noir_version": "1.0.0-beta.0+
|
|
3
|
+
"noir_version": "1.0.0-beta.0+4184522b3ac6c4ce82aadf4911289cdf9fb0dd79-x8664",
|
|
4
4
|
"name": "EcdsaRAccount",
|
|
5
5
|
"functions": [
|
|
6
|
-
{
|
|
7
|
-
"name": "sync_notes",
|
|
8
|
-
"is_unconstrained": true,
|
|
9
|
-
"custom_attributes": [],
|
|
10
|
-
"abi": {
|
|
11
|
-
"error_types": {
|
|
12
|
-
"17843811134343075018": {
|
|
13
|
-
"error_kind": "string",
|
|
14
|
-
"string": "Stack too deep"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"parameters": [],
|
|
18
|
-
"return_type": null
|
|
19
|
-
},
|
|
20
|
-
"bytecode": "H4sIAAAAAAAA/9VUyw6CMBBseURBOaiJ3kz8gyIYOJJ49x8akKMe8OKNT5eabbqpVRKlJkzSbEs3szNlW0oUKESPvAH9tGnIFdhBDCA6aN/tRgFr9hviQKs7JH/O0iQw+BtQ/5OfWtIvIPktnT+bAM+xVfzYi6w77UaIesKWZ/nPbHpe9fhc/MFnh32k1caghm+uIYci3RuYR4Y8iRlRd9prh/eV5YzJei7w++RVO67va/lrWIeafvmOFV/qrDMe1wmv+YFXVVrypcYv4KBzGnMvbGHe1wvY45yo3mjul/J0vZ0b0gNB8gCVxsvQjgYAAA==",
|
|
21
|
-
"debug_symbols": "ndLNCoQgFAXgd7nrFvlX2avEEFYWgmiYDQzRu49FMzRDG9tcPOJ33ZwFOtnMQ61MbycoqwW0bYVX1oS0rAk0Tmmthvp8Dek2ENrfT6MwW5y8cB5KxPIEpOnCKWPB90pLKAnn6yMBhOMJiSc0nrBogi9/4YRnh+EUky/iaDfshslumPyGKeINuawApwX7GJbSH7OG9BROiUbLo2H9bNpT4fxrlH/dG51tZTc7ubXwVMAwK5QnGIe1YfUb",
|
|
22
|
-
"brillig_names": [
|
|
23
|
-
"sync_notes"
|
|
24
|
-
]
|
|
25
|
-
},
|
|
26
6
|
{
|
|
27
7
|
"name": "verify_private_authwit",
|
|
28
8
|
"is_unconstrained": false,
|
|
@@ -184,7 +164,7 @@
|
|
|
184
164
|
}
|
|
185
165
|
},
|
|
186
166
|
{
|
|
187
|
-
"name": "
|
|
167
|
+
"name": "blobs_hash",
|
|
188
168
|
"type": {
|
|
189
169
|
"kind": "field"
|
|
190
170
|
}
|
|
@@ -515,6 +495,27 @@
|
|
|
515
495
|
"kind": "struct",
|
|
516
496
|
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
517
497
|
}
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"name": "max_priority_fees_per_gas",
|
|
501
|
+
"type": {
|
|
502
|
+
"fields": [
|
|
503
|
+
{
|
|
504
|
+
"name": "fee_per_da_gas",
|
|
505
|
+
"type": {
|
|
506
|
+
"kind": "field"
|
|
507
|
+
}
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"name": "fee_per_l2_gas",
|
|
511
|
+
"type": {
|
|
512
|
+
"kind": "field"
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
],
|
|
516
|
+
"kind": "struct",
|
|
517
|
+
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
518
|
+
}
|
|
518
519
|
}
|
|
519
520
|
],
|
|
520
521
|
"kind": "struct",
|
|
@@ -1283,7 +1284,7 @@
|
|
|
1283
1284
|
}
|
|
1284
1285
|
},
|
|
1285
1286
|
{
|
|
1286
|
-
"name": "
|
|
1287
|
+
"name": "blobs_hash",
|
|
1287
1288
|
"type": {
|
|
1288
1289
|
"kind": "field"
|
|
1289
1290
|
}
|
|
@@ -1614,6 +1615,27 @@
|
|
|
1614
1615
|
"kind": "struct",
|
|
1615
1616
|
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
1616
1617
|
}
|
|
1618
|
+
},
|
|
1619
|
+
{
|
|
1620
|
+
"name": "max_priority_fees_per_gas",
|
|
1621
|
+
"type": {
|
|
1622
|
+
"fields": [
|
|
1623
|
+
{
|
|
1624
|
+
"name": "fee_per_da_gas",
|
|
1625
|
+
"type": {
|
|
1626
|
+
"kind": "field"
|
|
1627
|
+
}
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
"name": "fee_per_l2_gas",
|
|
1631
|
+
"type": {
|
|
1632
|
+
"kind": "field"
|
|
1633
|
+
}
|
|
1634
|
+
}
|
|
1635
|
+
],
|
|
1636
|
+
"kind": "struct",
|
|
1637
|
+
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
1638
|
+
}
|
|
1617
1639
|
}
|
|
1618
1640
|
],
|
|
1619
1641
|
"kind": "struct",
|
|
@@ -1632,8 +1654,8 @@
|
|
|
1632
1654
|
"visibility": "databus"
|
|
1633
1655
|
}
|
|
1634
1656
|
},
|
|
1635
|
-
"bytecode": "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",
|
|
1636
|
-
"debug_symbols": "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",
|
|
1657
|
+
"bytecode": "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",
|
|
1658
|
+
"debug_symbols": "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",
|
|
1637
1659
|
"brillig_names": [
|
|
1638
1660
|
"get_note_internal",
|
|
1639
1661
|
"decompose_hint",
|
|
@@ -1645,8 +1667,8 @@
|
|
|
1645
1667
|
"directive_integer_quotient",
|
|
1646
1668
|
"directive_to_radix"
|
|
1647
1669
|
],
|
|
1648
|
-
"verification_key": "
|
|
1649
|
-
"artifact_hash": "
|
|
1670
|
+
"verification_key": "AAAAAAAQAAAAAAAAAAAAFAAAAAAAAAAQAAAAAAADKLEBAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAAAAAAAAAABxzUbDvOBj8Bj+UGXq9EInU/LXgEYCVEWliYKgTAJ8FAU40PA9huduld3gf6+IDdXYvxPe+u5IgNRhEMMQBqfYMq1vN8bk4FCfYFxV4SoqIMZaxcPND9KEZSOfxVPQfEyTnsfnSUFoJStKWGpKyAzPZ5TdE0839hlZ3iHp4zPFhGkxlknpAlGd/XzNvIPOMeCUq1iXceuCmmLbO//f9lhYiIRkP7z0F2YAPQJWFRSJTXlNONwsHk7Hx4fDxZtzp6gp0Uqlj6wx5qiDGUFpUlpVU626Q+hkrMndPpnwBNhM4GEjDNNyT59GPO7vaS/0pS4XwBx0NCYWkOT7u5yTykkEMKtXYFjnlmyEoN6v+WvUIA+9+RP3uQU6zvW53ART4/g3QQ6fs1iam84kJJR+aulCKGVvdDG3RKun/Nk6BnQ+xH+ko/fXlMtUGbLSPC8v7GhZ5s4qNK02vpEQJrVUkEykNatUoCMI3AW0BV62kG3h4xU8zfOVMkrPyGOhJiNqMdwRWu3AbWwtGO7zwxP5xkFUjk9CVM+GyAEvYTp+KU6iPA4D05rswR3a/1Psi4gmHdBVkgemj+PCR0w2xADptqrQXi1+6ZLcvOFtO15wDTn30vfLS9qc1guKe94QIguOiURAIZszrzdK3fEz7f/kdvq2Sr9pQoZLZWl3HMYyqMxGrIA7oATJ6igZI5PkT+rcMXpIbFgvIiZJL+77/T7ZZenAE8FEq2QVuL8gJ2GEQxmtjcMTeeT6qlev7EDVrHvPWCRetdJrkNcWK8rr2/R5Kv++9x9kkeDYt4YugN4xpxcAwFxlN+7kFt+uKy4Pub0ZOYK4tStXFH8W8DgdQhOr7FAIO35haqA0uLy5U9uJwtU3WsesSVcJMP62KZN7eL6GQ3gtEyX4GJu/sOTcE2/QjFmz+zrxiLb/MTHrNvix7IWtWBhtPS5Myls/h2DVlRU9mrXHk3MWsQRCZHta36ZGhBYwaq/41KMHnbJfPUUZ+3JisxeAfB4QoEtjsK65rAjG1jS9GhEmm+V0TvIFE7Yj++pOZGnX1x/Ov+OzMJuDxJlWvDYBoM7s5aQd1z3BVHQ6nyEcuDvMvg6agFayHtr99BEcEBGhQ8j0QTh90W+MjDtqaPc/6h+jMh6rQPFwP/rdy/gjO2MGb6Sg26zTRxI04TlJgx8awUtVw01cgtVMokF22B9AaVmJfxUG7BLJ5xrCmfuZ76SOzwMH7iKNO1S/Fz8oHVJ8KCqljg5vlglUmEfGXw6zKOf/uwSgH56kKcSfPIgMbzSLxHW8vMzLWlwbsgmoOKEYt51NWZ5U8GhDFMkqaJpo3oNhBd/mHwgc/EGmmjpm2+SgOtqMz1xJS8LZNpLIqHcVSC494kieEX+gNCfQs5dX5b4BKGb+/jo7m6MSvpSi9OW2g2xM4wwr7+Bm0GFborAm2y7xmdLMnuCie9IDeGtC0QDRfysSycFUvrbqSqPmg4+81yO7Nhus58KBGOIMX2ZgSg9hFRQC3D3qyozmkmzePRhowstk1QnCEUcUEHBDpnHRnnyWe7lqOHEAL2t1B0WeCcoiCGsmTS29a0+4+HcgBuX0aYQx48zZOJhqGHfmXo73Ex8rDTd6iVA7lXhMSXVCVhNK6jLZKApK6YQcz70wBg/7yrUm2aqoFlOiJqBEEl4VObD9tGufpVlkqvJL+HCyiegpjQ8yMLV3ATzJTHwZLyyUadP7PG9C0OCrb4CM9gQVD+S4qv9oHNOduP9siAteoYAnxGmipweY3G2l1kKnCkEkxCg/4ZXjXvf0VZhR+k6yB+Zq5CDzf5x8qwxOG5pGhsRda0LaM7so4kHLSH9EmLNywdKXI8qOPKNqDHiwsOp2DOsaw7yHFfb/hYB4QKKrcdTbI9eDrQvsasaNRrFtBnahWobyJtJQyGFL3ywB2F2gJnOHRVG/Bxdk/CjtqPTJfX89l3gZv58BueZXXAWszdW7ZGSCfTW9caTziEkHLasnPFO6c8gr5yfNxJuoDCFNT8Uqdqwc8wZO5i0exkJD8MC6mlBb31PhzCo6IGh2j1/laWo1y4KkyTsKZzI3xXCXb+TZolkF9w2vZvsiqGrP4zmYlINF3dUOwovFRwJL+L+rryj9FJMic77eXQEIOnnzonrwmT9xpaUeQlWnS6Nx8yrFsTuHBSbQKhxl7vCDtQq4E8NraFolUJHckASv9dX/hNA/z8wVI4XPFTy4NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgbNtolMQSk+pHYpU07a4yPsi4MdQfqE3r0hQF6UENXbC/4bCZ6Cji6WjqVRp3SNx9a8FNbxNfW7qIcetH6+dBAPy7+dPPQCuqPu2l8Knkm1werJWyZMMC3IVObyLXMw3yg+39qJyUgFl/CzRC6XUt751Y/Ckgg2GUJh97Fj/vuvHViqYcZK1SIEPXnEgCIZ5Vuhl1Gt/mw2Mk0/tsLaCYktfBipPD2uWICfqu7GqGp49LO8YfGdbnBpNZu/R+f5Bw==",
|
|
1671
|
+
"artifact_hash": "e7552d296af009c9ed2e2ca261de6124cad0b1c1-7815f55815678dd447ba328e49cdb723-client-ivc-true"
|
|
1650
1672
|
},
|
|
1651
1673
|
{
|
|
1652
1674
|
"name": "constructor",
|
|
@@ -1677,10 +1699,6 @@
|
|
|
1677
1699
|
"error_kind": "string",
|
|
1678
1700
|
"string": "Initializer address is not the contract deployer"
|
|
1679
1701
|
},
|
|
1680
|
-
"2429784973622283587": {
|
|
1681
|
-
"error_kind": "string",
|
|
1682
|
-
"string": "Can only emit a note log for an existing note."
|
|
1683
|
-
},
|
|
1684
1702
|
"2709101749560550278": {
|
|
1685
1703
|
"error_kind": "string",
|
|
1686
1704
|
"string": "Cannot serialize point at infinity as bytes."
|
|
@@ -1822,7 +1840,7 @@
|
|
|
1822
1840
|
}
|
|
1823
1841
|
},
|
|
1824
1842
|
{
|
|
1825
|
-
"name": "
|
|
1843
|
+
"name": "blobs_hash",
|
|
1826
1844
|
"type": {
|
|
1827
1845
|
"kind": "field"
|
|
1828
1846
|
}
|
|
@@ -2153,6 +2171,27 @@
|
|
|
2153
2171
|
"kind": "struct",
|
|
2154
2172
|
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
2155
2173
|
}
|
|
2174
|
+
},
|
|
2175
|
+
{
|
|
2176
|
+
"name": "max_priority_fees_per_gas",
|
|
2177
|
+
"type": {
|
|
2178
|
+
"fields": [
|
|
2179
|
+
{
|
|
2180
|
+
"name": "fee_per_da_gas",
|
|
2181
|
+
"type": {
|
|
2182
|
+
"kind": "field"
|
|
2183
|
+
}
|
|
2184
|
+
},
|
|
2185
|
+
{
|
|
2186
|
+
"name": "fee_per_l2_gas",
|
|
2187
|
+
"type": {
|
|
2188
|
+
"kind": "field"
|
|
2189
|
+
}
|
|
2190
|
+
}
|
|
2191
|
+
],
|
|
2192
|
+
"kind": "struct",
|
|
2193
|
+
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
2194
|
+
}
|
|
2156
2195
|
}
|
|
2157
2196
|
],
|
|
2158
2197
|
"kind": "struct",
|
|
@@ -2940,7 +2979,7 @@
|
|
|
2940
2979
|
}
|
|
2941
2980
|
},
|
|
2942
2981
|
{
|
|
2943
|
-
"name": "
|
|
2982
|
+
"name": "blobs_hash",
|
|
2944
2983
|
"type": {
|
|
2945
2984
|
"kind": "field"
|
|
2946
2985
|
}
|
|
@@ -3271,6 +3310,27 @@
|
|
|
3271
3310
|
"kind": "struct",
|
|
3272
3311
|
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
3273
3312
|
}
|
|
3313
|
+
},
|
|
3314
|
+
{
|
|
3315
|
+
"name": "max_priority_fees_per_gas",
|
|
3316
|
+
"type": {
|
|
3317
|
+
"fields": [
|
|
3318
|
+
{
|
|
3319
|
+
"name": "fee_per_da_gas",
|
|
3320
|
+
"type": {
|
|
3321
|
+
"kind": "field"
|
|
3322
|
+
}
|
|
3323
|
+
},
|
|
3324
|
+
{
|
|
3325
|
+
"name": "fee_per_l2_gas",
|
|
3326
|
+
"type": {
|
|
3327
|
+
"kind": "field"
|
|
3328
|
+
}
|
|
3329
|
+
}
|
|
3330
|
+
],
|
|
3331
|
+
"kind": "struct",
|
|
3332
|
+
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
3333
|
+
}
|
|
3274
3334
|
}
|
|
3275
3335
|
],
|
|
3276
3336
|
"kind": "struct",
|
|
@@ -3289,8 +3349,8 @@
|
|
|
3289
3349
|
"visibility": "databus"
|
|
3290
3350
|
}
|
|
3291
3351
|
},
|
|
3292
|
-
"bytecode": "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",
|
|
3293
|
-
"debug_symbols": "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",
|
|
3352
|
+
"bytecode": "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NRADqoEdgKTfsRVPcdFdH4l5J+HTZ++waaDVQG9gDpGNd2fh9SC+7Mwwhe3MPH0i+LIzgxoATt1qZyAPdxGuBgjrLgw83JVJDewaxmpzMvaY/l3e3VoxBrwbw2TcX/hkTLj7M0zGplgRjYFibQHOAbDhQOttc8O6TBt2QCvGgAcwbNjdhW9Ywr17hDbs7sI3LLrehQutvBTwftsewPzZbFJ7tOJpUnu2Ygx4T4YmtZfwJkW497LUpJzyrn+ayV4MMn8XYI2Q9d5buMynRrc3g7zaR7isJMz7MODel0lW7mu4XYvOCXfNEHt8b4ZbM8gBZ29g7xgYgT00kGEPDWLaQ4MMD2rRORkIVqRVhljp19vD3+yn/779tR2gLa0toy2rLactry3QdqC2g7QdrO0QbYdqO0zb4doGaxui7QhtR2o7StvR2o7Rdqy247QN1TZM2/HaTtB2oraTtA3XdrK2U7SN0DZS26naTtN2urZR2kZrG6PtDG1jtY3Tdqa2s7Sdre0cbedqG6/tPG0TtE3Udr62C7RdqO0ibRdru0TbpdomaZus7TJtl2u7QtuV2q7SdrW2a7Rdq+06bddru0Hbjdpu0naztlu03aptirbbtN2u7Q5td2q7S9vd2u7Rdq+2qdqmabtP2/3aHtD2oLaHtD2s7RFt07XN0Paotse0Pa7tCW1PantK29PaZmp7Rtuz2p7T9ry2F7S9qO0lbS9re0Xbq9pe0/a6tje0vantLW1va3tH27va3tP2vrYPtH2o7SNtH2v7RNun2j7TNkvb59q+0Paltq+0fa3tG23favtO22xt32v7QduP2n7S9rO2X7T9qm2OtrnaftP2u7Z52uZr+0Pbn9r+0rZA29/aKlprXmproa2ltkptVdqqtdVoq9VWp62Vttba2mhrq62dtnptDdraa+ugbXltHbWtoG1FbStpW1nbKtpW1baattW1raFtTW1raeukbW1tnbWto21dbetp66JtfW0baNtQ20baNta2ibZNtW2mras2R5vS5mrztMW0xbUltPnaktpS2jbXtoW2LbVtpa2btu7attbWQ1tPbdto21bbdtp6aeutrY+27bX11dZP2w7adtS2k7adte2ibVdtu2nrr22Att217aFtT217adtb2z7a9tU2UNsgbftp21/bAdrS2jLastpy2vLaAm0HajtI28HaDtF2qLbD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S95JlrxzLHltLHlFlrzulrxSS95oS950S96jlrwFlrzFlryPLHlrLHk/WPL+tuTVT42et68l7yhLXrYlr5kl7xJL3rWWvC6WvDsseSPdPNM8ONbyu2lunmn83WXJu9eSd78lb5Yl7zFL3pOWvLmWvGcteQsseS9b8l615L1uyVtsyXvbkveuJe8DS99+avGJlZa8VZY6G6RFz2uUFr3OJMvvUiy/S7P8bm9L3r6WOve3/K6J5XcHWX53qCXvcEudR1p+d7Tld8dafneCJS9sqTPD8rtMy++yLb/Ls+SdbKnzVMvvTrf87gzL75pZ8s621HmO5XfnWn53vuV3F1nyWlnqvNTyu9aW37W1/K69Je9KS51XW353reV3BZbfDbf87kU3z6QHf7PUWTM9el6qJe8QS17YkneaJe98S157S951lrybLXkDLXnjLXn3WfJmW/JesOQtteR9Zslbb8n7yZJXY6/oeY0teU0secdZ8k6y5J1jyWtjySuy5HW35PV380zjaLDld2PcPGNcbMmbZMmbYsm715J3vyVvpiXvEUve45a82Za8Zy15Cyx5Cy15L1jyXrHkvWbJe9PSt+9afOIDS97Hljr/tOTtiJLn3uLaub5fbe6t3F3PUKuly2oZZFP3/+HqbU4dVC91/bnhrMw6ofIbMf9InVDZcxtc9vHqZKg/7C6xCZ1VWla/3ha1NXD/jx572PUbtQQkGf0G1xFy69B/6+Vzti83nJnp1Z/AUL963XQDr42lu9vPy0soLX9snJeI8jyOyp77afbh8C9sHx7/cna+RzOaT6l2HoHsoftNnGYDJo5OnHa8kHYsnXddxj5RhOK043l8dPt4afUsmHvpLdShuMdZXbv06J5f2KNll5t65HcpLMZNwNU2NjQRm8BURi+nl29gyPdo1kP7a5WGyjVt51+0zxsW3jCpjctreXVQXkJpeV513f8noOPgujweiVp5L37xToc10W+83zc2HL+mdvxyvA37sAvpdcUb9nnl1WrZJm5a2dU7zSWUltVH5ZI5ueGwx8+zfWKovHuGtOMnauWPdf9fV2uvN+013UOeJTn5TkkkvyQ/K7+oKLMwP1mrH9tM2elgNy1b1mRmx2SNfaOSNQ1QObU1Q/XFaXnNDceSLW/CGSkG/iaZEm8op49x/RSmn+JCUeownUvqhHbvt6Z71mZH36G309Y2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",
|
|
3353
|
+
"debug_symbols": "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",
|
|
3294
3354
|
"brillig_names": [
|
|
3295
3355
|
"get_contract_instance_internal",
|
|
3296
3356
|
"decompose_hint",
|
|
@@ -3308,8 +3368,8 @@
|
|
|
3308
3368
|
"directive_invert",
|
|
3309
3369
|
"directive_to_radix"
|
|
3310
3370
|
],
|
|
3311
|
-
"verification_key": "
|
|
3312
|
-
"artifact_hash": "
|
|
3371
|
+
"verification_key": "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",
|
|
3372
|
+
"artifact_hash": "e7552d296af009c9ed2e2ca261de6124cad0b1c1-75564340eaf6aa0d51ac4e5113d29612-client-ivc-true"
|
|
3313
3373
|
},
|
|
3314
3374
|
{
|
|
3315
3375
|
"name": "compute_note_hash_and_optionally_a_nullifier",
|
|
@@ -3411,12 +3471,32 @@
|
|
|
3411
3471
|
"visibility": "public"
|
|
3412
3472
|
}
|
|
3413
3473
|
},
|
|
3414
|
-
"bytecode": "H4sIAAAAAAAA/+1dXYhk21U+1VXVM10zPV0zt+en5z9zE0VBOb/18yB0TEyEvAQfAoo+nKo6FS6EiLk3wYhIPwQFQZH4g69CjCYEfBB8EB8F8SEv4oOCiBBERNA8+hKxztxaXV9/9Z3d50yf3dOTezfcWz1n773+9lprr732Pvt0gvfL/uq/zvrv3vp3N9gu1uZ4/RterEQtwgp90tl5Q+jceUPo7L4hdPZapLOkrR+cLW3T2/cg17Zp3H0DaLz2BtB4/Q2gcS9o136MRpujBqv/bqz+uxm8P4dtVSJjpXPsrutLQykVsRzoUpB70LYSOAnpz9YzpPXdgfoWHVy0R3jbhD8Jswh590B/sreGec0P/NzgX/cDPzS6P3GygY+8GN7u+vfTJxtZfhr6lMUCrc6mySlcq9uBuk9SXRfqfobqelD3KarDicdoMrntAi/t6VU68TwumfF2DXgzuRruPT+4Rx3CFwSbscE6wz8IvNpA1CF8Rg/Lx3TL/Fn3ZEPPLtX1Trb5sLo+1Nn4lr9vQzvWrWvQ7ifhOet8N9i2Eau3cUVZt6izC4Pf8wB/VVIldx6T3slZ3FiHcu+BPN8m+fiYi1A+PuRfyuetCvrt77JcOwlOS5fkiTIymV3H9lS3B3W9k7N4But/9wAPwjI6+tT+J9b/Plj/7kIf6z8U+HcJ/xm6xTOUEcPqimfWvrTJH1n/XcY3pf7cWSsT++yyHK9/w1ct6TxKozw0Ws2X9INtWzO8yg5boWVdvPBJsAdAe5vxSJ/k+PswriOSH85F7SUxxqHyMy3CT5WfaQ/+aGnw+17gZ5mKrdqDn05VfNOifE7pv+FnfMcG/6Yf+guDv+9H/qf6ecuPfE7H98AL/PjUfod+5D+z+O92sCkcm9+B5+35xyirG5sb/gHR6is2v0P0sHwwDizr3hK0DkUd+7C3BJ63BB4F62aLsIZXlK5ui7BuXFEeD64oXW3KfqdFWHstwmpT9m3yeKtFWJ0WYV1V2e+2COt0vRlsy68sx+vf8GLldK4xWnD91CN+ytKn9l8jOv2s86ORyktyfOAjL1niZtkHgY4PMB/G9Jyu+UXdRTYNp9OiyOJlHoVZMkqKtEPwjVZ+xn5C5QFVrKHi/BZlLfNdnEvsQR3nIPtQZzSqfJefPG9US/6IfyjqMA/QZCzvBGd1De1R7SOw/Xjaj6odXxv+QbDt83zE13VzyLyXgn2Hog73L7AO8XQFnjcRFu+poAxLHX2ve7bdDYDP+odx4+vYezH8g8Cnj9vo302ih+XD+rcvaB2KOh7nfYFnX+D5oMMyOeO4dCp+DQ8/Yzyo0za2fufQ9/f/mUcf+6g4h9qcVdr8t+B5+Z+tI/rBZmyw7z7UY/v/7W5gfmf97ED0v0ly9ZMjDMN9os9wIO4DLzKPo7o+zPAPiFZfPuyA6GH5cNw49COfsEPwkZ6hkA/nG3nsyv8sh4Z6i+2HwCO2x7+tPz77m/XvUMBk3b0t+FFxeWkjf0W84dhc1I+hbG4RHpc9eBrv2vZg+C/LHpT+uezBTw55Yw8u/UF6bSzviDqDZfkJtAdsfxt4xPb4t/XHZ99d/w4FTLYHlRPHZ2gPf0e8+ZrXOU+mdGBPwHKNEcre5tYDgc/6+tWnKGb9wKL2H5BGLl36N9JdxmIPehu43I5xopwMv5IT6/ItoqfKToeiv7VTe3otynyp8kgYZ/0b8WQyRPvcFXT3qf2/Qpz1veCsDNXc6bJFl56rfCja+g3CjbpsffeCbV1rO/9UwjwMtovV3QXcSCMXpedGd6nnH2ug5ygnxH+eXMvC43Ao2ivbVeNwCHS97H+yqTs9o7T+7UFdm3N/Kbu4p+VTlv7J5chnSO1RVipuugPyYdtqMRaJfdmn0ftBsc8HF7RPJSdsh3VGDz/jeUjFW+fNE3sdjbPpPPG3ME/c7FTzyOtxP+c2wsRlry49vyvaow0bvcYb6vJd4u2uF942+133gu1idfcBN9LIRem50d10HkI5If7z5FoWHod7oj3Kk+ch5PEe0PWy/8mmDmPisvSgzvc8hPzyPORLPkNqj7JS6xXDeSDqDqgOY1teizWNodWaSeE5vCCeQ4HHb6wepi5/3nTOve2QE8YTvN5ROdGOoMFFlxqrPQeewwviOXxD8HQugMfz2jzjuAcLzyM4tmoeOaS6B1DHudOj4KyssO4h1PE+1iOSA9Y9hjrcB+dyXg7hZxvMaTjGJifPcWzjMWP54pgh/VzOi3Ff9DdwuR3Tg/p7j+reEn39xkjvx39Mq8oBG/5B4HNMNzlgNc+rc19qnK2vmtPrxAf3BB4Fi/OGSPNxO/JIVAzLuoF63PYaGPGZjPAZ4h8IGfnQjftET9WYKf9rfYei7u6lyDWaMF1Y1LzAfgLnhaZrFuPppX9v4LfQ/xhtrrWdKzZznd/E/pwPuSrjgTRyOU/meQOZo1wNv+UT7HzaV9YdX54T6pztj/kIO59RPivWRF41uXJMhXrOMRXGPxxTYfzDc/4TqGM/8ZTkgHXPoK5pTHXG5hrEVMrm/J7zisYcGwWCLvSZLN+L2Inx1DSmwjnpAdV1RF/PZ+Vqx1R8Vq7jhx7nWTmkke3hUNCq1mh1cv8qR6NgmZwOBGyO5XcEnh0HHhUHej5z39ieeK5X68O69mTPms71KHOj7UDQwOPO+l6lX8OK/mXxPB6N9z6QRi7nybzJXI9yvUt1O6Kv5zshiro+zJ4Ngm15+fBhXaKnyuZLf2Xz+eeL9z775dkX3pl/pvjqux//4uKz+Zfeeyf/wscXiy8V776L3PDMz9yyFnAb+/tAPA+CjRWhJHcq8COHXcGhsqIuwVIeX0nL5blxlhw4+DisAcuF+7wdJT7ZgHTdrQHLhfu8XQLetUW67lE/nGWwXRVsXtlX0eOi37UiLv++46D/fg1YLtwPRHuEydl3pOuBZ9z7hPuWwO2imccN7V3RekvgZo/tKVszMpkcCbpcMnwo2h8JPg+C7TF7eDm8jV20unh7JNo/dPCGfD+6HN4mLlpdvD0W7R85eEO+Hzv6YTtsc1/IBuXz0I98pi5+XfJ5Ito/FnweCBk8uRzechetLt6eivZPHLwh308vh7eZi1YXb89E+6cO3pDvZ45+2A7bPBSyQfk88SOfuYtfl3yei/bPBJ8HQgbWt87K4pkfvhcdwmd84DPEf1kri7rjsE+yxL5DUccx+XOB57nAo2DdbBHW3RZhHbYI616LsPZbhPWgRVhHLcK63yKsRy3CetwiLI4zMaNyvP4NL1SSVGXqOoQXdeB1ZFsM/yDYHnsfPtG1vioLZ1GP/NCz6BB8pOdIyEftILH9mq7jCV5sfwQ8sm1g/NunZ3fXQhkKmOyP1HoGn5l8y127g52zvKENdCp+DS4/Y1tT61rDgzdh4InohztnebF+KE/s+wTqsf23uxuYT9YwD0R/XssjzXwbW9M32RWeFn3Ngh8YbD7F9YrwqWzeesKYxoqKX1QeE+WHBekus9zfaZDlRn/1nOrQPj9CdWjjL6gO7evt9d9KR3iebKojKq90WbZ4IGiokzu778CjTsW45sBX5UfRrE4GXBQP8nNEeI5axIO6yHGJp7X0Qu3MoS/+OPliNbftCLp57vo98MWf3DnL22MvvL26r7K6j0Ad6/ELqGPdexvqcEy5KP9nsij93z808H/o759TnfIhnnOPtU8q8Am/fT/0OE/4Kd/c9IQfr29UfPtA4FGwOI+GNB+3I4+ly096jrlrn/40/AMhIx+6odYAasyUzVnfoai7fylyjWZMFxZ1go39FuYjm8ZtxlPTEyHof4y2y4qx/K69m48H0shFydzobnoiBOX6mGRxVXTzIvr3/Qvqn/L9vG/Tfp5oczPY0fmw4/kySrJinIWjPM0WoyRexONwkWbLKJpE8TSdJMlynk4WkzhZxuN4ruTP/t5PHPb+23eILwi0vzf8g2Dbh/rw9659zrKwv38iaB0Gbt+JdYjnicCjYB21CKtH/LjiQk9zf+24kOd+33GhmvtdceFjQeswcPv0Kp17LPAoWDxfv4Z8cm1bvgr5ZGXLl6HfVeO876DH017w6W0jaq9c5XDKN892g20dQnmhTiLdTwF+WS4rjnPpgOLRZfPI88DBx1ENWC7c6kwOwuQzia615qOGuM8738NnEtXYMx5uh23wJh1XLpHbBuK55ZVwLA6pLb/RpE7Bs+x2KmjgvRrl9xHe0TnwWH6PRTuE+YT+rWJ3npOsvizmX/gNpOP1v8OLldrzgeEfCL59zAfK36l5tvR314JtX4Y6g+OnzueWf98SvLIfVPFjJ9ge5zpxXZUPbsK7tT/vXNTAwcezGrBcuJ+L9giT/aDrzJHS/zr6iXSpnPFFYT1vAZZr3IfBttyeUt1zqONbRT8i6DO/gXnu1+E3DP+AaPXlN14QPSwf5TfQJ6t8cd02LwBvWQ6C7TFA/qvofSHoHYr+LwjW20E93q39R0V73PsYOPj4aA1YLtwfE+0RJvsNpMv68h7Vv6yRlPHvP9GZCMRvdqfOMTylOty3M7t7eTuoA/4LB/y3HfB7Ar7yG6wT6Df6VPcc6nhvz3T330Fu/+nAe+jAe8+B91awDZ9vo/8voOF/HDTsO2h44KDhfrAN32LCnmiH9X3Bi/0baUIdQJh8BqUn2h8JHtVZF1eOnefyocBT9S4L/vt6BR8GT40L690zwY9LNxif6ceBwMFfKv7Bzobu/4PcMbYxGGVRX5t9HXMjf7XK01fOT+fGPtHD8uG4R52jUmdR+Bxz05wAwrrZIiy+tQX3HY7Xv2GzkvADv1+maP5WsopBUX5YkO6m57XQdvitZBxDfmvddZ5QvYOn3idlf9olHvmZ60xfl2jAfp2K3yCoF+srmpVPZ51Xdtp34Lkp8OyLfhflR9HMY94GHuTnss7T8Vc3qs5T/Wh38xzrqs5T4VdOsP1X4DzVj6//Nl/iZx54dV9idZgvYT3DuIJ1A9dLTfeFTRZNz1PhGLB/UjbuV/b1v9Jn+AfBtg/xERP0iJ4q31mOqY3x54v3PlN89XP5F95Z5O+988tf/LniV75cvPsesoGge4JNHn4Oia0d//u6aIdFXQ7D4Qn27YpnLjfOy9i64nO5dpTPHQcfbHKvQY1rb/9eVTVW4Yv1VdMc62zTqRlh8ZYhyvC4FXkkGbu/ILg03YhfVTd2/NDj1A1l76+qG1dt2mZ++NLNIAheafptciwQx5s/2MA+Ef9u6puxP9uXH5/TfDyUXSCPWJDupscCXSEPXvho7fDCRx43xPHhB4w3uog0sp2pOEHFEHihNNYhHtfyFWG91SKs2y3C4o+11/2AMY6p9Sm3Anj59KuwfPptWj55+gjB6dEgS5lULfn4Ay/W/tfXdJZ23dk9Kw/1EQaVmmMasD3ybe0PSG7Y1/MH1q7UctPqMM3e9LJWTI/3djdwuZ0V1M0O4TQcrDv40WLEuVvRHtMP2P53Qdc+AbRW9cfUBm+rfR1s7Rtka56OgZy+1o2vBiv+HxP/1v6PHLamjk+pGJ5pwPZqO67OdUEfhFflrA63c1EmXJSt4Wt0dW3tG2RrrmuzlK09BliqPb46ie3/vKatPQL49lqmen23zrHIvoOPI8EHtn9AfFj7vxB8eH59dc5jVXVFQNVrqX/psPO2r4TjFL7rSjhPrz4sWFdRXuqIKevqXwt5mb7hR77wlbey9E688FOoj3zhuPUB73ljVBYe0/OOyvKRAddrAWiXhlPlDAwmXoXh+pCf0ao+iIDrNrbzQ8Cj2uMHpbH93zvs3M/HZDYfzL4HNHWJTsTfp/bfddi5utLV9QHS86505Q9/qSOje/RvX/JSV6fsCnr4SM8/1rTz1/kxPxw3tnPXGJWFx/S8a25NZuo1BD7WpK4PVnkU0xP8CKiy8zofdnbZOeJR7XmL0dp/z2HnfLH+8frf4YXKRm/RjtkmEX+f2v+Hw87VtdF45J514up/iNTtF3cFPewX//sNsPPL/Ggn27nro51ol/wRGWVf+FF41wc8PX+AOjNZqA8NY26RX7mx9j9w2BjaE+thWXg81Ac5kW/+GCTKnD+S5ucDjht53TlHXrdJXta+19uWl7Ix/Bjqy34nXvgZKRvDcWMbc41RWXhM1fyEY2P8qY9m81yn8pooc57rrP9uRfuq3OoBjJHNdWo+51cnFOyy+7fWf/scy/EkDDsmm5MNX5wPQfx9an9/zTfnMsvf3gXoXI7zaJnkyzzLF4t0nt8h+GUxvSnHsJT7nd5GZp3A035RFIav7/xDHHWEHLoVsrdx6QRX5/xDaceuvVOE9dw6qy/8IENYhwQoZRlW9C/LvgPPh0p29tmHShb4UbLTGegEcJ1s2pbl2vrfPeiL7Y2OPrUfrbkuZ5gJzOAv2wp8ZbtPO9p1Kn5fwhDPeidnn+2dbLfvnmy3N9yDk20are4G1GEEUpab63+jvBCW0dGn9p9c8356SB36WP+hwH+d8J+hWzxDxWRYXfEMT1D8FM3AyHvbRvgSJ8HHZ0yb6Q47T45+DJ76RRkoWzNniDubx+3wHA6D7SjN8BgPN1rgYRhsR6OMZ9ACHv68ZFmO17/hxUo0JDoRD+NtecIK+VKtduFHS88nOyJ+iae1cYFAAl+qw5XGL/Q2z3FixFXqdTGmWy/BwdzySwRTnVpV+mnPr4n2rgu3MRC6VoEH251H284l0aYCkqq+nMlQO7B7gsbj9W+YT+bjuBiFi3D1v2W2mIRplk4X6WSZhGm6CEdRGs6mk2Ixjsb5dJYlcb4cJeE8ypJwPD3V0esCdrxMkjQupqsNtck8nUzyeDJNojwvRpPpOBwnk+ViPprky0URT6NwUYxnSRzOV9uv05XxTsaLvWB7PjDYUZJGi9E4W+ZhEhbzIomiJF9kyTxP0uUiSmbRdDYqpuNRHKaj8epZGqWTOJ2ni1G+KJLMNT/Ekzibj6fz+SjP5rNZUSzHq16TZTQb5VE8S6I4z5NkkqZhXiyLWZpMV0KazCfTKB3Pw3S6F2zPAQZ7JdR4VIzSvChWdE+nk3mUzCfzopgv8iQfrxbf48WsWHESz+Yr+c2WYZEXkyyapbNxtJK601enURwnKyJmo0k4ycLFfBIXkzzL8mkWL9LFMg7jbLQswmyaLKbpdPU4jeb5alkd5rNllDkvIZyOk1kYz7N5ns+TZFoU6YrIRT7LoiSeTuPV0nz2UkDhuIhWj4tssRyNw5XuJGE4HcXsK8/ALhazaKUDyTyZF9NotlwJsVj9mecrHlYo02iZTxfhNCo1dZaGSbGcRfNlHs9nSZKNl+plxzPwL1g4c3pGD2fLaTZZ6XEyn4XTRTaNk3AUJnkYj6argRstRstpnE7TRR6n6UrLkyxarlQ1LgdjxeeEs4xn5RIu8kUcZ2E2SZZxPl2N0wpLWiyKxTIah9Fsks3CZCW3vBhnybJYiT6drexsOYnms+xU5ncU3fF0trKTRZ6tFCscxYvRLEvTFYRkNJuubHOUZOFytJzl4UqnVtZbyj6cTrNwusxWmAuD/ZaCHSVRttKE0WS5EkUYJ3G6sunRLC2xjdPRaKXiyWwyjqJ5Fq8ArwxzZVJRNpuHSVrkI5WhP10brP/2s/MR1X6TxPAPiFYf8TXiM3pYPq7T9dZX7T5wplPtZNwTeFw7GW3AOmgR1qBFWHeuKI+3WoS1d0V5vN0irP0ryuP1FmENryiPN1uEdc0Djxx3tjzHZOqkiRXlv/lN1YB4xIJ0l7r0qRqnVNXbEHxBAuolXzyP/vV1yknN3VaUnIzupnLC8WA5oc6wnHCufZ1ywjUiFyUno7upnHA8WE6oMywnP/mg5nLi/CsWJSeju6mccDxYTqgzLCdPea3GclK5RStKTkZ3UznheLCcUGdYTp7eJGosJzy9w0XJCd/saSInHI8mF93sCriec5y1P65r+AfBtix9rLfUCRF14shkdyBoVSe6OF5Rb8wdCDwK1vUWYfVahLXXIqxOi7AGLcLqtwjrRouwdlqEdbNFWN0WYfFbYug72G95OYjR4DI9w/863w5XeSLPtxGcfiBAHc7YddDj6fLD0ze61D5NR9CDHyxgHQqCbZ+JdON+Tlku+4YJTzofusZUybBDssH2PUG/61K9887HdARcw4Uxz/UK2vBkJ7Y5Pd9C7TvrP8q2P09vMVwjGo7X/w4vVDan8vEEtZLnNaL5tD3QzCes69oF04DtkW+jR+1LDh39UFdUX97vxBwXn4W4DbQzniG1vUb/7gs46tyH9bussVen611jb+3vNBx71163Orldd+xvUz/lQ6v68pmaa0Afw+Lx5T1+5a/VeZteBZydYFv/DgjOQPRz+VB1FqOun+ILiq39cxh3fgtc9cezH+psFq5TzT98eLub++DpD/ftbmHK+ZkguDTd+PB2Nz98ZEwXFvU2GvPD82AQnB0jlA0W5Okit7sZbT8ct7ttbAz1ivmv8iFclMzt2UVud3PF6tau6oUJT3ILXT4U+WH92BXteW1aFnUmb5dgNT1L2BS30nvPco1ctDY9J8m5XORNxWl15htfdlh3vrFnlzXfdIVcXfONkvlQ1HHcqsZb5XMUrE6LsNrwNWU5Xv+GzUrlBxcwpm5xnKfq3YiAZMD78PY3F+X/je6mH1xA/eB3E9TaTekf35SHsQOfm67Kv1XZgIrHh6J/l2hQ65w6tq/wKJrVvMHzt4ohew48KoZUccNF+VE0q3jxoniQH765c7dFPKiLl5PPCRPP/iL0e4YpjFT8Z7yU8vxaf/Mc66puTOS8lbX/en8D87f6Z8fG05w6Zj+EZb9i3LAOZc52iD6abQfzTk3PCpgsmn6QAm3GeMKbbe3ZH8A4fJPGwc/5r83NtiaXKt3h20at/R87cp7qxlPlI5gGbI988x4G6ge/h+NJXjP17qEVdU6G9Rb3SVhvMR/Jeot7s+ynMT+KMuGidBrP59W9bfObFX7HcLDu8FkFvHlWtUc/hu2/7ciznucjXRcIlOV4/RtesLzGHG7tddMPSw63zh5o0xxum7BU/NklPE3jTxXnuuJPz3v+tW/wN/xX9YOHat2rYtc6eaS66+urCot1B8fRR/yMtAdB+75Y2ea+g281p1TZmpqrWV5Yh7ZhuDmHovJyhm9P0N2mzIx+i8ur1s6Gv0/t/5niVl9rL76VCnF59nkjtT62ovIrrFcoE9ZHXktiXdVeNxcV55ksSty/WCPOUzrYoTrlf6xO7U2pvR32tWhzfKMj2g7nEHgeOl7/hhcrkcrHXJZ/7BDfQeD25a6YoivoV/t27OeQt6qcrwuHwVRxvmuPrOPA3+I+e8QPWA4u3tS+Ua+Cb+zfF3xX5SVZToo2ZaMMd8fBx3l9lZ9SOlPqRdu3EY7jeZYn2TScF9k4H43Pu42wbfzFpLwVYVnkURTFi7Bochui8pO896bOdKm5Mwja9yunN1wCHqSH1+HW/iadxfSUa5Fz/IBk5Ct33CEZoC27ctm+3pnhXOGPrRGVP7fXfyudYl+vYg+rU7GH+ooU66mfdwk3Y2BxStXtvXwvkrU/WsvlvNt7cQzL0jvxwk+qbu/FPGIf8CJfQbDhG9vzvL8v2uPY8O29+1DHc4haP6PMed1kMqy6vdfg8XrhozBGfHsv2v0Nol3l+1wfX1dxHOYhf/pSzpeHk32iGcu+kFuH6lQ+nHUJZWB1qAdN1w4mi6Zrhzb8EPsaX3PNB9kvmExdfqFNm+R1nbprDW3SR1yXZvl4no+jaJpGRRplr3LL9VU5F9oRtFtR9oxnP7//iucQeQ/KtTbH9ejx+vccGUTnCclw8fqmzropEPzwmQqerzoCDr8H8DmaQzzFgjIu5vHoCD7VOJqMfNhYPJmMpvEsTMeL+XKRJq9iY75k6HmejzznPxP2ESir8ndGe/GYr1V5A17rWftfg3VGQeuMNnODKi7gud/TOZuUY6sA+PF7r0z9/TPDPwi8xkGn+2fqLIbrnWJPa8DUFcMMBD3lu2+3gu0xQ/oMluuOV9RfvtOg6d4a9ufYB8fYlQvnGE3NtyqewvNGrnxUh+RQ5Sd438fa/wb4iT8hP6FiFRXrs59QZ22tTr0/6PfOno0u3jpHRvskI2v/myIf4dJvPIfMMb26O0XF7SYv1P9bJK/X8dX0vqCnT+1/xyGvunfHMA3Y/pZDXihL7Mu4q3zLZeniebJlXbT2f1gzN7YH/JSld+KFn0ytgXGd2we8VfaC7euMv2ud67prCH02+3PEe5Pq0NeyP0efbb4Nfalr7lHv77A/3w2a+fM/FXm5ujHn/wNrwOh5zB4BAA==",
|
|
3415
|
-
"debug_symbols": "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",
|
|
3474
|
+
"bytecode": "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",
|
|
3475
|
+
"debug_symbols": "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",
|
|
3416
3476
|
"brillig_names": [
|
|
3417
3477
|
"compute_note_hash_and_optionally_a_nullifier"
|
|
3418
3478
|
]
|
|
3419
3479
|
},
|
|
3480
|
+
{
|
|
3481
|
+
"name": "sync_notes",
|
|
3482
|
+
"is_unconstrained": true,
|
|
3483
|
+
"custom_attributes": [],
|
|
3484
|
+
"abi": {
|
|
3485
|
+
"error_types": {
|
|
3486
|
+
"17843811134343075018": {
|
|
3487
|
+
"error_kind": "string",
|
|
3488
|
+
"string": "Stack too deep"
|
|
3489
|
+
}
|
|
3490
|
+
},
|
|
3491
|
+
"parameters": [],
|
|
3492
|
+
"return_type": null
|
|
3493
|
+
},
|
|
3494
|
+
"bytecode": "H4sIAAAAAAAA/9VUyw6CMBBseURBOaiJ3kz8gyIYOJJ49x8akKMe8OKNT5eabbqpVRKlJkzSbEs3szNlW0oUKESPvAH9tGnIFdhBDCA6aN/tRgFr9hviQKs7JH/O0iQw+BtQ/5OfWtIvIPktnT+bAM+xVfzYi6w77UaIesKWZ/nPbHpe9fhc/MFnh32k1caghm+uIYci3RuYR4Y8iRlRd9prh/eV5YzJei7w++RVO67va/lrWIeafvmOFV/qrDMe1wmv+YFXVVrypcYv4KBzGnMvbGHe1wvY45yo3mjul/J0vZ0b0gNB8gCVxsvQjgYAAA==",
|
|
3495
|
+
"debug_symbols": "ndLBCoQgFAXQf3nrFmla2a/EEFYWgmiYDQzRv49FMzRDG908vOJ5bu4KvWiXsZF6MDNU9QrKdNxJo31atwRaK5WSY3O9hnQfCB3v54nrPc6OWwcVokUCQvf+lFPvB6kEVCQl2yMBhMNJFk5IOKHBBN/+wghip2GE5F+EaHogGoPyGFTEoDICZbc9YDQtP4ji4hdtPj65lbxV4uzZsOjuUjv3msRfAydrOtEvVuxdvNTQzxoVCcZ+rV/9Bg==",
|
|
3496
|
+
"brillig_names": [
|
|
3497
|
+
"sync_notes"
|
|
3498
|
+
]
|
|
3499
|
+
},
|
|
3420
3500
|
{
|
|
3421
3501
|
"name": "entrypoint",
|
|
3422
3502
|
"is_unconstrained": false,
|
|
@@ -3572,7 +3652,7 @@
|
|
|
3572
3652
|
}
|
|
3573
3653
|
},
|
|
3574
3654
|
{
|
|
3575
|
-
"name": "
|
|
3655
|
+
"name": "blobs_hash",
|
|
3576
3656
|
"type": {
|
|
3577
3657
|
"kind": "field"
|
|
3578
3658
|
}
|
|
@@ -3903,6 +3983,27 @@
|
|
|
3903
3983
|
"kind": "struct",
|
|
3904
3984
|
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
3905
3985
|
}
|
|
3986
|
+
},
|
|
3987
|
+
{
|
|
3988
|
+
"name": "max_priority_fees_per_gas",
|
|
3989
|
+
"type": {
|
|
3990
|
+
"fields": [
|
|
3991
|
+
{
|
|
3992
|
+
"name": "fee_per_da_gas",
|
|
3993
|
+
"type": {
|
|
3994
|
+
"kind": "field"
|
|
3995
|
+
}
|
|
3996
|
+
},
|
|
3997
|
+
{
|
|
3998
|
+
"name": "fee_per_l2_gas",
|
|
3999
|
+
"type": {
|
|
4000
|
+
"kind": "field"
|
|
4001
|
+
}
|
|
4002
|
+
}
|
|
4003
|
+
],
|
|
4004
|
+
"kind": "struct",
|
|
4005
|
+
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
4006
|
+
}
|
|
3906
4007
|
}
|
|
3907
4008
|
],
|
|
3908
4009
|
"kind": "struct",
|
|
@@ -4835,7 +4936,7 @@
|
|
|
4835
4936
|
}
|
|
4836
4937
|
},
|
|
4837
4938
|
{
|
|
4838
|
-
"name": "
|
|
4939
|
+
"name": "blobs_hash",
|
|
4839
4940
|
"type": {
|
|
4840
4941
|
"kind": "field"
|
|
4841
4942
|
}
|
|
@@ -5166,6 +5267,27 @@
|
|
|
5166
5267
|
"kind": "struct",
|
|
5167
5268
|
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
5168
5269
|
}
|
|
5270
|
+
},
|
|
5271
|
+
{
|
|
5272
|
+
"name": "max_priority_fees_per_gas",
|
|
5273
|
+
"type": {
|
|
5274
|
+
"fields": [
|
|
5275
|
+
{
|
|
5276
|
+
"name": "fee_per_da_gas",
|
|
5277
|
+
"type": {
|
|
5278
|
+
"kind": "field"
|
|
5279
|
+
}
|
|
5280
|
+
},
|
|
5281
|
+
{
|
|
5282
|
+
"name": "fee_per_l2_gas",
|
|
5283
|
+
"type": {
|
|
5284
|
+
"kind": "field"
|
|
5285
|
+
}
|
|
5286
|
+
}
|
|
5287
|
+
],
|
|
5288
|
+
"kind": "struct",
|
|
5289
|
+
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
5290
|
+
}
|
|
5169
5291
|
}
|
|
5170
5292
|
],
|
|
5171
5293
|
"kind": "struct",
|
|
@@ -5184,8 +5306,8 @@
|
|
|
5184
5306
|
"visibility": "databus"
|
|
5185
5307
|
}
|
|
5186
5308
|
},
|
|
5187
|
-
"bytecode": "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",
|
|
5188
|
-
"debug_symbols": "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Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IIu7Psjirg+yuOuDLO76IKu7Psjqrg+yuuuDrO76IOvibc2u7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K664Os7vogq7s+yOquD7K564Ns7vogm7s+yOauD7It3tbs5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCbuz7I5q4Psrnrg2zu+iCb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eamjcc8HalFe6mjc84FalJc6Gvd8oBblpY7GPR+oRXmpo3HPB2pRXupo3POBWpSXOhr3fKAW5aWOxj0fqEV5qaNxzwdqUV7qaNzzgVqUlzoa93ygFuWljsY9H6hFeSkU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO65objnhuKeG4p7bijuuS2KUkvyUobinhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p73lHc847inncU97yjuOd9UZRakpfqKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847invfXc89zTssl/VzqQO2aiclHKr1/VvtdQQ6vQJwrqDkv11RySYMZZ+k64yz3mxmnKLUFpbai1DaUWkOp7SS1r+eT76y2ylWt3Xie6t3zbKvWuz/aVu3RvNRztYpSezQv9Vzt0bzUc7VH81LP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lzoa93ygFuWljsY9H6hFeamjcc8HalFe6mjc84FalJc6Gvd8oBblpY7GPR+oJXkpPRr3fKCW5KX0aNzzgVqSl9JFUWpJXkqPxj0fqCV5KT0a93ygFuWljsY9H6hFeamjcc8HalFe6mjc84FalJc6Gvd8oBblpY7GPR+oRXmpo3HPB2pRXupo3POBWpSXOhr3fKAW5aWOxj0fqEV5qaNxzwdqUV7qaNzzgVqUlzoa93ygFuWljsY9H6hFeamjcc8HalFe6mjc84FalJc6Gvd8oBblpY7GPR+oRXmpo3HPB2pRXupo3POBWpSXOhr3fKAW5aWOxj0fqEV5qaNxzwdqUV4KxT1XFPdcUdxzRXHPFcU9VxT3XFHcc0VxzxXFPVcU91xR3HNFcc8VxT1XFPdcUdxzRXHPFcU9VxT3XFHcc0VxzxXFPVcU91xR3HNFcc8VxT1XFPdcUdxzRXHPFcU9VxT3XFHcc0VxzxXFPVcU91xR3HNFcc8VxT1XFPdcUdxzRXHPFcU9VxT3XFHcc0VxzxXFPVcU97yguOcFxT0vKO55QXHPy6IotSQvVVDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55QXHPC4p7XlDc84LinhcU97yguOcFxT0vKO55RXHPK4p7XlHc84rintdFUWpJXqqiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84rinlcU97yiuOcVxT2vKO55RXHPK4p7XlHc84binjcU97yhuOcNxT1vi6LUkrxUQ3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOeG4p4bintuKO65objntihKLclLGYp7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuub2Bey56TV+6DtSumZh8pPLt/h9qvyso4RVU5wpqzss1lVzSYMZZus649UThZsY1lFpDqe0ktW/gk79TbUKpzSi1cjC1Va5q7cbzvIFP/k613v3RtmqP5qWeqz2al3qu9mhe6rnao3mpp2rr0bzUc7VH81LP1R7NSz1Xi/JSb+CTv1MtyktVlJeqKC9VUV6qorxUQ3mphvJSDeWlGspLvYFP/k61KC/VUF6qobxUQ3mphvJShvJShvJShvJShvJSb+CTv1MtyksZyksZyksZyksZykt1lJfqKC/VUV6qo7zUG/jk71SL8lId5aU6ykt1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5aUSyksllJdKKC+VUF4qo7xURnmpjPJSGeWlXo80f6talJfyDj/fWC3KS3nHnm+sFuWlvAPPN1aL8lLeUecbq0V5Ke+Q843VoryUd7z5xmpRXso72HxjtSgv5R1qvrFalJfyjjTfWC3KS3kHmm+sFuWlvOPMN1aL8lLeYeYbq0V5qcNxz5+rRXmpw3HPn6tFeanDcc+fq0V5KRT3vKK45xXFPa8o7nlFcc8rinteUdzziuKeVxT3vKK45xXFPa8o7nlFcc8rinteUdzziuKeVxT3vKK45xXFPa9H45735frXB3u6VXswLzVQezAvNVB7MC81UHswL/Vc7dG45wO1B/NSA7UH81IDtQfzUgO1ilKL8lJH454P1KK81NG45wO1KC91NO75QC3KSx2Nez5Qi/JSR+OeD9SivNTRuOcDtSgvdTTu+UAtyUu1o3HPB2pJXqodjXs+UEvyUm1RlFqSl2pH454P1JK8VDsa93ygFuWljsY9H6hFeamjcc8HalFe6mjc84FalJc6Gvd8oBblpY7GPR+oRXmpo3HPB2pRXupo3POBWpSXOhr3fKAW5aWOxj0fqEV5qaNxzwdqUV7qaNzzgVqUlzoa93ygFuWljsY9H6hFeamjcc8HalFe6mjc84FalJc6Gvd8oBblpY7GPR+oRXmpo3HPB2pRXupo3POBWpSXOhr3fKAW5aWOxj0fqEV5qaNxzwdqUV7qaNzzgVqUlzoa93ygFuWljsY9H6hFeamjcc8HalFe6mjc84FalJc6Gvd8oBblpY7GPR+oRXmpo3HPB2pRXupo3POBWpSXOhr3fKAW5aWOxj0fqEV5KRT3vKG45w3FPW8o7nlDcc8binveUNzzhuKeNxT3vKG45w3FPW8o7nlDcc8binveUNzzhuKeNxT3vKG45w3FPW8o7nlDcc8binveUNzzhuKeG4p7bijuuaG454bintuiKLUkL2Uo7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG45x3FPe8o7nlHcc87inveF0WpJXmpjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nkncc91IXHPV7UgL7WqBXmpVS3IS61qFaUW5KVWtSAvtaoFealVLchLrWpRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3KS5G456talJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3KS5G456talJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3KS5G456talJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3KS5G456talJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3KS5G456talJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3JSyUU9zyhuOcJxT1PKO55WhSlluSlEop7nlDc84TinicU9zyhuOcJxT1PKO55QnHPE4p7nlDc84TinicU9zyhuOcJxT1PKO55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G4p7boui1JK8lKG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKeG4p7bijuuaG454binhuKe24o7rmhuOeG4p4bintuKO65objnhuKedxT3vKO45x3FPe8o7nlfFKWW5KU6inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO45x3FPe8o7nlHcc87inveUdzzjuKedxT3vKO4553EPS8LiXu+qgV5qVUtyEutakFealWrKLUgL7WqBXmpVS3IS61qQV5qVYvyUiTu+aoW5aVI3PNVLcpLkbjnq1qUlyJxz1e1KC9F4p6valFeisQ9X9WivBSJe76qRXkpEvd8VYvyUiTu+aoW5aVI3PNVLcpLkbjnq1qUlyJxz1e1KC9F4p6valFeisQ9X9WivBSJe76qRXkpEvd8VYvyUiTu+aoW5aVI3PNVLcpLkbjnq1qUlyJxz1e1KC9F4p6valFeisQ9X9WivBSJe76qRXkpEvd8VYvyUiTu+aoW5aVI3PNVLcpLkbjnq1qUlyJxz1e1KC9F4p6valFe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xT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDc84binjcU97yhuOcNxT1vKO55Q3HPG4p73lDcc0Nxzw3FPTcU99xQ3HNbFKWW5KUMxT03FPfcUNxzQ3HPDcU9NxT33FDcc0Nxzw3FPTcU99xQ3HNDcc8NxT03FPfcUNxzQ3HPDcU9NxT33FDcc0Nxzw3FPTcU99xQ3HNDcc8NxT03FPfcUNxzQ3HPDcU9NxT33FDcc0Nxzw3FPTcU99xQ3HNDcc8NxT03FPfcUNxzQ3HPDcU9NxT33FDcc0Nxzw3FPTcU99xQ3HNDcc8NxT03FPfcUNxzQ3HPDcU9NxT33FDcc0Nxzw3FPTcU99xQ3HNDcc8NxT03FPfcUNxzQ3HPDcU9NxT33FDcc0Nxzw3FPTcU99xQ3HNDcc8NxT03FPfcUNxzQ3HPDcU9NxT33FDcc0Nxzw3FPTcU99xQ3HNDcc8NxT03FPfcUNxzQ3HPDcU9NxT33FDcc0Nxzw3FPTcU97yjuOcdxT3vKO55R3HP+6IotSQv1VHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vKO55R3HPO4p73lHc847inncU97yjuOcdxT3vJO55XUjc81UtyEutakFealUL8lKrWkWpBXmpVS3IS61qQV5qVQvyUqtalJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3KS5G456talJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3KS5G456talJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3KS5G456talJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3KS5G456talJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFWL8lIk7vmqFuWlSNzzVS3KS5G456talJcicc9XtSgvReKer2pRXorEPV/VorwUiXu+qkV5KRL3fFVL8lIJxT1PKO55QnHPE4p7nhZFqSV5qYTinicU9zyhuOcJxT1PKO55QnHPE4p7nlDc84Tinqc3cM9Fr+lL14Ha9O1Pa3+k8u3+H2q/K6jhFTTnCmrOyzWVXNJgxlm6zjjL/WbGGUptJ6l9A5/8nWoTSm1GqRWUWj2Y2ipXtXbjebJ3z7OtWu/+aFu1R/NSz9UezUs9V3s0L/VUrRzNSz1XezQv9Vzt0bzUc7VH81LP1SpKLcpLCcpLCcpLCcpLCcpLKcpLKcpLKcpLKcpLvYFP/k61KC+lKC+lKC+lKC+lKC9VUF6qoLxUQXmpgvJSb+CTv1MtyksVlJcqKC9VUF6qoLxURXmpivJSFeWlKspLvYFP/k61KC9VUV6qorxURXmpivJSDeWlGspLNZSXaigv9QY++TvVorxUQ3mphvJSDeWlGspLGcpLGcpLGcpLGcpLvYFP/k61KC9lKC9lKC9lKC9lKC/VUV6qo7xUR3mpjvJSb+CTv1Mtykt1lJfqKC/VUV6qk7xUXkheKi8kL5UXkpfKC8lL5UVRakleKi8kL5UXkpfKC8lL5QXlpRLKSyWUl0revVSTerl8/Xcvn9V+V+DdH40VaHgF3n3MWIF3bzJW4N1vjBV49xBjBd59wVCBey73WIH3+j1WEL4mu2dijxWEr8nu2dVjBeFrsnvG9FhB+JrsngU9VOCe7zxWEL4mu+cwjxWEr8nuecljBeFrsnuu8VhB+Jrsnj88VhC+JrvnBI8VhK/J7nm+YwXha7J77u5YQfia7J6PO1YQvia759iOFYSvye55s2MF4Wuyey7sWEH4muye3zpWEL4mu+esjhWEr8nueahjBeFrsntu6VhB+Jrsni86VhC+JrvngI4VhK/J7nmdYwXha7J7ruZYQfia7J5/OVYQvia751SOFYSvye55kmMF4Wuye+7jWEH4muyezzhWEL4mu+cojhWEr8nueYdjBeFrsnsu4VhB+Jrsnh84VhC+Jrvn/I0VhK/J7nl8YwXha7J7bt5YQfia7J5vN1YQvia759CNFYSvye55cWMF0WuyuOe6jRVEr8ninr82VhC9JssSvSaLe/bZWEH0mizuGWVjBdFrsrhniQ0VuOeDjRWEr8nhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jJeE5XhKe4yXhOV4SnuMl4TleEp7jpeE5Xhqe46XhOV4anuOlS/SarOE5Xhqe46XhOV4anuOl4TleGp7jpeE5Xhqe46XhOV4anuOl4TleGp7jpeE5Xhqe46XhOV4anuOl4TleGp7jpeE5Xhqe46XhOV4anuOl4TleGp7jpeE5Xhqe46XhOV66Ccer5+WS07KkgQIrSX5cbaV8+uyU7l2d9Xp17mlwtZT64+LV8F2vzfXeQLZ8uTY3HVycmsn1GS15cPFy/eS0tPL54u9DLueQv3rI9RzyVw/5BjYtL6lch1xHS2NdH8uPq2tO7fNSd+ejs5hePjuvh223K2ONLqBFF2DRBfTgAragur1XQIouIEcXINEFaHQB0SuxRq/E4XFuGh7nprFxbut//Ovf//yXv/z5P/7lL3/7tz/+489/++t/fQtevv2v+6cQbf3G4MfntdWNXz8utbvJ2uVi+bS3Kenb4N0/I9jw82Xnz9edP7/s/Pl1589vO3++7fz5fd/Pv++CN/z8nd9f3fn91Z3fX935/dWd31/d+f3Vnd9f3fn91Z3f37Lz+1t2fn/Lzu9v2fn9LTu/v+XL7++3oDoT1GaCbCaoTwTVZSYozQTlmSCZCdKZoJkZUWdmRJ2ZEXVmRtSZGdFmZkSbmRFtZka0mRnRZmZEm5kRbWZGtJkZ0WZmRJuZETYzI2xmRtjMjLCZGWEzM8IezIjrLnz9Z78JqjNBbSbIZoL6RFBfZoLSTFCeCZKZIJ0JmpkRfWZG9JkZ0WdmxP0O11aXy2no+s/666B0v6t0GJWmovJUlExF6VRUmYqqU1FtKsqmoqbmRpqaG2lqbqSpuZGm5kaamhtpam6kqbmRpuZGmpobaWpu5Km5kafmRp6aG3lqbuSpuZGn5kaemht5am7c/xVsK9ovUdZ+GfXT86t7ub1H3/8e939JuvE90gvukV9wD3nBPfT330Nbu/waTW35+Gqup++3KPvfou5/i7b/LWz/W2zwiquly9UlfZpS/d4vIItevrUtah8fnL6no4uvdJKvdPKL05GPn8JK//Sz0h+TR8VZPuosn+Isn+osn+YsH3OWT/eVT1mc5ZOc5eNsfS7O1ufibH0uztbn4mx9Ls7W5+JsfS7O1ufqbH2u+67PP98i738L2f8WGyyMJafLL1xLzvXmFmX/W9T9b9E2voXIzS1s/1v03W/Rli1uYR+36DfPoqX9b5H3v8UGb3f5aOss8umLvB+3sC1uUfulUaG0dPO4Tfe/Rdn/FlssIK2k6y2a3tyi7X8L2/8WfeNbWPr1Lfqy/y3S/rfYYgGxdJ20VvS5Iyof6dRPH/zjAK+Lr3TUVzrFVzrVVzrNVzrmK53uKZ28LL7SSb7ScbUq58XVqpwXV6tyXlytynlxtSrnxdWqnJdNVuVrT3TpWZ6ns1bJa+tr/7T1kW7fE+rOEkqLt4SSt4Syt4TEW0L64oRWP3E5w1j/abcJFW8JVW8JNW8JmbeEurOE8uItoeQtoewtIfGWkLeVOntbqbO3lTp7W6mzt5U6e1upxdtKLa9fqfUK61w+ffQ1oewtIfGWkHpLqHhLqHpLqHlLyLwl1J0lpIu3hF7+2qcrH3D9Z75N6OWTOl1/yLEevaTbhF4+qVO98hY//1bpmlB3llBZvCWUvCWUvSUk3hJSbwmVNya0LtW3CVVvCTVvCb1+pS4fpaPe1rLSnSVUF28JJW8JZW8JibeE1FtCxVtCL1+p133FdWFsy21CzVtC5i2h7iyhtnhLKHlLKHtLSLwlpN4SKt4Sev061D/+3kG/PY6xl79lki6/Z1r/ebsNspe/ZVL6NSG7/e2HibeE1FtCxVtC1VtCzVtC5i2h/saEdLk9he2Lt4SSt4TesFJ/lI5yW8u6eEtIvSVUvCVUvSXUvCVk3hLqvhKSZfGWUPKWkLOVWhZnK7UszlZqWZyt1LI4W6ll2Xel/vkWtv8t+u632LkB5udbpP1vkfe/xRarUpcrfKKX/HyK1+V6WlSXqjf5qLN8irN8qrN8mrN8zFk+fdd8vt1iixaSNfV2VWHld0neooNk03yys3zEWT7qLJ/iLJ+6az4/36Ltfwvb/xZ991vIsv8t0v632GRFejppRfa/he5/i7L/Ler+t2j738L2v0Xf/Ra67H+LtP8t9n+7df+3W/d/u3X/t1v3f7t1/7db93+7df+3u+z/dpf93+6y/9td9n+7y/5vd9n/7S77v91l/7e77P92l/3f7rr/2133f7vr/m933f/trvu/3XX/t7vu/3bX/d/uuv/bXfd/u9v+b3fb/+1u+7/dbf+3u+3/drf93+62/9vd9n+72/5vd9v/7bb9327b/+22/d9u2//ttv3fbtv/7bb9327b/+22/d9u2//t7vu/3X3/t7vv/3b3/d/uvv/b3fd/u/v+b3ff/+3u+7/dffe3W5dl/1uk/W+R97+F7H8L3f8WZf9b1P1v0fa/he1/i/3f7rT/2532f7vT/m932v/tTvu/3Wn/tzvt/3an/V+93/Kzuv6LW3yL+i2/lLsTlaai8lSUTEXpVFSZiqpTUW0qyqaipuaGTM0NmZobMjU3ZGpuyNTckKm5IVNzQ6bmhkzNDZmaGzo1N3RqbujU3NCpuaFTc0On5oZOzQ2dmhs6NTd0am6UqblRpuZGmZobZWpulKm5UabmRpmaG2VqbpSpuVGm5kadmht1am7UqblRp+ZGnZobdWpu1Km5UafmRp2aG3VqbrSpudGm5kabmhttam60qbnRpuZGm5obbWputKm50abmhk3NDZuaGzY1N2xqbtjU3LCpuWFTc8Om5oZNzQ2bmht9am70qbnRp+ZGn5obfWpu9Km50afmRp+aG31qbvSZuVGWZSoqTUXlqSiZitKpqDIVVaei2lSUTUVNzY00NTfS1NxIU3MjTc2NNDU30tTcSFNzI03NjTQ1N6bORcvUuWiZOhctU+eiZepctEydi5apc9EydS5aps5Fy9S5aJk6Fy1T56Jl6ly0TJ2Llt9wLvrpTw/c/7ohmVwoGcn0429tlfT9Frr/Lcr+t6j736Ltfwvb/xZ991v8hiPl332LtP8t8v632P/t1v3fbt3/7db9327d/+3W/d9u3f/tLvu/3WX/t/v1f8jkObi7vP4PmUi+/jEckeU2oewtIfGWkHpL6PWQwWQfCaXbhKq3hJq3hMxbQt1ZQq//QyajhJK3hF6/Uj/9mw/l9X/IZJSQekuoeEuoekuoeUvIvCXUnSVki7eEnP0xnGLeVmrztlK//k+9PP9z0uX1f+olyXWEktxuFF//p15GCXVnCb3+T72MEnr9HynN+pFQu00oe0tIvCWk3hIq3hKq3hJq3hJ6/UqdPv6ubL7dKL7+T708T6i+/k+9jBJK3hLK3hISbwmpt4SKt4Sqt4Sat4ScrdR18bZS3/+pTFe7fCHRy/LrTtZ6/9crmq9//Vxz+8gr9XsidKkXEZr188U/30F3v0PZ/Q519zu03e9gu9+h732H+z9beXKHn4PSTFCeCdp9muju00R3nya6+zQpy+53SLvfIe9+B5mY4kVngr66QP/z+h/p26X3f16dlusJZVrk089M7M4otOVSYlvKny9dM7v/O+ztPr7+/o8XuXy89l9/fNvg4/Pl46v8+uNt34/vv//j7eq1evvVx9//Ufl2H59+98dbvrydpr+eOfd/pv7Fj7/4Pvv0pxx/fLz8/o9vl0drt4OjG358/9Vrtf5H/nlpuF9G2nXJSx8zTtYBfjgnnoekr4fkr4fI10P0iyHrf8m3K+9/Sbp+73V5OOs/P0Y8t283u/895vOY+181DmLSREyeiJGJGJ2IKRMxdSKmTcRMzAObmAd9Yh70iXnQJ+ZBn5gHfWIe9Il5cP/w/pd/jLH/OqZNxNhETP96TLp/kjwKSsOgpjdBD4bOLr/RWg+R803QXU0112tQ7jdB99saR0FpJijPBN3XVORiDVZr3n4ddL9KjoLSTFCeCZKZIL0fVOs1yOwmqMwE1ZmgNhNkw6Auvw663+NWa7oGrfPoJkhmgnQmqMwE1Zmg+6O3Tp5rUL1ZWFRmgu6f7S923Rst/Tbo/ptb+2VLUtuy/Dro/rnHKCjNBN2fRqbXIbdyM2HvHziMgnQmqMwE1ZmgNhNkM0F9Iqg+eE7pOmEt36wRD3oUlutX6W2pN6XmQR/BIKhNvBoPfo8/COoTQQ9+1z4ISjNBeSZIZoJ0JqjMBM2se21mRrSZGdFmZoTNzAibmRE2MyNsvO7dvoRWZ4LaTJDNBD1Y9669erUvN9X9/iat9ut5ZO1aboLKTFCdCWozQfdHr2f7CKo3Qf3rQfn+Tm0UlGaC8kyQzATpTNCD52Qfc8/KTZANK6HqTVCfCHoA1RkEpZmgPBMkM0E6E1Rmgh7UJ22PHUt+QNN5anNyspmgPhGUl5mgNBOUZ4JkJkhngiY8bL5vEpPma//Bt3//utjk+zZxHHb/Sxj96CBe/y03y8t9AzcOK3NhdS6szYXZXFifCrNlLizNheUHYddjim9hNyXIZC5M58LKXFidC2tfD1v/Q79dXB98AVvk40vGor9+6WqeipKpKJ2KKlNRdSqqTUXZVFSfiXqwtJbeL0U61SX/+njq/hZ8GJWnomQq6v7cWK/sH1F6E1Wmou6PfF2L0jVqPfP5VdSDxbGuO79rVF5+baoerI2jqDwVJVNRD0Y+q35ElV8vVQ/WxVFUnYpqU1E2FdVnovoyFfVgbuRiH1H15qvGPBUlU1GP5san9yu3X7xfd6hGq2G93iSv388NLi8fG4713zdfXfXiMKfqMKfmMCdzmFP3l9ODnwa8O6nkMansMSl5S1Jin5K6+epr2WoxXz6Sajfnq0t5yV3qS+7SXnIXe8ld+ivukpaX3CW95C6PVpb0ydTl2zCZC9O5sDIXVufC2lyYzYX1qbC8zIWlubC5WZLnZkl+NEv69aitfkbUXMLKXFidC2tzYTYVJg8et/SPxUBvfkyaJM2FPRgS/TjrrCo3hkAeTOXSPrZf5c6Pnpa5sDQXlufCZC5M58LKXFidC2tzYQ+mcr12uKz/lhuHpv1R2MfkqiU9r2sbdsQ9+P3cOxNK3hLK3hISbwmpt4SKt4Tqvgn988OfZW58D3vBPb6+RH4Lq8tcWJoLezTY7eMLhtpufmb64Lud2j7aBNeom6rRHi1B/aPYtOUmySZzYToXVubC6lxYmwuzubA+FfboC6VR2IM52fLnWXLjQB99pTQKk7kwnQt7MEta/dgVNbv58f2jr5VGYW0uzObC+lTYo6+WRmFpLuzBLLHlI8zSzcr16NulUZjOhZW5sEezpH8Ou/Hyj75HGYXZXFifCcuPvi8YhaW5sDwX9miWfJxbV9N2E6ZzYWUurM6FPZgllj+H2U2YzYX1qbBHp7OjsDQXlufCZC7s0Sz55LnM0k1YmQurc2FtLuzRLKmfw37jD2aHYY/OT0dhaS4sz4XJXJjOhT3yJfphZ+yXvaV3vnCQZldnJ63f/CDy0XHrF+9iy/VFEcs3q/Cj09mN72IvuUt/xV0enTBvfJf0krvkl9xFXnIX3eYuuX3c5fY3uVK213LnLvUld2kvuYu95C4bvftXPOn675sffWZdXnKX9JK75JfcRV5yF33JXcpL7lJfcpeN3v366a1sN/sgte213LlLf8VdyvKSu6SX3GWjd79ffzIjfblZk4u85C76kruUl9ylvuQu7SV3sZfcpb/iLnWbd78vH29lTzeHFjVtr+XOXfJL7iIvuYu+5C5l5pu4XOtcWJsLs7mwPhU29+VkbmkuLM+FyVyYzoXNzZI2N0va3Cxpc7Okzc0Sm5slj75lfP6rukc9vVU/fjdftS43YWUurM6FtbkwmwvrU2GPvmUchaW5sDwXJnNhc7Okz82SPjdL+tws6XOzpE/NEnnwPcSA6yBpiiIh+REf4ClWQLLMhelcWJkLq3NhbS7M5sKmKBIiy1zYI4rEU2SCSJ4Lk7kwnQsrc2ETFIn1P8q3i/MDuPCVlvYJLWzf4+rPcfepVXLZx9jy8eT6E7z70wj5coR+OaJ8OaJ+OaJ9OcK+HNG/GnH//bNrb9TnL8+/EZJvLpV6eVHXc/ePyaXp+2q+66fnXT9dvvTp3yL0yxHlyxH1yxHtyxH25Yj+1QhdvhyRvhyRvxxx/5lfgXXW+2+eUZ/B6t9n1P2vITb79LLrp9ddP73t+um266f3PT/9/tcKm3162u7Tb1fQ+18jbPbpsuun331X+7Ulq386YPi+dtz/CuBpRP1yRPtyhH05on814v7x99OI9NWI+2d8TyPkyxF3n/n6ve6PiPXs9dfT5P6p3vOQ+vWQ9vUQ+3pI/3LI/RO85yF3H/16YHkJ6Tfv4v1uhOch8vUQ/XpI+XpI/XpI+2LI+l/t25X3T+F7u5yudvsoCLL83DJ1/wT+eUj+eoh8PUS/HlK+HlK/HtK+HmJfD+lfDrGvP337+tO3rz99+/rTt68/ffv607evP337+tO/f1bfr7/I6NZuQvqXQ/ry9ZD09ZD89RD5eoh+MWT9L/t25YPugE/fL7X28fPtnw+21v/6//749z//8V//8qf/WmO+/T//+6//9o8//+2vP/7zH///f17+P//69z//5S9//o9/+c+//+3f/vTv//33P/3LX/72b9/+f39Yfvyvf6rFfqqt//PPfz3wn2rKP9Wc//kbYefbf2ZZ/9O+/ee3oa+2/FQtf/z11m/X5PaT5OtfbZQf/5d2+Qixn1Suf5zw5wCtP61l93LH+lOrl4tztp+yyOV+WXT9z3plwv78eSo/SdUf0esIl3691ZJ/kqVdoiXpT+vR4vUI8fsd5KdVz//+OB38LrL81JZL0PpFes/X+vTtFt/Gxy636PWntKSPx/ft/5bKT3lZn8v6bP4f",
|
|
5309
|
+
"bytecode": "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",
|
|
5310
|
+
"debug_symbols": "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ze2mKktuOdU6/9R3u+v8U3+1u84/9Xe76/zDl97J/FM/Z17nn7r4rvNPXX3X+acuv+v8k9ff3Jqqdf7J629uUdU6/9R3vuv8w9ffyfxT3/uu80/9Re86/9Tf9K7zT/3QeZ1/6qfOZYkvrHr++Y1vrJrMP3n9ze2sWuefvP7mtlat809+/5vbW7XOP/n9b25zVVniq6ue80N8d9Vk/smfP+e2V63zT15/4/urJvNPXn9zG6zW+Sevv7kdVmXJLbFa55/8/je3xmqdf/L73/giq+f8EN9kNZl/8ufPuV1W6/yT19/4Nqvn88+ts1rnn7z+5hZarfNPXn9zK63W+Se//80ttVrnn/z+N77W6jk/xPdaPZ9/brHVOv/kz5/jq62ef37ju60m809ef3Pbrdb5J6+/uf1W6/yT3//mNlyVJbfiap1/8vvf+JKr5/wQ33I1mX/4+juZf/Lnz/FFV5PPb/L6m1t1tc4/ef3NLbta55+8/ubWXa3zT37/m1t4tc4/+f1vfOXVc36I77yazD/58+fc1quyxNdePf/8xvdeTeafvP7mNl+t809ef3O7r9b5J7//zW2/Wuef/P43uf+qxPdfPeWHEt9/NZl/7ufPJbn/qiy562+J77+azD93/S3J/Vcluf+qJPdfleT+q5Lcf1WS+69Kcv9Vie+/es4P8f1Xk/nnfv5ckvuvSnz/1eTzm7z+JvdfleT+q5Lcf1WS+69Kcv9VSe6/Ksn9VyW5/6rE918954f4/qvn80/uvyrJ/Vclvv/q+ec3vv9qMv/k9Te5/6ok91+V5P6rktx/VZL7r0py/1VJ7r8q8f1Xz/khvv9qMv/w9Xcy/+TPn+P7ryaf3+T1N7n/qiT3X5Xk/quS3H9VkvuvSnL/VUnuvyrJ/Vclvv/qOT/E919N5p/8+XNy/1WJ7796/vmN77+azD95/U3uvyrJ/Vcluf+qJPdfleT+q5Lcf1WS+69KfP/Vc36I77+azD/58+fk/qsS3381+fwmr7/J/Vcluf+qJPdfleT+q5Lcf1WS+69Kcv9VSe6/KvH9V8/5Ib7/ajL/5M+fk/uvSnz/1eTzm7z+JvdfleT+q5Lcf1WS+69Kcv9VSe6/Ksn9VyW5/6rE918954f4/qun86/J/Vc1uf+qxvdfPf381vj+q8n8c9ffmtx/VZP7r2py/1VN7r+qyf1XNbn/qib3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7/kkLYmlxqKotCSWGkfznk/SklhqHM17PkmLYqmjec8naVEsdTTv+SQtiqWO5j2fpEWx1NG855O0KJY6mvd8khbFUkfznk/SoljqaN7zSVoUSx3Nez5Ji2Kpo3nPJ2lRLHU07/kkLYqljuY9n6RFsdTRvOeTtCiWOpr3fJIWxVJH855P0qJY6mje80laFEuhvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPDeU9N5T33FDec0N5z21RVFoSSxnKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaO8547ynjvKe+4o77kvikpLYilHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5zx3lPXeU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5zx3lPXeU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5zx3lPXeU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5z/313vNay3KZfm19knadicnHVNw/p/2ZoKZPIMET9FqX61RqK5MdZ+W646z6zY5TVNqGSttRaQcqraHSOint6/3k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Ukfznk/SoljqaN7zSVoUSx3Nez5Ji2Kpo3nPJ2lRLHU07/kkLYqljuY9n6RFsdTRvOeTtCiWOpr3fJIWxVJH855P0pJYSo/mPZ+kJbGUHs17PklLYql1+qi0JJbSo3nPJ2lJLKVH855P0qJY6mje80laFEsdzXs+SYtiqaN5zydpUSx1NO/5JC2KpY7mPZ+kRbHU0bznk7Qoljqa93ySFsVSR/OeT9KiWOpo3vNJWhRLHc17PkmLYqmjec8naVEsdTTv+SQtiqWO5j2fpEWx1NG855O0KJY6mvd8khbFUkfznk/SoljqaN7zSVoUSx3Nez5Ji2Kpo3nPJ2lRLHU07/kkLYqljuY9n6RFsdTRvOeTtCiWQnnPFeU9V5T3XFHec0V5zxXlPVeU91xR3nNFec8V5T1XlPdcUd5zRXnPFeU9V5T3XFHec0V5zxXlPVeU91xR3nNFec8V5T1XlPdcUd5zRXnPFeU9V5T3XFHec0V5zxXlPVeU91xR3nNFec8V5T1XlPdcUd5zRXnPFeU9V5T3XFHec0V5zxXlPVeU91xR3nNFec8V5T1vKO95Q3nPG8p73lDe87YoKi2JpRrKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU9byjveUN5zxvKe95Q3vOG8p43lPe8obznDeU97yjveUd5zzvKe95R3vO+KCotiaU6ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPe8o73lHec87ynveUd7zjvKed5T3vKO85x3lPR8o7/lAec8Hyns+UN7zsSgqLYmlBsp7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T03lPfcUN5zQ3nPDeU9t0VRaUksZSjvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG85/YG77nodfriOkm7zsTkYyrun9P+TNDSJ+jBE/Ral+tUaiuTHWfluuPWJwo3O26g0hoqrZPSvsFP/s60BZW2otLKwdJ2uaa1G+Z5g5/8nWmj89G+aY/GUs/THo2lnqc9Gks9T3s0lnqath+NpZ6nPRpLPU97NJZ6nhbFUm/wk78zLYqlOoqlOoqlOoqlOoqlBoqlBoqlBoqlBoql3uAnf2daFEsNFEsNFEsNFEsNFEsZiqUMxVKGYilDsdQb/OTvTItiKUOxlKFYylAsZSiWchRLOYqlHMVSjmKpN/jJ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Q3nPDeU9N5T33FDec0N5zw3lPTeU99xQ3nNDec8N5T03lPfcUN5zQ3nPDeU9N5T33FDec0N5zw3lPTeU99xQ3nNDec8N5T03lPfcUN5zQ3nPDeU9N5T33FDec0N5zw3lPTeU99xQ3nNHec8d5T13lPfcUd5zXxSVlsRSjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47yXuuC8l7vqYFsdSaFsRSa1oQS61pFZUWxFJrWhBLrWlBLLWmBbHUmhbFUiTv+ZoWxVIk7/maFsVSJO/5mhbFUiTv+ZoWxVIk7/maFsVSJO/5mhbFUiTv+ZoWxVIk7/maFsVSJO/5mhbFUiTv+ZoWxVIk7/maFsVSJO/5mhbFUiTv+ZoWxVIk7/maFsVSJO/5mhbFUiTv+Tp7FEuRvOfr7FEsRfKer7NHsRTJe77OHsVSJO/5OnsUS5G852taFEuRvOdrWhRLkbzna1oUS5G852taFEuRvOdrWhRLkbzna1oUS5G852taFEuRvOdrWhRLkbzna1oUS5G852taFEuRvOdrWhRLkbzna1oUS5G852taFEuRvOdrWhRLkbzna1oUS5G852taFEuRvOdrWhRLkbzna1oUS5G852taFEuRvOdrWhRLkbzna1oUS5G852taFEuRvOdrWhRLkbzna1oUS5G852taEksVlPe8oLznBeU9LyjveVkUlZbEUgXlPS8o73lBec8LynteUN7zgvKeF5T3vKC85wXlPS8o73lBec8LynteUN7zgvKeF5T3vKC85wXlPS8o73lBec8LynteUN7zgvKeF5T3vKC85wXlPS8o73lBec8Lynte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hvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeG8p7bijvuaG854bynhvKe24o77mhvOeG8p4byntuKO+5obznhvKeO8p77ijvuaO8547ynvuiqLQklnKU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5zx3lPXeU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5zx3lPXeU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5zx3lPXeU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5zx3lPXeU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5zx3lPXeU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5zx3lPXeU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33FHec0d5zx3lPXeU99xR3nNHec8d5T13lPfcUd5zR3nPHeU9d5T33Ene87aQvOdrWhBLrWlBLLWmBbHUmlZRaUEstaYFsdSaFsRSa1oQS61pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6vaVEsRfKer2lRLEXynq9pUSxF8p6v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vOcD5T0fKO/5QHnPB8p7PlDe84Hyng+U93ygvOcD5T0fKO/5QHnPB8p7bijvuaG854bynhvKe26LotKSWMpQ3nNDec8N5T03lPfcUN5zQ3nPDeU9N5T33FDec0N5zw3lPTeU99xQ3nNDec8N5T03lPfcUN5zQ3nPDeU9N5T33FDec0N5zw3lPTeU99xQ3nNDec8N5T03lPfcUN5zQ3nPDeU9N5T33FDec0N5zw3lPTeU99xQ3nNDec8N5T03lPfcUN5zQ3nPDeU9N5T33FDec0N5zw3lPTeU99xQ3nNDec8N5T03lPfcUN5zQ3nPDeU9N5T33FDec0N5zw3lPTeU99xQ3nNDec8N5T03lPfcUN5zQ3nPDeU9N5T33FDec0N5zw3lPTeU99xQ3nNDec8N5T03lPfcUN5zQ3nPDeU9N5T33FDec0N5zw3lPTeU99xQ3nNDec8N5T03lPfcUN5zQ3nPDeU9N5T33FDec0N5zx3lPXeU99xR3nNHec99UVRaEks5ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4o77mjvOeO8p47ynvuKO+5o7znjvKeO8p77ijvuaO8547ynjvKe+4k73lfSN7zNS2Ipda0IJZa04JYak2rqLQgllrTglhqTQtiqTUtiKXWtCiWInnP17QoliJ5z9e0KJYiec/XtCiWInnP17QoliJ5z9e0KJYiec/XtCiWInnP17QoliJ5z9e0KJYiec/XtCiWInnP17QoliJ5z9e0KJYiec/XtCiWInnP17QoliJ5z9e0KJYiec/XtCiWInnP17QoliJ5z9e0KJYiec/XtCiWInnP17QoliJ5z9e0KJYiec/XtCiWInnP17QoliJ5z9e0KJYiec/XtCiW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",
|
|
5189
5311
|
"brillig_names": [
|
|
5190
5312
|
"get_note_internal",
|
|
5191
5313
|
"decompose_hint",
|
|
@@ -5200,8 +5322,8 @@
|
|
|
5200
5322
|
"directive_integer_quotient",
|
|
5201
5323
|
"directive_to_radix"
|
|
5202
5324
|
],
|
|
5203
|
-
"verification_key": "
|
|
5204
|
-
"artifact_hash": "
|
|
5325
|
+
"verification_key": "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",
|
|
5326
|
+
"artifact_hash": "e7552d296af009c9ed2e2ca261de6124cad0b1c1-2e2774eb0c44a123d16543538e296a0d-client-ivc-true"
|
|
5205
5327
|
}
|
|
5206
5328
|
],
|
|
5207
5329
|
"outputs": {
|
|
@@ -5590,10 +5712,6 @@
|
|
|
5590
5712
|
}
|
|
5591
5713
|
},
|
|
5592
5714
|
"file_map": {
|
|
5593
|
-
"3": {
|
|
5594
|
-
"path": "std/array/mod.nr",
|
|
5595
|
-
"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 slice.\n ///\n /// ```noir\n /// let array = [1, 2];\n /// let slice = array.as_slice();\n /// assert_eq(slice, &[1, 2]);\n /// ```\n #[builtin(as_slice)]\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 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\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 `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: T, b: T| 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 unsafe {\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 = 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}\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"
|
|
5596
|
-
},
|
|
5597
5715
|
"6": {
|
|
5598
5716
|
"path": "std/cmp.nr",
|
|
5599
5717
|
"source": "use crate::meta::derive_via;\n\n#[derive_via(derive_eq)]\n// docs:start:eq-trait\npub trait Eq {\n fn eq(self, other: Self) -> bool;\n}\n// docs:end:eq-trait\n\n// docs:start:derive_eq\ncomptime fn derive_eq(s: StructDefinition) -> Quoted {\n let signature = quote { fn eq(_self: Self, _other: Self) -> bool };\n let for_each_field = |name| quote { (_self.$name == _other.$name) };\n let body = |fields| {\n if s.fields().len() == 0 {\n quote { true }\n } else {\n fields\n }\n };\n crate::meta::make_trait_impl(\n s,\n quote { Eq },\n signature,\n for_each_field,\n quote { & },\n body,\n )\n}\n// docs:end:derive_eq\n\nimpl Eq for Field {\n fn eq(self, other: Field) -> bool {\n self == other\n }\n}\n\nimpl Eq for u64 {\n fn eq(self, other: u64) -> bool {\n self == other\n }\n}\nimpl Eq for u32 {\n fn eq(self, other: u32) -> bool {\n self == other\n }\n}\nimpl Eq for u16 {\n fn eq(self, other: u16) -> bool {\n self == other\n }\n}\nimpl Eq for u8 {\n fn eq(self, other: u8) -> bool {\n self == other\n }\n}\nimpl Eq for u1 {\n fn eq(self, other: u1) -> bool {\n self == other\n }\n}\n\nimpl Eq for i8 {\n fn eq(self, other: i8) -> bool {\n self == other\n }\n}\nimpl Eq for i16 {\n fn eq(self, other: i16) -> bool {\n self == other\n }\n}\nimpl Eq for i32 {\n fn eq(self, other: i32) -> bool {\n self == other\n }\n}\nimpl Eq for i64 {\n fn eq(self, other: i64) -> bool {\n self == other\n }\n}\n\nimpl Eq for () {\n fn eq(_self: Self, _other: ()) -> bool {\n true\n }\n}\nimpl Eq for bool {\n fn eq(self, other: bool) -> bool {\n self == other\n }\n}\n\nimpl<T, let N: u32> Eq for [T; N]\nwhere\n T: Eq,\n{\n fn eq(self, other: [T; N]) -> bool {\n let mut result = true;\n for i in 0..self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<T> Eq for [T]\nwhere\n T: Eq,\n{\n fn eq(self, other: [T]) -> bool {\n let mut result = self.len() == other.len();\n for i in 0..self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<let N: u32> Eq for str<N> {\n fn eq(self, other: str<N>) -> bool {\n let self_bytes = self.as_bytes();\n let other_bytes = other.as_bytes();\n self_bytes == other_bytes\n }\n}\n\nimpl<A, B> Eq for (A, B)\nwhere\n A: Eq,\n B: Eq,\n{\n fn eq(self, other: (A, B)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1)\n }\n}\n\nimpl<A, B, C> Eq for (A, B, C)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n{\n fn eq(self, other: (A, B, C)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2)\n }\n}\n\nimpl<A, B, C, D> Eq for (A, B, C, D)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n D: Eq,\n{\n fn eq(self, other: (A, B, C, D)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2) & self.3.eq(other.3)\n }\n}\n\nimpl<A, B, C, D, E> Eq for (A, B, C, D, E)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n D: Eq,\n E: Eq,\n{\n fn eq(self, other: (A, B, C, D, E)) -> bool {\n self.0.eq(other.0)\n & self.1.eq(other.1)\n & self.2.eq(other.2)\n & self.3.eq(other.3)\n & self.4.eq(other.4)\n }\n}\n\nimpl Eq for Ordering {\n fn eq(self, other: Ordering) -> bool {\n self.result == other.result\n }\n}\n\n// Noir doesn't have enums yet so we emulate (Lt | Eq | Gt) with a struct\n// that has 3 public functions for constructing the struct.\npub struct Ordering {\n result: Field,\n}\n\nimpl Ordering {\n // Implementation note: 0, 1, and 2 for Lt, Eq, and Gt are built\n // into the compiler, do not change these without also updating\n // the compiler itself!\n pub fn less() -> Ordering {\n Ordering { result: 0 }\n }\n\n pub fn equal() -> Ordering {\n Ordering { result: 1 }\n }\n\n pub fn greater() -> Ordering {\n Ordering { result: 2 }\n }\n}\n\n#[derive_via(derive_ord)]\n// docs:start:ord-trait\npub trait Ord {\n fn cmp(self, other: Self) -> Ordering;\n}\n// docs:end:ord-trait\n\n// docs:start:derive_ord\ncomptime fn derive_ord(s: StructDefinition) -> Quoted {\n let signature = quote { fn cmp(_self: Self, _other: Self) -> std::cmp::Ordering };\n let for_each_field = |name| quote {\n if result == std::cmp::Ordering::equal() {\n result = _self.$name.cmp(_other.$name);\n }\n };\n let body = |fields| quote {\n let mut result = std::cmp::Ordering::equal();\n $fields\n result\n };\n crate::meta::make_trait_impl(s, quote { Ord }, signature, for_each_field, quote {}, body)\n}\n// docs:end:derive_ord\n\n// Note: Field deliberately does not implement Ord\n\nimpl Ord for u64 {\n fn cmp(self, other: u64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u32 {\n fn cmp(self, other: u32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u16 {\n fn cmp(self, other: u16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u8 {\n fn cmp(self, other: u8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i8 {\n fn cmp(self, other: i8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i16 {\n fn cmp(self, other: i16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i32 {\n fn cmp(self, other: i32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i64 {\n fn cmp(self, other: i64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for () {\n fn cmp(_self: Self, _other: ()) -> Ordering {\n Ordering::equal()\n }\n}\n\nimpl Ord for bool {\n fn cmp(self, other: bool) -> Ordering {\n if self {\n if other {\n Ordering::equal()\n } else {\n Ordering::greater()\n }\n } else if other {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl<T, let N: u32> Ord for [T; N]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T; N]) -> Ordering {\n let mut result = Ordering::equal();\n for i in 0..self.len() {\n if result == Ordering::equal() {\n let result_i = self[i].cmp(other[i]);\n\n if result_i == Ordering::less() {\n result = result_i;\n } else if result_i == Ordering::greater() {\n result = result_i;\n }\n }\n }\n result\n }\n}\n\nimpl<T> Ord for [T]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T]) -> Ordering {\n let mut result = self.len().cmp(other.len());\n for i in 0..self.len() {\n if result == Ordering::equal() {\n let result_i = self[i].cmp(other[i]);\n\n if result_i == Ordering::less() {\n result = result_i;\n } else if result_i == Ordering::greater() {\n result = result_i;\n }\n }\n }\n result\n }\n}\n\nimpl<A, B> Ord for (A, B)\nwhere\n A: Ord,\n B: Ord,\n{\n fn cmp(self, other: (A, B)) -> Ordering {\n let result = self.0.cmp(other.0);\n\n if result != Ordering::equal() {\n result\n } else {\n self.1.cmp(other.1)\n }\n }\n}\n\nimpl<A, B, C> Ord for (A, B, C)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n{\n fn cmp(self, other: (A, B, C)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D> Ord for (A, B, C, D)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n D: Ord,\n{\n fn cmp(self, other: (A, B, C, D)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D, E> Ord for (A, B, C, D, E)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n D: Ord,\n E: Ord,\n{\n fn cmp(self, other: (A, B, C, D, E)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n if result == Ordering::equal() {\n result = self.4.cmp(other.4);\n }\n\n result\n }\n}\n\n// Compares and returns the maximum of two values.\n//\n// Returns the second argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::max(1, 2), 2);\n// assert_eq(cmp::max(2, 2), 2);\n// ```\npub fn max<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v1\n } else {\n v2\n }\n}\n\n// Compares and returns the minimum of two values.\n//\n// Returns the first argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::min(1, 2), 1);\n// assert_eq(cmp::min(2, 2), 2);\n// ```\npub fn min<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v2\n } else {\n v1\n }\n}\n\nmod cmp_tests {\n use crate::cmp::{max, min};\n\n #[test]\n fn sanity_check_min() {\n assert_eq(min(0 as u64, 1 as u64), 0);\n assert_eq(min(0 as u64, 0 as u64), 0);\n assert_eq(min(1 as u64, 1 as u64), 1);\n assert_eq(min(255 as u8, 0 as u8), 0);\n }\n\n #[test]\n fn sanity_check_max() {\n assert_eq(max(0 as u64, 1 as u64), 1);\n assert_eq(max(0 as u64, 0 as u64), 0);\n assert_eq(max(1 as u64, 1 as u64), 1);\n assert_eq(max(255 as u8, 0 as u8), 255);\n }\n}\n"
|
|
@@ -5635,178 +5753,178 @@
|
|
|
5635
5753
|
"source": "pub fn panic<T, U, let N: u32>(message: fmtstr<N, T>) -> U {\n assert(false, message);\n crate::mem::zeroed()\n}\n"
|
|
5636
5754
|
},
|
|
5637
5755
|
"66": {
|
|
5756
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/utils/array/subarray.nr",
|
|
5757
|
+
"source": "/// Returns `DST_LEN` elements from a source array, starting at `offset`. `DST_LEN` must be large enough to hold all of\n/// the elements past `offset`.\n///\n/// Example:\n/// ```\n/// let foo: [Field; 2] = subarray([1, 2, 3, 4, 5], 2);\n/// assert_eq(foo, [3, 4]);\n/// ```\npub fn subarray<let SRC_LEN: u32, let DST_LEN: u32>(\n src: [Field; SRC_LEN],\n offset: u32,\n) -> [Field; DST_LEN] {\n assert(offset + DST_LEN <= SRC_LEN, \"offset too large\");\n\n let mut dst: [Field; DST_LEN] = std::mem::zeroed();\n for i in 0..DST_LEN {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\nmod test {\n use super::subarray;\n\n #[test]\n unconstrained fn subarray_into_empty() {\n // In all of these cases we're setting DST_LEN to be 0, so we always get back an emtpy array.\n assert_eq(subarray([], 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([], 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)]\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"
|
|
5758
|
+
},
|
|
5759
|
+
"71": {
|
|
5760
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/utils/point.nr",
|
|
5761
|
+
"source": "use dep::protocol_types::point::Point;\n\n// I am storing the modulus minus 1 divided by 2 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field =\n 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a public key to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(pk: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!pk.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result: [u8; 32] = pk.x.to_be_bytes();\n\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n if !BN254_FR_MODULUS_DIV_2.lt(pk.y) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result\n}\n\nmod test {\n use crate::utils::point::point_to_bytes;\n use dep::protocol_types::point::Point;\n\n #[test]\n unconstrained fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false,\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122,\n 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115,\n ];\n assert_eq(expected_compressed_point_positive_sign, compressed_point);\n }\n\n #[test]\n unconstrained fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false,\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169,\n 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181,\n ];\n\n assert_eq(expected_compressed_point_negative_sign, compressed_point);\n }\n}\n"
|
|
5762
|
+
},
|
|
5763
|
+
"77": {
|
|
5764
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr",
|
|
5765
|
+
"source": "use dep::protocol_types::{\n constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Serialize},\n};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note,\n note_emission::NoteEmission,\n note_getter::{get_note, view_notes},\n note_interface::{NoteInterface, NullifiableNote},\n note_viewer_options::NoteViewerOptions,\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\npub struct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context, let N: u32> Storage<T, N> for PrivateImmutable<T, Context>\nwhere\n T: Serialize<N> + Deserialize<N>,\n{}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub 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 // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor.\n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<let N: u32>(self, note: &mut Note) -> NoteEmission<Note>\n where\n Note: NoteInterface<N> + NullifiableNote,\n {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<let N: u32>(self) -> Note\n where\n Note: NoteInterface<N> + NullifiableNote,\n {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n pub unconstrained fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n pub unconstrained fn view_note<let N: u32>(self) -> Note\n where\n Note: NoteInterface<N> + NullifiableNote,\n {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"
|
|
5766
|
+
},
|
|
5767
|
+
"98": {
|
|
5638
5768
|
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr",
|
|
5639
5769
|
"source": "use dep::protocol_types::debug_log::debug_log_format;\n\nuse crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n hash::{ArgsHasher, hash_args_array},\n keys::constants::{NULLIFIER_INDEX, NUM_KEY_TYPES, OUTGOING_INDEX, sk_generators},\n messaging::process_l1_to_l2_message,\n oracle::{\n arguments,\n block_header::get_block_header_at,\n call_private_function::call_private_function_internal,\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal,\n },\n key_validation_request::get_key_validation_request,\n returns::pack_returns,\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext,\n function_selector::FunctionSelector,\n log::Log,\n log_hash::LogHash,\n max_block_number::MaxBlockNumber,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_call_request::PrivateCallRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n private_log::PrivateLogData,\n public_call_request::PublicCallRequest,\n read_request::ReadRequest,\n side_effect::Counted,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n },\n address::{AztecAddress, EthAddress},\n block_header::BlockHeader,\n constants::{\n MAX_CONTRACT_CLASS_LOGS_PER_CALL, MAX_ENQUEUED_CALLS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NOTE_HASHES_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL,\n PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DISPATCH_SELECTOR,\n },\n messaging::l2_to_l1_message::L2ToL1Message,\n traits::Empty,\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n pub inputs: PrivateContextInputs,\n pub side_effect_counter: u32,\n\n pub min_revertible_side_effect_counter: u32,\n pub is_fee_payer: bool,\n\n pub args_hash: Field,\n pub return_hash: Field,\n\n pub max_block_number: MaxBlockNumber,\n\n pub note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n pub nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n pub note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n pub nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n pub private_call_requests: BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n pub public_call_requests: BoundedVec<Counted<PublicCallRequest>, MAX_ENQUEUED_CALLS_PER_CALL>,\n pub public_teardown_call_request: PublicCallRequest,\n pub l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n pub historical_header: BlockHeader,\n\n pub private_logs: BoundedVec<PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL>,\n pub contract_class_logs_hashes: BoundedVec<LogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n pub last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n\n pub fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.inputs.call_context.contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n pub fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n pub fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n\n // WARNING(https://github.com/AztecProtocol/aztec-packages/issues/10558): if you delete this debug_log_format line, some tests fail.\n debug_log_format(\n \"Context.note_hashes, after pushing new note hash: {0}\",\n self.note_hashes.storage().map(|nh: NoteHash| nh.value),\n );\n }\n\n pub fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(\n Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() },\n );\n }\n\n pub fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(\n Nullifier {\n value: nullifier,\n note_hash: nullified_note_hash,\n counter: self.next_counter(),\n },\n );\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n pub fn get_block_header(self) -> BlockHeader {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_block_header_at(self, block_number: u32) -> BlockHeader {\n get_block_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage(),\n nullifier_read_requests: self.nullifier_read_requests.storage(),\n key_validation_requests_and_generators: self\n .key_validation_requests_and_generators\n .storage(),\n note_hashes: self.note_hashes.storage(),\n nullifiers: self.nullifiers.storage(),\n private_call_requests: self.private_call_requests.storage(),\n public_call_requests: self.public_call_requests.storage(),\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage(),\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n private_logs: self.private_logs.storage(),\n contract_class_logs_hashes: self.contract_class_logs_hashes.storage(),\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context,\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\n \"Setting {0} as fee payer\",\n [self.this_address().to_field()],\n );\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number =\n MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request =\n self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale\n // Typically we'd validate keys by showing that they are the preimage of `pk_m_hash`, but that'd require\n // the oracle returning the master secret keys, which could cause malicious contracts to leak it or learn\n // about secrets from other contracts. We therefore silo secret keys, and rely on the private kernel to\n // validate that we siloed secret key corresponds to correct siloing of the master secret key that hashes\n // to `pk_m_hash`.\n let request = unsafe { get_key_validation_request(pk_m_hash, key_index) };\n assert(request.pk_m.hash() == pk_m_hash);\n\n self.key_validation_requests_and_generators.push(\n KeyValidationRequestAndGenerator {\n request,\n sk_app_generator: sk_generators[key_index],\n },\n );\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(\n &mut self,\n content: Field,\n secret: Field,\n sender: EthAddress,\n leaf_index: Field,\n ) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret,\n leaf_index,\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n pub fn emit_private_log(&mut self, log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS]) {\n let counter = self.next_counter();\n let private_log = PrivateLogData { log: Log::new(log), note_hash_counter: 0, counter };\n self.private_logs.push(private_log);\n }\n\n pub fn emit_raw_note_log(\n &mut self,\n log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS],\n note_hash_counter: u32,\n ) {\n let counter = self.next_counter();\n let private_log = PrivateLogData { log: Log::new(log), note_hash_counter, counter };\n self.private_logs.push(private_log);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true)\n }\n\n pub fn call_private_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n\n // The oracle simulates the private call and returns the value of the side effects counter after execution of\n // the call (which means that end_side_effect_counter - start_side_effect_counter is the number of side effects\n // that took place), along with the hash of the return values. We validate these by requesting a private kernel\n // iteration in which the return values are constrained to hash to `returns_hash` and the side effects counter\n // to increment from start to end.\n let (end_side_effect_counter, returns_hash) = unsafe {\n call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n )\n };\n\n self.private_call_requests.push(\n PrivateCallRequest {\n call_context: CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n },\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter,\n },\n );\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n self.side_effect_counter = end_side_effect_counter + 1;\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n );\n\n // Public calls are rerouted through the dispatch function.\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n let call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n\n self.public_call_requests.push(Counted::new(call_request, counter));\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.set_public_teardown_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn set_public_teardown_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n );\n\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n self.public_teardown_call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: BlockHeader::empty(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n}\n"
|
|
5640
5770
|
},
|
|
5641
|
-
"
|
|
5642
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/
|
|
5643
|
-
"source": "use dep::protocol_types::point::Point;\n\n
|
|
5771
|
+
"100": {
|
|
5772
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/header.nr",
|
|
5773
|
+
"source": "use dep::protocol_types::{\n address::AztecAddress,\n point::Point,\n public_keys::{IvpkM, ToPoint},\n scalar::Scalar,\n};\n\nuse crate::keys::secret_derivation::derive_aes_secret;\n\nuse std::aes128::aes128_encrypt;\n\npub struct EncryptedLogHeader {\n address: AztecAddress,\n}\n\nimpl EncryptedLogHeader {\n pub fn new(address: AztecAddress) -> Self {\n EncryptedLogHeader { address }\n }\n\n pub fn compute_ciphertext<T>(self, secret: Scalar, pk: T) -> [u8; 48]\n where\n T: ToPoint,\n {\n let full_key = derive_aes_secret(secret, pk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n\n let input: [u8; 32] = self.address.to_field().to_be_bytes();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nunconstrained fn test_encrypted_log_header_matches_noir() {\n let address = AztecAddress::from_field(0xdeadbeef);\n let header = EncryptedLogHeader::new(address);\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06,\n };\n let point = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false,\n },\n };\n\n let ciphertext = header.compute_ciphertext(secret, point);\n\n // The following value was generated by `encrypted_log_header.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_header_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 194, 44, 7, 131,\n 160, 83, 64, 181, 98, 38, 153, 214, 62, 171, 253, 161, 111, 191, 28, 247, 216, 26, 222, 171,\n 176, 218, 48, 209, 73, 89, 200, 209,\n ];\n\n assert_eq(ciphertext, expected_header_ciphertext_from_typescript);\n}\n"
|
|
5644
5774
|
},
|
|
5645
|
-
"
|
|
5646
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/
|
|
5647
|
-
"source": "use dep::protocol_types::{\n address::{AztecAddress, PartialAddress},\n point::Point,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\npub unconstrained fn get_public_keys_and_partial_address(\n address: AztecAddress,\n) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle(address);\n\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: result[0], y: result[1], is_infinite: result[2] as bool } },\n ivpk_m: IvpkM {\n inner: Point { x: result[3], y: result[4], is_infinite: result[5] as bool },\n },\n ovpk_m: OvpkM {\n inner: Point { x: result[6], y: result[7], is_infinite: result[8] as bool },\n },\n tpk_m: TpkM {\n inner: Point { x: result[9], y: result[10], is_infinite: result[11] as bool },\n },\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n}\n"
|
|
5775
|
+
"103": {
|
|
5776
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr",
|
|
5777
|
+
"source": "use dep::protocol_types::{\n address::AztecAddress,\n constants::{GENERATOR_INDEX__SYMMETRIC_KEY, PRIVATE_LOG_SIZE_IN_FIELDS},\n hash::poseidon2_hash,\n point::Point,\n public_keys::AddressPoint,\n scalar::Scalar,\n utils::arrays::array_concat,\n};\nuse std::{\n aes128::aes128_encrypt, embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n field::bn254::decompose, hash::from_field_unsafe as fr_to_fq_unsafe,\n};\n\nuse crate::{\n encrypted_logs::header::EncryptedLogHeader,\n keys::secret_derivation::derive_aes_secret,\n oracle::{\n notes::{get_app_tag_as_sender, increment_app_tagging_secret_index_as_sender},\n random::random,\n },\n utils::{bytes::bytes_to_fields, point::point_to_bytes},\n};\n\n// 1 field is reserved for tag.\nglobal ENCRYPTED_PAYLOAD_SIZE_IN_BYTES: u32 = (PRIVATE_LOG_SIZE_IN_FIELDS - 1) * 31;\n\ncomptime global HEADER_SIZE: u32 = 48;\n\n// Bytes padded to the overhead, so that the size of the incoming body ciphertext will be a multiple of 16.\ncomptime global OVERHEAD_PADDING: u32 = 15;\n\npub comptime global OVERHEAD_SIZE: u32 = 32 /* eph_pk */\n + HEADER_SIZE /* incoming_header */\n + OVERHEAD_PADDING /* padding */;\n\nglobal PLAINTEXT_LENGTH_SIZE: u32 = 2;\n\n// This is enough for 8 fields of data.\n// 1 field for storage slot, 1 field for note/event type id, allowing 6 fields for custom values.\nglobal MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES: u32 =\n ENCRYPTED_PAYLOAD_SIZE_IN_BYTES - OVERHEAD_SIZE - PLAINTEXT_LENGTH_SIZE - 1 /* aes padding */;\n\n// Note: Might have to update PRIVATE_LOG_SIZE_IN_FIELDS in `constants.nr` if the above changes.\n// This value ideally should be set by the protocol, allowing users (or `aztec-nr`) to fit data within the defined size limits.\n// Currently, we adjust this value as the structure changes, then update `constants.nr` to match.\n// Once the structure is finalized with defined overhead and max note field sizes, this value will be fixed and should remain unaffected by further payload composition changes.\n\npub fn compute_private_log_payload<let P: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n sender: AztecAddress,\n plaintext: [u8; P],\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS] {\n assert(\n P < MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES,\n f\"plaintext for log must not exceed {MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES}\",\n );\n\n let extended_plaintext: [u8; MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES + PLAINTEXT_LENGTH_SIZE] =\n extend_private_log_plaintext(plaintext);\n let encrypted: [u8; ENCRYPTED_PAYLOAD_SIZE_IN_BYTES] =\n compute_encrypted_log(contract_address, recipient, extended_plaintext);\n\n // We assume that the sender wants for the recipient to find the tagged note, and therefore that they will cooperate\n // and use the correct tag. Usage of a bad tag will result in the recipient not being able to find the note\n // automatically.\n let tag = unsafe { get_app_tag_as_sender(sender, recipient) };\n increment_app_tagging_secret_index_as_sender(sender, recipient);\n\n array_concat([tag], bytes_to_fields(encrypted))\n}\n\npub fn compute_partial_public_log_payload<let P: u32, let M: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n sender: AztecAddress,\n plaintext: [u8; P],\n) -> [u8; M] {\n let extended_plaintext: [u8; P + PLAINTEXT_LENGTH_SIZE] =\n extend_private_log_plaintext(plaintext);\n let encrypted: [u8; M - 32] =\n compute_encrypted_log(contract_address, recipient, extended_plaintext);\n\n // We assume that the sender wants for the recipient to find the tagged note, and therefore that they will cooperate\n // and use the correct tag. Usage of a bad tag will result in the recipient not being able to find the note\n // automatically.\n let tag = unsafe { get_app_tag_as_sender(sender, recipient) };\n increment_app_tagging_secret_index_as_sender(sender, recipient);\n // Silo the tag with contract address.\n // This is done by the kernel circuit to the private logs, but since the partial log will be finalized and emitted\n // in public as unencrypted log, its tag is not siloed at the moment.\n // To avoid querying logs using two types of tags, we silo the tag manually here.\n // TODO(#10273) This should be done by the AVM when it's processing the raw logs instead of their hashes.\n let siloed_tag_bytes: [u8; 32] =\n poseidon2_hash([contract_address.to_field(), tag]).to_be_bytes();\n\n // Temporary hack so that the partial public log remains the same format.\n // It should return field array and make the tag the first field as compute_private_log_payload does.\n let mut log_bytes = [0; M];\n for i in 0..32 {\n log_bytes[i] = siloed_tag_bytes[i];\n }\n for i in 0..encrypted.len() {\n log_bytes[i + 32] = encrypted[i];\n }\n\n log_bytes\n}\n\nfn compute_encrypted_log<let P: u32, let M: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n plaintext: [u8; P],\n) -> [u8; M] {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] =\n header.compute_ciphertext(eph_sk, recipient.to_address_point());\n let incoming_body_ciphertext =\n compute_incoming_body_ciphertext(plaintext, eph_sk, recipient.to_address_point());\n\n let mut encrypted_bytes = [0; M];\n let mut offset = 0;\n\n // eph_pk\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[offset + i] = eph_pk_bytes[i];\n }\n offset += 32;\n\n // incoming_header\n for i in 0..HEADER_SIZE {\n encrypted_bytes[offset + i] = incoming_header_ciphertext[i];\n }\n offset += HEADER_SIZE;\n\n // Padding.\n offset += OVERHEAD_PADDING;\n\n // incoming_body\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - offset;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[offset + i] = incoming_body_ciphertext[i];\n }\n\n encrypted_bytes\n}\n\n// Prepend the plaintext length as the first byte, then copy the plaintext itself starting from the second byte.\n// Fill the remaining bytes with random values to reach a fixed length of N.\nfn extend_private_log_plaintext<let P: u32, let N: u32>(plaintext: [u8; P]) -> [u8; N] {\n let mut padded = unsafe { get_random_bytes() };\n padded[0] = (P >> 8) as u8;\n padded[1] = P as u8;\n for i in 0..P {\n padded[i + PLAINTEXT_LENGTH_SIZE] = plaintext[i];\n }\n padded\n}\n\nunconstrained fn get_random_bytes<let N: u32>() -> [u8; N] {\n let mut bytes = [0; N];\n let mut idx = 32;\n let mut randomness = [0; 32];\n for i in 0..N {\n if idx == 32 {\n randomness = random().to_be_bytes();\n idx = 1; // Skip the first byte as it's always 0.\n }\n bytes[i] = randomness[idx];\n idx += 1;\n }\n bytes\n}\n\n/// Converts a base field element to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let (lo, hi) = decompose(r);\n\n Scalar { lo, hi }\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n // We use the randomness to preserve the privacy of both the sender and recipient via encryption, so a malicious\n // sender could use non-random values to reveal the plaintext. But they already know it themselves anyway, and so\n // the recipient already trusts them to not disclose this information. We can therefore assume that the sender will\n // cooperate in the random value generation.\n let randomness = unsafe { random() };\n\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(randomness);\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\npub fn compute_incoming_body_ciphertext<let P: u32>(\n plaintext: [u8; P],\n eph_sk: Scalar,\n address_point: AddressPoint,\n) -> [u8] {\n let full_key = derive_aes_secret(eph_sk, address_point.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(plaintext, iv, sym_key)\n}\n\nmod test {\n use crate::encrypted_logs::payload::{\n compute_incoming_body_ciphertext, compute_private_log_payload,\n MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES,\n };\n use dep::protocol_types::{address::AztecAddress, point::Point, scalar::Scalar};\n use protocol_types::public_keys::AddressPoint;\n use std::test::OracleMock;\n\n #[test]\n unconstrained fn test_encrypted_log_matches_typescript() {\n // All the values in this test were copied over from `encrypted_log_payload.test.ts`\n let contract_address = AztecAddress::from_field(\n 0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04,\n );\n\n let plaintext = [\n 0, 0, 0, 1, 48, 22, 64, 206, 234, 117, 131, 145, 178, 225, 97, 201, 44, 5, 19, 241, 41,\n 2, 15, 65, 37, 37, 106, 253, 174, 38, 70, 206, 49, 9, 159, 92, 16, 244, 140, 217, 239,\n 247, 174, 91, 32, 156, 85, 124, 112, 222, 46, 101, 126, 231, 145, 102, 134, 134, 118,\n 183, 135, 233, 65, 126, 25, 38, 14, 4, 15, 228, 107, 229, 131, 183, 31, 74, 181, 183,\n 12, 38, 87, 255, 29, 5, 204, 207, 29, 41, 42, 147, 105, 98, 141, 26, 25, 79, 148, 78,\n 101, 153, 0, 0, 16, 39,\n ];\n\n let randomness = 0x0101010101010101010101010101010101010101010101010101010101010101;\n let _ = OracleMock::mock(\"getRandomField\").returns(randomness).times(\n (MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES as u64 + 1 + 30) / 31,\n );\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk).times(1);\n\n let recipient = AztecAddress::from_field(\n 0x25afb798ea6d0b8c1618e50fdeafa463059415013d3b7c75d46abf5e242be70c,\n );\n\n let sender = AztecAddress::from_field(\n 0x25afb798ea6d0b8c1618e50fdeafa463059415013d3b7c75d46abf5e242be70c,\n );\n\n let _ = OracleMock::mock(\"getIndexedTaggingSecretAsSender\").returns([69420, 1337]);\n\n let _ = OracleMock::mock(\"incrementAppTaggingSecretIndexAsSender\").returns(());\n\n let payload = compute_private_log_payload(contract_address, recipient, sender, plaintext);\n\n // The following value was generated by `encrypted_log_payload.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let private_log_payload_from_typescript = [\n 0x0e9cffc3ddd746affb02410d8f0a823e89939785bcc8e88ee4f3cae05e737c36,\n 0x008d460c0e434d846ec1ea286e4090eb56376ff27bddc1aacae1d856549f701f,\n 0x00a70577790aeabcc2d81ec8d0c99e7f5d2bf2f1452025dc777a178404f851d9,\n 0x003de818923f85187871d99bdf95d695eff0a900000000000000000000000000,\n 0x000000a600a61f7d59eeaf52eb51bc0592ff981d9ba3ea8e6ea8ba9dc0cec8c7,\n 0x000b81e84556a77ce6c3ca47a527f99ffe7b2524bb885a23020b7295748ad19c,\n 0x001083618ad96298b76ee07eb1a56d19cc798710e9f5de96501bd59b3781c9c0,\n 0x002a6c95c5912f8936b1500d362afbf0922c85b1ada18db8b95162a6e9d06765,\n 0x005cdf669eb387f8e0492a95fdcdb39429d5340b4bebc250ba9bf62c2f49f549,\n 0x00f37beed75a668aa51967e0e57547e5a655157bcf381e22f30e25881548ec96,\n 0x0006a151b5fbfb2d14ee4b34bf4c1dbd71c7be15ad4c63474bb6f89970aeb3d9,\n 0x00489c8edbdff80a1a3a5c28370e534abc870a85ea4318326ea19222fb10df35,\n 0x008c765edada497db4284ae30507a2e03e983d23cfa0bd831577e857bbef9cf7,\n 0x0090c97cb5699cc8783a1b4276d929be2882e5b9b72829a4f8404f7e3c853d11,\n 0x00d6d5a000b80134891e95f81007ad35d3945eaeecbe137fff85d01d7eaf8f19,\n 0x00a15eb965c6a4bc97aa87fd3463c31c9d4e0d722a8ba870bcc50c9c7a8b48ad,\n 0x0063c861bdbe490d44c57382decbae663927909652f87ac18dcfd5b30649cce5,\n 0x00820f14caa725efe1fa3485ceac88499eadf0565c5b20998c05931bbf478e68,\n ];\n\n assert_eq(payload, private_log_payload_from_typescript);\n }\n\n #[test]\n fn test_incoming_body_ciphertext_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06,\n };\n let address_point = AddressPoint {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false,\n },\n };\n let plaintext = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,\n ];\n\n // `compute_incoming_body_ciphertext(...)` function then derives symmetric key from `eph_sk` and `address_point` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = compute_incoming_body_ciphertext(plaintext, eph_sk, address_point);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160,\n 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157,\n 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93,\n 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130,\n 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95,\n 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234,\n 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162,\n 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185,\n 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236,\n 23, 206, 229, 108,\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"
|
|
5648
5778
|
},
|
|
5649
|
-
"
|
|
5779
|
+
"104": {
|
|
5780
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr",
|
|
5781
|
+
"source": "use crate::{\n context::PrivateContext,\n encrypted_logs::payload::compute_private_log_payload,\n note::{note_emission::NoteEmission, note_interface::NoteInterface},\n};\nuse dep::protocol_types::{\n abis::note_hash::NoteHash, address::AztecAddress, constants::PRIVATE_LOG_SIZE_IN_FIELDS,\n};\n\n/// Computes private note log payload\nfn compute_payload<Note, let N: u32>(\n context: PrivateContext,\n note: Note,\n recipient: AztecAddress,\n sender: AztecAddress,\n) -> ([Field; PRIVATE_LOG_SIZE_IN_FIELDS], u32)\nwhere\n Note: NoteInterface<N>,\n{\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n // TODO(#8589): use typesystem to skip this check when not needed\n let note_exists =\n context.note_hashes.storage().any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n\n let contract_address: AztecAddress = context.this_address();\n\n let plaintext = note.to_be_bytes(storage_slot);\n\n let payload = compute_private_log_payload(contract_address, recipient, sender, plaintext);\n\n (payload, note_hash_counter)\n}\n\nunconstrained fn compute_payload_unconstrained<Note, let N: u32>(\n context: PrivateContext,\n note: Note,\n recipient: AztecAddress,\n sender: AztecAddress,\n) -> ([Field; PRIVATE_LOG_SIZE_IN_FIELDS], u32)\nwhere\n Note: NoteInterface<N>,\n{\n compute_payload(context, note, recipient, sender)\n}\n\n// This function seems to be affected by the following Noir bug:\n// https://github.com/noir-lang/noir/issues/5771\n// If you get weird behavior it might be because of it.\npub fn encode_and_encrypt_note<Note, let N: u32>(\n context: &mut PrivateContext,\n recipient: AztecAddress,\n // We need this because to compute a tagging secret, we require a sender:\n sender: AztecAddress,\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> ()\nwhere\n Note: NoteInterface<N>,\n{\n |e: NoteEmission<Note>| {\n let (encrypted_log, note_hash_counter) =\n compute_payload(*context, e.note, recipient, sender);\n context.emit_raw_note_log(encrypted_log, note_hash_counter);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32>(\n context: &mut PrivateContext,\n recipient: AztecAddress,\n // We need this because to compute a tagging secret, we require a sender:\n sender: AztecAddress,\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> ()\nwhere\n Note: NoteInterface<N>,\n{\n |e: NoteEmission<Note>| {\n // Unconstrained logs have both their content and encryption unconstrained - it could occur that the\n // recipient is unable to decrypt the payload.\n // Regarding the note hash counter, this is used for squashing. The kernel assumes that a given note can have\n // more than one log and removes all of the matching ones, so all a malicious sender could do is either: cause\n // for the log to be deleted when it shouldn't have (which is fine - they can already make the content be\n // whatever), or cause for the log to not be deleted when it should have (which is also fine - it'll be a log\n // for a note that doesn't exist).\n // It's important here that we do not\n // return the log from this function to the app, otherwise it could try to do stuff with it and then that might\n // be wrong.\n let (encrypted_log, note_hash_counter) =\n unsafe { compute_payload_unconstrained(*context, e.note, recipient, sender) };\n context.emit_raw_note_log(encrypted_log, note_hash_counter);\n }\n}\n"
|
|
5782
|
+
},
|
|
5783
|
+
"105": {
|
|
5784
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr",
|
|
5785
|
+
"source": "use crate::context::{PrivateContext, PublicContext};\nuse crate::note::{\n note_emission::NoteEmission,\n note_header::NoteHeader,\n note_interface::{NoteInterface, NullifiableNote},\n utils::{compute_note_hash_for_nullify_internal, compute_note_hash_for_read_request},\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, let N: u32>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note,\n) -> NoteEmission<Note>\nwhere\n Note: NoteInterface<N> + NullifiableNote,\n{\n let contract_address = (*context).this_address();\n let note_hash_counter = context.side_effect_counter;\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter };\n note.set_header(header);\n let note_hash = note.compute_note_hash();\n\n let serialized_note = Note::serialize_content(*note);\n notify_created_note(\n storage_slot,\n Note::get_note_type_id(),\n serialized_note,\n note_hash,\n note_hash_counter,\n );\n\n context.push_note_hash(note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, let N: u32>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note,\n)\nwhere\n Note: NoteInterface<N> + NullifiableNote,\n{\n let contract_address = (*context).this_address();\n // Public note hashes are transient, but have no side effect counters, so we just need note_hash_counter != 0\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter: 1 };\n note.set_header(header);\n let note_hash = note.compute_note_hash();\n\n context.push_note_hash(note_hash);\n}\n\n// Note: This function is currently totally unused.\npub fn destroy_note<Note, let N: u32>(context: &mut PrivateContext, note: Note)\nwhere\n Note: NoteInterface<N> + NullifiableNote,\n{\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n destroy_note_unsafe(context, note, note_hash_for_read_request)\n}\n\npub fn destroy_note_unsafe<Note, let N: u32>(\n context: &mut PrivateContext,\n note: Note,\n note_hash_for_read_request: Field,\n)\nwhere\n Note: NoteInterface<N> + NullifiableNote,\n{\n let note_hash_for_nullify =\n compute_note_hash_for_nullify_internal(note, note_hash_for_read_request);\n let nullifier = note.compute_nullifier(context, note_hash_for_nullify);\n\n let note_hash_counter = note.get_header().note_hash_counter;\n let notification_note_hash = if (note_hash_counter == 0) {\n // Counter is zero, so we're nullifying a settled note and we don't populate the note_hash with real value.\n 0\n } else {\n // A non-zero note hash counter implies that we're nullifying a pending note (i.e. one that has not yet been\n // persisted in the trees and is instead in the pending new note hashes array). In such a case we populate its\n // hash with real value to inform the kernel which note we're nullifyng so that it can either squash both\n // the note and the nullifier if it's an inner note hash, or check that the it matches a pending note if it's\n // a siloed note hash.\n note_hash_for_nullify\n };\n\n let nullifier_counter = context.side_effect_counter;\n notify_nullified_note(nullifier, notification_note_hash, nullifier_counter);\n\n context.push_nullifier_for_note_hash(nullifier, notification_note_hash)\n}\n"
|
|
5786
|
+
},
|
|
5787
|
+
"108": {
|
|
5788
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/note/note_getter/mod.nr",
|
|
5789
|
+
"source": "use crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, NoteStatus, PropertySelector, Select, Sort, SortOrder},\n note_interface::{NoteInterface, NullifiableNote},\n note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request,\n};\nuse crate::oracle;\nuse crate::utils::comparison::compare;\nuse dep::protocol_types::constants::{\n GET_NOTES_ORACLE_RETURN_LENGTH, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n};\n\npub use crate::note::constants::MAX_NOTES_PER_PAGE;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector,\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note.\n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value: [u8; 32] = serialized_note[selector.index].to_be_bytes();\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32>(context: PrivateContext, storage_slot: Field, note: Note)\nwhere\n Note: NoteInterface<N>,\n{\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>,\n) {\n for i in 0..selects.len() {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field =\n extract_property_value_from_selector(serialized_note, select.property_selector);\n\n assert(\n compare(value_field, select.comparator, select.value.to_field()),\n \"Mismatch return note field.\",\n );\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>,\n) {\n for i in 0..sorts.len() {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32>(\n context: &mut PrivateContext,\n storage_slot: Field,\n) -> (Note, Field)\nwhere\n Note: NoteInterface<N> + NullifiableNote,\n{\n let note = unsafe { get_note_internal(storage_slot) };\n\n // Constraining that we got a valid note from the oracle is fairly straightforward: all we need to do is check that\n // the metadata is correct, and that the note exists.\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n context.push_note_hash_read_request(note_hash_for_read_request);\n\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n ) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>)\nwhere\n Note: NoteInterface<N> + NullifiableNote + Eq,\n{\n let opt_notes = unsafe { get_notes_internal(storage_slot, options) };\n\n // We apply the constraints in a separate function instead of inlining them here to make it easier to test that\n // these checks correctly reject bad notes.\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS,\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n ) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>)\nwhere\n Note: NoteInterface<N> + NullifiableNote + Eq,\n{\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::array::collapse(filtered_notes);\n let mut note_hashes: BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> =\n BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32>(storage_slot: Field) -> Note\nwhere\n Note: NoteInterface<N>,\n{\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length,\n )[0]\n .expect(f\"Failed to get a note\") // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL]\nwhere\n Note: NoteInterface<N>,\n{\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) =\n flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length,\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\npub unconstrained fn view_notes<Note, let N: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N>,\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE>\nwhere\n Note: NoteInterface<N>,\n{\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) =\n flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length,\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>,\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len() {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len() {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values,\n select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order,\n )\n}\n"
|
|
5790
|
+
},
|
|
5791
|
+
"112": {
|
|
5792
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/note/note_emission.nr",
|
|
5793
|
+
"source": "/**\n * A note emission struct containing the information required for emitting a note.\n * The exact `emit` logic is passed in by the application code\n */\npub struct NoteEmission<Note> {\n pub note: Note,\n}\n\nimpl<Note> NoteEmission<Note> {\n pub fn new(note: Note) -> Self {\n Self { note }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n\n pub fn discard(_self: Self) {}\n}\n\n/**\n * A struct wrapping note emission in `Option<T>`.\n * This is the struct provided to application codes, which can be used to emit\n * only when a note was actually inserted.\n * It is fairly common to have cases where a function conditionally inserts,\n * and this allows us to keep the same API for emission in both cases (e.g. inserting\n * a change note in a token's transfer function only when there is \"change\" left).\n */\npub struct OuterNoteEmission<Note> {\n emission: Option<NoteEmission<Note>>,\n}\n\nimpl<Note> OuterNoteEmission<Note> {\n pub fn new(emission: Option<NoteEmission<Note>>) -> Self {\n Self { emission }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](NoteEmission<Note>) -> ()) {\n if self.emission.is_some() {\n _emit(self.emission.unwrap());\n }\n }\n\n pub fn discard(_self: Self) {}\n}\n"
|
|
5794
|
+
},
|
|
5795
|
+
"115": {
|
|
5796
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr",
|
|
5797
|
+
"source": "use crate::{\n context::PrivateContext,\n note::{note_header::NoteHeader, note_interface::{NoteInterface, NullifiableNote}},\n utils::array,\n};\n\nuse dep::protocol_types::hash::{\n compute_siloed_note_hash, compute_siloed_nullifier as compute_siloed_nullifier_from_preimage,\n compute_unique_note_hash,\n};\n\npub fn compute_siloed_nullifier<Note, let N: u32>(\n note_with_header: Note,\n context: &mut PrivateContext,\n) -> Field\nwhere\n Note: NoteInterface<N> + NullifiableNote,\n{\n let header = note_with_header.get_header();\n let note_hash_for_nullify = compute_note_hash_for_nullify(note_with_header);\n let inner_nullifier = note_with_header.compute_nullifier(context, note_hash_for_nullify);\n\n compute_siloed_nullifier_from_preimage(header.contract_address, inner_nullifier)\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_read_request<Note, let N: u32>(note: Note) -> Field\nwhere\n Note: NoteInterface<N> + NullifiableNote,\n{\n let note_hash = note.compute_note_hash();\n let header = note.get_header();\n let nonce = header.nonce;\n let counter = header.note_hash_counter;\n\n // If same tx note, read request always uses the normal note hash\n if counter != 0 {\n note_hash\n } else {\n // If the note comes from a different tx, we need to compute the note hash that reached the tree\n compute_unique_note_hash(\n nonce,\n compute_siloed_note_hash(header.contract_address, note_hash),\n )\n }\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_nullify_internal<Note, let N: u32>(\n note: Note,\n note_hash_for_read_request: Field,\n) -> Field\nwhere\n Note: NoteInterface<N> + NullifiableNote,\n{\n let header = note.get_header();\n\n if (header.note_hash_counter != 0) & (header.nonce != 0) {\n // Non-revertible note, nullified by a revertible nullifier, we need to nullify the note hash that will reach the tree\n let siloed_note_hash =\n compute_siloed_note_hash(header.contract_address, note_hash_for_read_request);\n\n compute_unique_note_hash(header.nonce, siloed_note_hash)\n } else {\n note_hash_for_read_request\n }\n}\n\n// TODO(#7775): nuke this commented out code - kept it around as it contains comments which might be helpful when tackling #7775\n// pub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N> {\n// let header = note.get_header();\n// // There are 3 cases for reading a note intended for consumption:\n// // 1. The note was inserted in this transaction, is revertible, or is not nullified by a revertible nullifier in\n// // the same transaction: (note_hash_counter != 0) & (nonce == 0)\n// // 2. The note was inserted in this transaction, is non-revertible, and is nullified by a revertible nullifier in\n// // the same transaction: (note_hash_counter != 0) & (nonce != 0)\n// // 3. The note was inserted in a previous transaction: (note_hash_counter == 0) & (nonce != 0)\n\n// let note_hash = note.compute_note_hiding_point().x;\n\n// if header.nonce == 0 {\n// // Case 1.\n// // If a note is transient, we just read the note_hash (kernel will hash it with nonce and silo by contract address).\n// note_hash\n// } else {\n// // Case 2: If a note is non-revertible, and is nullified by a revertible nullifier, we cannot squash them in the\n// // private reset circuit. Because if the tx reverts, we will have to keep the note hash and throw away the\n// // nullifier.\n// // And if the tx does not revert, both will be emitted. In which case, the nullifier must be created in the app\n// // from the siloed note hash.\n// // The kernel circuit will check that a nullifier with non-zero note_nonce is linked to a note hash, whose\n// // siloed note hash matches the note hash specified in the nullifier.\n\n// // Case 3: If a note is not from the current transaction, that means we are reading a settled note (from\n// // tree) created in a previous TX. So we need the siloed_note_hash which has already been hashed with\n// // nonce and then contract address. This hash will match the existing leaf in the note hash\n// // tree, so the kernel can just perform a membership check directly on this hash/leaf.\n// let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash);\n// compute_siloed_note_hash(header.contract_address, unique_note_hash)\n// // IMPORTANT NOTE ON REDUNDANT SILOING BY CONTRACT ADDRESS: The note hash computed above is\n// // \"siloed\" by contract address. When a note hash is computed solely for the purpose of\n// // nullification, it is not strictly necessary to silo the note hash before computing\n// // its nullifier. In other words, it is NOT NECESSARY for protocol security that a nullifier\n// // be computed from a siloed note hash. After all, persistable note hashes and nullifiers are\n// // siloed by the kernel circuit. That being said, the siloed note hash computed above CAN be\n// // used for nullifier computation, and this achieves the (arguably unnecessary) property that\n// // nullifiers are computed from a note hash's fully-computed note hash tree leaf.\n// }\n// }\n\npub fn compute_note_hash_for_nullify<Note, let N: u32>(note: Note) -> Field\nwhere\n Note: NoteInterface<N> + NullifiableNote,\n{\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n compute_note_hash_for_nullify_internal(note, note_hash_for_read_request)\n}\n\npub unconstrained fn compute_note_hash_and_optionally_a_nullifier<T, let N: u32, let S: u32>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n compute_nullifier: bool,\n serialized_note: [Field; S],\n) -> [Field; 4]\nwhere\n T: NoteInterface<N> + NullifiableNote,\n{\n let mut note = deserialize_content(array::subarray(serialized_note, 0));\n note.set_header(note_header);\n\n let note_hash = note.compute_note_hash();\n let siloed_note_hash = compute_siloed_note_hash(note_header.contract_address, note_hash);\n let unique_note_hash = compute_unique_note_hash(note_header.nonce, siloed_note_hash);\n\n let inner_nullifier = if compute_nullifier {\n note.compute_nullifier_without_context()\n } else {\n 0\n };\n // docs:start:compute_note_hash_and_optionally_a_nullifier_returns\n [note_hash, unique_note_hash, siloed_note_hash, inner_nullifier]\n // docs:end:compute_note_hash_and_optionally_a_nullifier_returns\n}\n"
|
|
5798
|
+
},
|
|
5799
|
+
"134": {
|
|
5800
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr",
|
|
5801
|
+
"source": "use dep::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::GENERATOR_INDEX__CONSTRUCTOR, hash::poseidon2_hash_with_separator,\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext},\n oracle::get_contract_instance::{\n get_contract_instance, get_contract_instance_deployer_avm,\n get_contract_instance_initialization_hash_avm,\n },\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier =\n compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier =\n compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let deployer = get_contract_instance_deployer_avm(address).unwrap();\n let initialization_hash = get_contract_instance_initialization_hash_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (deployer.is_zero()) | (deployer == context.msg_sender()),\n \"Initializer address is not the contract deployer\",\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()),\n \"Initializer address is not the contract deployer\",\n );\n}\n\npub fn compute_initialization_hash(\n init_selector: FunctionSelector,\n init_args_hash: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR,\n )\n}\n"
|
|
5802
|
+
},
|
|
5803
|
+
"137": {
|
|
5804
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr",
|
|
5805
|
+
"source": "use dep::protocol_types::{abis::function_selector::FunctionSelector, address::AztecAddress};\n\n#[oracle(enqueuePublicFunctionCall)]\nunconstrained fn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n) -> Field {}\n\npub unconstrained fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) -> Field {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n )\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nunconstrained fn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n) -> Field {}\n\npub unconstrained fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) -> Field {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n )\n}\n\npub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n unsafe { notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter) };\n}\n\npub unconstrained fn notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n"
|
|
5806
|
+
},
|
|
5807
|
+
"139": {
|
|
5650
5808
|
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/random.nr",
|
|
5651
5809
|
"source": "/// Returns an unconstrained random value. Note that it is not possible to constrain this value to prove that it is\n/// truly random: we assume that the oracle is cooperating and returning random values.\n/// In some applications this behavior might not be acceptable and other techniques might be more suitable, such as\n/// producing pseudo-random values by hashing values outside of user control (like block hashes) or secrets.\npub unconstrained fn random() -> Field {\n rand_oracle()\n}\n\n#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n"
|
|
5652
5810
|
},
|
|
5653
|
-
"
|
|
5811
|
+
"140": {
|
|
5812
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/keys.nr",
|
|
5813
|
+
"source": "use dep::protocol_types::{\n address::{AztecAddress, PartialAddress},\n point::Point,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\npub unconstrained fn get_public_keys_and_partial_address(\n address: AztecAddress,\n) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle(address);\n\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: result[0], y: result[1], is_infinite: result[2] as bool } },\n ivpk_m: IvpkM {\n inner: Point { x: result[3], y: result[4], is_infinite: result[5] as bool },\n },\n ovpk_m: OvpkM {\n inner: Point { x: result[6], y: result[7], is_infinite: result[8] as bool },\n },\n tpk_m: TpkM {\n inner: Point { x: result[9], y: result[10], is_infinite: result[11] as bool },\n },\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n}\n"
|
|
5814
|
+
},
|
|
5815
|
+
"142": {
|
|
5654
5816
|
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/key_validation_request.nr",
|
|
5655
5817
|
"source": "use dep::protocol_types::abis::validation_requests::{\n key_validation_request::KEY_VALIDATION_REQUEST_LENGTH, KeyValidationRequest,\n};\n\n#[oracle(getKeyValidationRequest)]\nunconstrained fn get_key_validation_request_oracle(\n _pk_m_hash: Field,\n _key_index: Field,\n) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {}\n\nunconstrained fn get_key_validation_request_internal(\n npk_m_hash: Field,\n key_index: Field,\n) -> KeyValidationRequest {\n let result = get_key_validation_request_oracle(npk_m_hash, key_index);\n KeyValidationRequest::deserialize(result)\n}\n\npub unconstrained fn get_key_validation_request(\n pk_m_hash: Field,\n key_index: Field,\n) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n"
|
|
5656
5818
|
},
|
|
5657
|
-
"
|
|
5658
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr",
|
|
5659
|
-
"source": "use dep::protocol_types::{abis::function_selector::FunctionSelector, address::AztecAddress};\n\n#[oracle(enqueuePublicFunctionCall)]\nunconstrained fn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n) -> Field {}\n\npub unconstrained fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) -> Field {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n )\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nunconstrained fn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n) -> Field {}\n\npub unconstrained fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n) -> Field {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n )\n}\n\npub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n unsafe { notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter) };\n}\n\npub unconstrained fn notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n"
|
|
5660
|
-
},
|
|
5661
|
-
"88": {
|
|
5819
|
+
"145": {
|
|
5662
5820
|
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr",
|
|
5663
5821
|
"source": "/// Notifies the simulator that `returns` will be later fetched once the function return is processed, referenced by\n/// their hash. This allows the simulator to know how to respond to this future request.\n///\n/// This is only used during private execution, since in public it is the VM itself that keeps track of return values.\npub fn pack_returns(returns: [Field]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call. When\n // unpacking however the caller must check that the returned value is indeed the preimage.\n unsafe { pack_returns_oracle_wrapper(returns) };\n}\n\npub unconstrained fn pack_returns_oracle_wrapper(returns: [Field]) {\n let _ = pack_returns_oracle(returns);\n}\n\npub unconstrained fn unpack_returns<let N: u32>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n\n#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle(_returns: [Field]) -> Field {}\n\n#[oracle(unpackReturns)]\nunconstrained fn unpack_returns_oracle<let N: u32>(_return_hash: Field) -> [Field; N] {}\n"
|
|
5664
5822
|
},
|
|
5665
|
-
"
|
|
5666
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr",
|
|
5667
|
-
"source": "use crate::{note::{note_header::NoteHeader, note_interface::NoteInterface}, utils::array};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n indexed_tagging_secret::{INDEXED_TAGGING_SECRET_LENGTH, IndexedTaggingSecret},\n};\n\n/// Notifies the simulator that a note has been created, so that it can be returned in future read requests in the same\n/// transaction. This note should only be added to the non-volatile database if found in an actual block.\npub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n notify_created_note_oracle_wrapper(\n storage_slot,\n note_type_id,\n serialized_note,\n note_hash,\n counter,\n )\n };\n}\n\n/// Notifies the simulator that a note has been nullified, so that it is no longer returned in future read requests in\n/// the same transaction. This note should only be removed to the non-volatile database if its nullifier is found in an\n/// actual block.\npub fn notify_nullified_note(nullifier: Field, note_hash: Field, counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe { notify_nullified_note_oracle_wrapper(nullifier, note_hash, counter) };\n}\n\nunconstrained fn notify_created_note_oracle_wrapper<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n let _ = notify_created_note_oracle(\n storage_slot,\n note_type_id,\n serialized_note,\n note_hash,\n counter,\n );\n}\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32,\n) -> Field {}\n\nunconstrained fn notify_nullified_note_oracle_wrapper(\n nullifier: Field,\n note_hash: Field,\n counter: u32,\n) {\n let _ = notify_nullified_note_oracle(nullifier, note_hash, counter);\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle(\n _nullifier: Field,\n _note_hash: Field,\n _counter: u32,\n) -> Field {}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S],\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S],\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields,\n )\n}\n\npub unconstrained fn get_notes<Note, let N: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N], // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S]\nwhere\n Note: NoteInterface<N>,\n{\n sync_notes_oracle_wrapper();\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields,\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let note_content = array::subarray(fields, read_offset + 2);\n\n let mut note = Note::deserialize_content(note_content);\n note.set_header(NoteHeader { contract_address, nonce, storage_slot, note_hash_counter });\n\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n/// Returns true if the nullifier exists. Note that a `true` value can be constrained by proving existence of the\n/// nullifier, but a `false` value should not be relied upon since other transactions may emit this nullifier before the\n/// current transaction is included in a block. While this might seem of little use at first, certain design patterns\n/// benefit from this abstraction (see e.g. `PrivateMutable`).\npub unconstrained fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n/// Same as `get_app_tagging_secret_as_sender`, except it returns the derived tag, ready to be included in a log.\npub unconstrained fn get_app_tag_as_sender(sender: AztecAddress, recipient: AztecAddress) -> Field {\n get_app_tagging_secret_as_sender(sender, recipient).compute_tag(recipient)\n}\n\n/// Returns the tagging secret for a given sender and recipient pair, siloed for the current contract address.\n/// Includes the last known index used to send a note tagged with this secret.\n/// For this to work, PXE must know the ivpsk_m of the sender.\n/// For the recipient's side, only the address is needed.\npub unconstrained fn get_app_tagging_secret_as_sender(\n sender: AztecAddress,\n recipient: AztecAddress,\n) -> IndexedTaggingSecret {\n let result = get_app_tagging_secret_as_sender_oracle(sender, recipient);\n IndexedTaggingSecret::deserialize(result)\n}\n\n#[oracle(getAppTaggingSecretAsSender)]\nunconstrained fn get_app_tagging_secret_as_sender_oracle(\n _sender: AztecAddress,\n _recipient: AztecAddress,\n) -> [Field; INDEXED_TAGGING_SECRET_LENGTH] {}\n\n/// Notifies the simulator that a tag has been used in a note, and to therefore increment the associated index so that\n/// future notes get a different tag and can be discovered by the recipient.\n/// This change should only be persisted in a non-volatile database if the tagged log is found in an actual block -\n/// otherwise e.g. a reverting transaction can cause the sender to accidentally skip indices and later produce notes\n/// that are not found by the recipient.\npub fn increment_app_tagging_secret_index_as_sender(sender: AztecAddress, recipient: AztecAddress) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n increment_app_tagging_secret_index_as_sender_wrapper(sender, recipient);\n }\n}\n\nunconstrained fn increment_app_tagging_secret_index_as_sender_wrapper(\n sender: AztecAddress,\n recipient: AztecAddress,\n) {\n increment_app_tagging_secret_index_as_sender_oracle(sender, recipient);\n}\n\n#[oracle(incrementAppTaggingSecretIndexAsSender)]\nunconstrained fn increment_app_tagging_secret_index_as_sender_oracle(\n _sender: AztecAddress,\n _recipient: AztecAddress,\n) {}\n\n/// Finds new notes that may have been sent to all registered accounts in PXE in the current contract and makes them available\n/// for later querying via the `get_notes` oracle.\npub fn sync_notes() {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n sync_notes_oracle_wrapper();\n }\n}\n\nunconstrained fn sync_notes_oracle_wrapper() {\n sync_notes_oracle();\n}\n\n#[oracle(syncNotes)]\nunconstrained fn sync_notes_oracle() {}\n"
|
|
5668
|
-
},
|
|
5669
|
-
"92": {
|
|
5670
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr",
|
|
5671
|
-
"source": "use dep::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress, utils::reader::Reader,\n};\n\n#[oracle(callPrivateFunction)]\nunconstrained fn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n) -> [Field; 2] {}\n\npub unconstrained fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n) -> (u32, Field) {\n let fields = call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n );\n\n let mut reader = Reader::new(fields);\n let end_side_effect_counter = reader.read_u32();\n let returns_hash = reader.read();\n\n (end_side_effect_counter, returns_hash)\n}\n"
|
|
5672
|
-
},
|
|
5673
|
-
"93": {
|
|
5823
|
+
"148": {
|
|
5674
5824
|
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr",
|
|
5675
5825
|
"source": "use dep::protocol_types::{\n address::AztecAddress, constants::CONTRACT_INSTANCE_LENGTH, contract_class_id::ContractClassId,\n contract_instance::ContractInstance,\n};\n\n// NOTE: this is for use in private only\n#[oracle(getContractInstance)]\nunconstrained fn get_contract_instance_oracle(\n _address: AztecAddress,\n) -> [Field; CONTRACT_INSTANCE_LENGTH] {}\n\n// NOTE: this is for use in private only\nunconstrained fn get_contract_instance_internal(\n address: AztecAddress,\n) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n get_contract_instance_oracle(address)\n}\n\n// NOTE: this is for use in private only\npub fn get_contract_instance(address: AztecAddress) -> ContractInstance {\n let instance =\n unsafe { ContractInstance::deserialize(get_contract_instance_internal(address)) };\n // The to_address function combines all values in the instance object to produce an address, so by checking that we\n // get the expected address we validate the entire struct.\n assert_eq(instance.to_address(), address);\n\n instance\n}\n\n// These oracles each return a ContractInstance member\n// plus a boolean indicating whether the instance was found.\n#[oracle(avmOpcodeGetContractInstanceDeployer)]\nunconstrained fn get_contract_instance_deployer_oracle_avm(\n _address: AztecAddress,\n) -> (Field, bool) {}\n#[oracle(avmOpcodeGetContractInstanceClassId)]\nunconstrained fn get_contract_instance_class_id_oracle_avm(\n _address: AztecAddress,\n) -> (Field, bool) {}\n#[oracle(avmOpcodeGetContractInstanceInitializationHash)]\nunconstrained fn get_contract_instance_initialization_hash_oracle_avm(\n _address: AztecAddress,\n) -> (Field, bool) {}\n\npub unconstrained fn get_contract_instance_deployer_internal_avm(\n address: AztecAddress,\n) -> (Field, bool) {\n get_contract_instance_deployer_oracle_avm(address)\n}\npub unconstrained fn get_contract_instance_class_id_internal_avm(\n address: AztecAddress,\n) -> (Field, bool) {\n get_contract_instance_class_id_oracle_avm(address)\n}\npub unconstrained fn get_contract_instance_initialization_hash_internal_avm(\n address: AztecAddress,\n) -> (Field, bool) {\n get_contract_instance_initialization_hash_oracle_avm(address)\n}\n\npub fn get_contract_instance_deployer_avm(address: AztecAddress) -> Option<AztecAddress> {\n let (member, exists) = get_contract_instance_deployer_internal_avm(address);\n if exists {\n Option::some(AztecAddress::from_field(member))\n } else {\n Option::none()\n }\n}\npub fn get_contract_instance_class_id_avm(address: AztecAddress) -> Option<ContractClassId> {\n let (member, exists) = get_contract_instance_class_id_internal_avm(address);\n if exists {\n Option::some(ContractClassId::from_field(member))\n } else {\n Option::none()\n }\n}\npub fn get_contract_instance_initialization_hash_avm(address: AztecAddress) -> Option<Field> {\n let (member, exists) = get_contract_instance_initialization_hash_internal_avm(address);\n if exists {\n Option::some(member)\n } else {\n Option::none()\n }\n}\n"
|
|
5676
5826
|
},
|
|
5677
|
-
"
|
|
5678
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/
|
|
5679
|
-
"source": "use dep::protocol_types::{\n address::AztecAddress,\n
|
|
5680
|
-
},
|
|
5681
|
-
"107": {
|
|
5682
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr",
|
|
5683
|
-
"source": "use crate::{\n context::PrivateContext,\n encrypted_logs::payload::compute_private_log_payload,\n note::{note_emission::NoteEmission, note_interface::NoteInterface},\n};\nuse dep::protocol_types::{\n abis::note_hash::NoteHash, address::AztecAddress, constants::PRIVATE_LOG_SIZE_IN_FIELDS,\n};\n\n/// Computes private note log payload\nfn compute_payload<Note, let N: u32>(\n context: PrivateContext,\n note: Note,\n recipient: AztecAddress,\n sender: AztecAddress,\n) -> ([Field; PRIVATE_LOG_SIZE_IN_FIELDS], u32)\nwhere\n Note: NoteInterface<N>,\n{\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n // TODO(#8589): use typesystem to skip this check when not needed\n let note_exists =\n context.note_hashes.storage().any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n\n let contract_address: AztecAddress = context.this_address();\n\n let plaintext = note.to_be_bytes(storage_slot);\n\n let payload = compute_private_log_payload(contract_address, recipient, sender, plaintext);\n\n (payload, note_hash_counter)\n}\n\nunconstrained fn compute_payload_unconstrained<Note, let N: u32>(\n context: PrivateContext,\n note: Note,\n recipient: AztecAddress,\n sender: AztecAddress,\n) -> ([Field; PRIVATE_LOG_SIZE_IN_FIELDS], u32)\nwhere\n Note: NoteInterface<N>,\n{\n compute_payload(context, note, recipient, sender)\n}\n\n// This function seems to be affected by the following Noir bug:\n// https://github.com/noir-lang/noir/issues/5771\n// If you get weird behavior it might be because of it.\npub fn encode_and_encrypt_note<Note, let N: u32>(\n context: &mut PrivateContext,\n recipient: AztecAddress,\n // We need this because to compute a tagging secret, we require a sender:\n sender: AztecAddress,\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> ()\nwhere\n Note: NoteInterface<N>,\n{\n |e: NoteEmission<Note>| {\n let (encrypted_log, note_hash_counter) =\n compute_payload(*context, e.note, recipient, sender);\n context.emit_raw_note_log(encrypted_log, note_hash_counter);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32>(\n context: &mut PrivateContext,\n recipient: AztecAddress,\n // We need this because to compute a tagging secret, we require a sender:\n sender: AztecAddress,\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> ()\nwhere\n Note: NoteInterface<N>,\n{\n |e: NoteEmission<Note>| {\n // Unconstrained logs have both their content and encryption unconstrained - it could occur that the\n // recipient is unable to decrypt the payload.\n // Regarding the note hash counter, this is used for squashing. The kernel assumes that a given note can have\n // more than one log and removes all of the matching ones, so all a malicious sender could do is either: cause\n // for the log to be deleted when it shouldn't have (which is fine - they can already make the content be\n // whatever), or cause for the log to not be deleted when it should have (which is also fine - it'll be a log\n // for a note that doesn't exist).\n // It's important here that we do not\n // return the log from this function to the app, otherwise it could try to do stuff with it and then that might\n // be wrong.\n let (encrypted_log, note_hash_counter) =\n unsafe { compute_payload_unconstrained(*context, e.note, recipient, sender) };\n context.emit_raw_note_log(encrypted_log, note_hash_counter);\n }\n}\n"
|
|
5684
|
-
},
|
|
5685
|
-
"108": {
|
|
5686
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr",
|
|
5687
|
-
"source": "use dep::protocol_types::{\n address::AztecAddress,\n constants::{GENERATOR_INDEX__SYMMETRIC_KEY, PRIVATE_LOG_SIZE_IN_FIELDS},\n hash::poseidon2_hash,\n point::Point,\n public_keys::AddressPoint,\n scalar::Scalar,\n utils::arrays::array_concat,\n};\nuse std::{\n aes128::aes128_encrypt, embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n field::bn254::decompose, hash::from_field_unsafe as fr_to_fq_unsafe,\n};\n\nuse crate::{\n encrypted_logs::header::EncryptedLogHeader,\n keys::secret_derivation::derive_aes_secret,\n oracle::{\n notes::{get_app_tag_as_sender, increment_app_tagging_secret_index_as_sender},\n random::random,\n },\n utils::{bytes::bytes_to_fields, point::point_to_bytes},\n};\n\n// 1 field is reserved for tag.\nglobal ENCRYPTED_PAYLOAD_SIZE_IN_BYTES: u32 = (PRIVATE_LOG_SIZE_IN_FIELDS - 1) * 31;\n\ncomptime global HEADER_SIZE: u32 = 48;\n\n// Bytes padded to the overhead, so that the size of the incoming body ciphertext will be a multiple of 16.\ncomptime global OVERHEAD_PADDING: u32 = 15;\n\npub comptime global OVERHEAD_SIZE: u32 = 32 /* eph_pk */\n + HEADER_SIZE /* incoming_header */\n + OVERHEAD_PADDING /* padding */;\n\nglobal PLAINTEXT_LENGTH_SIZE: u32 = 2;\n\n// This is enough for 8 fields of data.\n// 1 field for storage slot, 1 field for note/event type id, allowing 6 fields for custom values.\nglobal MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES: u32 =\n ENCRYPTED_PAYLOAD_SIZE_IN_BYTES - OVERHEAD_SIZE - PLAINTEXT_LENGTH_SIZE - 1 /* aes padding */;\n\n// Note: Might have to update PRIVATE_LOG_SIZE_IN_FIELDS in `constants.nr` if the above changes.\n// This value ideally should be set by the protocol, allowing users (or `aztec-nr`) to fit data within the defined size limits.\n// Currently, we adjust this value as the structure changes, then update `constants.nr` to match.\n// Once the structure is finalized with defined overhead and max note field sizes, this value will be fixed and should remain unaffected by further payload composition changes.\n\npub fn compute_private_log_payload<let P: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n sender: AztecAddress,\n plaintext: [u8; P],\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS] {\n assert(\n P < MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES,\n f\"plaintext for log must not exceed {MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES}\",\n );\n\n let extended_plaintext: [u8; MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES + PLAINTEXT_LENGTH_SIZE] =\n extend_private_log_plaintext(plaintext);\n let encrypted: [u8; ENCRYPTED_PAYLOAD_SIZE_IN_BYTES] =\n compute_encrypted_log(contract_address, recipient, extended_plaintext);\n\n // We assume that the sender wants for the recipient to find the tagged note, and therefore that they will cooperate\n // and use the correct tag. Usage of a bad tag will result in the recipient not being able to find the note\n // automatically.\n let tag = unsafe { get_app_tag_as_sender(sender, recipient) };\n increment_app_tagging_secret_index_as_sender(sender, recipient);\n\n array_concat([tag], bytes_to_fields(encrypted))\n}\n\npub fn compute_partial_public_log_payload<let P: u32, let M: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n sender: AztecAddress,\n plaintext: [u8; P],\n) -> [u8; M] {\n let extended_plaintext: [u8; P + PLAINTEXT_LENGTH_SIZE] =\n extend_private_log_plaintext(plaintext);\n let encrypted: [u8; M - 32] =\n compute_encrypted_log(contract_address, recipient, extended_plaintext);\n\n // We assume that the sender wants for the recipient to find the tagged note, and therefore that they will cooperate\n // and use the correct tag. Usage of a bad tag will result in the recipient not being able to find the note\n // automatically.\n let tag = unsafe { get_app_tag_as_sender(sender, recipient) };\n increment_app_tagging_secret_index_as_sender(sender, recipient);\n // Silo the tag with contract address.\n // This is done by the kernel circuit to the private logs, but since the partial log will be finalized and emitted\n // in public as unencrypted log, its tag is not siloed at the moment.\n // To avoid querying logs using two types of tags, we silo the tag manually here.\n // TODO(#10273) This should be done by the AVM when it's processing the raw logs instead of their hashes.\n let siloed_tag_bytes: [u8; 32] =\n poseidon2_hash([contract_address.to_field(), tag]).to_be_bytes();\n\n // Temporary hack so that the partial public log remains the same format.\n // It should return field array and make the tag the first field as compute_private_log_payload does.\n let mut log_bytes = [0; M];\n for i in 0..32 {\n log_bytes[i] = siloed_tag_bytes[i];\n }\n for i in 0..encrypted.len() {\n log_bytes[i + 32] = encrypted[i];\n }\n\n log_bytes\n}\n\nfn compute_encrypted_log<let P: u32, let M: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n plaintext: [u8; P],\n) -> [u8; M] {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] =\n header.compute_ciphertext(eph_sk, recipient.to_address_point());\n let incoming_body_ciphertext =\n compute_incoming_body_ciphertext(plaintext, eph_sk, recipient.to_address_point());\n\n let mut encrypted_bytes = [0; M];\n let mut offset = 0;\n\n // eph_pk\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[offset + i] = eph_pk_bytes[i];\n }\n offset += 32;\n\n // incoming_header\n for i in 0..HEADER_SIZE {\n encrypted_bytes[offset + i] = incoming_header_ciphertext[i];\n }\n offset += HEADER_SIZE;\n\n // Padding.\n offset += OVERHEAD_PADDING;\n\n // incoming_body\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - offset;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[offset + i] = incoming_body_ciphertext[i];\n }\n\n encrypted_bytes\n}\n\n// Prepend the plaintext length as the first byte, then copy the plaintext itself starting from the second byte.\n// Fill the remaining bytes with random values to reach a fixed length of N.\nfn extend_private_log_plaintext<let P: u32, let N: u32>(plaintext: [u8; P]) -> [u8; N] {\n let mut padded = unsafe { get_random_bytes() };\n padded[0] = (P >> 8) as u8;\n padded[1] = P as u8;\n for i in 0..P {\n padded[i + PLAINTEXT_LENGTH_SIZE] = plaintext[i];\n }\n padded\n}\n\nunconstrained fn get_random_bytes<let N: u32>() -> [u8; N] {\n let mut bytes = [0; N];\n let mut idx = 32;\n let mut randomness = [0; 32];\n for i in 0..N {\n if idx == 32 {\n randomness = random().to_be_bytes();\n idx = 1; // Skip the first byte as it's always 0.\n }\n bytes[i] = randomness[idx];\n idx += 1;\n }\n bytes\n}\n\n/// Converts a base field element to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let (lo, hi) = decompose(r);\n\n Scalar { lo, hi }\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n // We use the randomness to preserve the privacy of both the sender and recipient via encryption, so a malicious\n // sender could use non-random values to reveal the plaintext. But they already know it themselves anyway, and so\n // the recipient already trusts them to not disclose this information. We can therefore assume that the sender will\n // cooperate in the random value generation.\n let randomness = unsafe { random() };\n\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(randomness);\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\npub fn compute_incoming_body_ciphertext<let P: u32>(\n plaintext: [u8; P],\n eph_sk: Scalar,\n address_point: AddressPoint,\n) -> [u8] {\n let full_key = derive_aes_secret(eph_sk, address_point.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(plaintext, iv, sym_key)\n}\n\nmod test {\n use crate::encrypted_logs::payload::{\n compute_incoming_body_ciphertext, compute_private_log_payload,\n MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES,\n };\n use dep::protocol_types::{address::AztecAddress, point::Point, scalar::Scalar};\n use protocol_types::public_keys::AddressPoint;\n use std::test::OracleMock;\n\n #[test]\n unconstrained fn test_encrypted_log_matches_typescript() {\n // All the values in this test were copied over from `encrypted_log_payload.test.ts`\n let contract_address = AztecAddress::from_field(\n 0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04,\n );\n\n let plaintext = [\n 0, 0, 0, 1, 48, 22, 64, 206, 234, 117, 131, 145, 178, 225, 97, 201, 44, 5, 19, 241, 41,\n 2, 15, 65, 37, 37, 106, 253, 174, 38, 70, 206, 49, 9, 159, 92, 16, 244, 140, 217, 239,\n 247, 174, 91, 32, 156, 85, 124, 112, 222, 46, 101, 126, 231, 145, 102, 134, 134, 118,\n 183, 135, 233, 65, 126, 25, 38, 14, 4, 15, 228, 107, 229, 131, 183, 31, 74, 181, 183,\n 12, 38, 87, 255, 29, 5, 204, 207, 29, 41, 42, 147, 105, 98, 141, 26, 25, 79, 148, 78,\n 101, 153, 0, 0, 16, 39,\n ];\n\n let randomness = 0x0101010101010101010101010101010101010101010101010101010101010101;\n let _ = OracleMock::mock(\"getRandomField\").returns(randomness).times(\n (MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES as u64 + 1 + 30) / 31,\n );\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk).times(1);\n\n let recipient = AztecAddress::from_field(\n 0x25afb798ea6d0b8c1618e50fdeafa463059415013d3b7c75d46abf5e242be70c,\n );\n\n let sender = AztecAddress::from_field(\n 0x25afb798ea6d0b8c1618e50fdeafa463059415013d3b7c75d46abf5e242be70c,\n );\n\n let _ = OracleMock::mock(\"getAppTaggingSecretAsSender\").returns([69420, 1337]);\n\n let _ = OracleMock::mock(\"incrementAppTaggingSecretIndexAsSender\").returns(());\n\n let payload = compute_private_log_payload(contract_address, recipient, sender, plaintext);\n\n // The following value was generated by `encrypted_log_payload.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let private_log_payload_from_typescript = [\n 0x0e9cffc3ddd746affb02410d8f0a823e89939785bcc8e88ee4f3cae05e737c36,\n 0x008d460c0e434d846ec1ea286e4090eb56376ff27bddc1aacae1d856549f701f,\n 0x00a70577790aeabcc2d81ec8d0c99e7f5d2bf2f1452025dc777a178404f851d9,\n 0x003de818923f85187871d99bdf95d695eff0a900000000000000000000000000,\n 0x000000a600a61f7d59eeaf52eb51bc0592ff981d9ba3ea8e6ea8ba9dc0cec8c7,\n 0x000b81e84556a77ce6c3ca47a527f99ffe7b2524bb885a23020b7295748ad19c,\n 0x001083618ad96298b76ee07eb1a56d19cc798710e9f5de96501bd59b3781c9c0,\n 0x002a6c95c5912f8936b1500d362afbf0922c85b1ada18db8b95162a6e9d06765,\n 0x005cdf669eb387f8e0492a95fdcdb39429d5340b4bebc250ba9bf62c2f49f549,\n 0x00f37beed75a668aa51967e0e57547e5a655157bcf381e22f30e25881548ec96,\n 0x0006a151b5fbfb2d14ee4b34bf4c1dbd71c7be15ad4c63474bb6f89970aeb3d9,\n 0x00489c8edbdff80a1a3a5c28370e534abc870a85ea4318326ea19222fb10df35,\n 0x008c765edada497db4284ae30507a2e03e983d23cfa0bd831577e857bbef9cf7,\n 0x0090c97cb5699cc8783a1b4276d929be2882e5b9b72829a4f8404f7e3c853d11,\n 0x00d6d5a000b80134891e95f81007ad35d3945eaeecbe137fff85d01d7eaf8f19,\n 0x00a15eb965c6a4bc97aa87fd3463c31c9d4e0d722a8ba870bcc50c9c7a8b48ad,\n 0x0063c861bdbe490d44c57382decbae663927909652f87ac18dcfd5b30649cce5,\n 0x00820f14caa725efe1fa3485ceac88499eadf0565c5b20998c05931bbf478e68,\n ];\n\n assert_eq(payload, private_log_payload_from_typescript);\n }\n\n #[test]\n fn test_incoming_body_ciphertext_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06,\n };\n let address_point = AddressPoint {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false,\n },\n };\n let plaintext = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,\n ];\n\n // `compute_incoming_body_ciphertext(...)` function then derives symmetric key from `eph_sk` and `address_point` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = compute_incoming_body_ciphertext(plaintext, eph_sk, address_point);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160,\n 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157,\n 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93,\n 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130,\n 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95,\n 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234,\n 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162,\n 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185,\n 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236,\n 23, 206, 229, 108,\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"
|
|
5827
|
+
"150": {
|
|
5828
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr",
|
|
5829
|
+
"source": "use crate::{note::{note_header::NoteHeader, note_interface::NoteInterface}, utils::array};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n indexed_tagging_secret::{INDEXED_TAGGING_SECRET_LENGTH, IndexedTaggingSecret},\n};\n\n/// Notifies the simulator that a note has been created, so that it can be returned in future read requests in the same\n/// transaction. This note should only be added to the non-volatile database if found in an actual block.\npub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n notify_created_note_oracle_wrapper(\n storage_slot,\n note_type_id,\n serialized_note,\n note_hash,\n counter,\n )\n };\n}\n\n/// Notifies the simulator that a note has been nullified, so that it is no longer returned in future read requests in\n/// the same transaction. This note should only be removed to the non-volatile database if its nullifier is found in an\n/// actual block.\npub fn notify_nullified_note(nullifier: Field, note_hash: Field, counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe { notify_nullified_note_oracle_wrapper(nullifier, note_hash, counter) };\n}\n\nunconstrained fn notify_created_note_oracle_wrapper<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n let _ = notify_created_note_oracle(\n storage_slot,\n note_type_id,\n serialized_note,\n note_hash,\n counter,\n );\n}\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32,\n) -> Field {}\n\nunconstrained fn notify_nullified_note_oracle_wrapper(\n nullifier: Field,\n note_hash: Field,\n counter: u32,\n) {\n let _ = notify_nullified_note_oracle(nullifier, note_hash, counter);\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle(\n _nullifier: Field,\n _note_hash: Field,\n _counter: u32,\n) -> Field {}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S],\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S],\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields,\n )\n}\n\npub unconstrained fn get_notes<Note, let N: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N], // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S]\nwhere\n Note: NoteInterface<N>,\n{\n sync_notes_oracle_wrapper();\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields,\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let note_content = array::subarray(fields, read_offset + 2);\n\n let mut note = Note::deserialize_content(note_content);\n note.set_header(NoteHeader { contract_address, nonce, storage_slot, note_hash_counter });\n\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n/// Returns true if the nullifier exists. Note that a `true` value can be constrained by proving existence of the\n/// nullifier, but a `false` value should not be relied upon since other transactions may emit this nullifier before the\n/// current transaction is included in a block. While this might seem of little use at first, certain design patterns\n/// benefit from this abstraction (see e.g. `PrivateMutable`).\npub unconstrained fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n/// Same as `get_indexed_tagging_secret_as_sender`, except it returns the derived tag, ready to be included in a log.\npub unconstrained fn get_app_tag_as_sender(sender: AztecAddress, recipient: AztecAddress) -> Field {\n get_indexed_tagging_secret_as_sender(sender, recipient).compute_tag(recipient)\n}\n\n/// Returns the tagging secret for a given sender and recipient pair, siloed for the current contract address.\n/// Includes the last known index used to send a note tagged with this secret.\n/// For this to work, PXE must know the ivsk_m of the sender.\n/// For the recipient's side, only the address is needed.\npub unconstrained fn get_indexed_tagging_secret_as_sender(\n sender: AztecAddress,\n recipient: AztecAddress,\n) -> IndexedTaggingSecret {\n let result = get_indexed_tagging_secret_as_sender_oracle(sender, recipient);\n IndexedTaggingSecret::deserialize(result)\n}\n\n#[oracle(getIndexedTaggingSecretAsSender)]\nunconstrained fn get_indexed_tagging_secret_as_sender_oracle(\n _sender: AztecAddress,\n _recipient: AztecAddress,\n) -> [Field; INDEXED_TAGGING_SECRET_LENGTH] {}\n\n/// Notifies the simulator that a tag has been used in a note, and to therefore increment the associated index so that\n/// future notes get a different tag and can be discovered by the recipient.\n/// This change should only be persisted in a non-volatile database if the tagged log is found in an actual block -\n/// otherwise e.g. a reverting transaction can cause the sender to accidentally skip indices and later produce notes\n/// that are not found by the recipient.\npub fn increment_app_tagging_secret_index_as_sender(sender: AztecAddress, recipient: AztecAddress) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n increment_app_tagging_secret_index_as_sender_wrapper(sender, recipient);\n }\n}\n\nunconstrained fn increment_app_tagging_secret_index_as_sender_wrapper(\n sender: AztecAddress,\n recipient: AztecAddress,\n) {\n increment_app_tagging_secret_index_as_sender_oracle(sender, recipient);\n}\n\n#[oracle(incrementAppTaggingSecretIndexAsSender)]\nunconstrained fn increment_app_tagging_secret_index_as_sender_oracle(\n _sender: AztecAddress,\n _recipient: AztecAddress,\n) {}\n\n/// Finds new notes that may have been sent to all registered accounts in PXE in the current contract and makes them available\n/// for later querying via the `get_notes` oracle.\npub fn sync_notes() {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n sync_notes_oracle_wrapper();\n }\n}\n\nunconstrained fn sync_notes_oracle_wrapper() {\n sync_notes_oracle();\n}\n\n#[oracle(syncNotes)]\nunconstrained fn sync_notes_oracle() {}\n"
|
|
5688
5830
|
},
|
|
5689
|
-
"
|
|
5690
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/
|
|
5691
|
-
"source": "
|
|
5831
|
+
"151": {
|
|
5832
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr",
|
|
5833
|
+
"source": "use dep::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress, utils::reader::Reader,\n};\n\n#[oracle(callPrivateFunction)]\nunconstrained fn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n) -> [Field; 2] {}\n\npub unconstrained fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n) -> (u32, Field) {\n let fields = call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n );\n\n let mut reader = Reader::new(fields);\n let end_side_effect_counter = reader.read_u32();\n let returns_hash = reader.read();\n\n (end_side_effect_counter, returns_hash)\n}\n"
|
|
5692
5834
|
},
|
|
5693
|
-
"
|
|
5694
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/
|
|
5695
|
-
"source": "use dep::protocol_types::
|
|
5835
|
+
"156": {
|
|
5836
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr",
|
|
5837
|
+
"source": "use crate::utils::to_bytes::{arr_to_be_bytes_arr, str_to_be_bytes_arr};\nuse dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__FUNCTION_ARGS, GENERATOR_INDEX__MESSAGE_NULLIFIER,\n GENERATOR_INDEX__SECRET_HASH,\n },\n hash::{poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice, sha256_to_field},\n point::Point,\n traits::Hash,\n};\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<let N: u32>(\n contract_address: AztecAddress,\n log: [u8; N],\n) -> Field {\n let mut hash_bytes = [0; N + 36];\n // Address is converted to 32 bytes in ts\n let address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes: [u8; 4] = (N as Field).to_be_bytes();\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..N {\n hash_bytes[36 + i] = log[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_l1_to_l2_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field,\n leaf_index: Field,\n) -> Field {\n let mut hash_bytes = [0 as u8; 224];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n let leaf_index_bytes: [u8; 32] = leaf_index.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n hash_bytes[i + 192] = leaf_index_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret\npub fn compute_l1_to_l2_message_nullifier(message_hash: Field, secret: Field) -> Field {\n poseidon2_hash_with_separator([message_hash, secret], GENERATOR_INDEX__MESSAGE_NULLIFIER)\n}\n\npub struct ArgsHasher {\n pub fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(\n 0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6,\n );\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd,\n ];\n let serialized_log = arr_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(\n 0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6,\n );\n let log = AztecAddress::from_field(\n 0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303,\n );\n let serialized_log: [u8; 32] = log.to_field().to_be_bytes();\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(\n 0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8,\n );\n let log = \"dummy\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(\n 0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8,\n );\n let log = \"Hello this is a string\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"
|
|
5696
5838
|
},
|
|
5697
|
-
"
|
|
5698
|
-
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/
|
|
5699
|
-
"source": "use dep::protocol_types::
|
|
5839
|
+
"157": {
|
|
5840
|
+
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/generators.nr",
|
|
5841
|
+
"source": "use dep::protocol_types::point::Point;\n\n// A set of generators generated with `derive_generators(...)` function from noir::std\npub global Ga1: Point = Point {\n x: 0x30426e64aee30e998c13c8ceecda3a77807dbead52bc2f3bf0eae851b4b710c1,\n y: 0x113156a068f603023240c96b4da5474667db3b8711c521c748212a15bc034ea6,\n is_infinite: false,\n};\npub global Ga2: Point = Point {\n x: 0x2825c79cc6a5cbbeef7d6a8f1b6a12b312aa338440aefeb4396148c89147c049,\n y: 0x129bfd1da54b7062d6b544e7e36b90736350f6fba01228c41c72099509f5701e,\n is_infinite: false,\n};\npub global Ga3: Point = Point {\n x: 0x0edb1e293c3ce91bfc04e3ceaa50d2c541fa9d091c72eb403efb1cfa2cb3357f,\n y: 0x1341d675fa030ece3113ad53ca34fd13b19b6e9762046734f414824c4d6ade35,\n is_infinite: false,\n};\npub global Ga4: Point = Point {\n x: 0x0e0dad2250583f2a9f0acb04ededf1701b85b0393cae753fe7e14b88af81cb52,\n y: 0x0973b02c5caac339ee4ad5dab51329920f7bf1b6a07e1dabe5df67040b300962,\n is_infinite: false,\n};\npub global Ga5: Point = Point {\n x: 0x2f3342e900e8c488a28931aae68970738fdc68afde2910de7b320c00c902087d,\n y: 0x1bf958dc63cb09d59230603a0269ae86d6f92494da244910351f1132df20fc08,\n is_infinite: false,\n};\n// If you change this update `G_SLOT` in `yarn-project/simulator/src/client/test_utils.ts` as well\npub global G_slot: Point = Point {\n x: 0x041223147b680850dc82e8a55a952d4df20256fe0593d949a9541ca00f0abf15,\n y: 0x0a8c72e60d0e60f5d804549d48f3044d06140b98ed717a9b532af630c1530791,\n is_infinite: false,\n};\n\nmod test {\n use crate::generators::{G_slot, Ga1, Ga2, Ga3, Ga4, Ga5};\n use dep::protocol_types::point::Point;\n use std::hash::derive_generators;\n\n #[test]\n unconstrained fn test_generators() {\n let generators: [Point; 6] = derive_generators(\"aztec_nr_generators\".as_bytes(), 0);\n assert_eq(generators[0], Ga1);\n assert_eq(generators[1], Ga2);\n assert_eq(generators[2], Ga3);\n assert_eq(generators[4], Ga4);\n assert_eq(generators[5], Ga5);\n assert_eq(generators[3], G_slot);\n }\n}\n"
|
|
5700
5842
|
},
|
|
5701
|
-
"
|
|
5843
|
+
"171": {
|
|
5702
5844
|
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr",
|
|
5703
5845
|
"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,\n },\n};\nuse dep::protocol_types::{address::AztecAddress, public_keys::PublicKeys};\n\nmod test;\n\npub unconstrained fn get_nsk_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\n// in 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\n// keys at once since the constraints for reading them all are actually fewer than if we read them one at a time - any\n// read keys that are not required by the caller can simply be discarded.\npub fn get_public_keys(account: AztecAddress) -> PublicKeys {\n // 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(\n account,\n AztecAddress::compute(public_keys, partial_address),\n \"Invalid public keys hint for address\",\n );\n\n public_keys\n}\n"
|
|
5704
5846
|
},
|
|
5705
|
-
"
|
|
5847
|
+
"173": {
|
|
5706
5848
|
"path": "/usr/src/noir-projects/aztec-nr/aztec/src/keys/secret_derivation.nr",
|
|
5707
5849
|
"source": "use crate::utils::point::point_to_bytes;\nuse dep::protocol_types::{constants::GENERATOR_INDEX__SYMMETRIC_KEY, point::Point, scalar::Scalar};\nuse std::{embedded_curve_ops::multi_scalar_mul, hash::sha256};\n\npub fn derive_aes_secret(secret: Scalar, point: Point) -> [u8; 32] {\n let shared_secret = point_to_bytes(multi_scalar_mul([point], [secret]));\n\n let mut shared_secret_bytes_with_separator: [u8; 33] = std::mem::zeroed();\n for i in 0..shared_secret.len() {\n shared_secret_bytes_with_separator[i] = shared_secret[i];\n }\n\n shared_secret_bytes_with_separator[32] = GENERATOR_INDEX__SYMMETRIC_KEY;\n\n sha256(shared_secret_bytes_with_separator)\n}\n\n#[test]\nunconstrained fn test_derive_aes_secret_matches_noir() {\n // Value taken from \"derive shared secret\" test in encrypt_buffer.test.ts\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06,\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false,\n };\n\n let key = derive_aes_secret(secret, point);\n\n // The following value was generated by `encrypt_buffer.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let key_from_typescript = [\n 251, 232, 177, 34, 2, 174, 35, 92, 165, 118, 168, 3, 153, 140, 46, 210, 203, 154, 184, 158,\n 236, 33, 95, 77, 93, 120, 72, 88, 190, 209, 64, 159,\n ];\n assert_eq(key, key_from_typescript);\n}\n"
|
|
5708
5850
|
},
|
|
5709
|
-
"
|
|
5710
|
-
"path": "/usr/src/noir-projects/
|
|
5711
|
-
"source": "
|
|
5851
|
+
"176": {
|
|
5852
|
+
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
|
|
5853
|
+
"source": "/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe { debug_log_oracle_wrapper(msg, args) };\n}\n\npub unconstrained fn debug_log_oracle_wrapper<let M: u32, let N: u32>(\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"
|
|
5712
5854
|
},
|
|
5713
|
-
"
|
|
5714
|
-
"path": "/usr/src/noir-projects/
|
|
5715
|
-
"source": "use
|
|
5855
|
+
"178": {
|
|
5856
|
+
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays.nr",
|
|
5857
|
+
"source": "pub mod assert_array_appended;\npub mod assert_array_prepended;\npub mod assert_combined_array;\npub mod assert_combined_transformed_array;\npub mod assert_exposed_sorted_transformed_value_array;\npub mod assert_sorted_array;\npub mod assert_sorted_transformed_value_array;\npub mod assert_split_sorted_transformed_value_arrays;\npub mod assert_split_transformed_value_arrays;\npub mod get_sorted_result;\npub mod get_sorted_tuple;\npub mod sort_by;\npub mod sort_by_counter;\n\n// Re-exports.\npub use assert_array_appended::{\n assert_array_appended, assert_array_appended_and_scoped, assert_array_appended_reversed,\n assert_array_appended_scoped,\n};\npub use assert_array_prepended::assert_array_prepended;\npub use assert_combined_array::{assert_combined_array, combine_arrays};\npub use assert_combined_transformed_array::{\n assert_combined_transformed_array, combine_and_transform_arrays,\n};\npub use assert_exposed_sorted_transformed_value_array::{\n assert_exposed_sorted_transformed_value_array,\n get_order_hints::{get_order_hints_asc, get_order_hints_desc, OrderHint},\n};\npub use assert_sorted_array::assert_sorted_array;\npub use assert_sorted_transformed_value_array::{\n assert_sorted_transformed_value_array, assert_sorted_transformed_value_array_capped_size,\n};\npub use assert_split_sorted_transformed_value_arrays::{\n assert_split_sorted_transformed_value_arrays_asc,\n assert_split_sorted_transformed_value_arrays_desc,\n get_split_order_hints::{get_split_order_hints_asc, get_split_order_hints_desc, SplitOrderHints},\n};\npub use assert_split_transformed_value_arrays::assert_split_transformed_value_arrays;\npub use get_sorted_result::{get_sorted_result, SortedResult};\npub use sort_by_counter::{sort_by_counter_asc, sort_by_counter_desc};\n\nuse crate::traits::{Empty, is_empty};\n\npub fn subarray<let SRC_LEN: u32, let DST_LEN: u32>(\n src: [Field; SRC_LEN],\n offset: u32,\n) -> [Field; DST_LEN] {\n assert(offset + DST_LEN <= SRC_LEN, \"offset too large\");\n\n let mut dst: [Field; DST_LEN] = std::mem::zeroed();\n for i in 0..DST_LEN {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\n// Helper function to convert a validated array to BoundedVec.\n// Important: Only use it for validated arrays: validate_array(array) should be true.\npub unconstrained fn array_to_bounded_vec<T, let N: u32>(array: [T; N]) -> BoundedVec<T, N>\nwhere\n T: Empty + Eq,\n{\n let len = array_length(array);\n BoundedVec::from_parts_unchecked(array, len)\n}\n\npub unconstrained fn find_index_hint<T, let N: u32, Env>(\n array: [T; N],\n find: fn[Env](T) -> bool,\n) -> u32 {\n let mut index = N;\n for i in 0..N {\n if (index == N) & find(array[i]) {\n index = i;\n }\n }\n index\n}\n\n// Routine which validates that all zero values of an array form a contiguous region at the end, i.e.,\n// of the form: [*,*,*...,0,0,0,0] where any * is non-zero. Note that a full array of non-zero values is\n// valid.\npub fn validate_array<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let mut seen_empty = false;\n let mut length = 0;\n for i in 0..N {\n if is_empty(array[i]) {\n seen_empty = true;\n } else {\n assert(seen_empty == false, \"invalid array\");\n length += 1;\n }\n }\n length\n}\n\n// Helper function to count the number of non-empty elements in a validated array.\n// Important: Only use it for validated arrays: validate_array(array) should be true.\npub fn array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let length = unsafe { find_index_hint(array, |elem: T| is_empty(elem)) };\n if length != 0 {\n assert(!is_empty(array[length - 1]));\n }\n if length != N {\n assert(is_empty(array[length]));\n }\n length\n}\n\npub fn array_concat<T, let N: u32, let M: u32>(array1: [T; N], array2: [T; M]) -> [T; N + M] {\n let mut result = [array1[0]; N + M];\n for i in 1..N {\n result[i] = array1[i];\n }\n for i in 0..M {\n result[i + N] = array2[i];\n }\n result\n}\n\npub fn array_merge<T, let N: u32>(array1: [T; N], array2: [T; N]) -> [T; N]\nwhere\n T: Empty + Eq,\n{\n let mut result: [T; N] = [T::empty(); N];\n let mut i = 0;\n for elem in array1 {\n if !is_empty(elem) {\n result[i] = elem;\n i += 1;\n }\n }\n for elem in array2 {\n if !is_empty(elem) {\n result[i] = elem;\n i += 1;\n }\n }\n result\n}\n\n// Helper fn to create a subarray from a given array\npub fn array_splice<T, let N: u32, let M: u32>(array: [T; N], offset: u32) -> [T; M]\nwhere\n T: Empty,\n{\n assert(M + offset <= N, \"Subarray length larger than array length\");\n let mut result: [T; M] = [T::empty(); M];\n for i in 0..M {\n result[i] = array[offset + i];\n }\n result\n}\n\npub fn check_permutation<T, let N: u32>(\n original_array: [T; N],\n permuted_array: [T; N],\n original_indexes: [u32; N],\n)\nwhere\n T: Eq + Empty,\n{\n let mut seen_value = [false; N];\n for i in 0..N {\n let index = original_indexes[i];\n let original_value = original_array[index];\n assert(permuted_array[i].eq(original_value), \"Invalid index\");\n assert(!seen_value[index], \"Duplicated index\");\n seen_value[index] = true;\n }\n}\n\n#[test]\nfn smoke_validate_array() {\n let valid_array: [Field; 0] = [];\n assert(validate_array(valid_array) == 0);\n\n let valid_array = [0];\n assert(validate_array(valid_array) == 0);\n\n let valid_array = [3];\n assert(validate_array(valid_array) == 1);\n\n let valid_array = [1, 2, 3];\n assert(validate_array(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0];\n assert(validate_array(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0, 0];\n assert(validate_array(valid_array) == 3);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case0() {\n let invalid_array = [0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case1() {\n let invalid_array = [1, 0, 0, 1, 0];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case2() {\n let invalid_array = [0, 0, 0, 0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test]\nfn test_empty_array_length() {\n assert_eq(array_length([0]), 0);\n assert_eq(array_length([0, 0, 0]), 0);\n}\n\n#[test]\nfn test_array_length() {\n assert_eq(array_length([123]), 1);\n assert_eq(array_length([123, 0, 0]), 1);\n assert_eq(array_length([123, 456]), 2);\n assert_eq(array_length([123, 456, 0]), 2);\n}\n\n#[test]\nfn test_array_length_invalid_arrays() {\n // Result can be misleading (but correct) for invalid arrays.\n assert_eq(array_length([0, 0, 123]), 0);\n assert_eq(array_length([0, 123, 0]), 0);\n assert_eq(array_length([0, 123, 456]), 0);\n assert_eq(array_length([123, 0, 456]), 1);\n}\n\n#[test]\nfn find_index_greater_than_min() {\n let values = [10, 20, 30, 40];\n let min = 22;\n let index = unsafe { find_index_hint(values, |v: Field| min.lt(v)) };\n assert_eq(index, 2);\n}\n\n#[test]\nfn find_index_not_found() {\n let values = [10, 20, 30, 40];\n let min = 100;\n let index = unsafe { find_index_hint(values, |v: Field| min.lt(v)) };\n assert_eq(index, 4);\n}\n\n#[test]\nfn test_array_concat() {\n let array0 = [1, 2, 3];\n let array1 = [4, 5];\n let concated = array_concat(array0, array1);\n assert_eq(concated, [1, 2, 3, 4, 5]);\n}\n\n#[test]\nfn check_permutation_basic_test() {\n let original_array = [1, 2, 3];\n let permuted_array = [3, 1, 2];\n let indexes = [2, 0, 1];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Duplicated index\")]\nfn check_permutation_duplicated_index() {\n let original_array = [0, 1, 0];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 0];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Invalid index\")]\nfn check_permutation_invalid_index() {\n let original_array = [0, 1, 2];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 2];\n check_permutation(original_array, permuted_array, indexes);\n}\n"
|
|
5716
5858
|
},
|
|
5717
|
-
"
|
|
5718
|
-
"path": "/usr/src/noir-projects/
|
|
5719
|
-
"source": "
|
|
5859
|
+
"196": {
|
|
5860
|
+
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr",
|
|
5861
|
+
"source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; K];\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"
|
|
5720
5862
|
},
|
|
5721
|
-
"
|
|
5722
|
-
"path": "/usr/src/noir-projects/
|
|
5723
|
-
"source": "use crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, NoteStatus, PropertySelector, Select, Sort, SortOrder},\n note_interface::{NoteInterface, NullifiableNote},\n note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request,\n};\nuse crate::oracle;\nuse crate::utils::comparison::compare;\nuse dep::protocol_types::constants::{\n GET_NOTES_ORACLE_RETURN_LENGTH, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n};\n\npub use crate::note::constants::MAX_NOTES_PER_PAGE;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector,\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note.\n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value: [u8; 32] = serialized_note[selector.index].to_be_bytes();\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32>(context: PrivateContext, storage_slot: Field, note: Note)\nwhere\n Note: NoteInterface<N>,\n{\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>,\n) {\n for i in 0..selects.len() {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field =\n extract_property_value_from_selector(serialized_note, select.property_selector);\n\n assert(\n compare(value_field, select.comparator, select.value.to_field()),\n \"Mismatch return note field.\",\n );\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>,\n) {\n for i in 0..sorts.len() {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32>(\n context: &mut PrivateContext,\n storage_slot: Field,\n) -> (Note, Field)\nwhere\n Note: NoteInterface<N> + NullifiableNote,\n{\n let note = unsafe { get_note_internal(storage_slot) };\n\n // Constraining that we got a valid note from the oracle is fairly straightforward: all we need to do is check that\n // the metadata is correct, and that the note exists.\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n context.push_note_hash_read_request(note_hash_for_read_request);\n\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n ) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>)\nwhere\n Note: NoteInterface<N> + NullifiableNote + Eq,\n{\n let opt_notes = unsafe { get_notes_internal(storage_slot, options) };\n\n // We apply the constraints in a separate function instead of inlining them here to make it easier to test that\n // these checks correctly reject bad notes.\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS,\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n ) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>)\nwhere\n Note: NoteInterface<N> + NullifiableNote + Eq,\n{\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::array::collapse(filtered_notes);\n let mut note_hashes: BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> =\n BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32>(storage_slot: Field) -> Note\nwhere\n Note: NoteInterface<N>,\n{\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length,\n )[0]\n .expect(f\"Failed to get a note\") // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>,\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL]\nwhere\n Note: NoteInterface<N>,\n{\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) =\n flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length,\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\npub unconstrained fn view_notes<Note, let N: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N>,\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE>\nwhere\n Note: NoteInterface<N>,\n{\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) =\n flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length,\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>,\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len() {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len() {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values,\n select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order,\n )\n}\n"
|
|
5863
|
+
"206": {
|
|
5864
|
+
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr",
|
|
5865
|
+
"source": "use crate::{point::Point, traits::{Deserialize, Empty, Serialize}};\npub use crate::constants::KEY_VALIDATION_REQUEST_LENGTH;\n\npub struct KeyValidationRequest {\n pub pk_m: Point,\n pub sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m)) & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest { pk_m: Point::empty(), sk_app: 0 }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [self.pk_m.x, self.pk_m.y, self.pk_m.is_infinite as Field, self.sk_app]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x: fields[0], y: fields[1], is_infinite: fields[2] as bool },\n sk_app: fields[3],\n }\n }\n}\n"
|
|
5724
5866
|
},
|
|
5725
|
-
"
|
|
5726
|
-
"path": "/usr/src/noir-projects/
|
|
5727
|
-
"source": "
|
|
5867
|
+
"265": {
|
|
5868
|
+
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/indexed_tagging_secret.nr",
|
|
5869
|
+
"source": "use crate::traits::{Deserialize, Serialize};\nuse super::{address::aztec_address::AztecAddress, hash::poseidon2_hash};\nuse std::meta::derive;\n\npub global INDEXED_TAGGING_SECRET_LENGTH: u32 = 2;\n\n#[derive(Serialize, Deserialize)]\npub struct IndexedTaggingSecret {\n app_tagging_secret: Field,\n index: u32,\n}\n\nimpl IndexedTaggingSecret {\n pub fn compute_tag(self, recipient: AztecAddress) -> Field {\n poseidon2_hash(\n [self.app_tagging_secret, recipient.to_field(), self.index as Field],\n )\n }\n}\n"
|
|
5728
5870
|
},
|
|
5729
|
-
"
|
|
5730
|
-
"path": "/usr/src/noir-projects/
|
|
5731
|
-
"source": "use crate::
|
|
5871
|
+
"268": {
|
|
5872
|
+
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr",
|
|
5873
|
+
"source": "use crate::{\n address::{aztec_address::AztecAddress, salted_initialization_hash::SaltedInitializationHash},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Serialize, ToField},\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n pub inner: Field,\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress,\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer),\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n ) -> Self {\n PartialAddress::from_field(poseidon2_hash_with_separator(\n [contract_class_id.to_field(), salted_initialization_hash.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
|
|
5732
5874
|
},
|
|
5733
|
-
"
|
|
5875
|
+
"269": {
|
|
5734
5876
|
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
|
|
5735
5877
|
"source": "use crate::{\n abis::function_selector::FunctionSelector,\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{\n AZTEC_ADDRESS_LENGTH, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n MAX_FIELD_VALUE,\n },\n contract_class_id::ContractClassId,\n hash::{poseidon2_hash_with_separator, private_functions_root_from_siblings},\n merkle_tree::membership::MembershipWitness,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n traits::{Deserialize, Empty, FromField, Serialize, ToField},\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse ec::{pow, sqrt};\nuse std::embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key};\n\n// Aztec address\npub struct AztecAddress {\n pub inner: Field,\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn to_address_point(self) -> AddressPoint {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // TODO (#8970): Handle cases where we cannot recover a point from an address\n let mut y = sqrt(y_squared);\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secrect can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_private_function(\n function_selector: FunctionSelector,\n function_vk_hash: Field,\n function_leaf_membership_witness: MembershipWitness<FUNCTION_TREE_HEIGHT>,\n contract_class_artifact_hash: Field,\n contract_class_public_bytecode_commitment: Field,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let private_functions_root = private_functions_root_from_siblings(\n function_selector,\n function_vk_hash,\n function_leaf_membership_witness.leaf_index,\n function_leaf_membership_witness.sibling_path,\n );\n\n let contract_class_id = ContractClassId::compute(\n contract_class_artifact_hash,\n private_functions_root,\n contract_class_public_bytecode_commitment,\n );\n\n // Compute contract address using the preimage which includes the class_id.\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_address)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn compute_preaddress_from_partial_and_pub_keys() {\n let pre_address = poseidon2_hash_with_separator([1, 2], GENERATOR_INDEX__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(pre_address == expected_computed_preaddress_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"
|
|
5736
5878
|
},
|
|
5737
|
-
"
|
|
5879
|
+
"272": {
|
|
5738
5880
|
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr",
|
|
5739
5881
|
"source": "use crate::{\n address::aztec_address::AztecAddress, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField,\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n pub inner: Field,\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(poseidon2_hash_with_separator(\n [salt, initialization_hash, deployer.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
|
|
5740
5882
|
},
|
|
5741
|
-
"
|
|
5742
|
-
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/
|
|
5743
|
-
"source": "use crate::{\n address::{aztec_address::AztecAddress, salted_initialization_hash::SaltedInitializationHash},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Serialize, ToField},\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n pub inner: Field,\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress,\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer),\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n ) -> Self {\n PartialAddress::from_field(poseidon2_hash_with_separator(\n [contract_class_id.to_field(), salted_initialization_hash.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
|
|
5744
|
-
},
|
|
5745
|
-
"182": {
|
|
5746
|
-
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/indexed_tagging_secret.nr",
|
|
5747
|
-
"source": "use crate::traits::{Deserialize, Serialize};\nuse super::{address::aztec_address::AztecAddress, hash::poseidon2_hash};\nuse std::meta::derive;\n\npub global INDEXED_TAGGING_SECRET_LENGTH: u32 = 2;\n\n#[derive(Serialize, Deserialize)]\npub struct IndexedTaggingSecret {\n secret: Field,\n index: u32,\n}\n\nimpl IndexedTaggingSecret {\n pub fn compute_tag(self, recipient: AztecAddress) -> Field {\n poseidon2_hash([self.secret, recipient.to_field(), self.index as Field])\n }\n}\n"
|
|
5748
|
-
},
|
|
5749
|
-
"183": {
|
|
5750
|
-
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr",
|
|
5751
|
-
"source": "use crate::{\n address::{aztec_address::AztecAddress, partial_address::PartialAddress},\n constants::CONTRACT_INSTANCE_LENGTH,\n contract_class_id::ContractClassId,\n public_keys::PublicKeys,\n traits::{Deserialize, Hash, Serialize},\n};\n\npub struct ContractInstance {\n pub salt: Field,\n pub deployer: AztecAddress,\n pub contract_class_id: ContractClassId,\n pub initialization_hash: Field,\n pub public_keys: PublicKeys,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys.eq(other.public_keys)\n & self.initialization_hash.eq(other.initialization_hash)\n & self.contract_class_id.eq(other.contract_class_id)\n & self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n let public_keys_serialized = self.public_keys.serialize();\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n public_keys_serialized[0],\n public_keys_serialized[1],\n public_keys_serialized[2],\n public_keys_serialized[3],\n public_keys_serialized[4],\n public_keys_serialized[5],\n public_keys_serialized[6],\n public_keys_serialized[7],\n public_keys_serialized[8],\n public_keys_serialized[9],\n public_keys_serialized[10],\n public_keys_serialized[11],\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys: PublicKeys::deserialize([\n serialized[4],\n serialized[5],\n serialized[6],\n serialized[7],\n serialized[8],\n serialized[9],\n serialized[10],\n serialized[11],\n serialized[12],\n serialized[13],\n serialized[14],\n serialized[15],\n ]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n pub fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer,\n ),\n )\n }\n}\n"
|
|
5752
|
-
},
|
|
5753
|
-
"209": {
|
|
5754
|
-
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr",
|
|
5755
|
-
"source": "use crate::{point::Point, traits::{Deserialize, Empty, Serialize}};\npub use crate::constants::KEY_VALIDATION_REQUEST_LENGTH;\n\npub struct KeyValidationRequest {\n pub pk_m: Point,\n pub sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m)) & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest { pk_m: Point::empty(), sk_app: 0 }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [self.pk_m.x, self.pk_m.y, self.pk_m.is_infinite as Field, self.sk_app]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x: fields[0], y: fields[1], is_infinite: fields[2] as bool },\n sk_app: fields[3],\n }\n }\n}\n"
|
|
5756
|
-
},
|
|
5757
|
-
"241": {
|
|
5758
|
-
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr",
|
|
5759
|
-
"source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; K];\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"
|
|
5883
|
+
"284": {
|
|
5884
|
+
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
|
|
5885
|
+
"source": "use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n log_hash::{LogHash, ScopedLogHash},\n note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n private_log::{PrivateLog, PrivateLogData},\n side_effect::scoped::Scoped,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n },\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc,\n};\nuse super::utils::{arrays::array_concat, field::field_from_bytes};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [tx_hash, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n tx_hash: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n compute_unique_note_hash(nonce, siloed_note_hash)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.value())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<PrivateLogData>) -> PrivateLog {\n if private_log.contract_address.is_zero() {\n private_log.inner.log\n } else {\n let mut fields = private_log.inner.log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog { fields }\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage())\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\npub fn compute_tx_logs_hash<let N: u32>(logs: [LogHash; N]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; N * 32];\n for offset in 0..N {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = array_concat([separator.to_field()], inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n// Performs a fixed length hash with a subarray of the given input.\n// Useful for SpongeBlob in which we aborb M things and want to check it vs a hash of M elts of an N-len array.\n// Using stdlib poseidon, this will always absorb an extra 1 as a 'variable' hash, and not match spongeblob.squeeze()\n// or any ts implementation. Also checks that any remaining elts not hashed are empty.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, false);\n sponge.squeeze()\n}\n\n// NB the below is the same as std::hash::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, true);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// The below fn reduces gates of a conditional poseidon2 hash by approx 3x (thank you ~* Giant Brain Dev @IlyasRidhuan *~ for the idea)\n// Why? Because when we call stdlib poseidon, we call absorb for each item. When absorbing is conditional, it seems the compiler does not know\n// what cache_size will be when calling absorb, so it assigns the permutation gates for /each i/ rather than /every 3rd i/, which is actually required.\n// The below code forces the compiler to:\n// - absorb normally up to 2 times to set cache_size to 1\n// - absorb in chunks of 3 to ensure perm. only happens every 3rd absorb\n// - absorb normally up to 2 times to add any remaining values to the hash\n// In fixed len hashes, the compiler is able to tell that it will only need to perform the permutation every 3 absorbs.\n// NB: it also replaces unnecessary range checks (i < thing) with a bit check (&= i != thing), which alone reduces the gates of a var. hash by half.\n\n#[no_predicates]\nfn poseidon2_absorb_chunks<let N: u32>(\n input: [Field; N],\n in_len: u32,\n variable: bool,\n) -> std::hash::poseidon2::Poseidon2 {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n // Even though shift is always 1 here, if we input in_len = 0 we get an underflow\n // since we cannot isolate computation branches. The below is just to avoid that.\n let shift = if in_len == 0 { 0 } else { 1 };\n if in_len != 0 {\n // cache_size = 0, init absorb\n sponge.cache[0] = input[0];\n sponge.cache_size = 1;\n // shift = num elts already added to make cache_size 1 = 1 for a fresh sponge\n // M = max_chunks = (N - 1 - (N - 1) % 3) / 3: (must be written as a fn of N to compile)\n // max_remainder = (N - 1) % 3;\n // max_chunks = (N - 1 - max_remainder) / 3;\n sponge = poseidon2_absorb_chunks_loop::<N, (N - 1 - (N - 1) % 3) / 3>(\n sponge,\n input,\n in_len,\n variable,\n shift,\n );\n }\n sponge\n}\n\n// NB: If it's not required to check that the non-absorbed elts of 'input' are 0s, set skip_0_check=true\n#[no_predicates]\npub fn poseidon2_absorb_chunks_existing_sponge<let N: u32>(\n in_sponge: std::hash::poseidon2::Poseidon2,\n input: [Field; N],\n in_len: u32,\n skip_0_check: bool,\n) -> std::hash::poseidon2::Poseidon2 {\n let mut sponge = in_sponge;\n // 'shift' is to account for already added inputs\n let mut shift = 0;\n // 'stop' is to avoid an underflow when inputting in_len = 0\n let mut stop = false;\n for i in 0..3 {\n if shift == in_len {\n stop = true;\n }\n if (sponge.cache_size != 1) & (!stop) {\n sponge.absorb(input[i]);\n shift += 1;\n }\n }\n sponge = if stop {\n sponge\n } else {\n // max_chunks = (N - (N % 3)) / 3;\n poseidon2_absorb_chunks_loop::<N, (N - (N % 3)) / 3>(\n sponge,\n input,\n in_len,\n skip_0_check,\n shift,\n )\n };\n sponge\n}\n\n// The below is the loop to absorb elts into a poseidon sponge in chunks of 3\n// shift - the num of elts already absorbed to ensure the sponge's cache_size = 1\n// M - the max number of chunks required to absorb N things (must be comptime to compile)\n// NB: The 0 checks ('Found non-zero field...') are messy, but having a separate loop over N to check\n// for 0s costs 3N gates. Current approach is approx 2N gates.\n#[no_predicates]\nfn poseidon2_absorb_chunks_loop<let N: u32, let M: u32>(\n in_sponge: std::hash::poseidon2::Poseidon2,\n input: [Field; N],\n in_len: u32,\n variable: bool,\n shift: u32,\n) -> std::hash::poseidon2::Poseidon2 {\n assert(in_len <= N, \"Given in_len to absorb is larger than the input array len\");\n // When we have an existing sponge, we may have a shift of 0, and the final 'k+2' below = N\n // The below avoids an overflow\n let skip_last = 3 * M == N;\n // Writing in_sponge: &mut does not compile\n let mut sponge = in_sponge;\n let mut should_add = true;\n // The num of things left over after absorbing in 3s\n let remainder = (in_len - shift) % 3;\n // The num of chunks of 3 to absorb (maximum M)\n let chunks = (in_len - shift - remainder) / 3;\n for i in 0..M {\n // Now we loop through cache size = 1 -> 3\n should_add &= i != chunks;\n // This is the index at the start of the chunk (for readability)\n let k = 3 * i + shift;\n if should_add {\n // cache_size = 1, 2 => just assign\n sponge.cache[1] = input[k];\n sponge.cache[2] = input[k + 1];\n // cache_size = 3 => duplex + perm\n for j in 0..3 {\n sponge.state[j] += sponge.cache[j];\n }\n sponge.state = std::hash::poseidon2_permutation(sponge.state, 4);\n sponge.cache[0] = input[k + 2];\n // cache_size is now 1 again, repeat loop\n } else if (!variable) & (i != chunks) {\n // if we are hashing a fixed len array which is a subarray, we check the remaining elts are 0\n // NB: we don't check at i == chunks, because that chunk contains elts to be absorbed or checked below\n let last_0 = if (i == M - 1) & (skip_last) {\n 0\n } else {\n input[k + 2]\n };\n let all_0 = (input[k] == 0) & (input[k + 1] == 0) & (last_0 == 0);\n assert(all_0, \"Found non-zero field after breakpoint\");\n }\n }\n // we have 'remainder' num of items left to absorb\n should_add = true;\n // below is to avoid overflows (i.e. if inlen is close to N)\n let mut should_check = !variable;\n for i in 0..3 {\n should_add &= i != remainder;\n should_check &= in_len - remainder + i != N;\n if should_add {\n // we want to absorb the final 'remainder' items\n sponge.absorb(input[in_len - remainder + i]);\n } else if should_check {\n assert(input[in_len - remainder + i] == 0, \"Found non-zero field after breakpoint\");\n }\n }\n sponge\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = std::hash::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = std::hash::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\n}\n\n#[test]\nfn existing_sponge_poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n // absorb 250 of the 501 things\n let two_pow_64 = 18446744073709551616;\n let empty_sponge = std::hash::poseidon2::Poseidon2::new((in_len as Field) * two_pow_64);\n let first_sponge = poseidon2_absorb_chunks_existing_sponge(empty_sponge, input, 250, true);\n // now absorb the final 251 (since they are all 3s, im being lazy and not making a new array)\n let mut final_sponge = poseidon2_absorb_chunks_existing_sponge(first_sponge, input, 251, true);\n let fixed_len_hash = std::hash::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(final_sponge.squeeze() == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_empty_inputs() {\n let in_len = 0;\n let mut input: [Field; 4096] = [0; 4096];\n let mut contructed_empty_sponge = poseidon2_absorb_chunks(input, in_len, true);\n let mut first_sponge =\n poseidon2_absorb_chunks_existing_sponge(contructed_empty_sponge, input, in_len, true);\n assert(first_sponge.squeeze() == contructed_empty_sponge.squeeze());\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
|
|
5760
5886
|
},
|
|
5761
|
-
"
|
|
5762
|
-
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/
|
|
5763
|
-
"source": "
|
|
5887
|
+
"307": {
|
|
5888
|
+
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr",
|
|
5889
|
+
"source": "use crate::{\n address::public_keys_hash::PublicKeysHash,\n constants::{\n DEFAULT_IVPK_M_X, DEFAULT_IVPK_M_Y, DEFAULT_NPK_M_X, DEFAULT_NPK_M_Y, DEFAULT_OVPK_M_X,\n DEFAULT_OVPK_M_Y, DEFAULT_TPK_M_X, DEFAULT_TPK_M_Y, GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n },\n hash::poseidon2_hash_with_separator,\n point::POINT_LENGTH,\n traits::{Deserialize, Hash, Serialize},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse std::default::Default;\n\npub global PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n pub npk_m: NpkM,\n pub ivpk_m: IvpkM,\n pub ovpk_m: OvpkM,\n pub tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n pub inner: Point,\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for TpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nimpl Default for PublicKeys {\n fn default() -> Self {\n PublicKeys {\n npk_m: NpkM {\n inner: Point { x: DEFAULT_NPK_M_X, y: DEFAULT_NPK_M_Y, is_infinite: false },\n },\n ivpk_m: IvpkM {\n inner: Point { x: DEFAULT_IVPK_M_X, y: DEFAULT_IVPK_M_Y, is_infinite: false },\n },\n ovpk_m: OvpkM {\n inner: Point { x: DEFAULT_OVPK_M_X, y: DEFAULT_OVPK_M_Y, is_infinite: false },\n },\n tpk_m: TpkM {\n inner: Point { x: DEFAULT_TPK_M_X, y: DEFAULT_TPK_M_Y, is_infinite: false },\n },\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field,\n ))\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field,\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: serialized[0],\n y: serialized[1],\n is_infinite: serialized[2] as bool,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: serialized[3],\n y: serialized[4],\n is_infinite: serialized[5] as bool,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: serialized[6],\n y: serialized[7],\n is_infinite: serialized[8] as bool,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: serialized[9],\n y: serialized[10],\n is_infinite: serialized[11] as bool,\n },\n },\n }\n }\n}\n\npub struct AddressPoint {\n pub inner: Point,\n}\n\nimpl ToPoint for AddressPoint {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash =\n 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n let test_data_default_hash = 0x1d3bf1fb93ae0e9cda83b203dd91c3bfb492a9aecf30ec90e1057eced0f0e62d;\n\n assert(actual.to_field() == test_data_default_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"
|
|
5764
5890
|
},
|
|
5765
|
-
"
|
|
5891
|
+
"308": {
|
|
5766
5892
|
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr",
|
|
5767
5893
|
"source": "pub use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{hash::poseidon2_hash, traits::{Deserialize, Empty, Hash, Serialize}};\n\npub global POINT_LENGTH: u32 = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point { x: 0, y: 0, is_infinite: false }\n }\n}\n\nimpl Deserialize<POINT_LENGTH> for Point {\n fn deserialize(serialized: [Field; POINT_LENGTH]) -> Point {\n Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool }\n }\n}\n"
|
|
5768
5894
|
},
|
|
5769
|
-
"309": {
|
|
5770
|
-
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
|
|
5771
|
-
"source": "/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe { debug_log_oracle_wrapper(msg, args) };\n}\n\npub unconstrained fn debug_log_oracle_wrapper<let M: u32, let N: u32>(\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"
|
|
5772
|
-
},
|
|
5773
|
-
"310": {
|
|
5774
|
-
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr",
|
|
5775
|
-
"source": "use crate::{\n address::public_keys_hash::PublicKeysHash,\n constants::{\n DEFAULT_IVPK_M_X, DEFAULT_IVPK_M_Y, DEFAULT_NPK_M_X, DEFAULT_NPK_M_Y, DEFAULT_OVPK_M_X,\n DEFAULT_OVPK_M_Y, DEFAULT_TPK_M_X, DEFAULT_TPK_M_Y, GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n },\n hash::poseidon2_hash_with_separator,\n point::POINT_LENGTH,\n traits::{Deserialize, Hash, Serialize},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse std::default::Default;\n\npub global PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n pub npk_m: NpkM,\n pub ivpk_m: IvpkM,\n pub ovpk_m: OvpkM,\n pub tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n pub inner: Point,\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for TpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nimpl Default for PublicKeys {\n fn default() -> Self {\n PublicKeys {\n npk_m: NpkM {\n inner: Point { x: DEFAULT_NPK_M_X, y: DEFAULT_NPK_M_Y, is_infinite: false },\n },\n ivpk_m: IvpkM {\n inner: Point { x: DEFAULT_IVPK_M_X, y: DEFAULT_IVPK_M_Y, is_infinite: false },\n },\n ovpk_m: OvpkM {\n inner: Point { x: DEFAULT_OVPK_M_X, y: DEFAULT_OVPK_M_Y, is_infinite: false },\n },\n tpk_m: TpkM {\n inner: Point { x: DEFAULT_TPK_M_X, y: DEFAULT_TPK_M_Y, is_infinite: false },\n },\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field,\n ))\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field,\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: serialized[0],\n y: serialized[1],\n is_infinite: serialized[2] as bool,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: serialized[3],\n y: serialized[4],\n is_infinite: serialized[5] as bool,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: serialized[6],\n y: serialized[7],\n is_infinite: serialized[8] as bool,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: serialized[9],\n y: serialized[10],\n is_infinite: serialized[11] as bool,\n },\n },\n }\n }\n}\n\npub struct AddressPoint {\n pub inner: Point,\n}\n\nimpl ToPoint for AddressPoint {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash =\n 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n let test_data_default_hash = 0x1d3bf1fb93ae0e9cda83b203dd91c3bfb492a9aecf30ec90e1057eced0f0e62d;\n\n assert(actual.to_field() == test_data_default_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"
|
|
5776
|
-
},
|
|
5777
5895
|
"311": {
|
|
5778
|
-
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/
|
|
5779
|
-
"source": "use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n log_hash::{LogHash, ScopedLogHash},\n note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n private_log::{PrivateLog, PrivateLogData},\n side_effect::scoped::Scoped,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n },\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc,\n};\nuse super::utils::{arrays::array_concat, field::field_from_bytes};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [tx_hash, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n tx_hash: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n compute_unique_note_hash(nonce, siloed_note_hash)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.value())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<PrivateLogData>) -> PrivateLog {\n if private_log.contract_address.is_zero() {\n private_log.inner.log\n } else {\n let mut fields = private_log.inner.log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog { fields }\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage())\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\npub fn compute_tx_logs_hash<let N: u32>(logs: [LogHash; N]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; N * 32];\n for offset in 0..N {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = array_concat([separator.to_field()], inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn 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 = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
|
|
5896
|
+
"path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr",
|
|
5897
|
+
"source": "use crate::{\n address::{aztec_address::AztecAddress, partial_address::PartialAddress},\n constants::CONTRACT_INSTANCE_LENGTH,\n contract_class_id::ContractClassId,\n public_keys::PublicKeys,\n traits::{Deserialize, Hash, Serialize},\n};\n\npub struct ContractInstance {\n pub salt: Field,\n pub deployer: AztecAddress,\n pub contract_class_id: ContractClassId,\n pub initialization_hash: Field,\n pub public_keys: PublicKeys,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys.eq(other.public_keys)\n & self.initialization_hash.eq(other.initialization_hash)\n & self.contract_class_id.eq(other.contract_class_id)\n & self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n let public_keys_serialized = self.public_keys.serialize();\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n public_keys_serialized[0],\n public_keys_serialized[1],\n public_keys_serialized[2],\n public_keys_serialized[3],\n public_keys_serialized[4],\n public_keys_serialized[5],\n public_keys_serialized[6],\n public_keys_serialized[7],\n public_keys_serialized[8],\n public_keys_serialized[9],\n public_keys_serialized[10],\n public_keys_serialized[11],\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys: PublicKeys::deserialize([\n serialized[4],\n serialized[5],\n serialized[6],\n serialized[7],\n serialized[8],\n serialized[9],\n serialized[10],\n serialized[11],\n serialized[12],\n serialized[13],\n serialized[14],\n serialized[15],\n ]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n pub fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer,\n ),\n )\n }\n}\n"
|
|
5780
5898
|
},
|
|
5781
|
-
"
|
|
5899
|
+
"320": {
|
|
5782
5900
|
"path": "/root/nargo/github.com/noir-lang/ec/v0.1.2/src/lib.nr",
|
|
5783
5901
|
"source": "// Elliptic curve implementation\n// Overview\n// ========\n// The following three elliptic curve representations are admissible:\npub mod tecurve; // Twisted Edwards curves\npub mod swcurve; // Elliptic curves in Short Weierstrass form\npub mod montcurve; // Montgomery curves\npub mod consts; // Commonly used curve presets\n//\n// Note that Twisted Edwards and Montgomery curves are (birationally) equivalent, so that\n// they may be freely converted between one another, whereas Short Weierstrass curves are\n// more general. Diagramatically:\n//\n// tecurve == montcurve `subset` swcurve\n//\n// Each module is further divided into two submodules, 'affine' and 'curvegroup', depending\n// on the preferred coordinate representation. Affine coordinates are none other than the usual\n// two-dimensional Cartesian coordinates used in the definitions of these curves, whereas\n// 'CurveGroup' coordinates (terminology borrowed from Arkworks, whose conventions we try\n// to follow) are special coordinate systems with respect to which the group operations may be\n// implemented more efficiently, usually by means of an appropriate choice of projective coordinates.\n//\n// In each of these submodules, there is a Point struct and a Curve struct, the former\n// representing a point in the coordinate system and the latter a curve configuration.\n//\n// Points\n// ======\n// Points may be instantiated using the associated function `new`, which takes coordinates\n// as its arguments. For instance,\n//\n// `let p = swcurve::Point::new(1,1);`\n//\n// The additive identity may be constructed by a call to the associated function `zero` of no\n// arguments:\n//\n// `let zero = swcurve::Point::zero();`\n//\n// Points may be tested for equality by calling the method `eq`:\n//\n// `let pred = p.eq(zero);`\n//\n// There is also the method `is_zero` to explicitly check whether a point is the additive identity:\n//\n// `constrain pred == p.is_zero();`\n//\n// Points may be negated by calling the `negate` method and converted to CurveGroup (or affine)\n// coordinates by calling the `into_group` (resp. `into_affine`) method on them. Finally,\n// Points may be freely mapped between their respective Twisted Edwards and Montgomery\n// representations by calling the `into_montcurve` or `into_tecurve` methods. For mappings\n// between Twisted Edwards/Montgomery curves and Short Weierstrass curves, see the Curve section\n// below, as the underlying mappings are those of curves rather than ambient spaces.\n// As a rule, Points in affine (or CurveGroup) coordinates are mapped to Points in affine\n// (resp. CurveGroup) coordinates.\n//\n// Curves\n// ======\n// A curve configuration (Curve) is completely determined by the Field coefficients of its defining\n// equation (a and b in the case of swcurve, a and d in the case of tecurve, and j and k in\n// the case of montcurve) together with a generator (`gen`) in the corresponding coordinate system.\n// For example, the Baby Jubjub curve configuration as defined in ERC-2494 may be instantiated as a Twisted\n// Edwards curve in affine coordinates as follows:\n//\n// `let bjj_affine = tecurve::Curve::new(168700, 168696, tecurve::Point::new(995203441582195749578291179787384436505546430278305826713579947235728471134,5472060717959818805561601436314318772137091100104008585924551046643952123905));`\n//\n// The `contains` method may be used to check whether a Point lies on a given curve:\n//\n// `constrain bjj_affine.contains(tecurve::Point::zero());`\n//\n// The elliptic curve group's addition operation is exposed as the `add` method, e.g.\n//\n// `let p = bjj_affine.add(bjj_affine.gen, bjj_affine.gen);`\n//\n// subtraction as the `subtract` method, e.g.\n//\n// `constrain tecurve::Point::zero().eq(bjj_affine.subtract(bjj_affine.gen, bjj_affine.gen));`\n//\n// scalar multiplication as the `mul` method, where the scalar is assumed to be a Field* element, e.g.\n//\n// `constrain tecurve::Point::zero().eq(bjj_affine.mul(2, tecurve::Point::zero());`\n//\n// There is a scalar multiplication method (`bit_mul`) provided where the scalar input is expected to be\n// an array of bits (little-endian convention), as well as a multi-scalar multiplication method** (`msm`)\n// which takes an array of Field elements and an array of elliptic curve points as arguments, both assumed\n// to be of the same length.\n//\n// Curve configurations may be converted between different coordinate representations by calling the `into_group`\n// and `into_affine` methods on them, e.g.\n//\n// `let bjj_curvegroup = bjj_affine.into_group();`\n//\n// Curve configurations may also be converted between different curve representations by calling the `into_swcurve`,\n// `into_montcurve` and `into_tecurve` methods subject to the relation between the curve representations mentioned\n// above. Note that it is possible to map Points from a Twisted Edwards/Montgomery curve to the corresponding\n// Short Weierstrass representation and back, and the methods to do so are exposed as `map_into_swcurve` and\n// `map_from_swcurve`, which each take one argument, the point to be mapped.\n//\n// Curve maps\n// ==========\n// There are a few different ways of mapping Field elements to elliptic curves. Here we provide the simplified\n// Shallue-van de Woestijne-Ulas and Elligator 2 methods, the former being applicable to all curve types\n// provided above subject to the constraint that the coefficients of the corresponding Short Weierstrass curve satisfies\n// a*b != 0 and the latter being applicable to Montgomery and Twisted Edwards curves subject to the constraint that\n// the coefficients of the corresponding Montgomery curve satisfy j*k != 0 and (j^2 - 4)/k^2 is non-square.\n//\n// The simplified Shallue-van de Woestijne-Ulas method is exposed as the method `swu_map` on the Curve configuration and\n// depends on two parameters, a Field element z != -1 for which g(x) - z is irreducible over Field and g(b/(z*a)) is\n// square, where g(x) = x^3 + a*x + b is the right-hand side of the defining equation of the corresponding Short\n// Weierstrass curve, and a Field element u to be mapped onto the curve. For example, in the case of bjj_affine above,\n// it may be determined using the scripts provided at <https://github.com/cfrg/draft-irtf-cfrg-hash-to-curve> that z = 5.\n//\n// The Elligator 2 method is exposed as the method `elligator2_map` on the Curve configurations of Montgomery and\n// Twisted Edwards curves. Like the simplified SWU method above, it depends on a certain non-square element of Field,\n// but this element need not satisfy any further conditions, so it is included as the (Field-dependent) constant\n//`ZETA` below. Thus, the `elligator2_map` method depends only on one parameter, the Field element to be mapped onto\n// the curve.\n//\n// For details on all of the above in the context of hashing to elliptic curves, see <https://datatracker.ietf.org/doc/id/draft-irtf-cfrg-hash-to-curve-06.html>.\n//\n//\n// *TODO: Replace Field with Bigint.\n// **TODO: Support arrays of structs to make this work.\n// Field-dependent constant ZETA = a non-square element of Field\n// Required for Elligator 2 map\n// TODO: Replace with built-in constant.\nglobal ZETA: Field = 5;\n// Field-dependent constants for Tonelli-Shanks algorithm (see sqrt function below)\n// TODO: Possibly make this built-in.\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n// Higher-order version of scalar multiplication\n// TODO: Make this work so that the submodules' bit_mul may be defined in terms of it.\n//fn bit_mul<T,N>(add: fn(T,T) -> T, e: T, bits: [u1; N], p: T) -> T {\n// let mut out = e;\n// let n = bits.len();\n//\n// for i in 0..n {\n// out = add(\n// add(out, out),\n// if(bits[n - i - 1] == 0) {e} else {p});\n// }\n//\n// out\n//}\n// TODO: Make this built-in.\npub fn safe_inverse(x: Field) -> Field {\n if x == 0 {\n 0\n } else {\n 1 / x\n }\n}\n// Boolean indicating whether Field element is a square, i.e. whether there exists a y in Field s.t. x = y*y.\npub fn is_square(x: Field) -> bool {\n let v = pow(x, 0 - 1 / 2);\n\n v * (v - 1) == 0\n}\n// Power function of two Field arguments of arbitrary size.\n// Adapted from std::field::pow_32.\npub fn pow(x: Field, y: Field) -> Field {\n let mut r = 1 as Field;\n let b: [u1; 254] = y.to_le_bits();\n\n for i in 0..254 {\n r *= r;\n r *= (b[254 - 1 - i] as Field) * x + (1 - b[254 - 1 - i] as Field);\n }\n\n r\n}\n// Tonelli-Shanks algorithm for computing the square root of a Field element.\n// Requires C1 = max{c: 2^c divides (p-1)}, where p is the order of Field\n// as well as C3 = (C2 - 1)/2, where C2 = (p-1)/(2^c1),\n// and C5 = ZETA^C2, where ZETA is a non-square element of Field.\n// These are pre-computed above as globals.\npub fn sqrt(x: Field) -> Field {\n let mut z = pow(x, C3);\n let mut t = z * z * x;\n z *= x;\n let mut b = t;\n let mut c = C5;\n\n for i in 0..(C1 - 1) {\n for _j in 1..(C1 - i - 1) {\n b *= b;\n }\n\n z *= if b == 1 { 1 } else { c };\n\n c *= c;\n\n t *= if b == 1 { 1 } else { c };\n\n b = t;\n }\n\n z\n}\n\nmod tests {\n use crate::montcurve::affine::Point as MGaffine;\n use crate::montcurve::curvegroup::Point as MG;\n use crate::swcurve::affine::Point as SWGaffine;\n use crate::swcurve::curvegroup::Point as SWG;\n use crate::tecurve::affine::Curve as AffineCurve;\n use crate::tecurve::affine::Point as Gaffine;\n use crate::tecurve::curvegroup::Point as G;\n\n #[test]\n fn smoke_test() {\n // Tests may be checked against https://github.com/cfrg/draft-irtf-cfrg-hash-to-curve/tree/main/poc\n // Define Baby Jubjub (ERC-2494) parameters in affine representation\n let bjj_affine = AffineCurve::new(\n 168700,\n 168696,\n Gaffine::new(\n 995203441582195749578291179787384436505546430278305826713579947235728471134,\n 5472060717959818805561601436314318772137091100104008585924551046643952123905,\n ),\n );\n // Test addition\n let p1_affine = Gaffine::new(\n 17777552123799933955779906779655732241715742912184938656739573121738514868268,\n 2626589144620713026669568689430873010625803728049924121243784502389097019475,\n );\n let p2_affine = Gaffine::new(\n 16540640123574156134436876038791482806971768689494387082833631921987005038935,\n 20819045374670962167435360035096875258406992893633759881276124905556507972311,\n );\n\n let p3_affine = bjj_affine.add(p1_affine, p2_affine);\n assert(p3_affine.eq(Gaffine::new(\n 7916061937171219682591368294088513039687205273691143098332585753343424131937,\n 14035240266687799601661095864649209771790948434046947201833777492504781204499,\n )));\n // Test scalar multiplication\n let p4_affine = bjj_affine.mul(2, p1_affine);\n assert(p4_affine.eq(Gaffine::new(\n 6890855772600357754907169075114257697580319025794532037257385534741338397365,\n 4338620300185947561074059802482547481416142213883829469920100239455078257889,\n )));\n assert(p4_affine.eq(bjj_affine.bit_mul([0, 1], p1_affine)));\n // Test subtraction\n let p5_affine = bjj_affine.subtract(p3_affine, p3_affine);\n assert(p5_affine.eq(Gaffine::zero()));\n // Check that these points are on the curve\n assert(\n bjj_affine.contains(bjj_affine.gen)\n & bjj_affine.contains(p1_affine)\n & bjj_affine.contains(p2_affine)\n & bjj_affine.contains(p3_affine)\n & bjj_affine.contains(p4_affine)\n & bjj_affine.contains(p5_affine),\n );\n // Test CurveGroup equivalents\n let bjj = bjj_affine.into_group(); // Baby Jubjub\n let p1 = p1_affine.into_group();\n let p2 = p2_affine.into_group();\n let p3 = p3_affine.into_group();\n let p4 = p4_affine.into_group();\n let p5 = p5_affine.into_group();\n // Test addition\n assert(p3.eq(bjj.add(p1, p2)));\n // Test scalar multiplication\n assert(p4.eq(bjj.mul(2, p1)));\n assert(p4.eq(bjj.bit_mul([0, 1], p1)));\n // Test subtraction\n assert(G::zero().eq(bjj.subtract(p3, p3)));\n assert(p5.eq(G::zero()));\n // Check that these points are on the curve\n assert(\n bjj.contains(bjj.gen)\n & bjj.contains(p1)\n & bjj.contains(p2)\n & bjj.contains(p3)\n & bjj.contains(p4)\n & bjj.contains(p5),\n );\n // Test SWCurve equivalents of the above\n // First the affine representation\n let bjj_swcurve_affine = bjj_affine.into_swcurve();\n\n let p1_swcurve_affine = bjj_affine.map_into_swcurve(p1_affine);\n let p2_swcurve_affine = bjj_affine.map_into_swcurve(p2_affine);\n let p3_swcurve_affine = bjj_affine.map_into_swcurve(p3_affine);\n let p4_swcurve_affine = bjj_affine.map_into_swcurve(p4_affine);\n let p5_swcurve_affine = bjj_affine.map_into_swcurve(p5_affine);\n // Addition\n assert(p3_swcurve_affine.eq(bjj_swcurve_affine.add(p1_swcurve_affine, p2_swcurve_affine)));\n // Doubling\n assert(p4_swcurve_affine.eq(bjj_swcurve_affine.mul(2, p1_swcurve_affine)));\n assert(p4_swcurve_affine.eq(bjj_swcurve_affine.bit_mul([0, 1], p1_swcurve_affine)));\n // Subtraction\n assert(SWGaffine::zero().eq(bjj_swcurve_affine.subtract(\n p3_swcurve_affine,\n p3_swcurve_affine,\n )));\n assert(p5_swcurve_affine.eq(SWGaffine::zero()));\n // Check that these points are on the curve\n assert(\n bjj_swcurve_affine.contains(bjj_swcurve_affine.gen)\n & bjj_swcurve_affine.contains(p1_swcurve_affine)\n & bjj_swcurve_affine.contains(p2_swcurve_affine)\n & bjj_swcurve_affine.contains(p3_swcurve_affine)\n & bjj_swcurve_affine.contains(p4_swcurve_affine)\n & bjj_swcurve_affine.contains(p5_swcurve_affine),\n );\n // Then the CurveGroup representation\n let bjj_swcurve = bjj.into_swcurve();\n\n let p1_swcurve = bjj.map_into_swcurve(p1);\n let p2_swcurve = bjj.map_into_swcurve(p2);\n let p3_swcurve = bjj.map_into_swcurve(p3);\n let p4_swcurve = bjj.map_into_swcurve(p4);\n let p5_swcurve = bjj.map_into_swcurve(p5);\n // Addition\n assert(p3_swcurve.eq(bjj_swcurve.add(p1_swcurve, p2_swcurve)));\n // Doubling\n assert(p4_swcurve.eq(bjj_swcurve.mul(2, p1_swcurve)));\n assert(p4_swcurve.eq(bjj_swcurve.bit_mul([0, 1], p1_swcurve)));\n // Subtraction\n assert(SWG::zero().eq(bjj_swcurve.subtract(p3_swcurve, p3_swcurve)));\n assert(p5_swcurve.eq(SWG::zero()));\n // Check that these points are on the curve\n assert(\n bjj_swcurve.contains(bjj_swcurve.gen)\n & bjj_swcurve.contains(p1_swcurve)\n & bjj_swcurve.contains(p2_swcurve)\n & bjj_swcurve.contains(p3_swcurve)\n & bjj_swcurve.contains(p4_swcurve)\n & bjj_swcurve.contains(p5_swcurve),\n );\n // Test MontCurve conversions\n // First the affine representation\n let bjj_montcurve_affine = bjj_affine.into_montcurve();\n\n let p1_montcurve_affine = p1_affine.into_montcurve();\n let p2_montcurve_affine = p2_affine.into_montcurve();\n let p3_montcurve_affine = p3_affine.into_montcurve();\n let p4_montcurve_affine = p4_affine.into_montcurve();\n let p5_montcurve_affine = p5_affine.into_montcurve();\n // Addition\n assert(p3_montcurve_affine.eq(bjj_montcurve_affine.add(\n p1_montcurve_affine,\n p2_montcurve_affine,\n )));\n // Doubling\n assert(p4_montcurve_affine.eq(bjj_montcurve_affine.mul(2, p1_montcurve_affine)));\n assert(p4_montcurve_affine.eq(bjj_montcurve_affine.bit_mul([0, 1], p1_montcurve_affine)));\n // Subtraction\n assert(MGaffine::zero().eq(bjj_montcurve_affine.subtract(\n p3_montcurve_affine,\n p3_montcurve_affine,\n )));\n assert(p5_montcurve_affine.eq(MGaffine::zero()));\n // Check that these points are on the curve\n assert(\n bjj_montcurve_affine.contains(bjj_montcurve_affine.gen)\n & bjj_montcurve_affine.contains(p1_montcurve_affine)\n & bjj_montcurve_affine.contains(p2_montcurve_affine)\n & bjj_montcurve_affine.contains(p3_montcurve_affine)\n & bjj_montcurve_affine.contains(p4_montcurve_affine)\n & bjj_montcurve_affine.contains(p5_montcurve_affine),\n );\n // Then the CurveGroup representation\n let bjj_montcurve = bjj.into_montcurve();\n\n let p1_montcurve = p1_montcurve_affine.into_group();\n let p2_montcurve = p2_montcurve_affine.into_group();\n let p3_montcurve = p3_montcurve_affine.into_group();\n let p4_montcurve = p4_montcurve_affine.into_group();\n let p5_montcurve = p5_montcurve_affine.into_group();\n // Addition\n assert(p3_montcurve.eq(bjj_montcurve.add(p1_montcurve, p2_montcurve)));\n // Doubling\n assert(p4_montcurve.eq(bjj_montcurve.mul(2, p1_montcurve)));\n assert(p4_montcurve.eq(bjj_montcurve.bit_mul([0, 1], p1_montcurve)));\n // Subtraction\n assert(MG::zero().eq(bjj_montcurve.subtract(p3_montcurve, p3_montcurve)));\n assert(p5_montcurve.eq(MG::zero()));\n // Check that these points are on the curve\n assert(\n bjj_montcurve.contains(bjj_montcurve.gen)\n & bjj_montcurve.contains(p1_montcurve)\n & bjj_montcurve.contains(p2_montcurve)\n & bjj_montcurve.contains(p3_montcurve)\n & bjj_montcurve.contains(p4_montcurve)\n & bjj_montcurve.contains(p5_montcurve),\n );\n // Elligator 2 map-to-curve\n let ell2_pt_map = bjj_affine.elligator2_map(27);\n\n assert(ell2_pt_map.eq(MGaffine::new(\n 7972459279704486422145701269802978968072470631857513331988813812334797879121,\n 8142420778878030219043334189293412482212146646099536952861607542822144507872,\n )\n .into_tecurve()));\n // SWU map-to-curve\n let swu_pt_map = bjj_affine.swu_map(5, 27);\n\n assert(swu_pt_map.eq(bjj_affine.map_from_swcurve(SWGaffine::new(\n 2162719247815120009132293839392097468339661471129795280520343931405114293888,\n 5341392251743377373758788728206293080122949448990104760111875914082289313973,\n ))));\n }\n\n}\n"
|
|
5784
5902
|
},
|
|
5785
|
-
"
|
|
5786
|
-
"path": "/usr/src/noir-projects/aztec-nr/authwit/src/
|
|
5787
|
-
"source": "use
|
|
5903
|
+
"339": {
|
|
5904
|
+
"path": "/usr/src/noir-projects/aztec-nr/authwit/src/account.nr",
|
|
5905
|
+
"source": "use dep::aztec::{\n context::PrivateContext,\n hash::poseidon2_hash_with_separator,\n protocol_types::constants::{GENERATOR_INDEX__COMBINED_PAYLOAD, GENERATOR_INDEX__TX_NULLIFIER},\n};\n\nuse crate::auth::{compute_authwit_message_hash, IS_VALID_SELECTOR};\nuse crate::entrypoint::{app::AppPayload, fee::FeePayload};\n\npub struct AccountActions<Context> {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n}\n\nimpl<Context> AccountActions<Context> {\n pub fn init(context: Context, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions { context, is_valid_impl }\n }\n}\n\n/**\n * An implementation of the Account Action struct for the private context.\n *\n * Implements logic to verify authorization and execute payloads.\n */\nimpl AccountActions<&mut PrivateContext> {\n\n /**\n * Verifies that the `app_hash` and `fee_hash` are authorized and then executes them.\n *\n * Executes the `fee_payload` and `app_payload` in sequence.\n * Will execute the `fee_payload` as part of the setup, and then enter the app phase.\n *\n * @param app_payload The payload that contains the calls to be executed in the app phase.\n * @param fee_payload The payload that contains the calls to be executed in the setup phase.\n */\n // docs:start:entrypoint\n pub fn entrypoint(self, app_payload: AppPayload, fee_payload: FeePayload, cancellable: bool) {\n let valid_fn = self.is_valid_impl;\n\n let combined_payload_hash = poseidon2_hash_with_separator(\n [app_payload.hash(), fee_payload.hash()],\n GENERATOR_INDEX__COMBINED_PAYLOAD,\n );\n assert(valid_fn(self.context, combined_payload_hash));\n\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n app_payload.execute_calls(self.context);\n if cancellable {\n let tx_nullifier =\n poseidon2_hash_with_separator([app_payload.nonce], GENERATOR_INDEX__TX_NULLIFIER);\n self.context.push_nullifier(tx_nullifier);\n }\n }\n // docs:end:entrypoint\n\n /**\n * Verifies that the `msg_sender` is authorized to consume `inner_hash` by the account.\n *\n * Computes the `message_hash` using the `msg_sender`, `chain_id`, `version` and `inner_hash`.\n * Then executes the `is_valid_impl` function to verify that the message is authorized.\n *\n * Will revert if the message is not authorized.\n *\n * @param inner_hash The hash of the message that the `msg_sender` is trying to consume.\n */\n // docs:start:verify_private_authwit\n pub fn verify_private_authwit(self, inner_hash: Field) -> Field {\n // The `inner_hash` is \"siloed\" with the `msg_sender` to ensure that only it can\n // consume the message.\n // This ensures that contracts cannot consume messages that are not intended for them.\n let message_hash = compute_authwit_message_hash(\n self.context.msg_sender(),\n self.context.chain_id(),\n self.context.version(),\n inner_hash,\n );\n let valid_fn = self.is_valid_impl;\n assert(valid_fn(self.context, message_hash) == true, \"Message not authorized by account\");\n IS_VALID_SELECTOR\n }\n // docs:end:verify_private_authwit\n}\n"
|
|
5788
5906
|
},
|
|
5789
|
-
"
|
|
5907
|
+
"340": {
|
|
5790
5908
|
"path": "/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr",
|
|
5791
5909
|
"source": "use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD,\n hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize},\n};\n\nuse crate::entrypoint::function_call::FunctionCall;\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u32 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u32 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u32 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\npub struct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage()\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__SIGNATURE_PAYLOAD)\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_array(self.nonce.to_be_bytes::<32>());\n\n bytes.storage()\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"
|
|
5792
5910
|
},
|
|
5793
|
-
"
|
|
5794
|
-
"path": "/usr/src/noir-projects/aztec-nr/authwit/src/
|
|
5795
|
-
"source": "use dep::aztec::{\n
|
|
5911
|
+
"341": {
|
|
5912
|
+
"path": "/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/fee.nr",
|
|
5913
|
+
"source": "use crate::entrypoint::function_call::FunctionCall;\nuse dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__FEE_PAYLOAD,\n hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize},\n};\n\n// 2 * 5 (FUNCTION_CALL_SIZE) + 2\nglobal FEE_PAYLOAD_SIZE: u32 = 12;\n\n// 2 * 98 (FUNCTION_CALL_SIZE_IN_BYTES) + 32\nglobal FEE_PAYLOAD_SIZE_IN_BYTES: u32 = 228;\n\nglobal MAX_FEE_FUNCTION_CALLS: u32 = 2;\n\n// docs:start:fee-payload-struct\npub struct FeePayload {\n function_calls: [FunctionCall; MAX_FEE_FUNCTION_CALLS],\n nonce: Field,\n is_fee_payer: bool,\n}\n// docs:end:fee-payload-struct\n\nimpl Serialize<FEE_PAYLOAD_SIZE> for FeePayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; FEE_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, FEE_PAYLOAD_SIZE> = BoundedVec::new();\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n fields.extend_from_array(self.function_calls[i].serialize());\n }\n fields.push(self.nonce);\n fields.push(self.is_fee_payer as Field);\n fields.storage()\n }\n}\n\nimpl Hash for FeePayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__FEE_PAYLOAD)\n }\n}\n\nimpl FeePayload {\n fn to_be_bytes(self) -> [u8; FEE_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, FEE_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_array(self.nonce.to_be_bytes::<32>());\n bytes.push(self.is_fee_payer as u8);\n\n bytes.storage()\n }\n\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n );\n }\n }\n }\n if self.is_fee_payer {\n context.set_as_fee_payer();\n }\n }\n}\n"
|
|
5796
5914
|
},
|
|
5797
|
-
"
|
|
5915
|
+
"344": {
|
|
5798
5916
|
"path": "/usr/src/noir-projects/aztec-nr/authwit/src/auth_witness.nr",
|
|
5799
5917
|
"source": "#[oracle(getAuthWitness)]\nunconstrained fn get_auth_witness_oracle<let N: u32>(_message_hash: Field) -> [Field; N] {}\n\n/**\n * Oracle wrapper to fetch an `auth_witness` for a given `message_hash` from the PXE.\n *\n * @param message_hash The hash of the message for which the `auth_witness` is to be fetched.\n * @return The `auth_witness` for the given `message_hash` as Field array.\n */\npub unconstrained fn get_auth_witness<let N: u32>(message_hash: Field) -> [Field; N] {\n get_auth_witness_oracle(message_hash)\n}\n"
|
|
5800
5918
|
},
|
|
5801
|
-
"
|
|
5919
|
+
"345": {
|
|
5802
5920
|
"path": "/usr/src/noir-projects/aztec-nr/authwit/src/auth.nr",
|
|
5803
5921
|
"source": "use dep::aztec::{context::{gas::GasOpts, PrivateContext, PublicContext}, hash::hash_args_array};\nuse dep::aztec::protocol_types::{\n abis::function_selector::FunctionSelector,\n address::AztecAddress,\n constants::{\n CANONICAL_AUTH_REGISTRY_ADDRESS, GENERATOR_INDEX__AUTHWIT_INNER,\n GENERATOR_INDEX__AUTHWIT_NULLIFIER, GENERATOR_INDEX__AUTHWIT_OUTER,\n },\n hash::poseidon2_hash_with_separator,\n};\n\n/**\n * Authenticaion witness helper library\n *\n * Authentication Witness is a scheme for authenticating actions on Aztec, so users can allow third-parties\n * (e.g. protocols or other users) to execute an action on their behalf.\n *\n * This library provides helper functions to manage such witnesses.\n * The authentication witness, is some \"witness\" (data) that authenticates a `message_hash`.\n * The simplest example of an authentication witness, is a signature. The signature is the \"evidence\",\n * that the signer has seen the message, agrees with it, and has allowed it.\n * It does not need to be a signature. It could be any kind of \"proof\" that the message is allowed.\n * Another proof could be knowing some kind of secret, or having some kind of \"token\" that allows the message.\n *\n * The `message_hash` is a hash of the following structure:\n * hash(consumer, chain_id, version, inner_hash)\n * - consumer: the address of the contract that is \"consuming\" the message,\n * - chain_id: the chain id of the chain that the message is being consumed on,\n * - version: the version of the chain that the message is being consumed on,\n * - inner_hash: the hash of the \"inner\" message that is being consumed, this is the \"actual\" message or action.\n *\n * While the `inner_hash` could be anything, such as showing you signed a specific message, it will often be\n * a hash of the \"action\" to approve, along with who made the call. As part of this library, we provide a few\n * helper functions to deal with such messages.\n *\n * For example, we provide helper function that is used for checking that the message is an encoding of the current call.\n * This can be used to let some contract \"allow\" another contract to act on its behalf, as long as it can\n * show that it is acting on behalf of the contract.\n *\n * If we take a case of allowing a contract to transfer tokens on behalf of an account, the `inner_hash` can be\n * derived as:\n * inner_hash = hash(caller, \"transfer\", hash(to, amount))\n *\n * Where the `caller` would be the address of the contract that is trying to transfer the tokens, and `to` and `amount`\n * the arguments for the transfer.\n *\n * Note that we have both a `caller` and a `consumer`, the `consumer` will be the contract that is consuming the message,\n * in the case of the transfer, it would be the `Token` contract itself, while the caller, will be the actor that is\n * allowed to transfer the tokens.\n *\n *\n * The authentication mechanism works differently in public and private contexts. In private, we recall that everything\n * is executed on the user's device, so we can use `oracles` to \"ask\" the user (not contract) for information. In public\n * we cannot do this, since it is executed by the sequencer (someone else). Therefore we can instead use a \"registry\"\n * to store the messages that we have approved.\n *\n * A simple example would be a \"token\" that is being \"pulled\" from one account into another. We will first outline\n * how this would look in private, and then in public later.\n *\n * Say that a user `Alice` wants to deposit some tokens into a DeFi protocol (say a DEX).\n * `Alice` would make a `deposit` transaction, that she is executing using her account contract.\n * The account would call the `DeFi` contract to execute `deposit`, which would try to pull funds from the `Token`\n * contract. Since the `DeFi` contract is trying to pull funds from an account that is not its own, it needs to\n * convince the `Token` contract that it is allowed to do so.\n *\n * This is where the authentication witness comes in The `Token` contract computes a `message_hash` from the\n * `transfer` call, and then asks `Alice Account` contract to verify that the `DeFi` contract is allowed to\n * execute that call.\n *\n * `Alice Account` contract can then ask `Alice` if she wants to allow the `DeFi` contract to pull funds from her\n * account. If she does, she will sign the `message_hash` and return the signature to the `Alice Account` which\n * will validate it and return success to the `Token` contract which will then allow the `DeFi` contract to pull\n * funds from `Alice`.\n *\n * To ensure that the same \"approval\" cannot be used multiple times, we also compute a `nullifier` for the\n * authentication witness, and emit it from the `Token` contract (consumer).\n *\n * Note that we can do this flow as we are in private were we can do oracle calls out from contracts.\n *\n *\n * Person Contract Contract Contract\n * Alice Alice Account Token DeFi\n * | | | |\n * | Defi.deposit(Token, 1000) | |\n * |----------------->| | |\n * | | deposit(Token, 1000) |\n * | |---------------------------------------->|\n * | | | |\n * | | | transfer(Alice, Defi, 1000)\n * | | |<---------------------|\n * | | | |\n * | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | |<-----------------| |\n * | | | |\n * | Please give me AuthWit for DeFi | |\n * | calling transfer(Alice, Defi, 1000) | |\n * |<-----------------| | |\n * | | | |\n * | | | |\n * | AuthWit for transfer(Alice, Defi, 1000) |\n * |----------------->| | |\n * | | AuthWit validity | |\n * | |----------------->| |\n * | | | |\n * | | throw if invalid AuthWit |\n * | | | |\n * | | emit AuthWit nullifier |\n * | | | |\n * | | transfer(Alice, Defi, 1000) |\n * | | | |\n * | | | |\n * | | | success |\n * | | |--------------------->|\n * | | | |\n * | | | |\n * | | | deposit(Token, 1000)\n * | | | |\n * | | | |\n *\n *\n * If we instead were in public, we cannot do the same flow. Instead we would use an authentication registry to store\n * the messages that we have approved.\n *\n * To approve a message, `Alice Account` can make a `set_authorized` call to the registry, to set a `message_hash`\n * as authorized. This is essentially a mapping from `message_hash` to `true` for `Alice Contract`. Every account\n * has its own map in the registry, so `Alice` cannot approve a message for `Bob`.\n *\n * The `Token` contract can then try to \"spend\" the approval by calling `consume` on the registry. If the message\n * was approved, the value is updated to `false`, and we return the success flag. For more information on the\n * registry, see `main.nr` in `auth_registry_contract`.\n *\n * Person Contract Contract Contract Contract\n * Alice Alice Account Registry Token DeFi\n * | | | | |\n * | Registry.set_authorized(..., true) | | |\n * |----------------->| | | |\n * | | set_authorized(..., true) | |\n * | |------------------->| | |\n * | | | | |\n * | | set authorized to true | |\n * | | | | |\n * | | | | |\n * | Defi.deposit(Token, 1000) | | |\n * |----------------->| | | |\n * | | deposit(Token, 1000) | |\n * | |-------------------------------------------------------------->|\n * | | | | |\n * | | | transfer(Alice, Defi, 1000) |\n * | | | |<---------------------|\n * | | | | |\n * | | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | | |<------------------| |\n * | | | | |\n * | | throw if invalid AuthWit | |\n * | | | | |\n * | | | | |\n * | | set authorized to false | |\n * | | | | |\n * | | | | |\n * | | | AuthWit validity | |\n * | | |------------------>| |\n * | | | | |\n * | | | | transfer(Alice, Defi, 1000)\n * | | | |<-------------------->|\n * | | | | |\n * | | | | success |\n * | | | |--------------------->|\n * | | | | |\n * | | | | deposit(Token, 1000)\n * | | | | |\n *\n *\n * --- FAQ ---\n * Q: Why are we using a success flag of `poseidon2_hash_bytes(\"IS_VALID()\")` instead of just returning a boolean?\n * A: We want to make sure that we don't accidentally return `true` if there is a collision in the function selector.\n * By returning a hash of `IS_VALID()`, it becomes very unlikely that there is both a collision and we return\n * a success flag.\n *\n * Q: Why are we using static calls?\n * A: We are using static calls to ensure that the account contract cannot re-enter. If it was a normal call, it\n * could make a new call and do a re-entry attack. Using a static ensures that it cannot update any state.\n *\n * Q: Would it not be cheaper to use a nullifier instead of updating state in public?\n * A: At a quick glance, a public state update + nullifier is 96 bytes, but two state updates are 128, so it would be\n * cheaper to use a nullifier, if this is the way it would always be done. However, if both the approval and the\n * consumption is done in the same transaction, then we will be able to squash the updates (only final tx state diff is posted to DA), and now it is cheaper.\n *\n * Q: Why is the chain id and the version part of the message hash?\n * A: The chain id and the version is part of the message hash to ensure that the message is only valid on a specific\n * chain to avoid a case where the same message could be used across multiple chains.\n */\n\nglobal IS_VALID_SELECTOR: Field = 0x47dacd73; // 4 last bytes of poseidon2_hash_bytes(\"IS_VALID()\")\n\n/**\n * Assert that `on_behalf_of` has authorized the current call with a valid authentication witness\n *\n * Compute the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then make a call out to the\n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * @param on_behalf_of The address that has allegedly authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit\npub fn assert_current_call_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash([\n context.msg_sender().to_field(),\n context.selector().to_field(),\n context.args_hash,\n ]);\n assert_inner_hash_valid_authwit(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit\n\n/**\n * Assert that a specific `inner_hash` is valid for the `on_behalf_of` address\n *\n * Used as an internal function for `assert_current_call_valid_authwit` and can be used as a standalone function when\n * the `inner_hash` is from a different source, e.g., say a block of text etc.\n *\n * @param on_behalf_of The address that has allegedly authorized the current call\n * @param inner_hash The hash of the message to authorize\n */\npub fn assert_inner_hash_valid_authwit(\n context: &mut PrivateContext,\n on_behalf_of: AztecAddress,\n inner_hash: Field,\n) {\n // We perform a static call here and not a standard one to ensure that the account contract cannot re-enter.\n let result: Field = context\n .static_call_private_function(\n on_behalf_of,\n comptime { FunctionSelector::from_signature(\"verify_private_authwit(Field)\") },\n [inner_hash],\n )\n .unpack_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n // Compute the nullifier, similar computation to the outer hash, but without the chain_id and version.\n // Those should already be handled in the verification, so we just need something to nullify, that allows the same inner_hash for multiple actors.\n let nullifier = compute_authwit_nullifier(on_behalf_of, inner_hash);\n context.push_nullifier(nullifier);\n}\n\n/**\n * Assert that `on_behalf_of` has authorized the current call in the authentication registry\n *\n * Compute the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then make a call out to the\n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n *\n * @param on_behalf_of The address that has allegedly authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit_public\npub unconstrained fn assert_current_call_valid_authwit_public(\n context: &mut PublicContext,\n on_behalf_of: AztecAddress,\n) {\n let inner_hash = compute_inner_authwit_hash([\n (*context).msg_sender().to_field(),\n (*context).selector().to_field(),\n (*context).get_args_hash(),\n ]);\n assert_inner_hash_valid_authwit_public(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit_public\n\n/**\n * Assert that `on_behalf_of` has authorized a specific `inner_hash` in the authentication registry\n *\n * Compute the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then make a call out to the\n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n *\n * @param on_behalf_of The address that has allegedly authorized the `inner_hash`\n */\npub unconstrained fn assert_inner_hash_valid_authwit_public(\n context: &mut PublicContext,\n on_behalf_of: AztecAddress,\n inner_hash: Field,\n) {\n let results: [Field] = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n comptime { FunctionSelector::from_signature(\"consume((Field),Field)\") },\n [on_behalf_of.to_field(), inner_hash].as_slice(),\n GasOpts::default(),\n );\n assert(results.len() == 1, \"Invalid response from registry\");\n assert(results[0] == IS_VALID_SELECTOR, \"Message not authorized by account\");\n}\n\n/**\n * Compute the `message_hash` from a function call to be used by an authentication witness\n *\n * Useful for when you need a non-account contract to approve during execution. For example if you need a contract\n * to make a call to nested contract, e.g., contract A wants to exit token T to L1 using bridge B, so it needs to allow\n * B to transfer T on its behalf.\n *\n * @param caller The address of the contract that is calling the function, in the example above, this would be B\n * @param consumer The address of the contract that is consuming the message, in the example above, this would be T\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param selector The function selector of the function that is being called\n * @param args The arguments of the function that is being called\n */\n// docs:start:compute_authwit_message_hash_from_call\npub fn compute_authwit_message_hash_from_call<let N: u32>(\n caller: AztecAddress,\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n selector: FunctionSelector,\n args: [Field; N],\n) -> Field {\n let args_hash = hash_args_array(args);\n let inner_hash =\n compute_inner_authwit_hash([caller.to_field(), selector.to_field(), args_hash]);\n compute_authwit_message_hash(consumer, chain_id, version, inner_hash)\n}\n// docs:end:compute_authwit_message_hash_from_call\n\n/**\n * Computes the `inner_hash` of the authentication witness\n *\n * This is used internally, but also useful in cases where you want to compute the `inner_hash` for a specific message\n * that is not necessarily a call, but just some \"bytes\" or text.\n *\n * @param args The arguments to hash\n */\npub fn compute_inner_authwit_hash<let N: u32>(args: [Field; N]) -> Field {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__AUTHWIT_INNER)\n}\n\n/**\n * Computes the `authwit_nullifier` for a specific `on_behalf_of` and `inner_hash`\n *\n * Using the `on_behalf_of` and the `inner_hash` to ensure that the nullifier is siloed for a specific `on_behalf_of`.\n *\n * @param on_behalf_of The address that has authorized the `inner_hash`\n * @param inner_hash The hash of the message to authorize\n */\npub fn compute_authwit_nullifier(on_behalf_of: AztecAddress, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [on_behalf_of.to_field(), inner_hash],\n GENERATOR_INDEX__AUTHWIT_NULLIFIER,\n )\n}\n\n/**\n * Computes the `message_hash` for the authentication witness\n *\n * @param consumer The address of the contract that is consuming the message\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param inner_hash The hash of the \"inner\" message that is being consumed\n */\npub fn compute_authwit_message_hash(\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n inner_hash: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [consumer.to_field(), chain_id, version, inner_hash],\n GENERATOR_INDEX__AUTHWIT_OUTER,\n )\n}\n\n/**\n * Helper function to set the authorization status of a message hash\n *\n * Wraps a public call to the authentication registry to set the authorization status of a `message_hash`\n *\n * @param message_hash The hash of the message to authorize\n * @param authorize True if the message should be authorized, false if it should be revoked\n */\npub unconstrained fn set_authorized(\n context: &mut PublicContext,\n message_hash: Field,\n authorize: bool,\n) {\n let res = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n comptime { FunctionSelector::from_signature(\"set_authorized(Field,bool)\") },\n [message_hash, authorize as Field].as_slice(),\n GasOpts::default(),\n );\n assert(res.len() == 0);\n}\n\n/**\n * Helper function to reject all authwits\n *\n * Wraps a public call to the authentication registry to set the `reject_all` flag\n *\n * @param reject True if all authwits should be rejected, false otherwise\n */\npub unconstrained fn set_reject_all(context: &mut PublicContext, reject: bool) {\n let res = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n comptime { FunctionSelector::from_signature(\"set_reject_all(bool)\") },\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default(),\n );\n assert(res.len() == 0);\n}\n"
|
|
5804
5922
|
},
|
|
5805
|
-
"
|
|
5923
|
+
"403": {
|
|
5806
5924
|
"path": "/usr/src/noir-projects/noir-contracts/contracts/ecdsa_public_key_note/src/lib.nr",
|
|
5807
5925
|
"source": "use dep::aztec::prelude::{NoteHeader, NoteInterface, NullifiableNote, PrivateContext};\n\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::{get_nsk_app, get_public_keys},\n protocol_types::{address::AztecAddress, constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator},\n macros::notes::note_custom_interface, generators::Ga1 as Gx_1, generators::Ga2 as Gx_2,\n generators::Ga3 as Gy_1, generators::Ga4 as Gy_2, generators::Ga5 as G_owner, generators::G_slot\n};\n\nuse std::hash::from_field_unsafe;\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: u32 = 5;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[note_custom_interface]\npub struct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n owner: AztecAddress,\n}\n\nimpl NoteInterface<ECDSA_PUBLIC_KEY_NOTE_LEN> for EcdsaPublicKeyNote {\n // Cannot use the automatic serialization since x and y don't fit. Serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = owner\n fn serialize_content(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n\n [x, last_x, y, last_y, self.owner.to_field()]\n }\n\n // Cannot use the automatic deserialization for the aforementioned reasons\n fn deserialize_content(serialized_note: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x:[u8; 32] = serialized_note[0].to_be_bytes();\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes::<32>()[31];\n\n let part_y:[u8; 32] = serialized_note[2].to_be_bytes();\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes::<32>()[31];\n\n EcdsaPublicKeyNote { x, y, owner: AztecAddress::from_field(serialized_note[4]), header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64] = [0; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64];\n\n let storage_slot_bytes: [u8; 32] = storage_slot.to_be_bytes();\n let note_type_id_bytes: [u8; 32] = EcdsaPublicKeyNote::get_note_type_id().to_be_bytes();\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes: [u8; 32] = serialized_note[i].to_be_bytes();\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n\n fn get_note_type_id() -> Field {\n comptime\n {\n let bytes = \"EcdsaPublicKeyNote\".as_bytes();\n let hash = aztec::protocol_types::hash::poseidon2_hash_bytes(bytes);\n let hash_bytes = hash.to_be_bytes::<4>();\n aztec::protocol_types::utils::field::field_from_bytes(hash_bytes, true)\n }\n }\n\n fn get_header(self) -> NoteHeader {\n self.header\n }\n\n fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n\n fn compute_note_hash(self) -> Field {\n let serialized = self.serialize_content();\n std::embedded_curve_ops::multi_scalar_mul(\n [Gx_1, Gx_2, Gy_1, Gy_2, G_owner, G_slot],\n [\n from_field_unsafe(serialized[0]),\n from_field_unsafe(serialized[1]),\n from_field_unsafe(serialized[2]),\n from_field_unsafe(serialized[3]),\n from_field_unsafe(serialized[4]),\n from_field_unsafe(self.get_header().storage_slot)\n ]\n ).x\n }\n}\n\nimpl NullifiableNote for EcdsaPublicKeyNote {\n\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let owner_npk_m_hash = get_public_keys(self.owner).npk_m.hash();\n let secret = context.request_nsk_app(owner_npk_m_hash);\n poseidon2_hash_with_separator(\n [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n\n unconstrained fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let owner_npk_m_hash = get_public_keys(self.owner).npk_m.hash();\n let secret = get_nsk_app(owner_npk_m_hash);\n poseidon2_hash_with_separator(\n [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], owner: AztecAddress) -> Self {\n EcdsaPublicKeyNote { x, y, owner, header: NoteHeader::empty() }\n }\n}\n"
|
|
5808
5926
|
},
|
|
5809
|
-
"
|
|
5927
|
+
"404": {
|
|
5810
5928
|
"path": "/usr/src/noir-projects/noir-contracts/contracts/ecdsa_r_account_contract/src/main.nr",
|
|
5811
5929
|
"source": "// Account contract that uses ECDSA signatures for authentication on random version of the p256 curve (to use with touchID).\nuse dep::aztec::macros::aztec;\n\n#[aztec]\ncontract EcdsaRAccount {\n use dep::aztec::{\n encrypted_logs::encrypted_note_emission::encode_and_encrypt_note,\n macros::{functions::{initializer, noinitcheck, private, view}, storage::storage},\n };\n use dep::aztec::prelude::{PrivateContext, PrivateImmutable};\n\n use dep::authwit::{\n account::AccountActions,\n auth_witness::get_auth_witness,\n entrypoint::{app::AppPayload, fee::FeePayload},\n };\n\n use dep::ecdsa_public_key_note::EcdsaPublicKeyNote;\n\n #[storage]\n struct Storage<Context> {\n public_key: PrivateImmutable<EcdsaPublicKeyNote, Context>,\n }\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[private]\n #[initializer]\n fn constructor(signing_pub_key_x: [u8; 32], signing_pub_key_y: [u8; 32]) {\n let this = context.this_address();\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\n storage.public_key.initialize(&mut pub_key_note).emit(encode_and_encrypt_note(\n &mut context,\n this,\n this,\n ));\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update account_entrypoint.ts\n #[private]\n fn entrypoint(app_payload: AppPayload, fee_payload: FeePayload, cancellable: bool) {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payload, cancellable);\n }\n\n #[private]\n #[noinitcheck]\n #[view]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(&mut 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 // Load public key from storage\n let storage = Storage::init(context);\n let public_key = storage.public_key.get_note();\n\n // Load auth witness\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 // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let outer_hash_bytes: [u8; 32] = outer_hash.to_be_bytes();\n let hashed_message: [u8; 32] = std::hash::sha256(outer_hash_bytes);\n std::ecdsa_secp256r1::verify_signature(\n public_key.x,\n public_key.y,\n signature,\n hashed_message,\n )\n }\n}\n"
|
|
5812
5930
|
}
|