@aztec/protocol-contracts 0.82.1 → 0.82.2
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/AuthRegistry.json +959 -959
- package/artifacts/ContractClassRegisterer.json +341 -341
- package/artifacts/ContractInstanceDeployer.json +643 -643
- package/artifacts/FeeJuice.json +418 -418
- package/artifacts/MultiCallEntrypoint.json +30 -30
- package/artifacts/Router.json +271 -271
- package/dest/protocol_contract_data.js +7 -7
- package/package.json +4 -4
- package/src/protocol_contract_data.ts +7 -7
|
@@ -1591,10 +1591,10 @@
|
|
|
1591
1591
|
"bytecode": "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",
|
|
1592
1592
|
"debug_symbols": "7ZXLaoQwFED/JWsXeZvrr5Qy+IhDIESJWigy/96MGLVtbFeFLtzl5p774GSRGTW6mu4349puQMXLjGxXl6PpXIhmRNhyN/Sle4bDWPoRFZQryJB2TTgKwR8Zao3VqCAEHtl3mnIcaSrpRgNOwAyDWGFGpPoZJgIEX+lwPuA0l6lNCJVxE8LFTgNLdWeSxeac4E/0a4YIv9ScqRGXmjM18lJzpiZPq6FsVyN+UcOJjCI5xTst82WC+vMJkJoAOai1BhRjW41QKUuYbRPCWcnjiNQT5LC/gaJfN6L4f20Ugsoba839dvxpwvVb6U1ZWb2G7eTqQ3Z872Mm1ve+q3Uzef3stORC+w8=",
|
|
1593
1593
|
"brillig_names": [],
|
|
1594
|
-
"verification_key": "AAAAAAAQAAAAAAAAAAAAFAAAAAAAAAAQAAAAAAADKLEBAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAAAAAAAAAAAAAFZu236BFWjZOVxw3nI3ufIGXXjgGhKMyoECam2uwZgQXEJVuoyFBtl3oA5qQn0Jd615NEaRzIwqGKU6G7WyoeSphQmy+r6r9DvREQOCL90vORMBeiAocWnboYWM+17SqHWVW6JOL8xWtHHB2POEFrL8mXCED5//
|
|
1594
|
+
"verification_key": "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"
|
|
1595
1595
|
},
|
|
1596
1596
|
{
|
|
1597
|
-
"name": "
|
|
1597
|
+
"name": "broadcast_private_function",
|
|
1598
1598
|
"is_unconstrained": false,
|
|
1599
1599
|
"custom_attributes": [
|
|
1600
1600
|
"private"
|
|
@@ -2106,7 +2106,25 @@
|
|
|
2106
2106
|
"visibility": "private"
|
|
2107
2107
|
},
|
|
2108
2108
|
{
|
|
2109
|
-
"name": "
|
|
2109
|
+
"name": "unconstrained_functions_artifact_tree_root",
|
|
2110
|
+
"type": {
|
|
2111
|
+
"kind": "field"
|
|
2112
|
+
},
|
|
2113
|
+
"visibility": "private"
|
|
2114
|
+
},
|
|
2115
|
+
{
|
|
2116
|
+
"name": "private_function_tree_sibling_path",
|
|
2117
|
+
"type": {
|
|
2118
|
+
"kind": "array",
|
|
2119
|
+
"length": 5,
|
|
2120
|
+
"type": {
|
|
2121
|
+
"kind": "field"
|
|
2122
|
+
}
|
|
2123
|
+
},
|
|
2124
|
+
"visibility": "private"
|
|
2125
|
+
},
|
|
2126
|
+
{
|
|
2127
|
+
"name": "private_function_tree_leaf_index",
|
|
2110
2128
|
"type": {
|
|
2111
2129
|
"kind": "field"
|
|
2112
2130
|
},
|
|
@@ -2134,7 +2152,7 @@
|
|
|
2134
2152
|
"name": "function_data",
|
|
2135
2153
|
"type": {
|
|
2136
2154
|
"kind": "struct",
|
|
2137
|
-
"path": "events::
|
|
2155
|
+
"path": "events::private_function_broadcasted::InnerPrivateFunction",
|
|
2138
2156
|
"fields": [
|
|
2139
2157
|
{
|
|
2140
2158
|
"name": "selector",
|
|
@@ -2158,6 +2176,12 @@
|
|
|
2158
2176
|
"type": {
|
|
2159
2177
|
"kind": "field"
|
|
2160
2178
|
}
|
|
2179
|
+
},
|
|
2180
|
+
{
|
|
2181
|
+
"name": "vk_hash",
|
|
2182
|
+
"type": {
|
|
2183
|
+
"kind": "field"
|
|
2184
|
+
}
|
|
2161
2185
|
}
|
|
2162
2186
|
]
|
|
2163
2187
|
},
|
|
@@ -3255,15 +3279,89 @@
|
|
|
3255
3279
|
}
|
|
3256
3280
|
}
|
|
3257
3281
|
},
|
|
3258
|
-
"bytecode": "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",
|
|
3259
|
-
"debug_symbols": "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",
|
|
3282
|
+
"bytecode": "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",
|
|
3283
|
+
"debug_symbols": "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",
|
|
3260
3284
|
"brillig_names": [
|
|
3261
3285
|
"load",
|
|
3262
3286
|
"debug_log_oracle_wrapper",
|
|
3263
3287
|
"unsafe_padded_array_length",
|
|
3264
3288
|
"notify_created_contract_class_log"
|
|
3265
3289
|
],
|
|
3266
|
-
"verification_key": "
|
|
3290
|
+
"verification_key": "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"
|
|
3291
|
+
},
|
|
3292
|
+
{
|
|
3293
|
+
"name": "sync_notes",
|
|
3294
|
+
"is_unconstrained": true,
|
|
3295
|
+
"custom_attributes": [],
|
|
3296
|
+
"abi": {
|
|
3297
|
+
"parameters": [],
|
|
3298
|
+
"return_type": null,
|
|
3299
|
+
"error_types": {
|
|
3300
|
+
"2920182694213909827": {
|
|
3301
|
+
"error_kind": "string",
|
|
3302
|
+
"string": "attempt to subtract with overflow"
|
|
3303
|
+
},
|
|
3304
|
+
"3305101268118424981": {
|
|
3305
|
+
"error_kind": "string",
|
|
3306
|
+
"string": "Attempted to delete past the length of a CapsuleArray"
|
|
3307
|
+
},
|
|
3308
|
+
"3367683922240523006": {
|
|
3309
|
+
"error_kind": "fmtstring",
|
|
3310
|
+
"length": 58,
|
|
3311
|
+
"item_types": [
|
|
3312
|
+
{
|
|
3313
|
+
"kind": "field"
|
|
3314
|
+
}
|
|
3315
|
+
]
|
|
3316
|
+
},
|
|
3317
|
+
"5019202896831570965": {
|
|
3318
|
+
"error_kind": "string",
|
|
3319
|
+
"string": "attempt to add with overflow"
|
|
3320
|
+
},
|
|
3321
|
+
"5727012404371710682": {
|
|
3322
|
+
"error_kind": "string",
|
|
3323
|
+
"string": "push out of bounds"
|
|
3324
|
+
},
|
|
3325
|
+
"6753155520859132764": {
|
|
3326
|
+
"error_kind": "string",
|
|
3327
|
+
"string": "Failed to deliver note"
|
|
3328
|
+
},
|
|
3329
|
+
"8830323656616886390": {
|
|
3330
|
+
"error_kind": "string",
|
|
3331
|
+
"string": "Got a public log emitted by a different contract"
|
|
3332
|
+
},
|
|
3333
|
+
"13649294680379557736": {
|
|
3334
|
+
"error_kind": "string",
|
|
3335
|
+
"string": "extend_from_bounded_vec out of bounds"
|
|
3336
|
+
},
|
|
3337
|
+
"14657895983200220173": {
|
|
3338
|
+
"error_kind": "string",
|
|
3339
|
+
"string": "Attempted to read past the length of a CapsuleArray"
|
|
3340
|
+
},
|
|
3341
|
+
"16761564377371454734": {
|
|
3342
|
+
"error_kind": "string",
|
|
3343
|
+
"string": "Array index out of bounds"
|
|
3344
|
+
},
|
|
3345
|
+
"16775516380094354375": {
|
|
3346
|
+
"error_kind": "fmtstring",
|
|
3347
|
+
"length": 40,
|
|
3348
|
+
"item_types": []
|
|
3349
|
+
},
|
|
3350
|
+
"16954218183513903507": {
|
|
3351
|
+
"error_kind": "string",
|
|
3352
|
+
"string": "Attempted to read past end of BoundedVec"
|
|
3353
|
+
},
|
|
3354
|
+
"17843811134343075018": {
|
|
3355
|
+
"error_kind": "string",
|
|
3356
|
+
"string": "Stack too deep"
|
|
3357
|
+
}
|
|
3358
|
+
}
|
|
3359
|
+
},
|
|
3360
|
+
"bytecode": "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",
|
|
3361
|
+
"debug_symbols": "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",
|
|
3362
|
+
"brillig_names": [
|
|
3363
|
+
"sync_notes"
|
|
3364
|
+
]
|
|
3267
3365
|
},
|
|
3268
3366
|
{
|
|
3269
3367
|
"name": "register",
|
|
@@ -4878,10 +4976,122 @@
|
|
|
4878
4976
|
"directive_integer_quotient",
|
|
4879
4977
|
"directive_invert"
|
|
4880
4978
|
],
|
|
4881
|
-
"verification_key": "AAAAAAAQAAAAAAAAAAAAFAAAAAAAAAAQAAAAAAADKLEBAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAAAAAAAAAAAAACPRrIwJK6JnhcG3U4k/hNAVNayvGGcZtSi82DLRW/lovjwk8CeY4Likc9lM6ngXnYxknK0pBSkuSA2B/SLc+mhNds3JP4m9h1BYWL3SQQSc3zQ5g5IAuBUXx9GR4Y/19KGE2gmElC6/URefBugFW3TRIz8QlFBi4ujsYZs/
|
|
4979
|
+
"verification_key": "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"
|
|
4882
4980
|
},
|
|
4883
4981
|
{
|
|
4884
|
-
"name": "
|
|
4982
|
+
"name": "process_log",
|
|
4983
|
+
"is_unconstrained": true,
|
|
4984
|
+
"custom_attributes": [],
|
|
4985
|
+
"abi": {
|
|
4986
|
+
"parameters": [
|
|
4987
|
+
{
|
|
4988
|
+
"name": "_log_ciphertext",
|
|
4989
|
+
"type": {
|
|
4990
|
+
"kind": "struct",
|
|
4991
|
+
"path": "std::collections::bounded_vec::BoundedVec",
|
|
4992
|
+
"fields": [
|
|
4993
|
+
{
|
|
4994
|
+
"name": "storage",
|
|
4995
|
+
"type": {
|
|
4996
|
+
"kind": "array",
|
|
4997
|
+
"length": 18,
|
|
4998
|
+
"type": {
|
|
4999
|
+
"kind": "field"
|
|
5000
|
+
}
|
|
5001
|
+
}
|
|
5002
|
+
},
|
|
5003
|
+
{
|
|
5004
|
+
"name": "len",
|
|
5005
|
+
"type": {
|
|
5006
|
+
"kind": "integer",
|
|
5007
|
+
"sign": "unsigned",
|
|
5008
|
+
"width": 32
|
|
5009
|
+
}
|
|
5010
|
+
}
|
|
5011
|
+
]
|
|
5012
|
+
},
|
|
5013
|
+
"visibility": "private"
|
|
5014
|
+
},
|
|
5015
|
+
{
|
|
5016
|
+
"name": "_tx_hash",
|
|
5017
|
+
"type": {
|
|
5018
|
+
"kind": "field"
|
|
5019
|
+
},
|
|
5020
|
+
"visibility": "private"
|
|
5021
|
+
},
|
|
5022
|
+
{
|
|
5023
|
+
"name": "_unique_note_hashes_in_tx",
|
|
5024
|
+
"type": {
|
|
5025
|
+
"kind": "struct",
|
|
5026
|
+
"path": "std::collections::bounded_vec::BoundedVec",
|
|
5027
|
+
"fields": [
|
|
5028
|
+
{
|
|
5029
|
+
"name": "storage",
|
|
5030
|
+
"type": {
|
|
5031
|
+
"kind": "array",
|
|
5032
|
+
"length": 64,
|
|
5033
|
+
"type": {
|
|
5034
|
+
"kind": "field"
|
|
5035
|
+
}
|
|
5036
|
+
}
|
|
5037
|
+
},
|
|
5038
|
+
{
|
|
5039
|
+
"name": "len",
|
|
5040
|
+
"type": {
|
|
5041
|
+
"kind": "integer",
|
|
5042
|
+
"sign": "unsigned",
|
|
5043
|
+
"width": 32
|
|
5044
|
+
}
|
|
5045
|
+
}
|
|
5046
|
+
]
|
|
5047
|
+
},
|
|
5048
|
+
"visibility": "private"
|
|
5049
|
+
},
|
|
5050
|
+
{
|
|
5051
|
+
"name": "_first_nullifier_in_tx",
|
|
5052
|
+
"type": {
|
|
5053
|
+
"kind": "field"
|
|
5054
|
+
},
|
|
5055
|
+
"visibility": "private"
|
|
5056
|
+
},
|
|
5057
|
+
{
|
|
5058
|
+
"name": "_recipient",
|
|
5059
|
+
"type": {
|
|
5060
|
+
"kind": "struct",
|
|
5061
|
+
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
5062
|
+
"fields": [
|
|
5063
|
+
{
|
|
5064
|
+
"name": "inner",
|
|
5065
|
+
"type": {
|
|
5066
|
+
"kind": "field"
|
|
5067
|
+
}
|
|
5068
|
+
}
|
|
5069
|
+
]
|
|
5070
|
+
},
|
|
5071
|
+
"visibility": "private"
|
|
5072
|
+
}
|
|
5073
|
+
],
|
|
5074
|
+
"return_type": null,
|
|
5075
|
+
"error_types": {
|
|
5076
|
+
"16775516380094354375": {
|
|
5077
|
+
"error_kind": "fmtstring",
|
|
5078
|
+
"length": 40,
|
|
5079
|
+
"item_types": []
|
|
5080
|
+
},
|
|
5081
|
+
"17843811134343075018": {
|
|
5082
|
+
"error_kind": "string",
|
|
5083
|
+
"string": "Stack too deep"
|
|
5084
|
+
}
|
|
5085
|
+
}
|
|
5086
|
+
},
|
|
5087
|
+
"bytecode": "H4sIAAAAAAAA/+Wc6XLbNhDHKZu0TcmyZPmK3Svp3bRpKYnU0dNt0/u+lM+KYz8HHyPta7Rf2qer/jFXWsHojDteTPxPMMOhpYV2f1wuARBYuBadl8nsqFV/x9V5vTrj+060XKTucXXOrla6hrqyUIw1AsYVAsZVAsaYgDEhYFwjYFwnYNwgYEwJGOsEjA0Cxk0CxiYB4xYBY4uAsU3AuB2AMQRnh4Rzx5BTj+1D8e5G1z9G9wgY9wkYDwgYbxAwHhIwHhEwPkPA+CwB43MEjM8TML5AwHiTgPEWAeOLBIwvETC+TMD4CgHjqwSMrxEwvk7A+AYB420CxjcJGN8iYLxDwPg2AeM7BIwZAWOXgLFHwNgnYMwJGAsCxgEB45CAcUTAOCZgfJeA8T0CxvcJGD8gYPyQgPEjAsZjAsaPCRg/IWD8lIDxLgHjZwSMnxMwfkHA+CUB41cEjF8TMH5DwPgtAeN3BIzfEzD+QMD4IwHjTwSMPxMw/hKAMQTnryScv5FwTgJxRvcc6JXZgY1b2BiFjUfY2IONM9iYgo0f2FiBjQvYGIDEeyS2I3G8PTuQ+IykYiTsIgkWSaZI4kSSJJIQkeSHJDokqSEJDElWSGJCktDN2XFrdiCJBEkaSIJAkgEW8bFIjkVoLPJiERWLlFgExCIbFrGwSISrwiIHFhEwSY9JcEwyYxIXk6SYhMQkHybRMEmFSSBMsmASQyYJ8JKLl0i8pOElCC8ZGMRjkIxBKAZ5GERhkIJBADpZdGLoJNAIo5FDI4KHFA8AgmsS/XeRIPmnOqfVeUXJDTfRdVPHrqX+UTa+n3quz5C/n1Y6N4LoL4aiPw3Dn8lG27vlQr++FrG7Wp0n5cKXk3KZSeo8VHUeOnXkesLc7zwP669ur+n4KFLXIrbrYWz3a449fV+0TOzXo5Cxeb4pWdsTHtc/0nY0pU654Kk5sri8eB0iS5RM7i/s3Fb13NjacGTCgiLx21S+kXKvksk9jZVOu3gtRmHjNc8eX7zm3ScxXmNHFpcXr+P/xquOLTdek2hRpC0V2ZqS/e7I1pXsj3Jhu1Acg+rvsG3yeR+snz3rPmzHw69toayXC39IDK6q7xLlv0f+0fUdWapkcblsp159jpUdrUs4Eqd+Xn1uVec19Rv5fdtjf82xv8Tt+c71S+qpn3rqI9buVH83qgMx9Jf8Jrr47OI4rj5nVyrDwtdO2ukfdH1toaH+U9HfCKK/l4n+zTD8836qGeb+DkT/Vhj+efy0wvD3RH87DP+Z6N8Owz9/j+kE0V/Mx+U7Yfjn8b8bxv9z/r0w/HP9+2H45/f3IIz+sYw7bkSL4o4zD9X3dv1/b3zZcabYrzusocaZhw6P6x89zoTsyMPa9sjcZ/TIY+fIY8ena9NQ14Ghrm1DXQ1DXfuGutqGuuqGuvYMdbUMdaWGuizvo6W/LGN111CXZaxuGeq6ru2E5fNo6fvrGqsbhrosY8IyVi39tWOoy7KNthwDNA11WfYdls/QdY2vp6H9CtEPhV0PzDLfPFhkp987D2aoPxNfS6zquW9tU64vcer/6fh5M4ife1N5J5M2SPvCN1dlabvm2Isi//us2G96eIS77pFd5R/Mno5OTsf383wwzIuifzKsOfqF1f1OzzvrPkfX970b++bVDH098q3xtJRfUWIl23JkiZIJo17j8c07WvJfxv/aftsjc8del72XnWg51vTz2IgWz3Bc2l/7cHTeljxirPQn0fIabuTYT5z6f1ef3bbuqs/I2XDaPetPz6bF9MGD/GTacfRrH8JP/wJJ9PoyCV0AAA==",
|
|
5088
|
+
"debug_symbols": "tZbRCoMgGIXfxWsv0qV/26uMMawsBLGwGozo3acjttiuz0105NfPCz84K2ttvfR3F7phYpfryvzQmNkNIaV146yOznvX34/LrMgfofR7wzSakPM0mzizizgJUpzZ0OZ/KVU6pHPepiTExv/mSe7DRJ/JkrYbTwBCAyo04AwG6AINEGiARANOaECJBig0AG2yRpus0SZrtMmENpnQJhPaZEKbTGiTCW0yoU0mtMkENXlL6WGiM7W3e8PpltAcCs/8HO1P9xnj0Nh2iTa3oG8Byq+xlFzJfO1sr6gKLiqVIAn0Ag==",
|
|
5089
|
+
"brillig_names": [
|
|
5090
|
+
"process_log"
|
|
5091
|
+
]
|
|
5092
|
+
},
|
|
5093
|
+
{
|
|
5094
|
+
"name": "broadcast_unconstrained_function",
|
|
4885
5095
|
"is_unconstrained": false,
|
|
4886
5096
|
"custom_attributes": [
|
|
4887
5097
|
"private"
|
|
@@ -5393,25 +5603,7 @@
|
|
|
5393
5603
|
"visibility": "private"
|
|
5394
5604
|
},
|
|
5395
5605
|
{
|
|
5396
|
-
"name": "
|
|
5397
|
-
"type": {
|
|
5398
|
-
"kind": "field"
|
|
5399
|
-
},
|
|
5400
|
-
"visibility": "private"
|
|
5401
|
-
},
|
|
5402
|
-
{
|
|
5403
|
-
"name": "private_function_tree_sibling_path",
|
|
5404
|
-
"type": {
|
|
5405
|
-
"kind": "array",
|
|
5406
|
-
"length": 5,
|
|
5407
|
-
"type": {
|
|
5408
|
-
"kind": "field"
|
|
5409
|
-
}
|
|
5410
|
-
},
|
|
5411
|
-
"visibility": "private"
|
|
5412
|
-
},
|
|
5413
|
-
{
|
|
5414
|
-
"name": "private_function_tree_leaf_index",
|
|
5606
|
+
"name": "private_functions_artifact_tree_root",
|
|
5415
5607
|
"type": {
|
|
5416
5608
|
"kind": "field"
|
|
5417
5609
|
},
|
|
@@ -5439,7 +5631,7 @@
|
|
|
5439
5631
|
"name": "function_data",
|
|
5440
5632
|
"type": {
|
|
5441
5633
|
"kind": "struct",
|
|
5442
|
-
"path": "events::
|
|
5634
|
+
"path": "events::unconstrained_function_broadcasted::InnerUnconstrainedFunction",
|
|
5443
5635
|
"fields": [
|
|
5444
5636
|
{
|
|
5445
5637
|
"name": "selector",
|
|
@@ -5463,12 +5655,6 @@
|
|
|
5463
5655
|
"type": {
|
|
5464
5656
|
"kind": "field"
|
|
5465
5657
|
}
|
|
5466
|
-
},
|
|
5467
|
-
{
|
|
5468
|
-
"name": "vk_hash",
|
|
5469
|
-
"type": {
|
|
5470
|
-
"kind": "field"
|
|
5471
|
-
}
|
|
5472
5658
|
}
|
|
5473
5659
|
]
|
|
5474
5660
|
},
|
|
@@ -6566,204 +6752,18 @@
|
|
|
6566
6752
|
}
|
|
6567
6753
|
}
|
|
6568
6754
|
},
|
|
6569
|
-
"bytecode": "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",
|
|
6570
|
-
"debug_symbols": "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",
|
|
6755
|
+
"bytecode": "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",
|
|
6756
|
+
"debug_symbols": "7d3dTmOHvYfhe5njOfCy//7qrVRRlaZpNVKUVEm6pa0q977NKAYiYBC8sMeQ56QKnbXw8jNg+wWG338//OP7v//nX3/79OM/f/rlw1/++t8PP/z03be/fvrpx9Nb//2wzOf/75d/f/vj1Zu//Prtz79++Mt6DsePH77/8R+n/9xu57ePH/756YfvP/xlWY6/fbx79HpW56PXu/X10cfVPQdvVsft7wdvlt3hywcv2+Oy//3o039vVteHr/e7+47fbQ/nw3f7/c3Rx819R292m/PRs6z+cPQ3Hz8sWzQP0ezQPESzR/MQzQHNQzRHNA/QrFdoHqJZ0DxEs0bzEM0GzUM0g+Yhmkt/NbydG5pbh99Ps17Wu/OVLLONNJf+avgr0lz6q+GvSHPpr4a/Is0Dr4bXmxua7SM0s+zOkLNe3Ry921/dwmb16rdw72uz/c0d389xuT5ne/h8zvqxc7bL9vY5dy9qf3Ps1d/T74fO7vO7v/eJ/7Ca9e+nHGa9/vK7Px18PnZzvPUhsf38/u999jzM5vr9b1fLI+9/v5w/oA/7W09w9x68XvbHmw+6w/rOX8H2wq5nl6/nuKzPH3PH25/Dv3/87F/7Bg79Bjbr88HHzRwf+Wg+zvkha3+8eiT54mPQZru7+Xy8OXbufeA8nq9ivbn1uXvvwctmOR+8bDbLIwevljPgsrr9sDmfAY8AE+CsADbABWADXANsgBuADXAANsAtwAa4A9gA9wAboBKJgEqkAW6VSARUIhFQiURAJRIBB2ADVCIRUIlEQCUSAZVIBFQiDXCnRCKgEomASiQCKpEIOAAboBKJgEokAiqRCKhEIqASaYB7JRIBlUgEVCIRUIlEwAHYAJVIBFQiEVCJREAlEgGVSAM8KJEIqEQioBKJgEokAg7ABqhEIqASiYBKJAIqkQioRBrgUYlEQCUSAZVIBFQiEXAANkAlEgGVSARUIhFQiURAJdIAl5UUqYJapAqKkSqoRqrgEIyCeqQKCpIqqEiqoCSpgpokCi6apApqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSKLjWJFVQk1RBTVIFNUkVHIJRUJNUQU1SBTVJFdQkVVCTRMGNJqmCmqQKapIqqEmq4BCMgpqkCmqSKqhJqqAmqYKaJAoaY8+CmqQKapIqqEmq4BCMgpqkCmqSKqhJqqAmqYKaJAqaZc+CmqQKapIqqEmq4BCMgpqkCmqSKqhJqqAmqYKaJAoaaM+CmqQKapIqqEmq4BCMgpqkCmqSKqhJqqAmqYKaJAqaas+CmqQKapIqqEmq4BCMgpqkCmqSKqhJqqAmqYKaJAoabc+CmqQKapIqqEmq4BCMgpqkCmqSKqhJqqAmqYKaJAqab8+CmqQKapIqqEmq4BCMgpqkCmqSKqhJqqAmqYKapAmu7bhnQU1SBTVJFdQkVXAIRkFNUgU1SRXUJFVQk1RBTRIF7bhnQU1SBTVJFdQkVXAIRkFNUgU1SRXUJFVQk1RBTRIF7bhnQU1SBTVJFdQkVXAIRkFNUgU1SRXUJFVQk1RBTRIF7bhnQU1SBTVJFdQkVXAIRkFNUgU1SRXUJFVQk1RBTRIF7bhnQU1SBTVJFdQkVXAIRkFNUgU1SRXUJFVQk1RBTRIF7bhnQU1SBTVJFdQkVXAIRkFNUgU1SRXUJFVQk1RBTRIF7bhnQU1SBTVJFdQkVXAIRkFNUgU1SRXUJFVQk1RBTRIF7bhnQU1SBTVJFdQkVXAIRkFNUgU1SRXUJFVQk1RBTRIF7bhnQU1SBTVJFdQkVXAIRkFNUgU1SRXUJFVQk1RBTRIF7bhnQU1SBTVJFdQkVXAIRkFNUgU1SRXUJFVQk1RBTdIEN3bcs6AmqYKapApqkio4BKOgJqmCmqQKapIqqEmqoCaJgnbcs6AmqYKapApqkio4BKOgJqmCmqQKapIqqEmqoCaJgnbcs6AmqYKapApqkio4BKOgJqmCmqQKapIqqEmqoCaJgnbcs6AmqYKapApqkio4BKOgJqmCmqQKapIqqEmqoCaJgnbcs6AmqYKapApqkio4BKOgJqmCmqQKapIqqEmqoCaJgnbcs6AmqYKapApqkio4BKOgJqmCmqQKapIqqEmqoCaJgnbcs6AmqYKapApqkio4BKOgJqmCmqQKapIqqEmqoCaJgnbcs6AmqYKapApqkio4BKOgJqmCmqQKapIqqEmqoCaJgnbcs6AmqYKapApqkio4BKOgJqmCmqQKapIqqEmqoCaJgnbcs6AmqYKapApqkio4BKOgJqmCmqQKapIqqEmqoCZpgmPHPQtqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSKGjHPQtqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSKGjHPQtqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSKGjHPQtqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSKGjHPQtqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSKGjHPQtqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSKGjHPQtqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSKGjHPQtqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSKGjHPQtqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSKGjHPQtqkiqoSaqgJqmCQzAKapIqqEmqoCapgpqkCmqSJri1454FNUkV1CRVUJNUwSEYBTVJFdQkVVCTVEFNUgU1SRS0454FNUkV1CRVUJNUwSEYBTVJFdQkVVCTVEFNUgU1SRS0454FNUkV1CRVUJNUwSEYBTVJFdQkVVCTVEFNUgU1SRS0454FNUkV1CRVUJNUwSEYBTVJFdQkVVCTVEFNUgU1SRS0454FNUkV1CRVUJNUwSEYBTVJFdQkVVCTVEFNUgU1SRS0454FNUkV1CRVUJNUwSEYBTVJFdQkVVCTVEFNUgU1SRS0454FNUkV1CRVUJNUwSEYBTVJFdQkVVCTVEFNUgU1SRS0454FNUkV1CRVUJNUwSEYBTVJFdQkVVCTVEFNUgU1SRS0454FNUkV1CRVUJNUwSEYBTVJFdQkVVCTVEFNUgU1SRS0454FNUkV1CRVUJNUwSEYBTVJFdQkVVCTVEFNUgU1SRPc2XHPgpqkCmqSKqhJquAQjIKapApqkiqoSaqgJqmCmiQK2nHPgpqkCmqSKqhJquAQjIKapApqkiqoSaqgJqmCmiQK2nHPgpqkCmqSKqhJquAQjIKapApqkiqoSaqgJqmCmiQK2nHPgpqkCmqSKqhJquAQjIKapApqkiqoSaqgJqmCmiQK2nHPgpqkCmqSKqhJquAQjIKapApqkiqoSaqgJqmCmiQK2nHPgpqkCmqSKqhJquAQjIKapApqkiqoSaqgJqmCmiQK2nHPgpqkCmqSKqhJquAQjIKapApqkiqoSaqgJqmCmiQK2nHPgpqkCmqSKqhJquAQjIKapApqkiqoSaqgJqmCmiQK2nHPgpqkCmqSKqhJquAQjIKapApqkiqoSaqgJqmCmiQK2nHPgpqkCmqSKqhJquAQjIKapApqkiqoSaqgJqmCmqQJ7u24Z0FNUgU1SRXUJFVwCEZBTVIFNUkV1CRVUJNUQU0SBe24Z0FNUgU1SRXUJFVwCEZBTVIFNUkV1CRVUJNUQU0SBe24Z0FNUgU1SRXUJFVwCEZBTVIFNUkV1CRVUJNUQU0SBe24Z0FNUgU1SRXUJFVwCEZBTVIFNUkV1CRVUJNUQU0SBe24Z0FNUgU1SRXUJFVwCEZBTVIFNUkV1CRVUJNUQU0SBe24Z0FNUgU1SRXUJFVwCEZBTVIFNUkV1CRVUJNUQU0SBe24Z0FNUgU1SRXUJFVwCEZBTVIFNUkV1CRVUJNUQU0SBe24Z0FNUgU1SRXUJFVwCEZBTVIFNUkV1CRVUJNUQU0SBe24Z0FNUgU1SRXUJFVwCEZBTVIFNUkV1CRVUJNUQU0SBe24Z0FNUgU1SRXUJFVwCEZBTVIFNUkV1CRVUJNUQU3SBA923LOgJqmCmqQKapIqOASjoCapgpqkCmqSKqhJqqAmiYJ23LOgJqmCmqQKapIqOASjoCapgpqkCmqSKqhJqqAmiYJ23LOgJqmCmqQKapIqOASjoCapgpqkCmqSKqhJqqAmiYJ23LOgJqmCmqQKapIqOASjoCapgpqkCmqSKqhJqqAmiYJ23LOgJqmCmqQKapIqOASjoCapgpqkCmqSKqhJqqAmiYJ23LOgJqmCmqQKapIqOASjoCapgpqkCmqSKqhJqqAmiYJ23LOgJqmCmqQKapIqOASjoCapgpqkCmqSKqhJqqAmiYJ23LOgJqmCmqQKapIqOASjoCapgpqkCmqSKqhJqqAmiYJ23LOgJqmCmqQKapIqOASjoCapgpqkCmqSKqhJqqAmiYJ23LOgJqmCmqQKapIqOASjoCapgpqkCmqSKqhJqqAmaYJHO+5ZUJNUQU1SBTVJFRyCUVCTVEFNUgU1SRXUJFVQk0RBO+5ZUJNUQU1SBTVJFRyCUVCTVEFNUgU1SRXUJFVQk0RBO+5ZUJNUQU1SBTVJFRyCUVCTVEFNUgU1SRXUJFVQk0RBO+5ZUJNUQU1SBTVJFRyCUVCTVEFNUgU1SRXUJFVQk0RBO+5ZUJNUQU1SBTVJFRyCUVCTVEFNUgU1SRXUJFVQk0RBO+5ZUJNUQU1SBTVJFRyCUVCTVEFNUgU1SRXUJFVQk0RBO+5ZUJNUQU1SBTVJFRyCUVCTVEFNUgU1SRXUJFVQk0RBO+5ZUJNUQU1SBTVJFRyCUVCTVEFNUgU1SRXUJFVQk0RBO+5ZUJNUQU1SBTVJFRyCUVCTVEFNUgU1SRXUJFVQk0RBO+5ZUJNUQU1SBTVJFRyCUVCTVEFNUgU1SRXUJFVQkzTBZWXIvROqkkwoSzKhLsmEg7ASKpNMKE0yoTbJhOIkE6qTSmjSvROqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmjcvROqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmjmvROqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmjwvROqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmj6vROqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgEvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgOvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgYvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgivhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSLjYiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqJBKubcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdRIJN7biO6E6yYTqJBOqk0w4CCuhOsmE6iQTqpNMqE4yoTqphLbiO6E6yYTqJBOqk0w4CCuhOsmE6iQTqpNMqE4yoTqphLbiO6E6yYTqJBOqk0w4CCuhOsmE6iQTqpNMqE4yoTqphLbiO6E6yYTqJBOqk0w4CCuhOsmE6iQTqpNMqE4yoTqphLbiO6E6yYTqJBOqk0w4CCuhOsmE6iQTqpNMqE4yoTqphLbiO6E6yYTqJBOqk0w4CCuhOsmE6iQTqpNMqE4yoTqphLbiO6E6yYTqJBOqk0w4CCuhOsmE6iQTqpNMqE4yoTqphLbiO6E6yYTqJBOqk0w4CCuhOsmE6iQTqpNMqE4yoTqphLbiO6E6yYTqJBOqk0w4CCuhOsmE6iQTqpNMqE4yoTqphLbiO6E6yYTqJBOqk0w4CCuhOsmE6iQTqpNMqE4yoTqJhGMrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSLi1Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSTc2YrvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6iQS7m3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnUSCQ+24juhOsmE6iQTqpNMOAgroTrJhOokE6qTTKhOMqE6qYS24juhOsmE6iQTqpNMOAgroTrJhOokE6qTTKhOMqE6qYS24juhOsmE6iQTqpNMOAgroTrJhOokE6qTTKhOMqE6qYS24juhOsmE6iQTqpNMOAgroTrJhOokE6qTTKhOMqE6qYS24juhOsmE6iQTqpNMOAgroTrJhOokE6qTTKhOMqE6qYS24juhOsmE6iQTqpNMOAgroTrJhOokE6qTTKhOMqE6qYS24juhOsmE6iQTqpNMOAgroTrJhOokE6qTTKhOMqE6qYS24juhOsmE6iQTqpNMOAgroTrJhOokE6qTTKhOMqE6qYS24juhOsmE6iQTqpNMOAgroTrJhOokE6qTTKhOMqE6qYS24juhOsmE6iQTqpNMOAgroTrJhOokE6qTTKhOMqE6iYRHW/GdUJ1kQnWSCdVJJhyElVCdZEJ1kgnVSSZUJ5lQnVRCW/GdUJ1kQnWSCdVJJhyElVCdZEJ1kgnVSSZUJ5lQnVRCW/GdUJ1kQnWSCdVJJhyElVCdZEJ1kgnVSSZUJ5lQnVRCW/GdUJ1kQnWSCdVJJhyElVCdZEJ1kgnVSSZUJ5lQnVRCW/GdUJ1kQnWSCdVJJhyElVCdZEJ1kgnVSSZUJ5lQnVRCW/GdUJ1kQnWSCdVJJhyElVCdZEJ1kgnVSSZUJ5lQnVRCW/GdUJ1kQnWSCdVJJhyElVCdZEJ1kgnVSSZUJ5lQnVRCW/GdUJ1kQnWSCdVJJhyElVCdZEJ1kgnVSSZUJ5lQnVRCW/GdUJ1kQnWSCdVJJhyElVCdZEJ1kgnVSSZUJ5lQnVRCW/GdUJ1kQnWSCdVJJhyElVCdZEJ1kgnVSSZUJ5lQnTTC9cpWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnkXCxFd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSW0Fd8J1UkmVCeZUJ1kwkFYCdVJJlQnmVCdZEJ1kgnVSSRc24rvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6qQS2orvhOokE6qTTKhOMuEgrITqJBOqk0yoTjKhOsmE6iQSbmzFd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnVSCW3Fd0J1kgnVSSZUJ5lwEFZCdZIJ1UkmVCeZUJ1kQnUSCcdWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnldBWfCdUJ5lQnWRCdZIJB2ElVCeZUJ1kQnWSCdVJJlQnkXBrK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0i4sxXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1Ukk3NuK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOokEh5sxXdCdZIJ1UkmVCeZcBBWQnWSCdVJJlQnmVCdZEJ1UgltxXdCdZIJ1UkmVCeZcBBWQnWSCdVJJlQnmVCdZEJ1UgltxXdCdZIJ1UkmVCeZcBBWQnWSCdVJJlQnmVCdZEJ1UgltxXdCdZIJ1UkmVCeZcBBWQnWSCdVJJlQnmVCdZEJ1UgltxXdCdZIJ1UkmVCeZcBBWQnWSCdVJJlQnmVCdZEJ1UgltxXdCdZIJ1UkmVCeZcBBWQnWSCdVJJlQnmVCdZEJ1UgltxXdCdZIJ1UkmVCeZcBBWQnWSCdVJJlQnmVCdZEJ1UgltxXdCdZIJ1UkmVCeZcBBWQnWSCdVJJlQnmVCdZEJ1UgltxXdCdZIJ1UkmVCeZcBBWQnWSCdVJJlQnmVCdZEJ1UgltxXdCdZIJ1UkmVCeZcBBWQnWSCdVJJlQnmVCdZEJ1EgmPtuI7oTrJhOokE6qTTDgIK6E6yYTqJBOqk0yoTjKhOqmEtuI7oTrJhOokE6qTTDgIK6E6yYTqJBOqk0yoTjKhOqmEtuI7oTrJhOokE6qTTDgIK6E6yYTqJBOqk0yoTjKhOqmEtuI7oTrJhOokE6qTTDgIK6E6yYTqJBOqk0yoTjKhOqmEtuI7oTrJhOokE6qTTDgIK6E6yYTqJBOqk0yoTjKhOqmEtuI7oTrJhOokE6qTTDgIK6E6yYTqJBOqk0yoTjKhOqmEtuI7oTrJhOokE6qTTDgIK6E6yYTqJBOqk0yoTjKhOqmEtuI7oTrJhOokE6qTTDgIK6E6yYTqJBOqk0yoTjKhOqmEtuI7oTrJhOokE6qTTDgIK6E6yYTqJBOqk0yoTjKhOqmEtuI7oTrJhOokE6qTTDgIK6E6yYTqJBOqk0yoTjKhOmmEm5Wt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOIuFiK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0poK74TqpNMqE4yoTrJhIOwEqqTTKhOMqE6yYTqJBOqk0i4thXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1UkltBXfCdVJJlQnmVCdZMJBWAnVSSZUJ5lQnWRCdZIJ1Ukk3NiK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOqkEtqK74TqJBOqk0yoTjLhIKyE6iQTqpNMqE4yoTrJhOokEo6t+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOKqGt+E6oTjKhOsmE6iQTDsJKqE4yoTrJhOokE6qTTKhOIuHWVnwnVCeZUJ1kQnWSCQdhJVQnmVCdZEJ1kgnVSSZUJ5XQVnwnVCeZUJ1kQnWSCQdhJVQnmVCdZEJ1kgnVSSZUJ5XQVnwnVCeZUJ1kQnWSCQdhJVQnmVCdZEJ1kgnVSSZUJ5XQVnwnVCeZUJ1kQnWSCQdhJVQnmVCdZEJ1kgnVSSZUJ5XQVnwnVCeZUJ1kQnWSCQdhJVQnmVCdZEJ1kgnVSSZUJ5XQVnwnVCeZUJ1kQnWSCQdhJVQnmVCdZEJ1kgnVSSZUJ5XQVnwnVCeZUJ1kQnWSCQdhJVQnmVCdZEJ1kgnVSSZUJ5XQVnwnVCeZUJ1kQnWSCQdhJVQnmVCdZEJ1kgnVSSZUJ5XQVnwnVCeZUJ1kQnWSCQdhJVQnmVCdZEJ1kgnVSSZUJ5XQVnwnVCeZUJ1kQnWSCQdhJVQnmVCdZEJ1kgnVSSZUJ5FwZyu+E6qTTKhOMqE6yYSDsBKqk0yoTjKhOsmE6iQTqpNKaCu+E6qTTKhOMqE6yYSDsBKqk0yoTjKhOsmE6iQTqpNKaCu+E6qTTKhOMqE6yYSDsBKqk0yoTjKhOsmE6iQTqpNKaCu+E6qTTKhOMqE6yYSDsBKqk0yoTjKhOsmE6iQTqpNKaCu+E6qTTKhOMqE6yYSDsBKqk0yoTjKhOsmE6iQTqpNKaCu+E6qTTKhOMqE6yYSDsBKqk0yoTjKhOsmE6iQTqpNKaCu+E6qTTKhOMqE6yYSDsBKqk0yoTjKhOsmE6iQTqpNKaCu+E6qTTKhOMqE6yYSDsBKqk0yoTjKhOsmE6iQTqpNKaCu+E6qTTKhOMqE6yYSDsBKqk0yoTjKhOsmE6iQTqpNKaCu+E6qTTKhOMqE6yYSDsBKqk0yoTjKhOsmE6iQTqpNIuLcV3wnVSSZUJ5lQnWTCQVgJ1UkmVCeZUJ1kQnWSCdVJJbQV3wnVSSZUJ5lQnWTCQVgJ1UkmVCeZUJ1kQnWSCdVJJbQV3wnVSSZUJ5lQnWTCQVgJ1UkmVCeZUJ1kQnWSCdVJJbQV3wnVSSZUJ5lQnWTCQVgJ1UkmVCeZUJ1kQnWSCdVJJbQV3wnVSSZUJ5lQnWTCQVgJ1UkmVCeZUJ1kQnWSCdVJJbQV3wnVSSZUJ5lQnWTCQVgJ1UkmVCeZUJ1kQnWSCdVJJbQV3wnVSSZUJ5lQnWTCQVgJ1UkmVCeZUJ1kQnWSCdVJJbQV3wnVSSZUJ5lQnWTCQVgJ1UkmVCeZUJ1kQnWSCdVJJbQV3wnVSSZUJ5lQnWTCQVgJ1UkmVCeZUJ1kQnWSCdVJJbQV3wnVSSZUJ5lQnWTCQVgJ1UkmVCeZUJ1kQnWSCdVJJDzYiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqpBLaiu+E6iQTqpNMqE4y4SCshOokE6qTTKhOMqE6yYTqJBIebcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCdVIJbcV3QnWSCdVJJlQnmXAQVkJ1kgnVSSZUJ5lQnWRCddIIZ2UrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASqpNMqE4yoTrJhOokE6qTSmgrvhOqk0yoTjKhOsmEg7ASvps62R02Z8Ldcff/SfgCdbK9vp7j9rC9ffA3pzf+/vOnH3749K+//fDTd9/++umnH3+5OnV19T8P/Gzj6sx2uPX3scxydcEP/CzfF0/ZPf2U/dNPOTz9lOOTT3ngZ0++eMry9FPWTz/lfuTt+dPlsN/94ZR7PgWWzf78KbBsbz7k5r5PrfVh+f3YzeoPh15dyv5yLuVwOZdyvJhLeeBbFF/lUpbLuZT15VzK5nIuZS7nUraXcymX82g7l/NoO5fzaDuX82i77Z9Bq5vX96fXkF++lMP1C9njsn7kHc+ynfMr5OV488Jxs1l/vvLtm73y3Zu98v2bvfLDm73y41u98t3qzV758mavfP1mr3zzZq/8gp9DT19yu/4q0xzuXPkFP4c+cuUX/Bz6yJVf8HPoI1d+wc+hj1z5BT+HfvnK9xf8HPrIlV/wc+gjV37Bz6GPXPkFP4c+cuVv9jl0/2afQ/dv9jl0/2afQ/eX/By6PVxf+WH9hyu/5zI2x/M3fNazuvOaeH/Jz7gveD8Pl/z8/JL385KfzV/yfl7yc/9L3s9LfqXwkvfzkp8pnnI/l9X1D5ec/vPmMjbbz99hP76Xx6HTTZ+/W7Gs9qs79/MFHof25x95Od3P/Zfv55e+dXJcX86lbC7mUpbVe3mmeOQzblm9l6eK09/35vqOHo5/uKP3XMf1T4wdNvPIsdvD+f5tD5u7gO/lOeirAQ7AR47dLeca223u+RS+5HZ/E4CX/CWENwH4fl6ffiXA9/IFla8G+F6+UvO1AJf3k15fCfD9FMOrAV7/Y5Hdfn0XUIlEQCUSAQdgA1QiEVCJRMD3UyJf/ArysryfYnjkjr6fV/ZfvqPrP8k3P5b1+3ml/MgdfT+vaB+5o+/nlecjd3T+LHf0/bySe+SOvp9XXI/c0T/LK6P1n+WV0fpP8cro9NZydez9PxtyPJxr4Hi8qYz1fvvwj1l8+ZT100/ZPP2Uefop26efsnv6Kfunn3J4+inHJ5+yrFbPOGd5xjnrZ5yzecY584xzts84Z/eMc/bPOOf+D4PdXH9ir9Z3Tzo+46T7v1Px2EnLc05aP+ekzVNPOr21vjr0gV/qslqfHxwPq1u/lGYz9/72ps3Nb2/a3P5xn9PR3zz4y1pe9CaOr34TD/xylRe9id1L3MT1X/rpP7d3buIloG5+LdV+e/dePPCrKFfXT86H278u63zS/TF3emQ8n3T6bLpz0jznpO1zTto946QH/kHxE/86Dzd/nYfjnZvYvPBN3Prda+ebmNe/ie3r38Tu9W9i//o3cXiRz97N9Wfv+u5NvMgDxPWvWDk9QNx5DNqvXv8mlte/ifXr38Tm9W9iXv8mtq9/Ey/x2b1dHx56VrunHjfH659wnluvrTbr/X3v+/r7UvvDzXvefuHf473YpX/z4D+ce8nn/MPy+jexeeWbOL21+fyK+N5HwM317dz+pzLLdv3wa8MvnPLb6c3/+fbnT9/+/Yfvr35t59Wf/ufH786/xfP05q//++/zn5x/z+e/f/7pu+//8Z+fv7/6jZ83v+zz6raX09dflv3um8934a/LZv1xmfXn2Ll6czanNw+fO+Hzsac/3c711ziuztjvPh5218cvp3e2Xt0kwun/W8/HzZwPODXZcTm/u9PnwXF/g3d17O7j5vqdzfrjnP74t9N9/j8=",
|
|
6571
6757
|
"brillig_names": [
|
|
6572
6758
|
"load",
|
|
6573
6759
|
"debug_log_oracle_wrapper",
|
|
6574
6760
|
"unsafe_padded_array_length",
|
|
6575
6761
|
"notify_created_contract_class_log"
|
|
6576
6762
|
],
|
|
6577
|
-
"verification_key": "
|
|
6763
|
+
"verification_key": "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"
|
|
6578
6764
|
},
|
|
6579
6765
|
{
|
|
6580
|
-
"name": "
|
|
6581
|
-
"is_unconstrained": true,
|
|
6582
|
-
"custom_attributes": [],
|
|
6583
|
-
"abi": {
|
|
6584
|
-
"parameters": [],
|
|
6585
|
-
"return_type": null,
|
|
6586
|
-
"error_types": {
|
|
6587
|
-
"2920182694213909827": {
|
|
6588
|
-
"error_kind": "string",
|
|
6589
|
-
"string": "attempt to subtract with overflow"
|
|
6590
|
-
},
|
|
6591
|
-
"3305101268118424981": {
|
|
6592
|
-
"error_kind": "string",
|
|
6593
|
-
"string": "Attempted to delete past the length of a CapsuleArray"
|
|
6594
|
-
},
|
|
6595
|
-
"3367683922240523006": {
|
|
6596
|
-
"error_kind": "fmtstring",
|
|
6597
|
-
"length": 58,
|
|
6598
|
-
"item_types": [
|
|
6599
|
-
{
|
|
6600
|
-
"kind": "field"
|
|
6601
|
-
}
|
|
6602
|
-
]
|
|
6603
|
-
},
|
|
6604
|
-
"5019202896831570965": {
|
|
6605
|
-
"error_kind": "string",
|
|
6606
|
-
"string": "attempt to add with overflow"
|
|
6607
|
-
},
|
|
6608
|
-
"5727012404371710682": {
|
|
6609
|
-
"error_kind": "string",
|
|
6610
|
-
"string": "push out of bounds"
|
|
6611
|
-
},
|
|
6612
|
-
"6753155520859132764": {
|
|
6613
|
-
"error_kind": "string",
|
|
6614
|
-
"string": "Failed to deliver note"
|
|
6615
|
-
},
|
|
6616
|
-
"8830323656616886390": {
|
|
6617
|
-
"error_kind": "string",
|
|
6618
|
-
"string": "Got a public log emitted by a different contract"
|
|
6619
|
-
},
|
|
6620
|
-
"13649294680379557736": {
|
|
6621
|
-
"error_kind": "string",
|
|
6622
|
-
"string": "extend_from_bounded_vec out of bounds"
|
|
6623
|
-
},
|
|
6624
|
-
"14657895983200220173": {
|
|
6625
|
-
"error_kind": "string",
|
|
6626
|
-
"string": "Attempted to read past the length of a CapsuleArray"
|
|
6627
|
-
},
|
|
6628
|
-
"16761564377371454734": {
|
|
6629
|
-
"error_kind": "string",
|
|
6630
|
-
"string": "Array index out of bounds"
|
|
6631
|
-
},
|
|
6632
|
-
"16775516380094354375": {
|
|
6633
|
-
"error_kind": "fmtstring",
|
|
6634
|
-
"length": 40,
|
|
6635
|
-
"item_types": []
|
|
6636
|
-
},
|
|
6637
|
-
"16954218183513903507": {
|
|
6638
|
-
"error_kind": "string",
|
|
6639
|
-
"string": "Attempted to read past end of BoundedVec"
|
|
6640
|
-
},
|
|
6641
|
-
"17843811134343075018": {
|
|
6642
|
-
"error_kind": "string",
|
|
6643
|
-
"string": "Stack too deep"
|
|
6644
|
-
}
|
|
6645
|
-
}
|
|
6646
|
-
},
|
|
6647
|
-
"bytecode": "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",
|
|
6648
|
-
"debug_symbols": "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",
|
|
6649
|
-
"brillig_names": [
|
|
6650
|
-
"sync_notes"
|
|
6651
|
-
]
|
|
6652
|
-
},
|
|
6653
|
-
{
|
|
6654
|
-
"name": "process_log",
|
|
6655
|
-
"is_unconstrained": true,
|
|
6656
|
-
"custom_attributes": [],
|
|
6657
|
-
"abi": {
|
|
6658
|
-
"parameters": [
|
|
6659
|
-
{
|
|
6660
|
-
"name": "_log_ciphertext",
|
|
6661
|
-
"type": {
|
|
6662
|
-
"kind": "struct",
|
|
6663
|
-
"path": "std::collections::bounded_vec::BoundedVec",
|
|
6664
|
-
"fields": [
|
|
6665
|
-
{
|
|
6666
|
-
"name": "storage",
|
|
6667
|
-
"type": {
|
|
6668
|
-
"kind": "array",
|
|
6669
|
-
"length": 18,
|
|
6670
|
-
"type": {
|
|
6671
|
-
"kind": "field"
|
|
6672
|
-
}
|
|
6673
|
-
}
|
|
6674
|
-
},
|
|
6675
|
-
{
|
|
6676
|
-
"name": "len",
|
|
6677
|
-
"type": {
|
|
6678
|
-
"kind": "integer",
|
|
6679
|
-
"sign": "unsigned",
|
|
6680
|
-
"width": 32
|
|
6681
|
-
}
|
|
6682
|
-
}
|
|
6683
|
-
]
|
|
6684
|
-
},
|
|
6685
|
-
"visibility": "private"
|
|
6686
|
-
},
|
|
6687
|
-
{
|
|
6688
|
-
"name": "_tx_hash",
|
|
6689
|
-
"type": {
|
|
6690
|
-
"kind": "field"
|
|
6691
|
-
},
|
|
6692
|
-
"visibility": "private"
|
|
6693
|
-
},
|
|
6694
|
-
{
|
|
6695
|
-
"name": "_unique_note_hashes_in_tx",
|
|
6696
|
-
"type": {
|
|
6697
|
-
"kind": "struct",
|
|
6698
|
-
"path": "std::collections::bounded_vec::BoundedVec",
|
|
6699
|
-
"fields": [
|
|
6700
|
-
{
|
|
6701
|
-
"name": "storage",
|
|
6702
|
-
"type": {
|
|
6703
|
-
"kind": "array",
|
|
6704
|
-
"length": 64,
|
|
6705
|
-
"type": {
|
|
6706
|
-
"kind": "field"
|
|
6707
|
-
}
|
|
6708
|
-
}
|
|
6709
|
-
},
|
|
6710
|
-
{
|
|
6711
|
-
"name": "len",
|
|
6712
|
-
"type": {
|
|
6713
|
-
"kind": "integer",
|
|
6714
|
-
"sign": "unsigned",
|
|
6715
|
-
"width": 32
|
|
6716
|
-
}
|
|
6717
|
-
}
|
|
6718
|
-
]
|
|
6719
|
-
},
|
|
6720
|
-
"visibility": "private"
|
|
6721
|
-
},
|
|
6722
|
-
{
|
|
6723
|
-
"name": "_first_nullifier_in_tx",
|
|
6724
|
-
"type": {
|
|
6725
|
-
"kind": "field"
|
|
6726
|
-
},
|
|
6727
|
-
"visibility": "private"
|
|
6728
|
-
},
|
|
6729
|
-
{
|
|
6730
|
-
"name": "_recipient",
|
|
6731
|
-
"type": {
|
|
6732
|
-
"kind": "struct",
|
|
6733
|
-
"path": "aztec::protocol_types::address::aztec_address::AztecAddress",
|
|
6734
|
-
"fields": [
|
|
6735
|
-
{
|
|
6736
|
-
"name": "inner",
|
|
6737
|
-
"type": {
|
|
6738
|
-
"kind": "field"
|
|
6739
|
-
}
|
|
6740
|
-
}
|
|
6741
|
-
]
|
|
6742
|
-
},
|
|
6743
|
-
"visibility": "private"
|
|
6744
|
-
}
|
|
6745
|
-
],
|
|
6746
|
-
"return_type": null,
|
|
6747
|
-
"error_types": {
|
|
6748
|
-
"16775516380094354375": {
|
|
6749
|
-
"error_kind": "fmtstring",
|
|
6750
|
-
"length": 40,
|
|
6751
|
-
"item_types": []
|
|
6752
|
-
},
|
|
6753
|
-
"17843811134343075018": {
|
|
6754
|
-
"error_kind": "string",
|
|
6755
|
-
"string": "Stack too deep"
|
|
6756
|
-
}
|
|
6757
|
-
}
|
|
6758
|
-
},
|
|
6759
|
-
"bytecode": "H4sIAAAAAAAA/+Wc6XLbNhDHKZu0TcmyZPmK3Svp3bRpKYnU0dNt0/u+lM+KYz8HHyPta7Rf2qer/jFXWsHojDteTPxPMMOhpYV2f1wuARBYuBadl8nsqFV/x9V5vTrj+060XKTucXXOrla6hrqyUIw1AsYVAsZVAsaYgDEhYFwjYFwnYNwgYEwJGOsEjA0Cxk0CxiYB4xYBY4uAsU3AuB2AMQRnh4Rzx5BTj+1D8e5G1z9G9wgY9wkYDwgYbxAwHhIwHhEwPkPA+CwB43MEjM8TML5AwHiTgPEWAeOLBIwvETC+TMD4CgHjqwSMrxEwvk7A+AYB420CxjcJGN8iYLxDwPg2AeM7BIwZAWOXgLFHwNgnYMwJGAsCxgEB45CAcUTAOCZgfJeA8T0CxvcJGD8gYPyQgPEjAsZjAsaPCRg/IWD8lIDxLgHjZwSMnxMwfkHA+CUB41cEjF8TMH5DwPgtAeN3BIzfEzD+QMD4IwHjTwSMPxMw/hKAMQTnryScv5FwTgJxRvcc6JXZgY1b2BiFjUfY2IONM9iYgo0f2FiBjQvYGIDEeyS2I3G8PTuQ+IykYiTsIgkWSaZI4kSSJJIQkeSHJDokqSEJDElWSGJCktDN2XFrdiCJBEkaSIJAkgEW8bFIjkVoLPJiERWLlFgExCIbFrGwSISrwiIHFhEwSY9JcEwyYxIXk6SYhMQkHybRMEmFSSBMsmASQyYJ8JKLl0i8pOElCC8ZGMRjkIxBKAZ5GERhkIJBADpZdGLoJNAIo5FDI4KHFA8AgmsS/XeRIPmnOqfVeUXJDTfRdVPHrqX+UTa+n3quz5C/n1Y6N4LoL4aiPw3Dn8lG27vlQr++FrG7Wp0n5cKXk3KZSeo8VHUeOnXkesLc7zwP669ur+n4KFLXIrbrYWz3a449fV+0TOzXo5Cxeb4pWdsTHtc/0nY0pU654Kk5sri8eB0iS5RM7i/s3Fb13NjacGTCgiLx21S+kXKvksk9jZVOu3gtRmHjNc8eX7zm3ScxXmNHFpcXr+P/xquOLTdek2hRpC0V2ZqS/e7I1pXsj3Jhu1Acg+rvsG3yeR+snz3rPmzHw69toayXC39IDK6q7xLlv0f+0fUdWapkcblsp159jpUdrUs4Eqd+Xn1uVec19Rv5fdtjf82xv8Tt+c71S+qpn3rqI9buVH83qgMx9Jf8Jrr47OI4rj5nVyrDwtdO2ukfdH1toaH+U9HfCKK/l4n+zTD8836qGeb+DkT/Vhj+efy0wvD3RH87DP+Z6N8Owz9/j+kE0V/Mx+U7Yfjn8b8bxv9z/r0w/HP9+2H45/f3IIz+sYw7bkSL4o4zD9X3dv1/b3zZcabYrzusocaZhw6P6x89zoTsyMPa9sjcZ/TIY+fIY8ena9NQ14Ghrm1DXQ1DXfuGutqGuuqGuvYMdbUMdaWGuizvo6W/LGN111CXZaxuGeq6ru2E5fNo6fvrGqsbhrosY8IyVi39tWOoy7KNthwDNA11WfYdls/QdY2vp6H9CtEPhV0PzDLfPFhkp987D2aoPxNfS6zquW9tU64vcer/6fh5M4ife1N5J5M2SPvCN1dlabvm2Isi//us2G96eIS77pFd5R/Mno5OTsf383wwzIuifzKsOfqF1f1OzzvrPkfX970b++bVDH098q3xtJRfUWIl23JkiZIJo17j8c07WvJfxv/aftsjc8del72XnWg51vTz2IgWz3Bc2l/7cHTeljxirPQn0fIabuTYT5z6f1ef3bbuqs/I2XDaPetPz6bF9MGD/GTacfRrH8JP/wJJ9PoyCV0AAA==",
|
|
6760
|
-
"debug_symbols": "tZbRCoMgGIXfxWsv0qV/26uMMawsBLGwGozo3acjttiuz0105NfPCz84K2ttvfR3F7phYpfryvzQmNkNIaV146yOznvX34/LrMgfofR7wzSakPM0mzizizgJUpzZ0OZ/KVU6pHPepiTExv/mSe7DRJ/JkrYbTwBCAyo04AwG6AINEGiARANOaECJBig0AG2yRpus0SZrtMmENpnQJhPaZEKbTGiTCW0yoU0mtMkENXlL6WGiM7W3e8PpltAcCs/8HO1P9xnj0Nh2iTa3oG8Byq+xlFzJfO1sr6gKLiqVIAn0Ag==",
|
|
6761
|
-
"brillig_names": [
|
|
6762
|
-
"process_log"
|
|
6763
|
-
]
|
|
6764
|
-
},
|
|
6765
|
-
{
|
|
6766
|
-
"name": "public_dispatch",
|
|
6766
|
+
"name": "public_dispatch",
|
|
6767
6767
|
"is_unconstrained": true,
|
|
6768
6768
|
"custom_attributes": [
|
|
6769
6769
|
"public"
|
|
@@ -6817,31 +6817,45 @@
|
|
|
6817
6817
|
"kind": "struct",
|
|
6818
6818
|
"path": "aztec::protocol_types::contract_class_id::ContractClassId"
|
|
6819
6819
|
}
|
|
6820
|
-
}
|
|
6820
|
+
}
|
|
6821
|
+
],
|
|
6822
|
+
"kind": "struct",
|
|
6823
|
+
"path": "ContractClassRegisterer::assert_class_id_is_registered_parameters"
|
|
6824
|
+
}
|
|
6825
|
+
}
|
|
6826
|
+
],
|
|
6827
|
+
"kind": "struct",
|
|
6828
|
+
"path": "ContractClassRegisterer::assert_class_id_is_registered_abi"
|
|
6829
|
+
},
|
|
6830
|
+
{
|
|
6831
|
+
"fields": [
|
|
6832
|
+
{
|
|
6833
|
+
"name": "parameters",
|
|
6834
|
+
"type": {
|
|
6835
|
+
"fields": [
|
|
6821
6836
|
{
|
|
6822
|
-
"name": "
|
|
6837
|
+
"name": "contract_class_id",
|
|
6823
6838
|
"type": {
|
|
6824
|
-
"
|
|
6839
|
+
"fields": [
|
|
6840
|
+
{
|
|
6841
|
+
"name": "inner",
|
|
6842
|
+
"type": {
|
|
6843
|
+
"kind": "field"
|
|
6844
|
+
}
|
|
6845
|
+
}
|
|
6846
|
+
],
|
|
6847
|
+
"kind": "struct",
|
|
6848
|
+
"path": "aztec::protocol_types::contract_class_id::ContractClassId"
|
|
6825
6849
|
}
|
|
6826
6850
|
},
|
|
6827
6851
|
{
|
|
6828
|
-
"name": "
|
|
6852
|
+
"name": "artifact_metadata_hash",
|
|
6829
6853
|
"type": {
|
|
6830
6854
|
"kind": "field"
|
|
6831
6855
|
}
|
|
6832
6856
|
},
|
|
6833
6857
|
{
|
|
6834
|
-
"name": "
|
|
6835
|
-
"type": {
|
|
6836
|
-
"kind": "array",
|
|
6837
|
-
"length": 5,
|
|
6838
|
-
"type": {
|
|
6839
|
-
"kind": "field"
|
|
6840
|
-
}
|
|
6841
|
-
}
|
|
6842
|
-
},
|
|
6843
|
-
{
|
|
6844
|
-
"name": "private_function_tree_leaf_index",
|
|
6858
|
+
"name": "private_functions_artifact_tree_root",
|
|
6845
6859
|
"type": {
|
|
6846
6860
|
"kind": "field"
|
|
6847
6861
|
}
|
|
@@ -6888,26 +6902,53 @@
|
|
|
6888
6902
|
"type": {
|
|
6889
6903
|
"kind": "field"
|
|
6890
6904
|
}
|
|
6891
|
-
},
|
|
6892
|
-
{
|
|
6893
|
-
"name": "vk_hash",
|
|
6894
|
-
"type": {
|
|
6895
|
-
"kind": "field"
|
|
6896
|
-
}
|
|
6897
6905
|
}
|
|
6898
6906
|
],
|
|
6899
6907
|
"kind": "struct",
|
|
6900
|
-
"path": "events::
|
|
6908
|
+
"path": "events::unconstrained_function_broadcasted::InnerUnconstrainedFunction"
|
|
6901
6909
|
}
|
|
6902
6910
|
}
|
|
6903
6911
|
],
|
|
6904
6912
|
"kind": "struct",
|
|
6905
|
-
"path": "ContractClassRegisterer::
|
|
6913
|
+
"path": "ContractClassRegisterer::broadcast_unconstrained_function_parameters"
|
|
6906
6914
|
}
|
|
6907
6915
|
}
|
|
6908
6916
|
],
|
|
6909
6917
|
"kind": "struct",
|
|
6910
|
-
"path": "ContractClassRegisterer::
|
|
6918
|
+
"path": "ContractClassRegisterer::broadcast_unconstrained_function_abi"
|
|
6919
|
+
},
|
|
6920
|
+
{
|
|
6921
|
+
"fields": [
|
|
6922
|
+
{
|
|
6923
|
+
"name": "parameters",
|
|
6924
|
+
"type": {
|
|
6925
|
+
"fields": [
|
|
6926
|
+
{
|
|
6927
|
+
"name": "artifact_hash",
|
|
6928
|
+
"type": {
|
|
6929
|
+
"kind": "field"
|
|
6930
|
+
}
|
|
6931
|
+
},
|
|
6932
|
+
{
|
|
6933
|
+
"name": "private_functions_root",
|
|
6934
|
+
"type": {
|
|
6935
|
+
"kind": "field"
|
|
6936
|
+
}
|
|
6937
|
+
},
|
|
6938
|
+
{
|
|
6939
|
+
"name": "public_bytecode_commitment",
|
|
6940
|
+
"type": {
|
|
6941
|
+
"kind": "field"
|
|
6942
|
+
}
|
|
6943
|
+
}
|
|
6944
|
+
],
|
|
6945
|
+
"kind": "struct",
|
|
6946
|
+
"path": "ContractClassRegisterer::register_parameters"
|
|
6947
|
+
}
|
|
6948
|
+
}
|
|
6949
|
+
],
|
|
6950
|
+
"kind": "struct",
|
|
6951
|
+
"path": "ContractClassRegisterer::register_abi"
|
|
6911
6952
|
},
|
|
6912
6953
|
{
|
|
6913
6954
|
"fields": [
|
|
@@ -6937,7 +6978,23 @@
|
|
|
6937
6978
|
}
|
|
6938
6979
|
},
|
|
6939
6980
|
{
|
|
6940
|
-
"name": "
|
|
6981
|
+
"name": "unconstrained_functions_artifact_tree_root",
|
|
6982
|
+
"type": {
|
|
6983
|
+
"kind": "field"
|
|
6984
|
+
}
|
|
6985
|
+
},
|
|
6986
|
+
{
|
|
6987
|
+
"name": "private_function_tree_sibling_path",
|
|
6988
|
+
"type": {
|
|
6989
|
+
"kind": "array",
|
|
6990
|
+
"length": 5,
|
|
6991
|
+
"type": {
|
|
6992
|
+
"kind": "field"
|
|
6993
|
+
}
|
|
6994
|
+
}
|
|
6995
|
+
},
|
|
6996
|
+
{
|
|
6997
|
+
"name": "private_function_tree_leaf_index",
|
|
6941
6998
|
"type": {
|
|
6942
6999
|
"kind": "field"
|
|
6943
7000
|
}
|
|
@@ -6984,130 +7041,73 @@
|
|
|
6984
7041
|
"type": {
|
|
6985
7042
|
"kind": "field"
|
|
6986
7043
|
}
|
|
6987
|
-
}
|
|
6988
|
-
],
|
|
6989
|
-
"kind": "struct",
|
|
6990
|
-
"path": "events::unconstrained_function_broadcasted::InnerUnconstrainedFunction"
|
|
6991
|
-
}
|
|
6992
|
-
}
|
|
6993
|
-
],
|
|
6994
|
-
"kind": "struct",
|
|
6995
|
-
"path": "ContractClassRegisterer::broadcast_unconstrained_function_parameters"
|
|
6996
|
-
}
|
|
6997
|
-
}
|
|
6998
|
-
],
|
|
6999
|
-
"kind": "struct",
|
|
7000
|
-
"path": "ContractClassRegisterer::broadcast_unconstrained_function_abi"
|
|
7001
|
-
},
|
|
7002
|
-
{
|
|
7003
|
-
"fields": [
|
|
7004
|
-
{
|
|
7005
|
-
"name": "parameters",
|
|
7006
|
-
"type": {
|
|
7007
|
-
"fields": [
|
|
7008
|
-
{
|
|
7009
|
-
"name": "contract_class_id",
|
|
7010
|
-
"type": {
|
|
7011
|
-
"fields": [
|
|
7044
|
+
},
|
|
7012
7045
|
{
|
|
7013
|
-
"name": "
|
|
7046
|
+
"name": "vk_hash",
|
|
7014
7047
|
"type": {
|
|
7015
7048
|
"kind": "field"
|
|
7016
7049
|
}
|
|
7017
7050
|
}
|
|
7018
7051
|
],
|
|
7019
7052
|
"kind": "struct",
|
|
7020
|
-
"path": "
|
|
7021
|
-
}
|
|
7022
|
-
}
|
|
7023
|
-
],
|
|
7024
|
-
"kind": "struct",
|
|
7025
|
-
"path": "ContractClassRegisterer::assert_class_id_is_registered_parameters"
|
|
7026
|
-
}
|
|
7027
|
-
}
|
|
7028
|
-
],
|
|
7029
|
-
"kind": "struct",
|
|
7030
|
-
"path": "ContractClassRegisterer::assert_class_id_is_registered_abi"
|
|
7031
|
-
},
|
|
7032
|
-
{
|
|
7033
|
-
"fields": [
|
|
7034
|
-
{
|
|
7035
|
-
"name": "parameters",
|
|
7036
|
-
"type": {
|
|
7037
|
-
"fields": [
|
|
7038
|
-
{
|
|
7039
|
-
"name": "artifact_hash",
|
|
7040
|
-
"type": {
|
|
7041
|
-
"kind": "field"
|
|
7042
|
-
}
|
|
7043
|
-
},
|
|
7044
|
-
{
|
|
7045
|
-
"name": "private_functions_root",
|
|
7046
|
-
"type": {
|
|
7047
|
-
"kind": "field"
|
|
7048
|
-
}
|
|
7049
|
-
},
|
|
7050
|
-
{
|
|
7051
|
-
"name": "public_bytecode_commitment",
|
|
7052
|
-
"type": {
|
|
7053
|
-
"kind": "field"
|
|
7053
|
+
"path": "events::private_function_broadcasted::InnerPrivateFunction"
|
|
7054
7054
|
}
|
|
7055
7055
|
}
|
|
7056
7056
|
],
|
|
7057
7057
|
"kind": "struct",
|
|
7058
|
-
"path": "ContractClassRegisterer::
|
|
7058
|
+
"path": "ContractClassRegisterer::broadcast_private_function_parameters"
|
|
7059
7059
|
}
|
|
7060
7060
|
}
|
|
7061
7061
|
],
|
|
7062
7062
|
"kind": "struct",
|
|
7063
|
-
"path": "ContractClassRegisterer::
|
|
7063
|
+
"path": "ContractClassRegisterer::broadcast_private_function_abi"
|
|
7064
7064
|
}
|
|
7065
7065
|
]
|
|
7066
7066
|
}
|
|
7067
7067
|
},
|
|
7068
7068
|
"file_map": {
|
|
7069
7069
|
"111": {
|
|
7070
|
-
"path": "/
|
|
7070
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/aztec.nr",
|
|
7071
7071
|
"source": "use crate::{\n discovery::private_notes::MAX_NOTE_PACKED_LEN,\n macros::{\n dispatch::generate_public_dispatch,\n functions::{\n stub_registry,\n utils::{create_message_discovery_call, find_and_transform_top_level_unconstrained_fns},\n },\n notes::{generate_note_export, NOTES},\n storage::STORAGE_LAYOUT_NAME,\n utils::{get_trait_impl_method, module_has_storage},\n },\n};\n\n/// Marks a contract as an Aztec contract, generating the interfaces for its functions and notes, as well as injecting\n/// the `process_log` and `sync_notes` functions PXE requires in order to discover notes.\n/// Note: This is a module annotation, so the returned quote gets injected inside the module (contract) itself.\npub comptime fn aztec(m: Module) -> Quoted {\n let interface = generate_contract_interface(m);\n\n find_and_transform_top_level_unconstrained_fns(m);\n\n let contract_library_method_compute_note_hash_and_nullifier =\n generate_contract_library_method_compute_note_hash_and_nullifier();\n let process_log = generate_process_log();\n let note_exports = generate_note_exports();\n let public_dispatch = generate_public_dispatch(m);\n let sync_notes = generate_sync_notes();\n\n quote {\n $note_exports\n $interface\n $contract_library_method_compute_note_hash_and_nullifier\n $process_log\n $public_dispatch\n $sync_notes\n }\n}\n\ncomptime fn generate_contract_interface(m: Module) -> Quoted {\n let module_name = m.name();\n let contract_stubs = stub_registry::get(m);\n let fn_stubs_quote = if contract_stubs.is_some() {\n contract_stubs.unwrap().join(quote {})\n } else {\n quote {}\n };\n\n let has_storage_layout = module_has_storage(m) & STORAGE_LAYOUT_NAME.get(m).is_some();\n let storage_layout_getter = if has_storage_layout {\n let storage_layout_name = STORAGE_LAYOUT_NAME.get(m).unwrap();\n quote {\n pub fn storage_layout() -> StorageLayoutFields {\n $storage_layout_name.fields\n }\n }\n } else {\n quote {}\n };\n\n let library_storage_layout_getter = if has_storage_layout {\n quote {\n #[contract_library_method]\n $storage_layout_getter\n }\n } else {\n quote {}\n };\n\n quote {\n pub struct $module_name {\n pub target_contract: dep::aztec::protocol_types::address::AztecAddress\n }\n\n impl $module_name {\n $fn_stubs_quote\n\n pub fn at(\n addr: aztec::protocol_types::address::AztecAddress\n ) -> Self {\n Self { target_contract: addr }\n }\n\n pub fn interface() -> Self {\n Self { target_contract: aztec::protocol_types::address::AztecAddress::zero() }\n }\n\n $storage_layout_getter\n }\n\n #[contract_library_method]\n pub fn at(\n addr: aztec::protocol_types::address::AztecAddress\n ) -> $module_name {\n $module_name { target_contract: addr }\n }\n\n #[contract_library_method]\n pub fn interface() -> $module_name {\n $module_name { target_contract: aztec::protocol_types::address::AztecAddress::zero() }\n }\n\n $library_storage_layout_getter\n\n }\n}\n\n/// Generates a contract library method called `_compute_note_hash_and_nullifier` which is used for note\n/// discovery (to create the `aztec::discovery::ComputeNoteHashAndNullifier` function) and to implement the\n/// `compute_note_hash_and_nullifier` unconstrained contract function.\ncomptime fn generate_contract_library_method_compute_note_hash_and_nullifier() -> Quoted {\n let notes = NOTES.entries();\n\n if notes.len() > 0 {\n let max_note_packed_len = notes.fold(\n 0,\n |acc, (_, (_, len, _, _)): (Type, (TypeDefinition, u32, Field, [(Quoted, u32, bool)]))| {\n if len > acc {\n len\n } else {\n acc\n }\n },\n );\n\n if max_note_packed_len > MAX_NOTE_PACKED_LEN {\n panic(\n f\"One of the notes has packed len {max_note_packed_len} but the maximum is {MAX_NOTE_PACKED_LEN}\",\n );\n }\n\n // Contracts that do define notes produce an if-else chain where `note_type_id` is matched against the\n // `get_note_type_id()` function of each note type that we know of, in order to identify the note type. Once we\n // know it we call we correct `unpack` method from the `Packable` trait to obtain the underlying note type, and\n // compute the note hash (non-siloed) and inner nullifier (also non-siloed).\n\n let mut if_note_type_id_match_statements_list = &[];\n for i in 0..notes.len() {\n let (typ, (_, packed_note_length, _, _)) = notes[i];\n\n let get_note_type_id = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteType },\n quote { get_id },\n );\n let unpack = get_trait_impl_method(\n typ,\n quote { crate::protocol_types::traits::Packable<_> },\n quote { unpack },\n );\n\n let compute_note_hash = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_note_hash },\n );\n\n let compute_nullifier_unconstrained = get_trait_impl_method(\n typ,\n quote { crate::note::note_interface::NoteHash },\n quote { compute_nullifier_unconstrained },\n );\n\n let if_or_else_if = if i == 0 {\n quote { if }\n } else {\n quote { else if }\n };\n\n if_note_type_id_match_statements_list = if_note_type_id_match_statements_list.push_back(\n quote {\n $if_or_else_if note_type_id == $get_note_type_id() {\n // As an extra safety check we make sure that the packed_note BoundedVec has the expected\n // length, since we're about to interpret it's raw storage as a fixed-size array by calling the\n // unpack function on it.\n let expected_len = $packed_note_length;\n let actual_len = packed_note.len();\n assert(\n actual_len == expected_len,\n f\"Expected packed note of length {expected_len} but got {actual_len} for note type id {note_type_id}\"\n );\n\n let note = $unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n\n let note_hash = $compute_note_hash(note, storage_slot);\n \n // The message discovery process finds settled notes, that is, notes that were created in prior\n // transactions and are therefore already part of the note hash tree. We therefore compute the\n // nullification note hash by treating the note as a settled note with the provided nonce.\n let note_hash_for_nullify = aztec::note::utils::compute_note_hash_for_nullify(\n aztec::note::retrieved_note::RetrievedNote{ \n note, \n contract_address, \n metadata: aztec::note::note_metadata::SettledNoteMetadata::new(nonce).into() \n }, \n storage_slot,\n );\n\n let inner_nullifier = $compute_nullifier_unconstrained(note, note_hash_for_nullify);\n\n Option::some(\n aztec::discovery::NoteHashAndNullifier {\n note_hash, inner_nullifier\n }\n )\n }\n },\n );\n }\n\n let if_note_type_id_match_statements = if_note_type_id_match_statements_list.join(quote {});\n\n quote {\n /// Unpacks an array into a note corresponding to `note_type_id` and then computes its note hash\n /// (non-siloed) and inner nullifier (non-siloed) assuming the note has been inserted into the note hash\n /// tree with `nonce`.\n ///\n /// The signature of this function notably matches the `aztec::discovery::ComputeNoteHashAndNullifier` type,\n /// and so it can be used to call functions from that module such as `discover_new_messages`, \n /// `do_process_log` and `attempt_note_discovery`.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n packed_note: BoundedVec<Field, aztec::discovery::private_notes::MAX_NOTE_PACKED_LEN>,\n storage_slot: Field,\n note_type_id: Field,\n contract_address: aztec::protocol_types::address::AztecAddress,\n nonce: Field,\n ) -> Option<aztec::discovery::NoteHashAndNullifier> {\n $if_note_type_id_match_statements\n else {\n Option::none()\n }\n }\n }\n } else {\n // Contracts with no notes still implement this function to avoid having special-casing, the implementation\n // simply throws immediately.\n quote {\n /// This contract does not use private notes, so this function should never be called as it will\n /// unconditionally fail.\n ///\n /// This function is automatically injected by the `#[aztec]` macro.\n #[contract_library_method]\n unconstrained fn _compute_note_hash_and_nullifier(\n _packed_note: BoundedVec<Field, aztec::discovery::private_notes::MAX_NOTE_PACKED_LEN>,\n _storage_slot: Field,\n _note_type_id: Field,\n _contract_address: aztec::protocol_types::address::AztecAddress,\n _nonce: Field,\n ) -> Option<aztec::discovery::NoteHashAndNullifier> {\n panic(f\"This contract does not use private notes\")\n }\n }\n }\n}\n\ncomptime fn generate_process_log() -> Quoted {\n // This mandatory function processes a log emitted by the contract. This is currently used to process private logs\n // and perform message discovery, resulting in new private notes, partial notes and events.\n // The bulk of the work of this function is done by aztec::discovery::do_process_log, so all we need to do is call\n // that function.\n\n // We'll produce the entire body of the function in one go and then insert it into the function.\n let notes = NOTES.entries();\n\n if notes.len() > 0 {\n quote {\n unconstrained fn process_log(\n log_ciphertext: BoundedVec<Field, dep::aztec::protocol_types::constants::PRIVATE_LOG_SIZE_IN_FIELDS>,\n tx_hash: Field,\n unique_note_hashes_in_tx: BoundedVec<Field, dep::aztec::protocol_types::constants::MAX_NOTE_HASHES_PER_TX>,\n first_nullifier_in_tx: Field,\n recipient: aztec::protocol_types::address::AztecAddress,\n ) {\n // Because this unconstrained function is injected after the contract is processed by the macros, it'll\n // not be modified by the macros that alter unconstrained functions. As such, we need to manually inject\n // the unconstrained execution context since it will not be available otherwise.\n let context = dep::aztec::context::unconstrained_context::UnconstrainedContext::new();\n\n // TODO(#10727): allow other contracts to process logs and deliver notes\n let contract_address = context.this_address();\n\n aztec::discovery::private_logs::do_process_log(\n contract_address,\n log_ciphertext,\n tx_hash,\n unique_note_hashes_in_tx,\n first_nullifier_in_tx,\n recipient,\n _compute_note_hash_and_nullifier,\n );\n }\n }\n } else {\n // Contracts with no notes still implement this function to avoid having special-casing, the implementation\n // simply throws immediately.\n quote {\n unconstrained fn process_log(\n _log_ciphertext: BoundedVec<Field, dep::aztec::protocol_types::constants::PRIVATE_LOG_SIZE_IN_FIELDS>,\n _tx_hash: Field,\n _unique_note_hashes_in_tx: BoundedVec<Field, dep::aztec::protocol_types::constants::MAX_NOTE_HASHES_PER_TX>,\n _first_nullifier_in_tx: Field,\n _recipient: aztec::protocol_types::address::AztecAddress,\n ) {\n panic(f\"This contract does not use private notes\")\n }\n }\n }\n}\n\ncomptime fn generate_note_exports() -> Quoted {\n let notes = NOTES.values();\n // Second value in each tuple is `note_packed_len` and that is ignored here because it's only used when\n // generating partial note helper functions.\n notes\n .map(|(s, _, note_type_id, fields): (TypeDefinition, u32, Field, [(Quoted, u32, bool)])| {\n generate_note_export(s, note_type_id, fields)\n })\n .join(quote {})\n}\n\ncomptime fn generate_sync_notes() -> Quoted {\n let message_discovery_call = create_message_discovery_call();\n quote {\n unconstrained fn sync_notes() {\n // Because this unconstrained function is injected after the contract is processed by the macros, it'll not\n // be modified by the macros that alter unconstrained functions. As such, we need to manually inject the\n // unconstrained execution context since it will not be available otherwise.\n let context = dep::aztec::context::unconstrained_context::UnconstrainedContext::new();\n\n $message_discovery_call\n }\n }\n}\n"
|
|
7072
7072
|
},
|
|
7073
7073
|
"119": {
|
|
7074
|
-
"path": "/
|
|
7074
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/macros/functions/utils.nr",
|
|
7075
7075
|
"source": "use crate::macros::{\n functions::{abi_export::create_fn_abi_export, call_interface_stubs::stub_fn, stub_registry},\n notes::NOTES,\n utils::{\n add_to_hasher, fn_has_noinitcheck, get_fn_visibility, is_fn_initializer, is_fn_internal,\n is_fn_private, is_fn_public, is_fn_view, modify_fn_body, module_has_initializer,\n module_has_storage,\n },\n};\nuse protocol_types::meta::generate_serialize_to_fields;\nuse std::meta::type_of;\n\npub(crate) comptime fn transform_private(f: FunctionDefinition) -> Quoted {\n let fn_abi = create_fn_abi_export(f);\n let fn_stub = stub_fn(f);\n stub_registry::register(f.module(), fn_stub);\n\n // If a function is further modified as unconstrained, we throw an error\n if f.is_unconstrained() {\n let name = f.name();\n panic(\n f\"Function {name} is annotated with #[private] but marked as unconstrained, remove unconstrained keyword\",\n );\n }\n\n let module_has_initializer = module_has_initializer(f.module());\n let module_has_storage = module_has_storage(f.module());\n\n // Private functions undergo a lot of transformations from their Aztec.nr form into a circuit that can be fed to the\n // Private Kernel Circuit.\n // First we change the function signature so that it also receives `PrivateContextInputs`, which contain information\n // about the execution context (e.g. the caller).\n let original_params = f.parameters();\n f.set_parameters(&[(\n quote { inputs },\n quote { crate::context::inputs::private_context_inputs::PrivateContextInputs }.as_type(),\n )]\n .append(original_params));\n\n let mut body = f.body().as_block().unwrap();\n\n // The original params are hashed and passed to the `context` object, so that the kernel can verify we've received\n // the correct values.\n // TODO: Optimize args_hasher for small number of arguments\n let args_hasher_name = quote { args_hasher };\n let args_hasher = original_params.fold(\n quote {\n let mut $args_hasher_name = dep::aztec::hash::ArgsHasher::new();\n },\n |args_hasher, param: (Quoted, Type)| {\n let (name, typ) = param;\n let appended_arg = add_to_hasher(args_hasher_name, name, typ);\n quote {\n $args_hasher\n $appended_arg\n }\n },\n );\n\n let context_creation = quote {\n let mut context = dep::aztec::context::private_context::PrivateContext::new(inputs, dep::aztec::protocol_types::traits::Hash::hash($args_hasher_name));\n };\n\n // Modifications introduced by the different marker attributes.\n let internal_check = if is_fn_internal(f) {\n create_internal_check(f)\n } else {\n quote {}\n };\n\n let view_check = if is_fn_view(f) {\n create_view_check(f)\n } else {\n quote {}\n };\n\n let (assert_initializer, mark_as_initialized) = if is_fn_initializer(f) {\n (create_assert_correct_initializer_args(f), create_mark_as_initialized(f))\n } else {\n (quote {}, quote {})\n };\n\n let storage_init = if module_has_storage {\n quote {\n // Some functions don't access storage, but it'd be quite difficult to only inject this variable if it is\n // referenced. We instead ignore 'unused variable' warnings for it.\n #[allow(unused_variables)]\n let storage = Storage::init(&mut context);\n }\n } else {\n quote {}\n };\n\n // Initialization checks are not included in contracts that don't have initializers.\n let init_check = if module_has_initializer & !is_fn_initializer(f) & !fn_has_noinitcheck(f) {\n create_init_check(f)\n } else {\n quote {}\n };\n\n // All private functions perform message discovery, since they may need to access notes. This is slightly\n // inefficient and could be improved by only doing it once we actually attempt to read any.\n let message_discovery_call = if NOTES.len() > 0 {\n create_message_discovery_call()\n } else {\n quote {}\n };\n\n // Finally, we need to change the return type to be `PrivateCircuitPublicInputs`, which is what the Private Kernel\n // circuit expects.\n let return_value_var_name = quote { macro__returned__values };\n\n let return_value_type = f.return_type();\n let return_value = if body.len() == 0 {\n quote {}\n } else if return_value_type != type_of(()) {\n // The original return value is passed to a second args hasher which the context receives.\n let (body_without_return, last_body_expr) = body.pop_back();\n let return_value = last_body_expr.quoted();\n let return_value_assignment =\n quote { let $return_value_var_name: $return_value_type = $return_value; };\n let return_hasher_name = quote { return_hasher };\n let return_value_into_hasher =\n add_to_hasher(return_hasher_name, return_value_var_name, return_value_type);\n\n body = body_without_return;\n\n quote {\n let mut $return_hasher_name = dep::aztec::hash::ArgsHasher::new();\n $return_value_assignment\n $return_value_into_hasher\n context.set_return_hash($return_hasher_name);\n }\n } else {\n let (body_without_return, last_body_expr) = body.pop_back();\n if !last_body_expr.has_semicolon()\n & last_body_expr.as_for().is_none()\n & last_body_expr.as_assert().is_none()\n & last_body_expr.as_for_range().is_none()\n & last_body_expr.as_assert_eq().is_none()\n & last_body_expr.as_let().is_none() {\n let unused_return_value_name = f\"_{return_value_var_name}\".quoted_contents();\n body = body_without_return.push_back(\n quote { let $unused_return_value_name = $last_body_expr; }.as_expr().unwrap(),\n );\n }\n quote {}\n };\n\n let context_finish = quote { context.finish() };\n\n let to_prepend = quote {\n $args_hasher\n $context_creation\n $assert_initializer\n $init_check\n $internal_check\n $view_check\n $storage_init\n $message_discovery_call\n };\n\n let to_append = quote {\n $return_value\n $mark_as_initialized\n $context_finish\n };\n let modified_body = modify_fn_body(body, to_prepend, to_append);\n f.set_body(modified_body);\n f.set_return_type(\n quote { dep::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs }\n .as_type(),\n );\n f.set_return_data();\n\n fn_abi\n}\n\npub(crate) comptime fn transform_public(f: FunctionDefinition) -> Quoted {\n let fn_abi = create_fn_abi_export(f);\n let fn_stub = stub_fn(f);\n stub_registry::register(f.module(), fn_stub);\n\n // If a function is further modified as unconstrained, we throw an error\n if f.is_unconstrained() {\n let name = f.name();\n panic(\n f\"Function {name} is annotated with #[public] but marked as unconstrained, remove unconstrained keyword\",\n );\n }\n\n let module_has_initializer = module_has_initializer(f.module());\n let module_has_storage = module_has_storage(f.module());\n\n // Public functions undergo a lot of transformations from their Aztec.nr form.\n let original_params = f.parameters();\n let args_len = original_params\n .map(|(name, typ): (Quoted, Type)| {\n generate_serialize_to_fields(name, typ, &[], false).0.len()\n })\n .fold(0, |acc: u32, val: u32| acc + val);\n\n // Unlike in the private case, in public the `context` does not need to receive the hash of the original params.\n let context_creation = quote {\n let mut context = dep::aztec::context::public_context::PublicContext::new(|| {\n // We start from 1 because we skip the selector for the dispatch function.\n let serialized_args : [Field; $args_len] = dep::aztec::context::public_context::calldata_copy(1, $args_len);\n dep::aztec::hash::hash_args_array(serialized_args)\n });\n };\n\n // Modifications introduced by the different marker attributes.\n let internal_check = if is_fn_internal(f) {\n create_internal_check(f)\n } else {\n quote {}\n };\n\n let view_check = if is_fn_view(f) {\n create_view_check(f)\n } else {\n quote {}\n };\n\n let (assert_initializer, mark_as_initialized) = if is_fn_initializer(f) {\n (create_assert_correct_initializer_args(f), create_mark_as_initialized(f))\n } else {\n (quote {}, quote {})\n };\n\n let storage_init = if module_has_storage {\n // Some functions don't access storage, but it'd be quite difficult to only inject this variable if it is\n // referenced. We instead ignore 'unused variable' warnings for it.\n quote {\n #[allow(unused_variables)]\n let storage = Storage::init(&mut context);\n }\n } else {\n quote {}\n };\n\n // Initialization checks are not included in contracts that don't have initializers.\n let init_check = if module_has_initializer & !fn_has_noinitcheck(f) & !is_fn_initializer(f) {\n create_init_check(f)\n } else {\n quote {}\n };\n\n let to_prepend = quote {\n $context_creation\n $assert_initializer\n $init_check\n $internal_check\n $view_check\n $storage_init\n };\n\n let to_append = quote {\n $mark_as_initialized\n };\n\n let body = f.body().as_block().unwrap();\n let modified_body = modify_fn_body(body, to_prepend, to_append);\n f.set_body(modified_body);\n\n // All public functions are automatically made unconstrained, even if they were not marked as such. This is because\n // instead of compiling into a circuit, they will compile to bytecode that will be later transpiled into AVM\n // bytecode.\n f.set_unconstrained(true);\n f.set_return_public(true);\n\n fn_abi\n}\n\npub(crate) comptime fn find_and_transform_top_level_unconstrained_fns(m: Module) {\n // Top-level unconstrained fns are contract entrypoints, but they're not explicitly designated in any way. They're\n // the fallback case for a function that matches no other rules.\n // TODO(#12743): improve this\n\n // We first find non-standard contract entrypoints, i.e. functions in the `contract` mod that are not private or\n // public, but which *are* contract entrypoints (i.e. they're not opting out via the #[test] or\n // #[contract_library_method] attributes). Ideally entrypoints would be explicitly designated instead.\n let non_private_public_entrypoint_functions = m.functions().filter(|f: FunctionDefinition| {\n !is_fn_private(f)\n & !is_fn_public(f)\n & !f.has_named_attribute(\"contract_library_method\")\n & !f.has_named_attribute(\"test\")\n });\n\n // TODO: uncomment the code below and emit a warning once support for them is added to Noir (tracked in\n // https://github.com/noir-lang/noir/issues/7714). We can't simply print a message since that'd otherwise break the\n // output of utils such as `nargo test --list-tests`.\n // // We don't expect to see any custom constrained entrypoints (i.e. private functions created outside of aztec-nr's\n // // #[private] macro, possibly resulting in a non-standard interface).\n // for f in non_private_public_entrypoint_functions.filter(|f: FunctionDefinition| {\n // !f.is_unconstrained()\n // }) {\n // let name = f.name();\n // warn(\n // f\"found private contract function '{name}' which does not have the #[private] attribute - make sure you know what you're doing!\",\n // );\n // }\n\n // An unconstrained contract entrypoints is what we call a top-level unconstrained function, to which we apply the\n // appropriate transformation. Ideally these would be explicitly designated as such instead.\n for f in non_private_public_entrypoint_functions.filter(|f: FunctionDefinition| {\n f.is_unconstrained()\n }) {\n transform_top_level_unconstrained(f);\n }\n}\n\npub(crate) comptime fn transform_top_level_unconstrained(f: FunctionDefinition) {\n let context_creation = quote { let mut context = dep::aztec::context::unconstrained_context::UnconstrainedContext::new(); };\n let module_has_storage = module_has_storage(f.module());\n\n let storage_init = if module_has_storage {\n quote {\n // Some functions don't access storage, but it'd be quite difficult to only inject this variable if it is\n // referenced. We instead ignore 'unused variable' warnings for it.\n #[allow(unused_variables)]\n let storage = Storage::init(context);\n }\n } else {\n quote {}\n };\n\n // All unconstrained functions perform message discovery, since they may need to access private notes that would be\n // found during this process. This is slightly inefficient and could be improved by only doing it once we actually\n // attempt to read any.\n let message_discovery_call = if NOTES.len() > 0 {\n create_message_discovery_call()\n } else {\n quote {}\n };\n\n let to_prepend = quote {\n $context_creation\n $storage_init\n $message_discovery_call\n };\n let body = f.body().as_block().unwrap();\n let modified_body = modify_fn_body(body, to_prepend, quote {});\n f.set_return_public(true);\n f.set_body(modified_body);\n}\n\ncomptime fn create_internal_check(f: FunctionDefinition) -> Quoted {\n let name = f.name();\n let assertion_message = f\"Function {name} can only be called internally\";\n quote { assert(context.msg_sender() == context.this_address(), $assertion_message); }\n}\n\ncomptime fn create_view_check(f: FunctionDefinition) -> Quoted {\n let name = f.name();\n let assertion_message = f\"Function {name} can only be called statically\";\n if is_fn_private(f) {\n // Here `context` is of type context::PrivateContext\n quote { assert(context.inputs.call_context.is_static_call == true, $assertion_message); }\n } else {\n // Here `context` is of type context::PublicContext\n quote { assert(context.is_static_call(), $assertion_message); }\n }\n}\n\ncomptime fn create_assert_correct_initializer_args(f: FunctionDefinition) -> Quoted {\n let fn_visibility = get_fn_visibility(f);\n f\"dep::aztec::macros::functions::initialization_utils::assert_initialization_matches_address_preimage_{fn_visibility}(context);\"\n .quoted_contents()\n}\n\ncomptime fn create_mark_as_initialized(f: FunctionDefinition) -> Quoted {\n let fn_visibility = get_fn_visibility(f);\n f\"dep::aztec::macros::functions::initialization_utils::mark_as_initialized_{fn_visibility}(&mut context);\"\n .quoted_contents()\n}\n\ncomptime fn create_init_check(f: FunctionDefinition) -> Quoted {\n let fn_visibility = get_fn_visibility(f);\n f\"dep::aztec::macros::functions::initialization_utils::assert_is_initialized_{fn_visibility}(&mut context);\"\n .quoted_contents()\n}\n\n/// Injects a call to `aztec::discovery::discover_new_messages`, causing for new notes to be added to PXE and made\n/// available for the current execution.\npub(crate) comptime fn create_message_discovery_call() -> Quoted {\n quote {\n /// Safety: message discovery returns nothing and is performed solely for its side-effects. It is therefore\n /// always safe to call.\n unsafe {\n dep::aztec::discovery::discover_new_messages(\n context.this_address(),\n _compute_note_hash_and_nullifier,\n );\n };\n }\n}\n"
|
|
7076
7076
|
},
|
|
7077
7077
|
"141": {
|
|
7078
|
-
"path": "/
|
|
7078
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/capsules.nr",
|
|
7079
7079
|
"source": "use protocol_types::{address::AztecAddress, traits::{Deserialize, Serialize}};\n\n/// Stores arbitrary information in a per-contract non-volatile database, which can later be retrieved with `load`. If\n/// data was already stored at this slot, it is overwritten.\npub unconstrained fn store<T, let N: u32>(contract_address: AztecAddress, slot: Field, value: T)\nwhere\n T: Serialize<N>,\n{\n let serialized = value.serialize();\n store_oracle(contract_address, slot, serialized);\n}\n\n/// Returns data previously stored via `storeCapsule` in the per-contract non-volatile database. Returns Option::none() if\n/// nothing was stored at the given slot.\npub unconstrained fn load<T, let N: u32>(contract_address: AztecAddress, slot: Field) -> Option<T>\nwhere\n T: Deserialize<N>,\n{\n let serialized_option = load_oracle::<N>(contract_address, slot, N);\n serialized_option.map(|arr| Deserialize::deserialize(arr))\n}\n\n/// Deletes data in the per-contract non-volatile database. Does nothing if no data was present.\npub unconstrained fn delete(contract_address: AztecAddress, slot: Field) {\n delete_oracle(contract_address, slot);\n}\n\n/// Copies a number of contiguous entries in the per-contract non-volatile database. This allows for efficient data\n/// structures by avoiding repeated calls to `loadCapsule` and `storeCapsule`.\n/// Supports overlapping source and destination regions (which will result in the overlapped source values being\n/// overwritten). All copied slots must exist in the database (i.e. have been stored and not deleted)\npub unconstrained fn copy(\n contract_address: AztecAddress,\n src_slot: Field,\n dst_slot: Field,\n num_entries: u32,\n) {\n copy_oracle(contract_address, src_slot, dst_slot, num_entries);\n}\n\n#[oracle(storeCapsule)]\nunconstrained fn store_oracle<let N: u32>(\n contract_address: AztecAddress,\n slot: Field,\n values: [Field; N],\n) {}\n\n/// We need to pass in `array_len` (the value of N) as a parameter to tell the oracle how many fields the response must\n/// have.\n///\n/// Note that the oracle returns an Option<[Field; N]> because we cannot return an Option<T> directly. That would\n/// require for the oracle resolver to know the shape of T (e.g. if T were a struct of 3 u32 values then the expected\n/// response shape would be 3 single items, whereas it were a struct containing `u32, [Field;10], u32` then the expected\n/// shape would be single, array, single.). Instead, we return the serialization and deserialize in Noir.\n#[oracle(loadCapsule)]\nunconstrained fn load_oracle<let N: u32>(\n contract_address: AztecAddress,\n slot: Field,\n array_len: u32,\n) -> Option<[Field; N]> {}\n\n#[oracle(deleteCapsule)]\nunconstrained fn delete_oracle(contract_address: AztecAddress, slot: Field) {}\n\n#[oracle(copyCapsule)]\nunconstrained fn copy_oracle(\n contract_address: AztecAddress,\n src_slot: Field,\n dst_slot: Field,\n num_entries: u32,\n) {}\n\nmod test {\n // These tests are sort of redundant since we already test the oracle implementation directly in TypeScript, but\n // they are cheap regardless and help ensure both that the TXE implementation works accordingly and that the Noir\n // oracles are hooked up correctly.\n\n use crate::{\n oracle::capsules::{copy, delete, load, store},\n test::{helpers::test_environment::TestEnvironment, mocks::mock_struct::MockStruct},\n };\n use protocol_types::{address::AztecAddress, traits::{FromField, ToField}};\n\n unconstrained fn setup() -> AztecAddress {\n let env = TestEnvironment::new();\n env.contract_address()\n }\n\n global SLOT: Field = 1;\n\n #[test]\n unconstrained fn stores_and_loads() {\n let contract_address = setup();\n\n let value = MockStruct::new(5, 6);\n store(contract_address, SLOT, value);\n\n assert_eq(load(contract_address, SLOT).unwrap(), value);\n }\n\n #[test]\n unconstrained fn store_overwrites() {\n let contract_address = setup();\n\n let value = MockStruct::new(5, 6);\n store(contract_address, SLOT, value);\n\n let new_value = MockStruct::new(7, 8);\n store(contract_address, SLOT, new_value);\n\n assert_eq(load(contract_address, SLOT).unwrap(), new_value);\n }\n\n #[test]\n unconstrained fn loads_empty_slot() {\n let contract_address = setup();\n\n let loaded_value: Option<MockStruct> = load(contract_address, SLOT);\n assert_eq(loaded_value, Option::none());\n }\n\n #[test]\n unconstrained fn deletes_stored_value() {\n let contract_address = setup();\n\n let value = MockStruct::new(5, 6);\n store(contract_address, SLOT, value);\n delete(contract_address, SLOT);\n\n let loaded_value: Option<MockStruct> = load(contract_address, SLOT);\n assert_eq(loaded_value, Option::none());\n }\n\n #[test]\n unconstrained fn deletes_empty_slot() {\n let contract_address = setup();\n\n delete(contract_address, SLOT);\n let loaded_value: Option<MockStruct> = load(contract_address, SLOT);\n assert_eq(loaded_value, Option::none());\n }\n\n #[test]\n unconstrained fn copies_non_overlapping_values() {\n let contract_address = setup();\n\n let src = 5;\n\n let values = [MockStruct::new(5, 6), MockStruct::new(7, 8), MockStruct::new(9, 10)];\n store(contract_address, src, values[0]);\n store(contract_address, src + 1, values[1]);\n store(contract_address, src + 2, values[2]);\n\n let dst = 10;\n copy(contract_address, src, dst, 3);\n\n assert_eq(load(contract_address, dst).unwrap(), values[0]);\n assert_eq(load(contract_address, dst + 1).unwrap(), values[1]);\n assert_eq(load(contract_address, dst + 2).unwrap(), values[2]);\n }\n\n #[test]\n unconstrained fn copies_overlapping_values_with_src_ahead() {\n let contract_address = setup();\n\n let src = 1;\n\n let values = [MockStruct::new(5, 6), MockStruct::new(7, 8), MockStruct::new(9, 10)];\n store(contract_address, src, values[0]);\n store(contract_address, src + 1, values[1]);\n store(contract_address, src + 2, values[2]);\n\n let dst = 2;\n copy(contract_address, src, dst, 3);\n\n assert_eq(load(contract_address, dst).unwrap(), values[0]);\n assert_eq(load(contract_address, dst + 1).unwrap(), values[1]);\n assert_eq(load(contract_address, dst + 2).unwrap(), values[2]);\n\n // src[1] and src[2] should have been overwritten since they are also dst[0] and dst[1]\n assert_eq(load(contract_address, src).unwrap(), values[0]); // src[0] (unchanged)\n assert_eq(load(contract_address, src + 1).unwrap(), values[0]); // dst[0]\n assert_eq(load(contract_address, src + 2).unwrap(), values[1]); // dst[1]\n }\n\n #[test]\n unconstrained fn copies_overlapping_values_with_dst_ahead() {\n let contract_address = setup();\n\n let src = 2;\n\n let values = [MockStruct::new(5, 6), MockStruct::new(7, 8), MockStruct::new(9, 10)];\n store(contract_address, src, values[0]);\n store(contract_address, src + 1, values[1]);\n store(contract_address, src + 2, values[2]);\n\n let dst = 1;\n copy(contract_address, src, dst, 3);\n\n assert_eq(load(contract_address, dst).unwrap(), values[0]);\n assert_eq(load(contract_address, dst + 1).unwrap(), values[1]);\n assert_eq(load(contract_address, dst + 2).unwrap(), values[2]);\n\n // src[0] and src[1] should have been overwritten since they are also dst[1] and dst[2]\n assert_eq(load(contract_address, src).unwrap(), values[1]); // dst[1]\n assert_eq(load(contract_address, src + 1).unwrap(), values[2]); // dst[2]\n assert_eq(load(contract_address, src + 2).unwrap(), values[2]); // src[2] (unchanged)\n }\n\n #[test(should_fail_with = \"copy empty slot\")]\n unconstrained fn cannot_copy_empty_values() {\n let contract_address = setup();\n\n copy(contract_address, SLOT, SLOT, 1);\n }\n\n #[test(should_fail_with = \"not allowed to access\")]\n unconstrained fn cannot_store_other_contract() {\n let contract_address = setup();\n let other_contract_address = AztecAddress::from_field(contract_address.to_field() + 1);\n\n let value = MockStruct::new(5, 6);\n store(other_contract_address, SLOT, value);\n }\n\n #[test(should_fail_with = \"not allowed to access\")]\n unconstrained fn cannot_load_other_contract() {\n let contract_address = setup();\n let other_contract_address = AztecAddress::from_field(contract_address.to_field() + 1);\n\n let _: Option<MockStruct> = load(other_contract_address, SLOT);\n }\n\n #[test(should_fail_with = \"not allowed to access\")]\n unconstrained fn cannot_delete_other_contract() {\n let contract_address = setup();\n let other_contract_address = AztecAddress::from_field(contract_address.to_field() + 1);\n\n delete(other_contract_address, SLOT);\n }\n\n #[test(should_fail_with = \"not allowed to access\")]\n unconstrained fn cannot_copy_other_contract() {\n let contract_address = setup();\n let other_contract_address = AztecAddress::from_field(contract_address.to_field() + 1);\n\n copy(other_contract_address, SLOT, SLOT, 0);\n }\n}\n"
|
|
7080
7080
|
},
|
|
7081
7081
|
"143": {
|
|
7082
|
-
"path": "/
|
|
7082
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/execution.nr",
|
|
7083
7083
|
"source": "use dep::protocol_types::address::AztecAddress;\n\n#[oracle(getContractAddress)]\nunconstrained fn get_contract_address_oracle() -> AztecAddress {}\n\n#[oracle(getBlockNumber)]\nunconstrained fn get_block_number_oracle() -> u32 {}\n\n#[oracle(getChainId)]\nunconstrained fn get_chain_id_oracle() -> Field {}\n\n#[oracle(getVersion)]\nunconstrained fn get_version_oracle() -> Field {}\n\npub unconstrained fn get_contract_address() -> AztecAddress {\n get_contract_address_oracle()\n}\n\npub unconstrained fn get_block_number() -> u32 {\n get_block_number_oracle()\n}\n\npub unconstrained fn get_chain_id() -> Field {\n get_chain_id_oracle()\n}\n\npub unconstrained fn get_version() -> Field {\n get_version_oracle()\n}\n"
|
|
7084
7084
|
},
|
|
7085
7085
|
"152": {
|
|
7086
|
-
"path": "/
|
|
7086
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/logs.nr",
|
|
7087
7087
|
"source": "use dep::protocol_types::address::AztecAddress;\n\n/// The below only exists to broadcast the raw log, so we can provide it to the base rollup later to be constrained.\npub unconstrained fn notify_created_contract_class_log<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32,\n) {\n notify_created_contract_class_log_private_oracle(contract_address, message, counter)\n}\n\n#[oracle(notifyCreatedContractClassLog)]\nunconstrained fn notify_created_contract_class_log_private_oracle<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32,\n) {}\n"
|
|
7088
7088
|
},
|
|
7089
7089
|
"153": {
|
|
7090
|
-
"path": "/
|
|
7090
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/message_discovery.nr",
|
|
7091
7091
|
"source": "use crate::discovery::private_notes::MAX_NOTE_PACKED_LEN;\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::{MAX_NOTE_HASHES_PER_TX, PUBLIC_LOG_DATA_SIZE_IN_FIELDS},\n};\n\n/// Finds new notes that may have been sent to all registered accounts in PXE in the current contract and makes them\n/// available for later querying via the `get_notes` oracle.\npub unconstrained fn sync_notes() {\n sync_notes_oracle();\n}\n\n#[oracle(syncNotes)]\nunconstrained fn sync_notes_oracle() {}\n\n/// Informs PXE of a note's existence so that it can later be retrieved by the `getNotes` oracle. The note will be\n/// scoped to `contract_address`, meaning other contracts will not be able to access it unless authorized.\n///\n/// The packed note is what `getNotes` will later return. PXE indexes notes by `storage_slot`, so this value\n/// is typically used to filter notes that correspond to different state variables. `note_hash` and `nullifier` are\n/// the inner hashes, i.e. the raw hashes returned by `NoteHash::compute_note_hash` and\n/// `NoteHash::compute_nullifier`. PXE will verify that the siloed unique note hash was inserted into the tree\n/// at `tx_hash`, and will store the nullifier to later check for nullification.\n///\n/// `recipient` is the account to which the note was sent to. Other accounts will not be able to access this note (e.g.\n/// other accounts will not be able to see one another's token balance notes, even in the same PXE) unless authorized.\n///\n/// Returns true if the note was successfully delivered and added to PXE's database.\npub unconstrained fn deliver_note(\n contract_address: AztecAddress,\n storage_slot: Field,\n nonce: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n note_hash: Field,\n nullifier: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) -> bool {\n deliver_note_oracle(\n contract_address,\n storage_slot,\n nonce,\n packed_note,\n note_hash,\n nullifier,\n tx_hash,\n recipient,\n )\n}\n\n/// The contents of a public log, plus contextual information about the transaction in which the log was emitted. This\n/// is the data required in order to discover notes that are being delivered in a log.\n// TODO(#11639): this could also be used to fetch private logs, but the `BoundedVec` maximum length is that of a public\n// log.\npub struct LogWithTxData {\n pub log_content: BoundedVec<Field, PUBLIC_LOG_DATA_SIZE_IN_FIELDS>,\n pub tx_hash: Field,\n /// The array of new note hashes created by `tx_hash`\n pub unique_note_hashes_in_tx: BoundedVec<Field, MAX_NOTE_HASHES_PER_TX>,\n /// The first nullifier created by `tx_hash`\n pub first_nullifier_in_tx: Field,\n}\n\n/// Fetches a log from the node that has the corresponding `tag`. The log can be either a public or a private log, and\n/// the tag is the first field in the log's content. Returns `Option::none` if no such log exists. Throws if more than\n/// one log with that tag exists.\n/// Public logs have an extra field included at the beginning with the address of the contract that emitted them.\n// TODO(#11627): handle multiple logs with the same tag.\n// TODO(#10273): improve contract siloing of logs, don't introduce an extra field.\npub unconstrained fn get_log_by_tag(tag: Field) -> Option<LogWithTxData> {\n get_log_by_tag_oracle(tag)\n}\n\n#[oracle(deliverNote)]\nunconstrained fn deliver_note_oracle(\n contract_address: AztecAddress,\n storage_slot: Field,\n nonce: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n note_hash: Field,\n nullifier: Field,\n tx_hash: Field,\n recipient: AztecAddress,\n) -> bool {}\n\n#[oracle(getLogByTag)]\nunconstrained fn get_log_by_tag_oracle(tag: Field) -> Option<LogWithTxData> {}\n"
|
|
7092
7092
|
},
|
|
7093
7093
|
"155": {
|
|
7094
|
-
"path": "/
|
|
7094
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/notes.nr",
|
|
7095
7095
|
"source": "use crate::{\n note::{note_interface::NoteType, note_metadata::NoteMetadata, retrieved_note::RetrievedNote},\n utils::array,\n};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n indexed_tagging_secret::{INDEXED_TAGGING_SECRET_LENGTH, IndexedTaggingSecret},\n traits::{Deserialize, FromField, Packable},\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 packed_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe {\n notify_created_note_oracle_wrapper(\n storage_slot,\n note_type_id,\n packed_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 // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call.\n unsafe { notify_nullified_note_oracle_wrapper(nullifier, note_hash, counter) };\n}\n\n/// Notifies the simulator that a non-note nullifier has been created, so that it can be used for note nonces.\npub fn notify_created_nullifier(nullifier: Field) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to\n // call.\n unsafe { notify_created_nullifier_oracle_wrapper(nullifier) };\n}\n\nunconstrained fn notify_created_note_oracle_wrapper<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n packed_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n notify_created_note_oracle(storage_slot, note_type_id, packed_note, note_hash, counter);\n}\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _packed_note: [Field; N],\n _note_hash: Field,\n _counter: u32,\n) {}\n\nunconstrained fn notify_nullified_note_oracle_wrapper(\n nullifier: Field,\n note_hash: Field,\n counter: u32,\n) {\n notify_nullified_note_oracle(nullifier, note_hash, counter);\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle(_nullifier: Field, _note_hash: Field, _counter: u32) {}\n\nunconstrained fn notify_created_nullifier_oracle_wrapper(nullifier: Field) {\n notify_created_nullifier_oracle(nullifier);\n}\n\n#[oracle(notifyCreatedNullifier)]\nunconstrained fn notify_created_nullifier_oracle(_nullifier: Field) {}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let ORACLE_RETURN_FIELD_LENGTH: 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) -> [Field; ORACLE_RETURN_FIELD_LENGTH] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let ORACLE_RETURN_FIELD_LENGTH: 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) -> [Field; ORACLE_RETURN_FIELD_LENGTH] {\n // This wrapper exists to extract the ORACLE_RETURN_FIELD_LENGTH generic numeric param into a value and pass it to\n // the oracle, so that it knows how big the return array must be.\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 ORACLE_RETURN_FIELD_LENGTH,\n )\n}\n\npub unconstrained fn get_notes<Note, let N: u32, let M: u32, let MAX_NOTES: u32, let ORACLE_RETURN_FIELD_LENGTH: 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 _placeholder_fields: [Field; ORACLE_RETURN_FIELD_LENGTH], // TODO: Compute this value automatically from MAX_NOTES\n) -> [Option<RetrievedNote<Note>>; MAX_NOTES]\nwhere\n Note: NoteType + Packable<N>,\n{\n let fields: [_; ORACLE_RETURN_FIELD_LENGTH] = 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 );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n\n let mut opt_notes = [Option::none(); MAX_NOTES];\n for i in 0..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 maybe_nonce = fields[read_offset];\n let maybe_note_hash_counter = fields[read_offset + 1] as u32;\n let packed_note = array::subarray(fields, read_offset + 2);\n\n let note = Note::unpack(packed_note);\n let retrieved_note = RetrievedNote {\n note,\n contract_address,\n metadata: NoteMetadata::from_raw_data(maybe_note_hash_counter != 0, maybe_nonce),\n };\n\n opt_notes[i] = Option::some(retrieved_note);\n };\n }\n 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)\n}\n\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> bool {}\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 // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // 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"
|
|
7096
7096
|
},
|
|
7097
7097
|
"182": {
|
|
7098
|
-
"path": "/
|
|
7098
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/append.nr",
|
|
7099
7099
|
"source": "/// Appends two `BoundedVec`s together, returning one that contains all of the elements of the first one followed by all\n/// of the elements of the second one. The resulting `BoundedVec` can have any arbitrary maximum length, but it must be\n/// large enough to fit all of the elements of both the first and second vectors.\npub fn append<T, let A_LEN: u32, let B_LEN: u32, let DST_LEN: u32>(\n a: BoundedVec<T, A_LEN>,\n b: BoundedVec<T, B_LEN>,\n) -> BoundedVec<T, DST_LEN> {\n let mut dst = BoundedVec::new();\n\n dst.extend_from_bounded_vec(a);\n dst.extend_from_bounded_vec(b);\n\n dst\n}\n\nmod test {\n use super::append;\n\n #[test]\n unconstrained fn append_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::new();\n let b: BoundedVec<_, 14> = BoundedVec::new();\n\n let result: BoundedVec<Field, 5> = append(a, b);\n\n assert_eq(result.len(), 0);\n assert_eq(result.storage(), std::mem::zeroed());\n }\n\n #[test]\n unconstrained fn append_non_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let result: BoundedVec<Field, 8> = append(a, b);\n\n assert_eq(result.len(), 6);\n assert_eq(result.storage(), [1, 2, 3, 4, 5, 6, std::mem::zeroed(), std::mem::zeroed()]);\n }\n\n #[test(should_fail_with = \"out of bounds\")]\n unconstrained fn append_non_empty_vecs_insufficient_max_len() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let _: BoundedVec<Field, 5> = append(a, b);\n }\n}\n"
|
|
7100
7100
|
},
|
|
7101
7101
|
"184": {
|
|
7102
|
-
"path": "/
|
|
7102
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/mod.nr",
|
|
7103
7103
|
"source": "pub mod append;\npub mod collapse;\npub mod subarray;\npub mod subbvec;\n\npub use append::append;\npub use collapse::collapse;\npub use subarray::subarray;\npub use subbvec::subbvec;\n\n// This will eventually be replaced by `BoundedVec::for_each`, once that's implemented.\npub unconstrained fn for_each_in_bounded_vec<T, let MaxLen: u32, Env>(\n vec: BoundedVec<T, MaxLen>,\n f: fn[Env](T, u32) -> (),\n) {\n for i in 0..vec.len() {\n f(vec.get_unchecked(i), i);\n }\n}\n"
|
|
7104
7104
|
},
|
|
7105
7105
|
"185": {
|
|
7106
|
-
"path": "/
|
|
7106
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subarray.nr",
|
|
7107
7107
|
"source": "/// Returns `DST_LEN` elements from a source array, starting at `offset`. `DST_LEN` must not be larger than the number\n/// of elements past `offset`.\n///\n/// Examples:\n/// ```\n/// let foo: [Field; 2] = subarray([1, 2, 3, 4, 5], 2);\n/// assert_eq(foo, [3, 4]);\n///\n/// let bar: [Field; 5] = subarray([1, 2, 3, 4, 5], 2); // fails - we can't return 5 elements since only 3 remain\n/// ```\npub fn subarray<T, let SRC_LEN: u32, let DST_LEN: u32>(\n src: [T; SRC_LEN],\n offset: u32,\n) -> [T; DST_LEN] {\n assert(offset + DST_LEN <= SRC_LEN, \"DST_LEN too large for offset\");\n\n let mut dst: [T; DST_LEN] = std::mem::zeroed();\n for i in 0..DST_LEN {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\nmod test {\n use super::subarray;\n\n #[test]\n unconstrained fn subarray_into_empty() {\n // In all of these cases we're setting DST_LEN to be 0, so we always get back an emtpy array.\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 2), []);\n }\n\n #[test]\n unconstrained fn subarray_complete() {\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), [1, 2, 3, 4, 5]);\n }\n\n #[test]\n unconstrained fn subarray_different_end_sizes() {\n // We implicitly select how many values to read in the size of the return array\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4, 5]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2]);\n }\n\n #[test(should_fail_with = \"DST_LEN too large for offset\")]\n unconstrained fn subarray_offset_too_large() {\n // With an offset of 1 we can only request up to 4 elements\n let _: [_; 5] = subarray([1, 2, 3, 4, 5], 1);\n }\n\n #[test(should_fail)]\n unconstrained fn subarray_bad_return_value() {\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [3, 3, 4, 5]);\n }\n}\n"
|
|
7108
7108
|
},
|
|
7109
7109
|
"186": {
|
|
7110
|
-
"path": "/
|
|
7110
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subbvec.nr",
|
|
7111
7111
|
"source": "use crate::utils::array;\n\n/// Returns `DST_MAX_LEN` elements from a source BoundedVec, starting at `offset`. `offset` must not be larger than the\n/// original length, and `DST_LEN` must not be larger than the total number of elements past `offset` (including the\n/// zeroed elements past `len()`).\n///\n/// Only elements at the beginning of the vector can be removed: it is not possible to also remove elements at the end\n/// of the vector by passing a value for `DST_LEN` that is smaller than `len() - offset`.\n///\n/// Examples:\n/// ```\n/// let foo = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n/// assert_eq(subbvec(foo, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n///\n/// let bar: BoundedVec<_, 1> = subbvec(foo, 2); // fails - we can't return just 1 element since 3 remain\n/// let baz: BoundedVec<_, 10> = subbvec(foo, 3); // fails - we can't return 10 elements since only 7 remain\n/// ```\npub fn subbvec<T, let SRC_MAX_LEN: u32, let DST_MAX_LEN: u32>(\n bvec: BoundedVec<T, SRC_MAX_LEN>,\n offset: u32,\n) -> BoundedVec<T, DST_MAX_LEN> {\n // from_parts_unchecked does not verify that the elements past len are zeroed, but that is not an issue in our case\n // because we're constructing the new storage array as a subarray of the original one (which should have zeroed\n // storage past len), guaranteeing correctness. This is because `subarray` does not allow extending arrays past\n // their original length.\n BoundedVec::from_parts_unchecked(array::subarray(bvec.storage(), offset), bvec.len() - offset)\n}\n\nmod test {\n use super::subbvec;\n\n #[test]\n unconstrained fn subbvec_empty() {\n let bvec = BoundedVec::<Field, 0>::from_array([]);\n assert_eq(subbvec(bvec, 0), bvec);\n }\n\n #[test]\n unconstrained fn subbvec_complete() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), bvec);\n\n let smaller_capacity = BoundedVec::<_, 5>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), smaller_capacity);\n }\n\n #[test]\n unconstrained fn subbvec_partial() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 3>::from_array([3, 4, 5]));\n }\n\n #[test]\n unconstrained fn subbvec_into_empty() {\n let bvec: BoundedVec<_, 10> = BoundedVec::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 5), BoundedVec::<_, 5>::from_array([]));\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_offset_past_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n let _: BoundedVec<_, 1> = subbvec(bvec, 6);\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_insufficient_dst_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // We're not providing enough space to hold all of the items inside the original BoundedVec. subbvec can cause\n // for the capacity to reduce, but not the length (other than by len - offset).\n let _: BoundedVec<_, 1> = subbvec(bvec, 2);\n }\n\n #[test(should_fail_with = \"DST_LEN too large for offset\")]\n unconstrained fn subbvec_dst_len_causes_enlarge() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // subbvec does not supprt capacity increases\n let _: BoundedVec<_, 11> = subbvec(bvec, 0);\n }\n\n #[test(should_fail_with = \"DST_LEN too large for offset\")]\n unconstrained fn subbvec_dst_len_too_large_for_offset() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // This effectively requests a capacity increase, since there'd be just one element plus the 5 empty slots,\n // which is less than 7.\n let _: BoundedVec<_, 7> = subbvec(bvec, 4);\n }\n}\n"
|
|
7112
7112
|
},
|
|
7113
7113
|
"24": {
|
|
@@ -7115,39 +7115,39 @@
|
|
|
7115
7115
|
"source": "use crate::default::Default;\nuse crate::hash::Hasher;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field; 3],\n state: [Field; 4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2::hash_internal(input, message_size, message_size != N)\n }\n\n pub fn new(iv: Field) -> Poseidon2 {\n let mut result =\n Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher {\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv: Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"
|
|
7116
7116
|
},
|
|
7117
7117
|
"267": {
|
|
7118
|
-
"path": "/
|
|
7118
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/contract_class_id.nr",
|
|
7119
7119
|
"source": "use crate::constants::GENERATOR_INDEX__CONTRACT_LEAF;\nuse crate::traits::{Deserialize, Empty, FromField, Packable, Serialize, ToField};\n\npub struct ContractClassId {\n pub inner: Field,\n}\n\nimpl Eq for ContractClassId {\n fn eq(self, other: ContractClassId) -> bool {\n other.inner == self.inner\n }\n}\n\nimpl ToField for ContractClassId {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for ContractClassId {\n fn from_field(value: Field) -> Self {\n Self { inner: value }\n }\n}\n\nimpl Serialize<1> for ContractClassId {\n fn serialize(self: Self) -> [Field; 1] {\n [self.inner]\n }\n}\n\nimpl Deserialize<1> for ContractClassId {\n fn deserialize(fields: [Field; 1]) -> Self {\n Self { inner: fields[0] }\n }\n}\n\nimpl Empty for ContractClassId {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\n// Implement the Packable trait so ContractClassId can be stored in contract's storage.\nimpl Packable<1> for ContractClassId {\n fn pack(self) -> [Field; 1] {\n self.serialize()\n }\n\n fn unpack(fields: [Field; 1]) -> Self {\n Self::deserialize(fields)\n }\n}\n\nimpl ContractClassId {\n pub fn compute(\n artifact_hash: Field,\n private_functions_root: Field,\n public_bytecode_commitment: Field,\n ) -> Self {\n let hash = crate::hash::poseidon2_hash_with_separator(\n [artifact_hash, private_functions_root, public_bytecode_commitment],\n GENERATOR_INDEX__CONTRACT_LEAF,\n ); // TODO(@spalladino): Update generator index\n ContractClassId::from_field(hash)\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
|
|
7120
7120
|
},
|
|
7121
7121
|
"275": {
|
|
7122
|
-
"path": "/
|
|
7122
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
|
|
7123
7123
|
"source": "/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_oracle_wrapper(msg, args) };\n}\n\npub unconstrained fn debug_log_oracle_wrapper<let M: u32, let N: u32>(\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"
|
|
7124
7124
|
},
|
|
7125
7125
|
"276": {
|
|
7126
|
-
"path": "/
|
|
7126
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
|
|
7127
7127
|
"source": "use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n contract_class_log::ContractClassLog,\n function_selector::FunctionSelector,\n note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n private_log::{PrivateLog, PrivateLogData},\n side_effect::{OrderedValue, scoped::Scoped},\n },\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__UNIQUE_NOTE_HASH, TWO_POW_64,\n },\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n poseidon2::Poseidon2Sponge,\n traits::{FromField, Hash, ToField},\n utils::{\n arrays::{array_concat, unsafe_padded_array_length},\n field::{field_from_bytes, field_from_bytes_32_trunc},\n },\n};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256::digest(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n let nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(nonce, siloed_note_hash)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.value())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<PrivateLogData>) -> PrivateLog {\n if private_log.contract_address.is_zero() {\n private_log.inner.log\n } else {\n let mut fields = private_log.inner.log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog { fields }\n }\n}\n\nfn compute_siloed_contract_class_log_field(\n contract_address: AztecAddress,\n first_field: Field,\n) -> Field {\n poseidon2_hash([contract_address.to_field(), first_field])\n}\n\npub fn silo_contract_class_log(contract_class_log: ContractClassLog) -> ContractClassLog {\n if contract_class_log.contract_address.is_zero() {\n contract_class_log\n } else {\n let mut log = contract_class_log;\n log.log.fields[0] = compute_siloed_contract_class_log_field(\n contract_class_log.contract_address,\n log.log.fields[0],\n );\n log\n }\n}\n\npub fn compute_contract_class_log_hash(contract_class_log: ContractClassLog) -> Field {\n let array = contract_class_log.log.fields;\n // Safety: The below length is constrained in the base rollup.\n let length = unsafe { unsafe_padded_array_length(array) };\n if length == 0 {\n 0\n } else {\n poseidon2_hash(array)\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: [u8; 160] = std::mem::zeroed();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..5 {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes[32 * i + j] = item_bytes[j];\n }\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a u128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = array_concat([separator.to_field()], inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n// Performs a fixed length hash with a subarray of the given input.\n// Useful for SpongeBlob in which we aborb M things and want to check it vs a hash of M elts of an N-len array.\n// Using stdlib poseidon, this will always absorb an extra 1 as a 'variable' hash, and not match spongeblob.squeeze()\n// or any ts implementation. Also checks that any remaining elts not hashed are empty.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, false);\n sponge.squeeze()\n}\n\n// NB the below is the same as std::hash::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, true);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// The below fn reduces gates of a conditional poseidon2 hash by approx 3x (thank you ~* Giant Brain Dev @IlyasRidhuan *~ for the idea)\n// Why? Because when we call stdlib poseidon, we call absorb for each item. When absorbing is conditional, it seems the compiler does not know\n// what cache_size will be when calling absorb, so it assigns the permutation gates for /each i/ rather than /every 3rd i/, which is actually required.\n// The below code forces the compiler to:\n// - absorb normally up to 2 times to set cache_size to 1\n// - absorb in chunks of 3 to ensure perm. only happens every 3rd absorb\n// - absorb normally up to 2 times to add any remaining values to the hash\n// In fixed len hashes, the compiler is able to tell that it will only need to perform the permutation every 3 absorbs.\n// NB: it also replaces unnecessary range checks (i < thing) with a bit check (&= i != thing), which alone reduces the gates of a var. hash by half.\n\n#[no_predicates]\nfn poseidon2_absorb_chunks<let N: u32>(\n input: [Field; N],\n in_len: u32,\n variable: bool,\n) -> Poseidon2Sponge {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n // Even though shift is always 1 here, if we input in_len = 0 we get an underflow\n // since we cannot isolate computation branches. The below is just to avoid that.\n let shift = if in_len == 0 { 0 } else { 1 };\n if in_len != 0 {\n // cache_size = 0, init absorb\n sponge.cache[0] = input[0];\n sponge.cache_size = 1;\n // shift = num elts already added to make cache_size 1 = 1 for a fresh sponge\n // M = max_chunks = (N - 1 - (N - 1) % 3) / 3: (must be written as a fn of N to compile)\n // max_remainder = (N - 1) % 3;\n // max_chunks = (N - 1 - max_remainder) / 3;\n sponge = poseidon2_absorb_chunks_loop::<N, (N - 1 - (N - 1) % 3) / 3>(\n sponge,\n input,\n in_len,\n variable,\n shift,\n );\n }\n sponge\n}\n\n// NB: If it's not required to check that the non-absorbed elts of 'input' are 0s, set skip_0_check=true\n#[no_predicates]\npub fn poseidon2_absorb_chunks_existing_sponge<let N: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n skip_0_check: bool,\n) -> Poseidon2Sponge {\n let mut sponge = in_sponge;\n // 'shift' is to account for already added inputs\n let mut shift = 0;\n // 'stop' is to avoid an underflow when inputting in_len = 0\n let mut stop = false;\n for i in 0..3 {\n if shift == in_len {\n stop = true;\n }\n if (sponge.cache_size != 1) & (!stop) {\n sponge.absorb(input[i]);\n shift += 1;\n }\n }\n sponge = if stop {\n sponge\n } else {\n // max_chunks = (N - (N % 3)) / 3;\n poseidon2_absorb_chunks_loop::<N, (N - (N % 3)) / 3>(\n sponge,\n input,\n in_len,\n skip_0_check,\n shift,\n )\n };\n sponge\n}\n\n// The below is the loop to absorb elts into a poseidon sponge in chunks of 3\n// shift - the num of elts already absorbed to ensure the sponge's cache_size = 1\n// M - the max number of chunks required to absorb N things (must be comptime to compile)\n// NB: The 0 checks ('Found non-zero field...') are messy, but having a separate loop over N to check\n// for 0s costs 3N gates. Current approach is approx 2N gates.\n#[no_predicates]\nfn poseidon2_absorb_chunks_loop<let N: u32, let M: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n variable: bool,\n shift: u32,\n) -> Poseidon2Sponge {\n assert(in_len <= N, \"Given in_len to absorb is larger than the input array len\");\n // When we have an existing sponge, we may have a shift of 0, and the final 'k+2' below = N\n // The below avoids an overflow\n let skip_last = 3 * M == N;\n // Writing in_sponge: &mut does not compile\n let mut sponge = in_sponge;\n let mut should_add = true;\n // The num of things left over after absorbing in 3s\n let remainder = (in_len - shift) % 3;\n // The num of chunks of 3 to absorb (maximum M)\n let chunks = (in_len - shift - remainder) / 3;\n for i in 0..M {\n // Now we loop through cache size = 1 -> 3\n should_add &= i != chunks;\n // This is the index at the start of the chunk (for readability)\n let k = 3 * i + shift;\n if should_add {\n // cache_size = 1, 2 => just assign\n sponge.cache[1] = input[k];\n sponge.cache[2] = input[k + 1];\n // cache_size = 3 => duplex + perm\n for j in 0..3 {\n sponge.state[j] += sponge.cache[j];\n }\n sponge.state = std::hash::poseidon2_permutation(sponge.state, 4);\n sponge.cache[0] = input[k + 2];\n // cache_size is now 1 again, repeat loop\n } else if (!variable) & (i != chunks) {\n // if we are hashing a fixed len array which is a subarray, we check the remaining elts are 0\n // NB: we don't check at i == chunks, because that chunk contains elts to be absorbed or checked below\n let last_0 = if (i == M - 1) & (skip_last) {\n 0\n } else {\n input[k + 2]\n };\n let all_0 = (input[k] == 0) & (input[k + 1] == 0) & (last_0 == 0);\n assert(all_0, \"Found non-zero field after breakpoint\");\n }\n }\n // we have 'remainder' num of items left to absorb\n should_add = true;\n // below is to avoid overflows (i.e. if inlen is close to N)\n let mut should_check = !variable;\n for i in 0..3 {\n should_add &= i != remainder;\n should_check &= in_len - remainder + i != N;\n if should_add {\n // we want to absorb the final 'remainder' items\n sponge.absorb(input[in_len - remainder + i]);\n } else if should_check {\n assert(input[in_len - remainder + i] == 0, \"Found non-zero field after breakpoint\");\n }\n }\n sponge\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = std::hash::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = std::hash::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\n}\n\n#[test]\nfn existing_sponge_poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n // absorb 250 of the 501 things\n let empty_sponge = Poseidon2Sponge::new((in_len as Field) * TWO_POW_64);\n let first_sponge = poseidon2_absorb_chunks_existing_sponge(empty_sponge, input, 250, true);\n // now absorb the final 251 (since they are all 3s, im being lazy and not making a new array)\n let mut final_sponge = poseidon2_absorb_chunks_existing_sponge(first_sponge, input, 251, true);\n let fixed_len_hash = Poseidon2Sponge::hash(fixed_input, fixed_input.len());\n assert(final_sponge.squeeze() == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_empty_inputs() {\n let in_len = 0;\n let mut input: [Field; 4096] = [0; 4096];\n let mut constructed_empty_sponge = poseidon2_absorb_chunks(input, in_len, true);\n let mut first_sponge =\n poseidon2_absorb_chunks_existing_sponge(constructed_empty_sponge, input, in_len, true);\n assert(first_sponge.squeeze() == constructed_empty_sponge.squeeze());\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = sha256::digest(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
|
|
7128
7128
|
},
|
|
7129
7129
|
"290": {
|
|
7130
|
-
"path": "/
|
|
7130
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr",
|
|
7131
7131
|
"source": "use super::traits::{Deserialize, Packable, Serialize};\n\n/// Returns the typed expression of a trait method implementation.\n///\n/// This helper function is preferred over directly inlining with `$typ::target_method()` in a quote,\n/// as direct inlining would result in missing import warnings in the generated code (specifically,\n/// warnings that the trait implementation is not in scope).\n///\n/// # Note\n/// A copy of this function exists in `aztec-nr/aztec/src/macros/utils.nr`. We maintain separate copies\n/// because importing it there from here would cause the `target_trait` to be interpreted in the context\n/// of this crate, making it impossible to compile code for traits from that crate (e.g. NoteType).\ncomptime fn get_trait_impl_method(\n typ: Type,\n target_trait: Quoted,\n target_method: Quoted,\n) -> TypedExpr {\n let trait_constraint = target_trait.as_trait_constraint();\n typ\n .get_trait_impl(trait_constraint)\n .expect(f\"Could not find impl for {target_trait} for type {typ}\")\n .methods()\n .filter(|m| m.name() == target_method)[0]\n .as_typed_expr()\n}\n\n/// Generates code that deserializes a struct, primitive type, array or string from a field array.\n///\n/// # Parameters\n/// - `name`: The name of the current field being processed, used to identify fields for replacement.\n/// - `typ`: The type of the struct or field being deserialized (e.g., a custom struct, array, or primitive).\n/// - `field_array_name`: The name of the field array containing serialized field data (e.g., `\"values\"`).\n/// - `num_already_consumed`: The number of fields already processed in previous recursion calls.\n/// - `should_unpack`: A boolean indicating whether the type should be unpacked (see description of `Packable`\n/// and `Serialize` trait for more information about the difference between packing and serialization).\n///\n/// # Returns\n/// A tuple containing:\n/// - `Quoted`: A code that deserializes a given struct, primitive type, array, or string from the field array.\n/// - `u32`: The total number of fields consumed during deserialization (used for recursion).\n///\n/// # Nested Struct Example\n/// Given the following setup:\n/// ```\n/// struct UintNote {\n/// value: u128,\n/// owner: AztecAddress,\n/// randomness: Field,\n/// }\n///\n/// struct AztecAddress {\n/// inner: Field,\n/// }\n/// ```\n///\n/// If `UintNote` is the input type, the function will generate the following deserialization code:\n/// ```\n/// UintNote {\n/// value: fields[0] as u128,\n/// owner: AztecAddress {\n/// inner: fields[1],\n/// },\n/// randomness: fields[2],\n/// }\n/// ```\n/// # Nested Struct Example with Unpacking\n/// - given the same setup as above and given that u128, AztecAddress and Field implement the `Packable` trait\n/// the result we get is:\n/// ```\n/// UintNote {\n/// value: aztec::protocol_types::traits::Packable::unpack([fields[0]]),\n/// owner: aztec::protocol_types::traits::Packable::unpack([fields[1]]),\n/// randomness: aztec::protocol_types::traits::Packable::unpack([fields[2]]),\n/// }\n/// ```\n///\n/// # Panics\n/// - If the deserialization logic encounters a type it does not support.\n/// - If an incorrect number of fields are consumed when deserializing a string.\npub comptime fn generate_deserialize_from_fields(\n name: Quoted,\n typ: Type,\n field_array_name: Quoted,\n num_already_consumed: u32,\n should_unpack: bool,\n) -> (Quoted, u32) {\n let mut result = quote {};\n // Counter for the number of fields consumed\n let mut consumed_counter: u32 = 0;\n\n // If the type implements `Packable`, its length will be assigned to the `maybe_packed_len_typ` variable.\n let maybe_packed_len_typ = std::meta::typ::fresh_type_variable();\n let packable_constraint = quote { Packable<$maybe_packed_len_typ> }.as_trait_constraint();\n\n if (should_unpack & typ.implements(packable_constraint)) {\n // Unpacking is enabled and the given type implements the `Packable` trait so we call the `unpack()`\n // method, add the resulting field array to `aux_vars` and each field to `fields`.\n let packed_len = maybe_packed_len_typ.as_constant().unwrap();\n\n // We copy the packed fields into a new array and pass that to the unpack function in a quote\n let mut packed_fields_quotes = &[];\n for i in 0..packed_len {\n let index_in_field_array = i + num_already_consumed;\n packed_fields_quotes =\n packed_fields_quotes.push_back(quote { $field_array_name[$index_in_field_array] });\n }\n let packed_fields = packed_fields_quotes.join(quote {,});\n\n // Now we call unpack on the type\n let unpack_method = get_trait_impl_method(typ, quote { Packable<_> }, quote { unpack });\n result = quote { $unpack_method([ $packed_fields ]) };\n\n consumed_counter = packed_len;\n } else if typ.is_field() | typ.as_integer().is_some() | typ.is_bool() {\n // The field is a primitive so we just reference it in the field array\n result = quote { $field_array_name[$num_already_consumed] as $typ };\n consumed_counter = 1;\n } else if typ.as_data_type().is_some() {\n // The field is a struct so we iterate over each struct field and recursively call\n // `generate_deserialize_from_fields`\n let (nested_def, generics) = typ.as_data_type().unwrap();\n let nested_name = nested_def.name();\n let mut deserialized_fields_list = &[];\n\n // Iterate over each field in the struct\n for field in nested_def.fields(generics) {\n let (field_name, field_type) = field;\n // Recursively call `generate_deserialize_from_fields` for each field in the struct\n let (deserialized_field, num_consumed_in_recursion) = generate_deserialize_from_fields(\n field_name,\n field_type,\n field_array_name,\n consumed_counter + num_already_consumed,\n should_unpack,\n );\n // We increment the consumed counter by the number of fields consumed in the recursion\n consumed_counter += num_consumed_in_recursion;\n // We add the deserialized field to the list of deserialized fields.\n // E.g. `value: u128 { lo: fields[0], hi: fields[1] }`\n deserialized_fields_list =\n deserialized_fields_list.push_back(quote { $field_name: $deserialized_field });\n }\n\n // We can construct the struct from the deserialized fields\n let deserialized_fields = deserialized_fields_list.join(quote {,});\n result = quote {\n $nested_name {\n $deserialized_fields\n }\n };\n } else if typ.as_array().is_some() {\n // The field is an array so we iterate over each element and recursively call\n // `generate_deserialize_from_fields`\n let (element_type, array_len) = typ.as_array().unwrap();\n let array_len = array_len.as_constant().unwrap();\n let mut array_fields_list = &[];\n\n // Iterate over each element in the array\n for _ in 0..array_len {\n // Recursively call `generate_deserialize_from_fields` for each element in the array\n let (deserialized_field, num_consumed_in_recursion) = generate_deserialize_from_fields(\n name,\n element_type,\n field_array_name,\n consumed_counter + num_already_consumed,\n should_unpack,\n );\n // We increment the consumed counter by the number of fields consumed in the recursion\n consumed_counter += num_consumed_in_recursion;\n // We add the deserialized field to the list of deserialized fields.\n array_fields_list = array_fields_list.push_back(deserialized_field);\n }\n\n // We can construct the array from the deserialized fields\n let array_fields = array_fields_list.join(quote {,});\n result = quote { [ $array_fields ] };\n } else if typ.as_str().is_some() {\n // The field is a string and we expect each byte of the string to be represented as 1 field in the field\n // array. So we iterate over the string length and deserialize each character as u8 in the recursive call\n // to `generate_deserialize_from_fields`.\n let length_type = typ.as_str().unwrap();\n let str_len = length_type.as_constant().unwrap();\n let mut byte_list = &[];\n\n // Iterate over each character in the string\n for _ in 0..str_len {\n // Recursively call `generate_deserialize_from_fields` for each character in the string\n let (deserialized_field, num_consumed_in_recursion) = generate_deserialize_from_fields(\n name,\n quote {u8}.as_type(),\n field_array_name,\n consumed_counter + num_already_consumed,\n should_unpack,\n );\n\n // We should consume just one field in the recursion so we sanity check that\n assert_eq(\n num_consumed_in_recursion,\n 1,\n \"Incorrect number of fields consumed in string deserialization\",\n );\n\n // We increment the consumed counter by 1 as we have consumed one field\n consumed_counter += 1;\n\n // We add the deserialized field to the list of deserialized fields.\n // E.g. `fields[6] as u8`\n byte_list = byte_list.push_back(deserialized_field);\n }\n\n // We construct the string from the deserialized fields\n let bytes = byte_list.join(quote {,});\n result = quote { [ $bytes ].as_str_unchecked() };\n } else {\n panic(\n f\"Unsupported type for serialization of argument {name} and type {typ}\",\n )\n }\n\n (result, consumed_counter)\n}\n\n/// Generates code that serializes a type into an array of fields. Also generates auxiliary variables if necessary\n/// for serialization. If `should_pack` is true, we check if the type implements the `Packable` trait and pack it\n/// if it does.\n///\n/// # Parameters\n/// - `name`: The base identifier (e.g., `self`, `some_var`).\n/// - `typ`: The type being serialized (e.g., a custom struct, array, or primitive type).\n/// - `omit`: A list of field names (as `Quoted`) to be excluded from the serialized output.\n/// - `should_pack`: A boolean indicating whether the type should be packed.\n///\n/// # Returns\n/// A tuple containing:\n/// - A flattened array of `Quoted` field references representing the serialized fields.\n/// - An array of `Quoted` auxiliary variables needed for serialization, such as byte arrays for strings.\n///\n/// # Examples\n///\n/// ## Struct\n/// Given the following struct:\n/// ```rust\n/// struct MockStruct {\n/// a: Field,\n/// b: Field,\n/// }\n/// ```\n///\n/// Serializing the struct:\n/// ```rust\n/// generate_serialize_to_fields(quote { my_mock_struct }, MockStruct, &[], false)\n/// // Returns:\n/// // ([`my_mock_struct.a`, `my_mock_struct.b`], [])\n/// ```\n///\n/// ## Nested Struct\n/// For a more complex struct:\n/// ```rust\n/// struct NestedStruct {\n/// m1: MockStruct,\n/// m2: MockStruct,\n/// }\n/// ```\n///\n/// Serialization output:\n/// ```rust\n/// generate_serialize_to_fields(quote { self }, NestedStruct, &[], false)\n/// // Returns:\n/// // ([`self.m1.a`, `self.m1.b`, `self.m2.a`, `self.m2.b`], [])\n/// ```\n///\n/// ## Array\n/// For an array type:\n/// ```rust\n/// generate_serialize_to_fields(quote { my_array }, [Field; 3], &[], false)\n/// // Returns:\n/// // ([`my_array[0]`, `my_array[1]`, `my_array[2]`], [])\n/// ```\n///\n/// ## String\n/// For a string field, where each character is serialized as a `Field`:\n/// ```rust\n/// generate_serialize_to_fields(quote { my_string }, StringType, &[], false)\n/// // Returns:\n/// // ([`my_string_as_bytes[0] as Field`, `my_string_as_bytes[1] as Field`, ...],\n/// // [`let my_string_as_bytes = my_string.as_bytes()`])\n/// ```\n///\n/// ## Nested Struct with Omitted Field and packing enabled\n/// - u128 has a `Packable` implementation hence it will be packed.\n///\n/// For a more complex struct:\n/// ```rust\n/// struct MyStruct {\n/// value: u128,\n/// value2: Field,\n/// }\n/// ```\n///\n/// Serializing while omitting `value2`:\n/// ```rust\n/// generate_serialize_to_fields(quote { self }, MyStruct, &[quote { self.value2 }], true)\n/// // Returns:\n/// // ([`value_packed[0]`], [`let value_packed = self.value.pack()`])\n/// ```\n///\n/// # Panics\n/// - If the type is unsupported for serialization.\n/// - If the provided `typ` contains invalid constants or incompatible structures.\npub comptime fn generate_serialize_to_fields(\n name: Quoted,\n typ: Type,\n omit: [Quoted],\n should_pack: bool,\n) -> ([Quoted], [Quoted]) {\n let mut fields = &[];\n let mut aux_vars = &[];\n\n // Proceed if none of the omit rules omits this name\n if !omit.any(|to_omit| to_omit == name) {\n // If the type implements `Packable`, its length will be assigned to the `maybe_packed_len_typ` variable.\n let maybe_packed_len_typ = std::meta::typ::fresh_type_variable();\n let packable_constraint =\n quote { crate::traits::Packable<$maybe_packed_len_typ> }.as_trait_constraint();\n\n if (should_pack & typ.implements(packable_constraint)) {\n // Packing is enabled and the given type implements the `Packable` trait so we call the `pack()`\n // method, add the resulting field array to `aux_vars` and each field to `fields`.\n let packed_len = maybe_packed_len_typ.as_constant().unwrap();\n\n // We collapse the name to a one that gets tokenized as a single token (e.g. \"self.value\" -> \"self_value\").\n let name_at_one_token = collapse_to_one_token(name);\n let packed_struct_name = f\"{name_at_one_token}_aux_var\".quoted_contents();\n\n // We add the individual fields to the fields array\n let pack_method = get_trait_impl_method(\n typ,\n quote { crate::traits::Packable<$packed_len> },\n quote { pack },\n );\n let packed_struct = quote { let $packed_struct_name = $pack_method($name) };\n for i in 0..packed_len {\n fields = fields.push_back(quote { $packed_struct_name[$i] });\n }\n\n // We add the new auxiliary variable to the aux_vars array\n aux_vars = aux_vars.push_back(packed_struct);\n } else if typ.is_field() {\n // For field we just add the value to fields\n fields = fields.push_back(name);\n } else if typ.as_integer().is_some() | typ.is_bool() {\n // For integer and bool we just cast to Field and add the value to fields\n fields = fields.push_back(quote { $name as Field });\n } else if typ.as_data_type().is_some() {\n // For struct we pref\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n let struct_flattened = params.map(|(param_name, param_type): (Quoted, Type)| {\n let maybe_prefixed_name = if name == quote {} {\n // Triggered when the param name is of a value available in the current scope (e.g. a function\n // argument) --> then we don't prefix the name with anything.\n param_name\n } else {\n // Triggered when we want to prefix the param name with the `name` from function input. This\n // can typically be `self` when implementing a method on a struct.\n quote { $name.$param_name }\n };\n generate_serialize_to_fields(\n quote {$maybe_prefixed_name},\n param_type,\n omit,\n should_pack,\n )\n });\n let struct_flattened_fields = struct_flattened.fold(\n &[],\n |acc: [Quoted], (fields, _): (_, [Quoted])| acc.append(fields),\n );\n let struct_flattened_aux_vars = struct_flattened.fold(\n &[],\n |acc: [Quoted], (_, aux_vars): ([Quoted], _)| acc.append(aux_vars),\n );\n fields = fields.append(struct_flattened_fields);\n aux_vars = aux_vars.append(struct_flattened_aux_vars);\n } else if typ.as_array().is_some() {\n // For array we recursively call `generate_serialize_to_fields(...)` for each element\n let (element_type, array_len) = typ.as_array().unwrap();\n let array_len = array_len.as_constant().unwrap();\n for i in 0..array_len {\n let (element_fields, element_aux_vars) = generate_serialize_to_fields(\n quote { $name[$i] },\n element_type,\n omit,\n should_pack,\n );\n fields = fields.append(element_fields);\n aux_vars = aux_vars.append(element_aux_vars);\n }\n } else if typ.as_str().is_some() {\n // For string we convert the value to bytes, we store the `as_bytes` in an auxiliary variables and\n // then we add each byte to fields as a Field\n let length_type = typ.as_str().unwrap();\n let str_len = length_type.as_constant().unwrap();\n let as_member = name.as_expr().unwrap().as_member_access();\n let var_name = if as_member.is_some() {\n as_member.unwrap().1\n } else {\n name\n };\n let as_bytes_name = f\"{var_name}_as_bytes\".quoted_contents();\n let as_bytes = quote { let $as_bytes_name = $name.as_bytes() };\n for i in 0..str_len {\n fields = fields.push_back(quote { $as_bytes_name[$i] as Field });\n }\n aux_vars = aux_vars.push_back(as_bytes);\n } else {\n panic(\n f\"Unsupported type for serialization of argument {name} and type {typ}\",\n )\n }\n }\n (fields, aux_vars)\n}\n\n/// From a quote that gets tokenized to a multiple tokens we collapse it to a single token by replacing all `.` with `_`.\n/// E.g. \"self.values[0]\" -> \"self_values_0_\"\ncomptime fn collapse_to_one_token(q: Quoted) -> Quoted {\n let tokens = q.tokens();\n\n let mut single_token = quote {};\n for token in tokens {\n let new_token = if ((token == quote {.}) | (token == quote {[}) | (token == quote {]})) {\n quote {_}\n } else {\n token\n };\n single_token = f\"{single_token}{new_token}\".quoted_contents();\n }\n single_token\n}\n\npub(crate) comptime fn derive_serialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let (fields, aux_vars) = generate_serialize_to_fields(quote { self }, typ, &[], false);\n let aux_vars_for_serialization = if aux_vars.len() > 0 {\n let joint = aux_vars.join(quote {;});\n quote { $joint; }\n } else {\n quote {}\n };\n\n let field_serializations = fields.join(quote {,});\n let serialized_len = fields.len();\n quote {\n impl Serialize<$serialized_len> for $typ {\n fn serialize(self) -> [Field; $serialized_len] {\n $aux_vars_for_serialization\n [ $field_serializations ]\n }\n }\n }\n}\n\npub(crate) comptime fn derive_deserialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let (fields, _) = generate_serialize_to_fields(quote { self }, typ, &[], false);\n let serialized_len = fields.len();\n let (deserialized, _) =\n generate_deserialize_from_fields(quote { self }, typ, quote { serialized }, 0, false);\n quote {\n impl Deserialize<$serialized_len> for $typ {\n fn deserialize(serialized: [Field; $serialized_len]) -> Self {\n $deserialized\n }\n }\n }\n}\n\n/// Generates `Packable` implementation for a given struct and returns the packed length.\n///\n/// Note: We are having this function separate from `derive_packable` because we use this in the note macros to get\n/// the packed length of a note as well as the `Packable` implementation. We need the length to be able to register\n/// the note in the global `NOTES` map. There the length is used to generate partial note helper functions.\npub comptime fn derive_packable_and_get_packed_len(s: TypeDefinition) -> (Quoted, u32) {\n let packing_enabled = true;\n\n let typ = s.as_type();\n let (fields, aux_vars) =\n generate_serialize_to_fields(quote { self }, typ, &[], packing_enabled);\n let aux_vars_for_packing = if aux_vars.len() > 0 {\n let joint = aux_vars.join(quote {;});\n quote { $joint; }\n } else {\n quote {}\n };\n\n let (unpacked, _) =\n generate_deserialize_from_fields(quote { self }, typ, quote { packed }, 0, packing_enabled);\n\n let field_packings = fields.join(quote {,});\n let packed_len = fields.len();\n let packable_trait: TraitConstraint = quote { Packable<$packed_len> }.as_trait_constraint();\n (\n quote {\n impl $packable_trait for $typ {\n fn pack(self) -> [Field; $packed_len] {\n $aux_vars_for_packing\n [ $field_packings ]\n }\n\n fn unpack(packed: [Field; $packed_len]) -> Self {\n $unpacked\n }\n }\n },\n packed_len,\n )\n}\n\npub(crate) comptime fn derive_packable(s: TypeDefinition) -> Quoted {\n let (packable_impl, _) = derive_packable_and_get_packed_len(s);\n packable_impl\n}\n\n#[derive(Packable, Serialize, Deserialize, Eq)]\npub struct Smol {\n a: Field,\n b: Field,\n}\n\n#[derive(Serialize, Deserialize, Eq)]\npub struct HasArray {\n a: [Field; 2],\n b: bool,\n}\n\n#[derive(Serialize, Deserialize, Eq)]\npub struct Fancier {\n a: Smol,\n b: [Field; 2],\n c: [u8; 3],\n d: str<16>,\n}\n\nfn main() {\n assert(false);\n}\n\n#[test]\nfn smol_test() {\n let smol = Smol { a: 1, b: 2 };\n let serialized = smol.serialize();\n assert(serialized == [1, 2], serialized);\n let deserialized = Smol::deserialize(serialized);\n assert(deserialized == smol);\n\n // None of the struct members implements the `Packable` trait so the packed and serialized data should be the same\n let packed = smol.pack();\n assert_eq(packed, serialized, \"Packed does not match serialized\");\n}\n\n#[test]\nfn has_array_test() {\n let has_array = HasArray { a: [1, 2], b: true };\n let serialized = has_array.serialize();\n assert(serialized == [1, 2, 1], serialized);\n let deserialized = HasArray::deserialize(serialized);\n assert(deserialized == has_array);\n}\n\n#[test]\nfn fancier_test() {\n let fancier =\n Fancier { a: Smol { a: 1, b: 2 }, b: [0, 1], c: [1, 2, 3], d: \"metaprogramming!\" };\n let serialized = fancier.serialize();\n assert(\n serialized\n == [\n 1, 2, 0, 1, 1, 2, 3, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61,\n 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x21,\n ],\n serialized,\n );\n let deserialized = Fancier::deserialize(serialized);\n assert(deserialized == fancier);\n}\n"
|
|
7132
7132
|
},
|
|
7133
7133
|
"293": {
|
|
7134
|
-
"path": "/
|
|
7134
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
|
|
7135
7135
|
"source": "use crate::constants::TWO_POW_64;\n\n// NB: This is a clone of noir/noir-repo/noir_stdlib/src/hash/poseidon2.nr\n// It exists as we sometimes need to perform custom absorption, but the stdlib version\n// has a private absorb() method (it's also designed to just be a hasher)\n// Can be removed when standalone noir poseidon lib exists: See noir#6679\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2Sponge {\n pub cache: [Field; 3],\n pub state: [Field; 4],\n pub cache_size: u32,\n pub squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2Sponge {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2Sponge::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2Sponge {\n let mut result =\n Poseidon2Sponge { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = std::hash::poseidon2_permutation(self.state, 4);\n }\n\n pub fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n pub fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n"
|
|
7136
7136
|
},
|
|
7137
7137
|
"327": {
|
|
7138
|
-
"path": "/
|
|
7138
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr",
|
|
7139
7139
|
"source": "use crate::meta::{derive_deserialize, derive_packable, derive_serialize};\nuse crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field {\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for u1 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u128 {\n fn empty() -> Self {\n 0\n }\n}\n\nimpl<T, let N: u32> Empty for [T; N]\nwhere\n T: Empty,\n{\n fn empty() -> Self {\n [T::empty(); N]\n }\n}\n\nimpl<T> Empty for Option<T> {\n fn empty() -> Self {\n Option::none()\n }\n}\n\npub fn is_empty<T>(item: T) -> bool\nwhere\n T: Empty + Eq,\n{\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool\nwhere\n T: Empty + Eq,\n{\n array.all(|elem| is_empty(elem))\n}\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u128 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl<let N: u32> ToField for str<N> {\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n fn from_field(value: Field) -> Self {\n value as bool\n }\n}\nimpl FromField for u1 {\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u32 {\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for u128 {\n fn from_field(value: Field) -> Self {\n value as u128\n }\n}\n\n// docs:start:serialize\n/// Trait for serializing Noir types into arrays of Fields.\n///\n/// An implementation of the Serialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait (and Deserialize) are\n/// typically used to communicate between Noir and TypeScript (via oracles and function arguments).\n///\n/// # On Following Noir's Intrinsic Serialization\n/// When calling a Noir function from TypeScript (TS), first the function arguments are serialized into an array\n/// of fields. This array is then included in the initial witness. Noir's intrinsic serialization is then used\n/// to deserialize the arguments from the witness. When the same Noir function is called from Noir this Serialize trait\n/// is used instead of the serialization in TS. For this reason we need to have a match between TS serialization,\n/// Noir's intrinsic serialization and the implementation of this trait. If there is a mismatch, the function calls\n/// fail with an arguments hash mismatch error message.\n///\n/// # Type Parameters\n/// * `N` - The length of the output Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Serialize<N> for str<N> {\n/// fn serialize(self) -> [Field; N] {\n/// let bytes = self.as_bytes();\n/// let mut fields = [0; N];\n/// for i in 0..bytes.len() {\n/// fields[i] = bytes[i] as Field; // Each byte gets its own Field\n/// }\n/// fields\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let bytes = self.as_bytes();\n let mut fields = [0; N];\n for i in 0..bytes.len() {\n fields[i] = bytes[i] as Field;\n }\n fields\n }\n}\n\n// docs:start:deserialize\n/// Trait for deserializing Noir types from arrays of Fields.\n///\n/// An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait is typically used when\n/// deserializing return values from function calls in Noir. Since the same function could be called from TypeScript\n/// (TS), in which case the TS deserialization would get used, we need to have a match between the 2.\n///\n/// # Type Parameters\n/// * `N` - The length of the input Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Deserialize<N> for str<N> {\n/// fn deserialize(fields: [Field; N]) -> Self {\n/// str<N>::from(fields.map(|value| value as u8))\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let N: u32> Deserialize<N> for str<N> {\n fn deserialize(fields: [Field; N]) -> Self {\n str<N>::from(fields.map(|value| value as u8))\n }\n}\n\n/// Trait for efficiently packing and unpacking Noir types into and from arrays of Fields.\n///\n/// The `Packable` trait allows types to be serialized and deserialized with a focus on minimizing the size of\n/// the resulting Field array. This trait is used when storage efficiency is critical (e.g. when storing data\n/// in the contract's public storage).\n///\n/// # Type Parameters\n/// * `N` - The length of the Field array, known at compile time.\n#[derive_via(derive_packable)]\npub trait Packable<let N: u32> {\n /// Packs the current value into a compact array of `Field` elements.\n fn pack(self) -> [Field; N];\n\n /// Unpacks a compact array of `Field` elements into the original value.\n fn unpack(fields: [Field; N]) -> Self;\n}\n"
|
|
7140
7140
|
},
|
|
7141
7141
|
"332": {
|
|
7142
|
-
"path": "/
|
|
7142
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr",
|
|
7143
7143
|
"source": "use crate::traits::{Deserialize, Serialize};\n\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 1;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize<BOOL_SERIALIZED_LEN> for bool {\n fn serialize(self) -> [Field; BOOL_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<BOOL_SERIALIZED_LEN> for bool {\n fn deserialize(fields: [Field; BOOL_SERIALIZED_LEN]) -> bool {\n fields[0] as bool\n }\n}\n\nimpl Serialize<U8_SERIALIZED_LEN> for u8 {\n fn serialize(self) -> [Field; U8_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U8_SERIALIZED_LEN> for u8 {\n fn deserialize(fields: [Field; U8_SERIALIZED_LEN]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Serialize<U16_SERIALIZED_LEN> for u16 {\n fn serialize(self) -> [Field; U16_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U16_SERIALIZED_LEN> for u16 {\n fn deserialize(fields: [Field; U16_SERIALIZED_LEN]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Serialize<U32_SERIALIZED_LEN> for u32 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U32_SERIALIZED_LEN> for u32 {\n fn deserialize(fields: [Field; U32_SERIALIZED_LEN]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Serialize<U64_SERIALIZED_LEN> for u64 {\n fn serialize(self) -> [Field; U64_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U64_SERIALIZED_LEN> for u64 {\n fn deserialize(fields: [Field; U64_SERIALIZED_LEN]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Serialize<U128_SERIALIZED_LEN> for u128 {\n fn serialize(self) -> [Field; U128_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U128_SERIALIZED_LEN> for u128 {\n fn deserialize(fields: [Field; U128_SERIALIZED_LEN]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Serialize<FIELD_SERIALIZED_LEN> for Field {\n fn serialize(self) -> [Field; FIELD_SERIALIZED_LEN] {\n [self]\n }\n}\n\nimpl Deserialize<FIELD_SERIALIZED_LEN> for Field {\n fn deserialize(fields: [Field; FIELD_SERIALIZED_LEN]) -> Self {\n fields[0]\n }\n}\n\nimpl Serialize<I8_SERIALIZED_LEN> for i8 {\n fn serialize(self) -> [Field; I8_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I8_SERIALIZED_LEN> for i8 {\n fn deserialize(fields: [Field; I8_SERIALIZED_LEN]) -> Self {\n fields[0] as i8\n }\n}\n\nimpl Serialize<I16_SERIALIZED_LEN> for i16 {\n fn serialize(self) -> [Field; I16_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I16_SERIALIZED_LEN> for i16 {\n fn deserialize(fields: [Field; I16_SERIALIZED_LEN]) -> Self {\n fields[0] as i16\n }\n}\n\nimpl Serialize<I32_SERIALIZED_LEN> for i32 {\n fn serialize(self) -> [Field; I32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I32_SERIALIZED_LEN> for i32 {\n fn deserialize(fields: [Field; I32_SERIALIZED_LEN]) -> Self {\n fields[0] as i32\n }\n}\n\nimpl Serialize<I64_SERIALIZED_LEN> for i64 {\n fn serialize(self) -> [Field; I64_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I64_SERIALIZED_LEN> for i64 {\n fn deserialize(fields: [Field; I64_SERIALIZED_LEN]) -> Self {\n fields[0] as i64\n }\n}\n\nimpl<T, let N: u32, let M: u32> Serialize<N * M> for [T; N]\nwhere\n T: Serialize<M>,\n{\n fn serialize(self) -> [Field; N * M] {\n let mut result: [Field; N * M] = std::mem::zeroed();\n let mut serialized: [Field; M] = std::mem::zeroed();\n for i in 0..N {\n serialized = self[i].serialize();\n for j in 0..M {\n result[i * M + j] = serialized[j];\n }\n }\n result\n }\n}\n\nimpl<T, let N: u32, let M: u32> Deserialize<N * M> for [T; N]\nwhere\n T: Deserialize<M>,\n{\n fn deserialize(fields: [Field; N * M]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; N] = std::mem::zeroed();\n reader.read_struct_array::<T, M, N>(Deserialize::deserialize, result)\n }\n}\n\n#[test]\nfn test_u16_serialization() {\n let a: u16 = 10;\n assert_eq(a, u16::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i8_serialization() {\n let a: i8 = -10;\n assert_eq(a, i8::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i16_serialization() {\n let a: i16 = -10;\n assert_eq(a, i16::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i32_serialization() {\n let a: i32 = -10;\n assert_eq(a, i32::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i64_serialization() {\n let a: i64 = -10;\n assert_eq(a, i64::deserialize(a.serialize()));\n}\n"
|
|
7144
7144
|
},
|
|
7145
7145
|
"348": {
|
|
7146
|
-
"path": "/
|
|
7146
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays.nr",
|
|
7147
7147
|
"source": "pub mod assert_array_appended;\npub mod assert_array_prepended;\npub mod assert_combined_array;\npub mod assert_combined_transformed_array;\npub mod assert_exposed_sorted_transformed_value_array;\npub mod assert_sorted_array;\npub mod assert_sorted_transformed_value_array;\npub mod assert_split_sorted_transformed_value_arrays;\npub mod assert_split_transformed_value_arrays;\npub mod get_sorted_result;\npub mod get_sorted_tuple;\npub mod sort_by;\npub mod sort_by_counter;\n\n// Re-exports.\npub use assert_array_appended::{\n assert_array_appended, assert_array_appended_and_scoped, assert_array_appended_reversed,\n assert_array_appended_scoped,\n};\npub use assert_array_prepended::assert_array_prepended;\npub use assert_combined_array::{assert_combined_array, combine_arrays};\npub use assert_combined_transformed_array::{\n assert_combined_transformed_array, combine_and_transform_arrays,\n};\npub use assert_exposed_sorted_transformed_value_array::{\n assert_exposed_sorted_transformed_value_array,\n get_order_hints::{get_order_hints_asc, get_order_hints_desc, OrderHint},\n};\npub use assert_sorted_array::assert_sorted_array;\npub use assert_sorted_transformed_value_array::{\n assert_sorted_transformed_value_array, assert_sorted_transformed_value_array_capped_size,\n};\npub use assert_split_sorted_transformed_value_arrays::{\n assert_split_sorted_transformed_value_arrays_asc,\n assert_split_sorted_transformed_value_arrays_desc,\n get_split_order_hints::{get_split_order_hints_asc, get_split_order_hints_desc, SplitOrderHints},\n};\npub use assert_split_transformed_value_arrays::assert_split_transformed_value_arrays;\npub use get_sorted_result::{get_sorted_result, SortedResult};\npub use sort_by_counter::{sort_by_counter_asc, sort_by_counter_desc};\n\nuse crate::traits::{Empty, is_empty};\n\npub fn subarray<let SRC_LEN: u32, let DST_LEN: u32>(\n src: [Field; SRC_LEN],\n offset: u32,\n) -> [Field; DST_LEN] {\n assert(offset + DST_LEN <= SRC_LEN, \"offset too large\");\n\n let mut dst: [Field; DST_LEN] = std::mem::zeroed();\n for i in 0..DST_LEN {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\n// Helper function to convert a validated array to BoundedVec.\n// Important: Only use it for validated arrays: validate_array(array) should be true.\npub unconstrained fn array_to_bounded_vec<T, let N: u32>(array: [T; N]) -> BoundedVec<T, N>\nwhere\n T: Empty + Eq,\n{\n let len = array_length(array);\n BoundedVec::from_parts_unchecked(array, len)\n}\n\n// Helper function to find the index of the first element in an array that satisfies a given predicate. If the element\n// is not found, the function returns N as the index.\npub unconstrained fn find_index_hint<T, let N: u32, Env>(\n array: [T; N],\n find: fn[Env](T) -> bool,\n) -> u32 {\n let mut index = N;\n for i in 0..N {\n // We check `index == N` to ensure that we only update the index if we haven't found a match yet.\n if (index == N) & find(array[i]) {\n index = i;\n }\n }\n index\n}\n\n// Routine which validates that all zero values of an array form a contiguous region at the end, i.e.,\n// of the form: [*,*,*...,0,0,0,0] where any * is non-zero. Note that a full array of non-zero values is\n// valid.\npub fn validate_array<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let mut seen_empty = false;\n let mut length = 0;\n for i in 0..N {\n if is_empty(array[i]) {\n seen_empty = true;\n } else {\n assert(seen_empty == false, \"invalid array\");\n length += 1;\n }\n }\n length\n}\n\n// Helper function to count the number of non-empty elements in a validated array.\n// Important: Only use it for validated arrays where validate_array(array) returns true,\n// which ensures that:\n// 1. All elements before the first empty element are non-empty\n// 2. All elements after and including the first empty element are empty\n// 3. The array forms a contiguous sequence of non-empty elements followed by empty elements\npub fn array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n // We get the length by checking the index of the first empty element.\n\n // Safety: This is safe because we have validated the array (see function doc above) and the emptiness\n // of the element and non-emptiness of the previous element is checked below.\n let length = unsafe { find_index_hint(array, |elem: T| is_empty(elem)) };\n if length != 0 {\n assert(!is_empty(array[length - 1]));\n }\n if length != N {\n assert(is_empty(array[length]));\n }\n length\n}\n\npub fn array_concat<T, let N: u32, let M: u32>(array1: [T; N], array2: [T; M]) -> [T; N + M] {\n let mut result = [array1[0]; N + M];\n for i in 1..N {\n result[i] = array1[i];\n }\n for i in 0..M {\n result[i + N] = array2[i];\n }\n result\n}\n/// This function assumes that `array1` and `array2` contain no more than N non-empty elements between them,\n/// if this is not the case then elements from the end of `array2` will be dropped.\npub fn array_merge<T, let N: u32>(array1: [T; N], array2: [T; N]) -> [T; N]\nwhere\n T: Empty + Eq,\n{\n // Safety: we constrain this array below\n let result = unsafe { array_merge_helper(array1, array2) };\n // We assume arrays have been validated. The only use cases so far are with previously validated arrays.\n let array1_len = array_length(array1);\n let mut add_from_left = true;\n for i in 0..N {\n add_from_left &= i != array1_len;\n if add_from_left {\n assert_eq(result[i], array1[i]);\n } else {\n assert_eq(result[i], array2[i - array1_len]);\n }\n }\n result\n}\n\nunconstrained fn array_merge_helper<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// Helper function to find the index of the last element in an array, allowing empty elements.\n// e.g. useful for removing trailing 0s from [1, 0, 2, 0, 0, 0] -> [1, 0, 2]\n// Nothing to do with validated arrays. Correctness constrained by padded_array_length.\npub unconstrained fn find_last_value_index<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let mut index = N;\n for i in 0..N {\n let j = N - i - 1;\n // We check `index == N` to ensure that we only update the index if we haven't found a match yet.\n if (index == N) & !is_empty(array[j]) {\n index = j;\n }\n }\n index\n}\n\n// Routine which returns the length of an array right padded by empty elements\n// of the form: [*,*,*...,0,0,0,0] where * is any value (zeroes allowed).\n// See smoke_validate_array_trailing for examples.\n// Nothing to do with validated arrays. Correctness constrained by padded_array_length.\npub unconstrained fn unsafe_padded_array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let index = find_last_value_index(array);\n if index == N {\n 0\n } else {\n index + 1\n }\n}\n\n// Routine which validates that zero values of an array form a contiguous region at the end, i.e.,\n// of the form: [*,*,*...,0,0,0,0] where * is any value (zeroes allowed).\npub fn padded_array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n // Safety: this value is constrained in the below loop.\n let length = unsafe { unsafe_padded_array_length(array) };\n // Check the elt just before length is non-zero:\n if length != 0 {\n assert(!is_empty(array[length - 1]), \"invalid right padded array\");\n }\n // Check all beyond length are zero:\n let mut check_zero = false;\n for i in 0..N {\n check_zero |= i == length;\n if check_zero {\n assert(is_empty(array[i]), \"invalid right padded array\");\n }\n }\n length\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]\nfn smoke_validate_array_trailing() {\n let valid_array: [Field; 0] = [];\n assert(padded_array_length(valid_array) == 0);\n\n let valid_array = [0];\n assert(padded_array_length(valid_array) == 0);\n\n let valid_array = [3];\n assert(padded_array_length(valid_array) == 1);\n\n let valid_array = [1, 0, 3];\n assert(padded_array_length(valid_array) == 3);\n\n let valid_array = [1, 0, 3, 0];\n assert(padded_array_length(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0, 0];\n assert(padded_array_length(valid_array) == 3);\n\n let valid_array = [0, 0, 3, 0, 0];\n assert(padded_array_length(valid_array) == 3);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case0() {\n let invalid_array = [0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case1() {\n let invalid_array = [1, 0, 0, 1, 0];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case2() {\n let invalid_array = [0, 0, 0, 0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test]\nfn test_empty_array_length() {\n assert_eq(array_length([0]), 0);\n assert_eq(array_length([0, 0, 0]), 0);\n}\n\n#[test]\nfn test_array_length() {\n assert_eq(array_length([123]), 1);\n assert_eq(array_length([123, 0, 0]), 1);\n assert_eq(array_length([123, 456]), 2);\n assert_eq(array_length([123, 456, 0]), 2);\n}\n\n#[test]\nfn test_array_length_invalid_arrays() {\n // Result can be misleading (but correct) for invalid arrays.\n assert_eq(array_length([0, 0, 123]), 0);\n assert_eq(array_length([0, 123, 0]), 0);\n assert_eq(array_length([0, 123, 456]), 0);\n assert_eq(array_length([123, 0, 456]), 1);\n}\n\n#[test]\nunconstrained fn find_index_greater_than_min() {\n let values = [10, 20, 30, 40];\n let min = 22;\n let index = find_index_hint(values, |v: Field| min.lt(v));\n assert_eq(index, 2);\n}\n\n#[test]\nunconstrained fn find_index_not_found() {\n let values = [10, 20, 30, 40];\n let min = 100;\n let index = find_index_hint(values, |v: Field| min.lt(v));\n assert_eq(index, 4);\n}\n\n#[test]\nfn test_array_concat() {\n let array0 = [1, 2, 3];\n let array1 = [4, 5];\n let concatenated = array_concat(array0, array1);\n assert_eq(concatenated, [1, 2, 3, 4, 5]);\n}\n\n#[test]\nfn check_permutation_basic_test() {\n let original_array = [1, 2, 3];\n let permuted_array = [3, 1, 2];\n let indexes = [2, 0, 1];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Duplicated index\")]\nfn check_permutation_duplicated_index() {\n let original_array = [0, 1, 0];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 0];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Invalid index\")]\nfn check_permutation_invalid_index() {\n let original_array = [0, 1, 2];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 2];\n check_permutation(original_array, permuted_array, indexes);\n}\n"
|
|
7148
7148
|
},
|
|
7149
7149
|
"351": {
|
|
7150
|
-
"path": "/
|
|
7150
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr",
|
|
7151
7151
|
"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"
|
|
7152
7152
|
},
|
|
7153
7153
|
"46": {
|
|
@@ -7163,11 +7163,11 @@
|
|
|
7163
7163
|
"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: TypeDefinition) -> Quoted {\n let signature = quote { fn eq(_self: Self, _other: Self) -> bool };\n let for_each_field = |name| quote { (_self.$name == _other.$name) };\n let body = |fields| {\n if s.fields_as_written().len() == 0 {\n quote { true }\n } else {\n fields\n }\n };\n crate::meta::make_trait_impl(\n s,\n quote { Eq },\n signature,\n for_each_field,\n quote { & },\n body,\n )\n}\n// docs:end:derive_eq\n\nimpl Eq for Field {\n fn eq(self, other: Field) -> bool {\n self == other\n }\n}\n\nimpl Eq for u128 {\n fn eq(self, other: u128) -> bool {\n self == other\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: TypeDefinition) -> 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 u128 {\n fn cmp(self, other: u128) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\nimpl Ord for u64 {\n fn cmp(self, other: u64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u32 {\n fn cmp(self, other: u32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u16 {\n fn cmp(self, other: u16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u8 {\n fn cmp(self, other: u8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i8 {\n fn cmp(self, other: i8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i16 {\n fn cmp(self, other: i16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i32 {\n fn cmp(self, other: i32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i64 {\n fn cmp(self, other: i64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for () {\n fn cmp(_self: Self, _other: ()) -> Ordering {\n Ordering::equal()\n }\n}\n\nimpl Ord for bool {\n fn cmp(self, other: bool) -> Ordering {\n if self {\n if other {\n Ordering::equal()\n } else {\n Ordering::greater()\n }\n } else if other {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl<T, let N: u32> Ord for [T; N]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T; N]) -> Ordering {\n let mut result = Ordering::equal();\n for i in 0..self.len() {\n if result == Ordering::equal() {\n result = self[i].cmp(other[i]);\n }\n }\n result\n }\n}\n\nimpl<T> Ord for [T]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T]) -> Ordering {\n let mut result = self.len().cmp(other.len());\n for i in 0..self.len() {\n if result == Ordering::equal() {\n result = self[i].cmp(other[i]);\n }\n }\n result\n }\n}\n\nimpl<A, B> Ord for (A, B)\nwhere\n A: Ord,\n B: Ord,\n{\n fn cmp(self, other: (A, B)) -> Ordering {\n let result = self.0.cmp(other.0);\n\n if result != Ordering::equal() {\n result\n } else {\n self.1.cmp(other.1)\n }\n }\n}\n\nimpl<A, B, C> Ord for (A, B, C)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n{\n fn cmp(self, other: (A, B, C)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D> Ord for (A, B, C, D)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n D: Ord,\n{\n fn cmp(self, other: (A, B, C, D)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D, E> Ord for (A, B, C, D, E)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n D: Ord,\n E: Ord,\n{\n fn cmp(self, other: (A, B, C, D, E)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n if result == Ordering::equal() {\n result = self.4.cmp(other.4);\n }\n\n result\n }\n}\n\n// Compares and returns the maximum of two values.\n//\n// Returns the second argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::max(1, 2), 2);\n// assert_eq(cmp::max(2, 2), 2);\n// ```\npub fn max<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v1\n } else {\n v2\n }\n}\n\n// Compares and returns the minimum of two values.\n//\n// Returns the first argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::min(1, 2), 1);\n// assert_eq(cmp::min(2, 2), 2);\n// ```\npub fn min<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v2\n } else {\n v1\n }\n}\n\nmod cmp_tests {\n use crate::cmp::{max, min};\n\n #[test]\n fn sanity_check_min() {\n assert_eq(min(0 as u64, 1 as u64), 0);\n assert_eq(min(0 as u64, 0 as u64), 0);\n assert_eq(min(1 as u64, 1 as u64), 1);\n assert_eq(min(255 as u8, 0 as u8), 0);\n }\n\n #[test]\n fn sanity_check_max() {\n assert_eq(max(0 as u64, 1 as u64), 1);\n assert_eq(max(0 as u64, 0 as u64), 0);\n assert_eq(max(1 as u64, 1 as u64), 1);\n assert_eq(max(255 as u8, 0 as u8), 255);\n }\n}\n"
|
|
7164
7164
|
},
|
|
7165
7165
|
"58": {
|
|
7166
|
-
"path": "/
|
|
7166
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-contracts/contracts/contract_class_registerer_contract/src/main.nr",
|
|
7167
7167
|
"source": "mod events;\n\nuse dep::aztec::macros::aztec;\n\n#[aztec]\npub contract ContractClassRegisterer {\n use dep::aztec::protocol_types::{\n abis::log_hash::LogHash,\n constants::{\n ARTIFACT_FUNCTION_TREE_MAX_HEIGHT, CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS,\n FUNCTION_TREE_HEIGHT, MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS,\n MAX_PACKED_BYTECODE_SIZE_PER_UNCONSTRAINED_FUNCTION_IN_FIELDS,\n MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS, REGISTERER_CONTRACT_BYTECODE_CAPSULE_SLOT,\n },\n contract_class_id::ContractClassId,\n hash::poseidon2_hash,\n utils::arrays::{array_concat, unsafe_padded_array_length},\n };\n\n use dep::aztec::{\n context::PrivateContext, macros::functions::private,\n oracle::logs::notify_created_contract_class_log,\n };\n\n use crate::events::{\n class_registered::ContractClassRegistered,\n private_function_broadcasted::{\n ClassPrivateFunctionBroadcasted, InnerPrivateFunction, PrivateFunction,\n },\n unconstrained_function_broadcasted::{\n ClassUnconstrainedFunctionBroadcasted, InnerUnconstrainedFunction,\n UnconstrainedFunction,\n },\n };\n\n use dep::aztec::protocol_types::traits::ToField;\n\n // docs:start:import_capsules\n use dep::aztec::oracle::capsules;\n // docs:end:import_capsules\n\n #[private]\n fn register(\n artifact_hash: Field,\n private_functions_root: Field,\n public_bytecode_commitment: Field,\n ) {\n // TODO: Validate public_bytecode_commitment is the correct commitment of packed_public_bytecode\n // TODO: We should be able to remove public_bytecode_commitment from the input if it's calculated in this function\n // docs:start:load_capsule\n let packed_public_bytecode: [Field; MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS] = unsafe {\n capsules::load(\n context.this_address(),\n REGISTERER_CONTRACT_BYTECODE_CAPSULE_SLOT,\n )\n .unwrap()\n };\n // docs:end:load_capsule\n // First field element contains the length of the bytecode\n let bytecode_length_in_bytes: u32 = packed_public_bytecode[0] as u32;\n let bytecode_length_in_fields: u32 =\n (bytecode_length_in_bytes / 31) + (bytecode_length_in_bytes % 31 != 0) as u32;\n // We don't allow registering classes with empty public bytecode.\n // Since the AVM doesn't handle execution of empty bytecode at the moment.\n assert(bytecode_length_in_fields != 0);\n assert(bytecode_length_in_fields < MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS);\n\n // The first value in the running hash is the bytecode length in bytes\n let mut computed_public_bytecode_commitment = packed_public_bytecode[0];\n // We can hash up to MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS - 1, since the first element is the length\n for i in 0..(MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS - 1) {\n // While we are forced to run the hash MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS times in the circuit,\n // we want the bytecode commitment to be based on the actual length\n if (i < bytecode_length_in_fields) {\n // We skip the first element when hashing since it is the length\n computed_public_bytecode_commitment = std::hash::poseidon2::Poseidon2::hash(\n [packed_public_bytecode[i + 1], computed_public_bytecode_commitment],\n 2,\n );\n } else {\n // Any bytes after the bytecode length must be 0\n assert_eq(packed_public_bytecode[i + 1], 0);\n }\n }\n assert_eq(computed_public_bytecode_commitment, public_bytecode_commitment);\n\n // Compute contract class id from preimage\n let contract_class_id = ContractClassId::compute(\n artifact_hash,\n private_functions_root,\n public_bytecode_commitment,\n );\n\n // Emit the contract class id as a nullifier to be able to prove that this class has been (not) registered\n context.push_nullifier(contract_class_id.to_field());\n\n // Broadcast class info including public bytecode\n dep::aztec::oracle::debug_log::debug_log_format(\n \"ContractClassRegistered: {}\",\n [\n contract_class_id.to_field(),\n artifact_hash,\n private_functions_root,\n public_bytecode_commitment,\n ],\n );\n\n let event = ContractClassRegistered {\n contract_class_id,\n version: 1,\n artifact_hash,\n private_functions_root,\n packed_public_bytecode,\n };\n emit_contract_class_log(&mut context, event.serialize_non_standard());\n }\n\n #[private]\n fn broadcast_private_function(\n contract_class_id: ContractClassId,\n artifact_metadata_hash: Field,\n unconstrained_functions_artifact_tree_root: Field,\n private_function_tree_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n private_function_tree_leaf_index: Field,\n artifact_function_tree_sibling_path: [Field; ARTIFACT_FUNCTION_TREE_MAX_HEIGHT],\n artifact_function_tree_leaf_index: Field,\n function_data: InnerPrivateFunction,\n ) {\n let private_bytecode: [Field; MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS] = unsafe {\n capsules::load(\n context.this_address(),\n REGISTERER_CONTRACT_BYTECODE_CAPSULE_SLOT,\n )\n .unwrap()\n };\n\n let event = ClassPrivateFunctionBroadcasted {\n contract_class_id,\n artifact_metadata_hash,\n unconstrained_functions_artifact_tree_root,\n private_function_tree_sibling_path,\n private_function_tree_leaf_index,\n artifact_function_tree_sibling_path,\n artifact_function_tree_leaf_index,\n function: PrivateFunction {\n selector: function_data.selector,\n metadata_hash: function_data.metadata_hash,\n vk_hash: function_data.vk_hash,\n bytecode: private_bytecode,\n },\n };\n dep::aztec::oracle::debug_log::debug_log_format(\n \"ClassPrivateFunctionBroadcasted: {}\",\n [\n contract_class_id.to_field(),\n artifact_metadata_hash,\n unconstrained_functions_artifact_tree_root,\n function_data.selector.to_field(),\n function_data.vk_hash,\n function_data.metadata_hash,\n ],\n );\n emit_contract_class_log(&mut context, event.serialize_non_standard());\n }\n\n #[private]\n fn broadcast_unconstrained_function(\n contract_class_id: ContractClassId,\n artifact_metadata_hash: Field,\n private_functions_artifact_tree_root: Field,\n artifact_function_tree_sibling_path: [Field; ARTIFACT_FUNCTION_TREE_MAX_HEIGHT],\n artifact_function_tree_leaf_index: Field,\n function_data: InnerUnconstrainedFunction,\n ) {\n let unconstrained_bytecode: [Field; MAX_PACKED_BYTECODE_SIZE_PER_UNCONSTRAINED_FUNCTION_IN_FIELDS] = unsafe {\n capsules::load(\n context.this_address(),\n REGISTERER_CONTRACT_BYTECODE_CAPSULE_SLOT,\n )\n .unwrap()\n };\n let event = ClassUnconstrainedFunctionBroadcasted {\n contract_class_id,\n artifact_metadata_hash,\n private_functions_artifact_tree_root,\n artifact_function_tree_sibling_path,\n artifact_function_tree_leaf_index,\n function: UnconstrainedFunction {\n selector: function_data.selector,\n metadata_hash: function_data.metadata_hash,\n bytecode: unconstrained_bytecode,\n },\n };\n dep::aztec::oracle::debug_log::debug_log_format(\n \"ClassUnconstrainedFunctionBroadcasted: {}\",\n [\n contract_class_id.to_field(),\n artifact_metadata_hash,\n private_functions_artifact_tree_root,\n function_data.selector.to_field(),\n function_data.metadata_hash,\n ],\n );\n emit_contract_class_log(&mut context, event.serialize_non_standard());\n }\n\n #[contract_library_method]\n fn emit_contract_class_log<let N: u32>(context: &mut PrivateContext, log: [Field; N]) {\n let contract_address = context.this_address();\n let counter = context.next_counter();\n\n let log_to_emit: [Field; CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS] =\n array_concat(log, [0; CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS - N]);\n // Note: the length is not always N, it is the number of fields we want to broadcast, omitting trailing zeros to save blob space.\n // Safety: The below length is constrained in the base rollup.\n let length = unsafe { unsafe_padded_array_length(log_to_emit) };\n // We hash the entire padded log to ensure a user cannot pass a shorter length and so emit incorrect shorter bytecode.\n let log_hash = poseidon2_hash(log_to_emit);\n // Safety: the below only exists to broadcast the raw log, so we can provide it to the base rollup later to be constrained.\n unsafe {\n notify_created_contract_class_log(contract_address, log_to_emit, counter);\n }\n\n context.contract_class_logs_hashes.push(LogHash { value: log_hash, counter, length });\n }\n\n #[private]\n fn assert_class_id_is_registered(contract_class_id: ContractClassId) {\n context.push_nullifier_read_request(contract_class_id.to_field());\n }\n}\n"
|
|
7168
7168
|
},
|
|
7169
7169
|
"59": {
|
|
7170
|
-
"path": "/
|
|
7170
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/capsules/mod.nr",
|
|
7171
7171
|
"source": "use crate::oracle::capsules;\nuse protocol_types::{address::AztecAddress, traits::{Deserialize, Serialize}};\n\n/// A dynamically sized array backed by PXE's non-volatile database (called capsules). Values are persisted until\n/// deleted, so they can be e.g. stored during simulation of a transaction and later retrieved during witness\n/// generation. All values are scoped per contract address, so external contracts cannot access them.\npub struct CapsuleArray<T> {\n contract_address: AztecAddress,\n /// The base slot is where the array length is stored in capsules. Array elements are stored in consecutive slots\n /// after the base slot. For example, with base slot 5: the length is at slot 5, the first element (index 0) is at\n /// slot 6, the second element (index 1) is at slot 7, and so on.\n base_slot: Field,\n}\n\nimpl<T, let N: u32> CapsuleArray<T>\nwhere\n T: Serialize<N> + Deserialize<N>,\n{\n /// Returns a CapsuleArray connected to a contract's capsules at a base slot. Array elements are stored in\n /// contiguous slots following the base slot, so there should be sufficient space between array base slots to\n /// accommodate elements. A reasonable strategy is to make the base slot a hash of a unique value.\n pub unconstrained fn at(contract_address: AztecAddress, base_slot: Field) -> Self {\n Self { contract_address, base_slot }\n }\n\n /// Returns the number of elements stored in the array.\n pub unconstrained fn len(self) -> u32 {\n // An uninitialized array defaults to a length of 0.\n capsules::load(self.contract_address, self.base_slot).unwrap_or(0) as u32\n }\n\n /// Stores a value at the end of the array.\n pub unconstrained fn push(self, value: T) {\n let current_length = self.len();\n\n // The slot corresponding to the index `current_length` is the first slot immediately after the end of the\n // array, which is where we want to place the new value.\n capsules::store(self.contract_address, self.slot_at(current_length), value);\n\n // Then we simply update the length.\n let new_length = current_length + 1;\n capsules::store(self.contract_address, self.base_slot, new_length);\n }\n\n /// Retrieves the value stored in the array at `index`. Throws if the index is out of bounds.\n pub unconstrained fn get(self, index: u32) -> T {\n assert(index < self.len(), \"Attempted to read past the length of a CapsuleArray\");\n\n capsules::load(self.contract_address, self.slot_at(index)).unwrap()\n }\n\n /// Deletes the value stored in the array at `index`. Throws if the index is out of bounds.\n pub unconstrained fn remove(self, index: u32) {\n let current_length = self.len();\n assert(index < current_length, \"Attempted to delete past the length of a CapsuleArray\");\n\n // In order to be able to remove elements at arbitrary indices, we need to shift the entire contents of the\n // array past the removed element one slot backward so that we don't end up with a gap and preserve the\n // contiguous slots. We can skip this when deleting the last element however.\n if index != current_length - 1 {\n // The source and destination regions overlap, but `copy` supports this.\n capsules::copy(\n self.contract_address,\n self.slot_at(index + 1),\n self.slot_at(index),\n current_length - index - 1,\n );\n }\n\n // We can now delete the last element (which has either been copied to the slot immediately before it, or was\n // the element we meant to delete in the first place) and update the length.\n capsules::delete(self.contract_address, self.slot_at(current_length - 1));\n capsules::store(self.contract_address, self.base_slot, current_length - 1);\n }\n\n unconstrained fn slot_at(self, index: u32) -> Field {\n // Elements are stored immediately after the base slot, so we add 1 to it to compute the slot for the first\n // element.\n self.base_slot + 1 + index as Field\n }\n}\n\nmod test {\n use crate::test::helpers::test_environment::TestEnvironment;\n use super::CapsuleArray;\n use protocol_types::address::AztecAddress;\n\n global SLOT: Field = 1230;\n\n unconstrained fn setup() -> AztecAddress {\n TestEnvironment::new().unkonstrained().this_address()\n }\n\n #[test]\n unconstrained fn empty_array() {\n let contract_address = setup();\n\n let array: CapsuleArray<Field> = CapsuleArray::at(contract_address, SLOT);\n assert_eq(array.len(), 0);\n }\n\n #[test(should_fail_with = \"Attempted to read past the length of a CapsuleArray\")]\n unconstrained fn empty_array_read() {\n let contract_address = setup();\n\n let array = CapsuleArray::at(contract_address, SLOT);\n let _: Field = array.get(0);\n }\n\n #[test]\n unconstrained fn array_push() {\n let contract_address = setup();\n\n let array = CapsuleArray::at(contract_address, SLOT);\n array.push(5);\n\n assert_eq(array.len(), 1);\n assert_eq(array.get(0), 5);\n }\n\n #[test(should_fail_with = \"Attempted to read past the length of a CapsuleArray\")]\n unconstrained fn read_past_len() {\n let contract_address = setup();\n\n let array = CapsuleArray::at(contract_address, SLOT);\n array.push(5);\n\n let _ = array.get(1);\n }\n\n #[test]\n unconstrained fn array_remove_last() {\n let contract_address = setup();\n\n let array = CapsuleArray::at(contract_address, SLOT);\n\n array.push(5);\n array.remove(0);\n\n assert_eq(array.len(), 0);\n }\n\n #[test]\n unconstrained fn array_remove_some() {\n let contract_address = setup();\n\n let array = CapsuleArray::at(contract_address, SLOT);\n\n array.push(7);\n array.push(8);\n array.push(9);\n\n assert_eq(array.len(), 3);\n assert_eq(array.get(0), 7);\n assert_eq(array.get(1), 8);\n assert_eq(array.get(2), 9);\n\n array.remove(1);\n\n assert_eq(array.len(), 2);\n assert_eq(array.get(0), 7);\n assert_eq(array.get(1), 9);\n }\n\n #[test]\n unconstrained fn array_remove_all() {\n let contract_address = setup();\n\n let array = CapsuleArray::at(contract_address, SLOT);\n\n array.push(7);\n array.push(8);\n array.push(9);\n\n array.remove(1);\n array.remove(1);\n array.remove(0);\n\n assert_eq(array.len(), 0);\n }\n}\n"
|
|
7172
7172
|
},
|
|
7173
7173
|
"6": {
|
|
@@ -7175,31 +7175,31 @@
|
|
|
7175
7175
|
"source": "use crate::{cmp::Eq, convert::From, runtime::is_unconstrained, static_assert};\n\n/// A `BoundedVec<T, MaxLen>` is a growable storage similar to a `Vec<T>` except that it\n/// is bounded with a maximum possible length. Unlike `Vec`, `BoundedVec` is not implemented\n/// via slices and thus is not subject to the same restrictions slices are (notably, nested\n/// slices - and thus nested vectors as well - are disallowed).\n///\n/// Since a BoundedVec is backed by a normal array under the hood, growing the BoundedVec by\n/// pushing an additional element is also more efficient - the length only needs to be increased\n/// by one.\n///\n/// For these reasons `BoundedVec<T, N>` should generally be preferred over `Vec<T>` when there\n/// is a reasonable maximum bound that can be placed on the vector.\n///\n/// Example:\n///\n/// ```noir\n/// let mut vector: BoundedVec<Field, 10> = BoundedVec::new();\n/// for i in 0..5 {\n/// vector.push(i);\n/// }\n/// assert(vector.len() == 5);\n/// assert(vector.max_len() == 10);\n/// ```\npub struct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n /// Creates a new, empty vector of length zero.\n ///\n /// Since this container is backed by an array internally, it still needs an initial value\n /// to give each element. To resolve this, each element is zeroed internally. This value\n /// is guaranteed to be inaccessible unless `get_unchecked` is used.\n ///\n /// Example:\n ///\n /// ```noir\n /// let empty_vector: BoundedVec<Field, 10> = BoundedVec::new();\n /// assert(empty_vector.len() == 0);\n /// ```\n ///\n /// Note that whenever calling `new` the maximum length of the vector should always be specified\n /// via a type signature:\n ///\n /// ```noir\n /// fn good() -> BoundedVec<Field, 10> {\n /// // Ok! MaxLen is specified with a type annotation\n /// let v1: BoundedVec<Field, 3> = BoundedVec::new();\n /// let v2 = BoundedVec::new();\n ///\n /// // Ok! MaxLen is known from the type of `good`'s return value\n /// v2\n /// }\n ///\n /// fn bad() {\n /// // Error: Type annotation needed\n /// // The compiler can't infer `MaxLen` from the following code:\n /// let mut v3 = BoundedVec::new();\n /// v3.push(5);\n /// }\n /// ```\n ///\n /// This defaulting of `MaxLen` (and numeric generics in general) to zero may change in future noir versions\n /// but for now make sure to use type annotations when using bounded vectors. Otherwise, you will receive a\n /// constraint failure at runtime when the vec is pushed to.\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Retrieves an element from the vector at the given index, starting from zero.\n ///\n /// If the given index is equal to or greater than the length of the vector, this\n /// will issue a constraint failure.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// let last = v.get(v.len() - 1);\n /// assert(first != last);\n /// }\n /// ```\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Retrieves an element from the vector at the given index, starting from zero, without\n /// performing a bounds check.\n ///\n /// Since this function does not perform a bounds check on length before accessing the element,\n /// it is unsafe! Use at your own risk!\n ///\n /// Example:\n ///\n /// ```noir\n /// fn sum_of_first_three<let N: u32>(v: BoundedVec<u32, N>) -> u32 {\n /// // Always ensure the length is larger than the largest\n /// // index passed to get_unchecked\n /// assert(v.len() > 2);\n /// let first = v.get_unchecked(0);\n /// let second = v.get_unchecked(1);\n /// let third = v.get_unchecked(2);\n /// first + second + third\n /// }\n /// ```\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Writes an element to the vector at the given index, starting from zero.\n ///\n /// If the given index is equal to or greater than the length of the vector, this will issue a constraint failure.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// assert(first != 42);\n /// v.set(0, 42);\n /// let new_first = v.get(0);\n /// assert(new_first == 42);\n /// }\n /// ```\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Writes an element to the vector at the given index, starting from zero, without performing a bounds check.\n ///\n /// Since this function does not perform a bounds check on length before accessing the element, it is unsafe! Use at your own risk!\n ///\n /// Example:\n ///\n /// ```noir\n /// fn set_unchecked_example() {\n /// let mut vec: BoundedVec<u32, 5> = BoundedVec::new();\n /// vec.extend_from_array([1, 2]);\n ///\n /// // Here we're safely writing within the valid range of `vec`\n /// // `vec` now has the value [42, 2]\n /// vec.set_unchecked(0, 42);\n ///\n /// // We can then safely read this value back out of `vec`.\n /// // Notice that we use the checked version of `get` which would prevent reading unsafe values.\n /// assert_eq(vec.get(0), 42);\n ///\n /// // We've now written past the end of `vec`.\n /// // As this index is still within the maximum potential length of `v`,\n /// // it won't cause a constraint failure.\n /// vec.set_unchecked(2, 42);\n /// println(vec);\n ///\n /// // This will write past the end of the maximum potential length of `vec`,\n /// // it will then trigger a constraint failure.\n /// vec.set_unchecked(5, 42);\n /// println(vec);\n /// }\n /// ```\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n /// Pushes an element to the end of the vector. This increases the length\n /// of the vector by one.\n ///\n /// Panics if the new length of the vector will be greater than the max length.\n ///\n /// Example:\n ///\n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n ///\n /// v.push(1);\n /// v.push(2);\n ///\n /// // Panics with failed assertion \"push out of bounds\"\n /// v.push(3);\n /// ```\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n /// Returns the current length of this vector\n ///\n /// Example:\n ///\n /// ```noir\n /// let mut v: BoundedVec<Field, 4> = BoundedVec::new();\n /// assert(v.len() == 0);\n ///\n /// v.push(100);\n /// assert(v.len() == 1);\n ///\n /// v.push(200);\n /// v.push(300);\n /// v.push(400);\n /// assert(v.len() == 4);\n ///\n /// let _ = v.pop();\n /// let _ = v.pop();\n /// assert(v.len() == 2);\n /// ```\n pub fn len(self) -> u32 {\n self.len\n }\n\n /// Returns the maximum length of this vector. This is always\n /// equal to the `MaxLen` parameter this vector was initialized with.\n ///\n /// Example:\n ///\n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n ///\n /// assert(v.max_len() == 5);\n /// v.push(10);\n /// assert(v.max_len() == 5);\n /// ```\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n /// Returns the internal array within this vector.\n ///\n /// Since arrays in Noir are immutable, mutating the returned storage array will not mutate\n /// the storage held internally by this vector.\n ///\n /// Note that uninitialized elements may be zeroed out!\n ///\n /// Example:\n ///\n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n ///\n /// assert(v.storage() == [0, 0, 0, 0, 0]);\n ///\n /// v.push(57);\n /// assert(v.storage() == [57, 0, 0, 0, 0]);\n /// ```\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n /// Pushes each element from the given array to this vector.\n ///\n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n ///\n /// Example:\n ///\n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_array([2, 4]);\n ///\n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\n /// ```\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n /// Pushes each element from the given slice to this vector.\n ///\n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n ///\n /// Example:\n ///\n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_slice(&[2, 4]);\n ///\n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\n /// ```\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n /// Pushes each element from the other vector to this vector. The length of\n /// the other vector is left unchanged.\n ///\n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n ///\n /// ```noir\n /// let mut v1: BoundedVec<Field, 5> = BoundedVec::new();\n /// let mut v2: BoundedVec<Field, 7> = BoundedVec::new();\n ///\n /// v2.extend_from_array([1, 2, 3]);\n /// v1.extend_from_bounded_vec(v2);\n ///\n /// assert(v1.storage() == [1, 2, 3, 0, 0]);\n /// assert(v2.storage() == [1, 2, 3, 0, 0, 0, 0]);\n /// ```\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n if is_unconstrained() {\n for i in 0..append_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n } else {\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n }\n self.len = new_len;\n }\n\n /// Creates a new vector, populating it with values derived from an array input.\n /// The maximum length of the vector is determined based on the type signature.\n ///\n /// Example:\n ///\n /// ```noir\n /// let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array([1, 2, 3])\n /// ```\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n static_assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n /// Pops the element at the end of the vector. This will decrease the length\n /// of the vector by one.\n ///\n /// Panics if the vector is empty.\n ///\n /// Example:\n ///\n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// v.push(1);\n /// v.push(2);\n ///\n /// let two = v.pop();\n /// let one = v.pop();\n ///\n /// assert(two == 2);\n /// assert(one == 1);\n ///\n /// // error: cannot pop from an empty vector\n /// let _ = v.pop();\n /// ```\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::mem::zeroed();\n elem\n }\n\n /// Returns true if the given predicate returns true for any element\n /// in this vector.\n ///\n /// Example:\n ///\n /// ```noir\n /// let mut v: BoundedVec<u32, 3> = BoundedVec::new();\n /// v.extend_from_array([2, 4, 6]);\n ///\n /// let all_even = !v.any(|elem: u32| elem % 2 != 0);\n /// assert(all_even);\n /// ```\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n if is_unconstrained() {\n for i in 0..self.len {\n ret |= predicate(self.storage[i]);\n }\n } else {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n }\n ret\n }\n\n /// Creates a new vector of equal size by calling a closure on each element in this vector.\n ///\n /// Example:\n ///\n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n /// let result = vec.map(|value| value * 2);\n ///\n /// let expected = BoundedVec::from_array([2, 4, 6, 8]);\n /// assert_eq(result, expected);\n /// ```\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n\n if is_unconstrained() {\n for i in 0..self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n } else {\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n }\n\n ret\n }\n\n /// Creates a new vector of equal size by calling a closure on each element\n /// in this vector, along with its index.\n ///\n /// Example:\n ///\n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n /// let result = vec.mapi(|i, value| i + value * 2);\n ///\n /// let expected = BoundedVec::from_array([2, 5, 8, 11]);\n /// assert_eq(result, expected);\n /// ```\n pub fn mapi<U, Env>(self, f: fn[Env](u32, T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n\n if is_unconstrained() {\n for i in 0..self.len() {\n ret.storage[i] = f(i, self.get_unchecked(i));\n }\n } else {\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(i, self.get_unchecked(i));\n }\n }\n }\n\n ret\n }\n\n /// Calls a closure on each element in this vector.\n ///\n /// Example:\n ///\n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n /// let mut result = BoundedVec::<u32, 4>::new();\n /// vec.for_each(|value| result.push(value * 2));\n ///\n /// let expected = BoundedVec::from_array([2, 4, 6, 8]);\n /// assert_eq(result, expected);\n /// ```\n pub fn for_each<Env>(self, f: fn[Env](T) -> ()) {\n if is_unconstrained() {\n for i in 0..self.len() {\n f(self.get_unchecked(i));\n }\n } else {\n for i in 0..MaxLen {\n if i < self.len() {\n f(self.get_unchecked(i));\n }\n }\n }\n }\n\n /// Calls a closure on each element in this vector, along with its index.\n ///\n /// Example:\n ///\n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n /// let mut result = BoundedVec::<u32, 4>::new();\n /// vec.for_eachi(|i, value| result.push(i + value * 2));\n ///\n /// let expected = BoundedVec::from_array([2, 5, 8, 11]);\n /// assert_eq(result, expected);\n /// ```\n pub fn for_eachi<Env>(self, f: fn[Env](u32, T) -> ()) {\n if is_unconstrained() {\n for i in 0..self.len() {\n f(i, self.get_unchecked(i));\n }\n } else {\n for i in 0..MaxLen {\n if i < self.len() {\n f(i, self.get_unchecked(i));\n }\n }\n }\n }\n\n /// Creates a new BoundedVec from the given array and length.\n /// The given length must be less than or equal to the length of the array.\n ///\n /// This function will zero out any elements at or past index `len` of `array`.\n /// This incurs an extra runtime cost of O(MaxLen). If you are sure your array is\n /// zeroed after that index, you can use `from_parts_unchecked` to remove the extra loop.\n ///\n /// Example:\n ///\n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_parts([1, 2, 3, 0], 3);\n /// assert_eq(vec.len(), 3);\n /// ```\n pub fn from_parts(mut array: [T; MaxLen], len: u32) -> Self {\n assert(len <= MaxLen);\n let zeroed = crate::mem::zeroed();\n\n if is_unconstrained() {\n for i in len..MaxLen {\n array[i] = zeroed;\n }\n } else {\n for i in 0..MaxLen {\n if i >= len {\n array[i] = zeroed;\n }\n }\n }\n\n BoundedVec { storage: array, len }\n }\n\n /// Creates a new BoundedVec from the given array and length.\n /// The given length must be less than or equal to the length of the array.\n ///\n /// This function is unsafe because it expects all elements past the `len` index\n /// of `array` to be zeroed, but does not check for this internally. Use `from_parts`\n /// for a safe version of this function which does zero out any indices past the\n /// given length. Invalidating this assumption can notably cause `BoundedVec::eq`\n /// to give incorrect results since it will check even elements past `len`.\n ///\n /// Example:\n ///\n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_parts_unchecked([1, 2, 3, 0], 3);\n /// assert_eq(vec.len(), 3);\n ///\n /// // invalid use!\n /// let vec1: BoundedVec<u32, 4> = BoundedVec::from_parts_unchecked([1, 2, 3, 1], 3);\n /// let vec2: BoundedVec<u32, 4> = BoundedVec::from_parts_unchecked([1, 2, 3, 2], 3);\n ///\n /// // both vecs have length 3 so we'd expect them to be equal, but this\n /// // fails because elements past the length are still checked in eq\n /// assert_eq(vec1, vec2); // fails\n /// ```\n pub fn from_parts_unchecked(array: [T; MaxLen], len: u32) -> Self {\n assert(len <= MaxLen);\n BoundedVec { storage: array, len }\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen>\nwhere\n T: Eq,\n{\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n if self.len == other.len {\n self.storage == other.storage\n } else {\n false\n }\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.get_unchecked(2), 0);\n }\n }\n\n mod mapi {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-mapi-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.mapi(|i, value| i + value * 2);\n // docs:end:bounded-vec-mapi-example\n let expected = BoundedVec::from_array([2, 5, 8, 11]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.mapi(|i, value| (i + value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 5, 8, 11]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.mapi(|_, value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.get_unchecked(2), 0);\n }\n }\n\n mod for_each {\n use crate::collections::bounded_vec::BoundedVec;\n\n // map in terms of for_each\n fn for_each_map<T, U, Env, let MaxLen: u32>(\n input: BoundedVec<T, MaxLen>,\n f: fn[Env](T) -> U,\n ) -> BoundedVec<U, MaxLen> {\n let mut output = BoundedVec::<U, MaxLen>::new();\n let output_ref = &mut output;\n input.for_each(|x| output_ref.push(f(x)));\n output\n }\n\n #[test]\n fn smoke_test() {\n let mut acc = 0;\n let acc_ref = &mut acc;\n // docs:start:bounded-vec-for-each-example\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([1, 2, 3]);\n vec.for_each(|value| { *acc_ref += value; });\n // docs:end:bounded-vec-for-each-example\n assert_eq(acc, 6);\n }\n\n #[test]\n fn applies_function_correctly() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = for_each_map(vec, |value| value * 2);\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = for_each_map(vec, |value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = for_each_map(vec, |value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.get_unchecked(2), 0);\n }\n }\n\n mod for_eachi {\n use crate::collections::bounded_vec::BoundedVec;\n\n // mapi in terms of for_eachi\n fn for_eachi_mapi<T, U, Env, let MaxLen: u32>(\n input: BoundedVec<T, MaxLen>,\n f: fn[Env](u32, T) -> U,\n ) -> BoundedVec<U, MaxLen> {\n let mut output = BoundedVec::<U, MaxLen>::new();\n let output_ref = &mut output;\n input.for_eachi(|i, x| output_ref.push(f(i, x)));\n output\n }\n\n #[test]\n fn smoke_test() {\n let mut acc = 0;\n let acc_ref = &mut acc;\n // docs:start:bounded-vec-for-eachi-example\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([1, 2, 3]);\n vec.for_eachi(|i, value| { *acc_ref += i * value; });\n // docs:end:bounded-vec-for-eachi-example\n\n // 0 * 1 + 1 * 2 + 2 * 3\n assert_eq(acc, 8);\n }\n\n #[test]\n fn applies_function_correctly() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = for_eachi_mapi(vec, |i, value| i + value * 2);\n let expected = BoundedVec::from_array([2, 5, 8, 11]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = for_eachi_mapi(vec, |i, value| (i + value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 5, 8, 11]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = for_eachi_mapi(vec, |_, value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.get_unchecked(2), 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.get(0), 1);\n assert_eq(bounded_vec.get(1), 2);\n assert_eq(bounded_vec.get(2), 3);\n }\n\n #[test(should_fail_with = \"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n use crate::convert::From;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.get(0), 1);\n assert_eq(bounded_vec.get(1), 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n\n mod from_parts {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn from_parts() {\n // docs:start:from-parts\n let vec: BoundedVec<u32, 4> = BoundedVec::from_parts([1, 2, 3, 0], 3);\n assert_eq(vec.len(), 3);\n\n // Any elements past the given length are zeroed out, so these\n // two BoundedVecs will be completely equal\n let vec1: BoundedVec<u32, 4> = BoundedVec::from_parts([1, 2, 3, 1], 3);\n let vec2: BoundedVec<u32, 4> = BoundedVec::from_parts([1, 2, 3, 2], 3);\n assert_eq(vec1, vec2);\n // docs:end:from-parts\n }\n\n #[test]\n fn from_parts_unchecked() {\n // docs:start:from-parts-unchecked\n let vec: BoundedVec<u32, 4> = BoundedVec::from_parts_unchecked([1, 2, 3, 0], 3);\n assert_eq(vec.len(), 3);\n\n // invalid use!\n let vec1: BoundedVec<u32, 4> = BoundedVec::from_parts_unchecked([1, 2, 3, 1], 3);\n let vec2: BoundedVec<u32, 4> = BoundedVec::from_parts_unchecked([1, 2, 3, 2], 3);\n\n // both vecs have length 3 so we'd expect them to be equal, but this\n // fails because elements past the length are still checked in eq\n assert(vec1 != vec2);\n // docs:end:from-parts-unchecked\n }\n }\n}\n"
|
|
7176
7176
|
},
|
|
7177
7177
|
"67": {
|
|
7178
|
-
"path": "/
|
|
7178
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/context/private_context.nr",
|
|
7179
7179
|
"source": "use dep::protocol_types::debug_log::debug_log_format;\n\nuse crate::{\n context::{inputs::PrivateContextInputs, returns_hash::ReturnsHash},\n hash::{ArgsHasher, hash_args_array, hash_calldata_array},\n keys::constants::{NULLIFIER_INDEX, NUM_KEY_TYPES, OUTGOING_INDEX, sk_generators},\n messaging::process_l1_to_l2_message,\n oracle::{\n block_header::get_block_header_at,\n call_private_function::call_private_function_internal,\n enqueue_public_function_call::{\n notify_enqueued_public_function_call, notify_set_min_revertible_side_effect_counter,\n notify_set_public_teardown_function_call,\n },\n execution_cache,\n key_validation_request::get_key_validation_request,\n notes::{notify_created_nullifier, notify_nullified_note},\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext,\n function_selector::FunctionSelector,\n gas_settings::GasSettings,\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,\n },\n messaging::l2_to_l1_message::L2ToL1Message,\n traits::{Empty, Hash, ToField},\n utils::arrays::array_concat,\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 gas_settings(self) -> GasSettings {\n self.inputs.tx_context.gas_settings\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 notify_created_nullifier(nullifier);\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 let nullifier_counter = self.next_counter();\n notify_nullified_note(nullifier, nullified_note_hash, nullifier_counter);\n self.nullifiers.push(\n Nullifier {\n value: nullifier,\n note_hash: nullified_note_hash,\n counter: nullifier_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 self.return_hash = returns_hasher.hash();\n execution_cache::store(returns_hasher.fields, self.return_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\n // Safety: Kernels verify that the key validation request is valid and below we verify that a request\n // for the correct public key has been received.\n let request = unsafe { get_key_validation_request(pk_m_hash, key_index) };\n assert_eq(request.pk_m.hash(), pk_m_hash, \"Obtained invalid key validation request\");\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 ) -> ReturnsHash {\n let args_hash = hash_args_array(args);\n execution_cache::store(args, args_hash);\n self.call_private_function_with_args_hash(\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 ) -> ReturnsHash {\n let args_hash = hash_args_array(args);\n execution_cache::store(args, args_hash);\n self.call_private_function_with_args_hash(\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 ) -> ReturnsHash {\n self.call_private_function_with_args_hash(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 ) -> ReturnsHash {\n self.call_private_function_with_args_hash(contract_address, function_selector, 0, true)\n }\n\n pub fn call_private_function_with_args_hash(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> ReturnsHash {\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 // Safety: The oracle simulates the private call and returns the value of the side effects counter after\n // execution of the call (which means that end_side_effect_counter - start_side_effect_counter is\n // the number of side effects that took place), along with the hash of the return values. We validate these\n // by requesting a private kernel iteration in which the return values are constrained to hash\n // to `returns_hash` and the side effects counter 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 ReturnsHash::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 calldata = array_concat([function_selector.to_field()], args);\n let calldata_hash = hash_calldata_array(calldata);\n execution_cache::store(calldata, calldata_hash);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, false)\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 calldata = array_concat([function_selector.to_field()], args);\n let calldata_hash = hash_calldata_array(calldata);\n execution_cache::store(calldata, calldata_hash);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n let calldata_hash = hash_calldata_array([function_selector.to_field()]);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, 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 let calldata_hash = hash_calldata_array([function_selector.to_field()]);\n self.call_public_function_with_calldata_hash(contract_address, calldata_hash, true)\n }\n\n pub fn call_public_function_with_calldata_hash(\n &mut self,\n contract_address: AztecAddress,\n calldata_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\n notify_enqueued_public_function_call(\n contract_address,\n calldata_hash,\n counter,\n is_static_call,\n );\n\n let call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n is_static_call,\n calldata_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 calldata = array_concat([function_selector.to_field()], args);\n let calldata_hash = hash_calldata_array(calldata);\n execution_cache::store(calldata, calldata_hash);\n self.set_public_teardown_function_with_calldata_hash(contract_address, calldata_hash, false)\n }\n\n pub fn set_public_teardown_function_with_calldata_hash(\n &mut self,\n contract_address: AztecAddress,\n calldata_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\n notify_set_public_teardown_function_call(\n contract_address,\n calldata_hash,\n counter,\n is_static_call,\n );\n\n self.public_teardown_call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n is_static_call,\n calldata_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"
|
|
7180
7180
|
},
|
|
7181
7181
|
"70": {
|
|
7182
|
-
"path": "/
|
|
7182
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/context/unconstrained_context.nr",
|
|
7183
7183
|
"source": "use crate::oracle::{\n execution::{get_block_number, get_chain_id, get_contract_address, get_version},\n storage::storage_read,\n};\nuse dep::protocol_types::{address::AztecAddress, traits::Packable};\n\npub struct UnconstrainedContext {\n block_number: u32,\n contract_address: AztecAddress,\n version: Field,\n chain_id: Field,\n}\n\nimpl UnconstrainedContext {\n pub unconstrained fn new() -> Self {\n // We could call these oracles on the getters instead of at creation, which makes sense given that they might\n // not even be accessed. However any performance gains are minimal, and we'd rather fail early if a user\n // incorrectly attempts to create an UnconstrainedContext in an environment in which these oracles are not\n // available.\n let block_number = get_block_number();\n let contract_address = get_contract_address();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n pub unconstrained fn at(contract_address: AztecAddress) -> Self {\n let block_number = get_block_number();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n pub unconstrained fn at_historical(contract_address: AztecAddress, block_number: u32) -> Self {\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n pub fn block_number(self) -> u32 {\n self.block_number\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.contract_address\n }\n\n pub fn version(self) -> Field {\n self.version\n }\n\n pub fn chain_id(self) -> Field {\n self.chain_id\n }\n\n pub unconstrained fn raw_storage_read<let N: u32>(\n self: Self,\n storage_slot: Field,\n ) -> [Field; N] {\n storage_read(self.this_address(), storage_slot, self.block_number())\n }\n\n pub unconstrained fn storage_read<T, let N: u32>(self, storage_slot: Field) -> T\n where\n T: Packable<N>,\n {\n T::unpack(self.raw_storage_read(storage_slot))\n }\n}\n"
|
|
7184
7184
|
},
|
|
7185
7185
|
"72": {
|
|
7186
|
-
"path": "/
|
|
7186
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/discovery/mod.nr",
|
|
7187
7187
|
"source": "// TODO(#12750): don't make this value assume we're using AES.\nuse crate::encrypted_logs::log_assembly_strategies::default_aes128::note::encryption::PRIVATE_LOG_PLAINTEXT_SIZE_IN_FIELDS;\nuse dep::protocol_types::{address::AztecAddress, debug_log::debug_log};\n\npub mod private_logs;\npub mod private_notes;\npub mod partial_notes;\npub mod nonce_discovery;\n\n/// We reserve two fields in the note private log that are not part of the note content: one for the storage slot, and\n/// one for the combined log and note type ID.\nglobal PRIVATE_LOG_EXPANDED_METADATA_LEN: u32 = 1;\n\n/// The maximum length of the log's content, i.e. after log type ID and metadata extraction.\npub global MAX_LOG_CONTENT_LEN: u32 =\n PRIVATE_LOG_PLAINTEXT_SIZE_IN_FIELDS - PRIVATE_LOG_EXPANDED_METADATA_LEN;\n\nuse private_notes::MAX_NOTE_PACKED_LEN;\n\npub struct NoteHashAndNullifier {\n /// The result of NoteHash::compute_note_hash\n pub note_hash: Field,\n /// The result of NoteHash::compute_nullifier_unconstrained (since all of message discovery is unconstrained)\n pub inner_nullifier: Field,\n}\n\n/// A function which takes a note's packed content, address of the emitting contract, nonce, storage slot and note type\n/// ID and attempts to compute its note hash (not siloed by nonce nor address) and inner nullifier (not siloed by\n/// address).\n///\n/// This function must be user-provided as its implementation requires knowledge of how note type IDs are allocated in a\n/// contract. The `#[aztec]` macro automatically creates such a contract library method called\n/// `_compute_note_hash_and_nullifier`, which looks something like this:\n///\n/// ```\n/// |packed_note, contract_address, nonce, storage_slot, note_type_id| {\n/// if note_type_id == MyNoteType::get_id() {\n/// assert(packed_note.len() == MY_NOTE_TYPE_SERIALIZATION_LENGTH);\n///\n/// let note = MyNoteType::unpack(aztec::utils::array::subarray(packed_note.storage(), 0));\n///\n/// let note_hash = note.compute_note_hash(storage_slot);\n/// let note_hash_for_nullify = aztec::note::utils::compute_note_hash_for_nullify(\n/// RetrievedNote{ note, contract_address, metadata: SettledNoteMetadata::new(nonce).into() },\n/// storage_slot\n/// );\n///\n/// let inner_nullifier = note.compute_nullifier_unconstrained(note_hash_for_nullify);\n///\n/// Option::some(\n/// aztec::discovery::NoteHashAndNullifier {\n/// note_hash, inner_nullifier\n/// }\n/// )\n/// } else if note_type_id == MyOtherNoteType::get_id() {\n/// ... // Similar to above but calling MyOtherNoteType::unpack_content\n/// } else {\n/// Option::none() // Unknown note type ID\n/// };\n/// }\n/// ```\ntype ComputeNoteHashAndNullifier<Env> = unconstrained fn[Env](/* packed_note */BoundedVec<Field, MAX_NOTE_PACKED_LEN>, /* storage_slot */ Field, /* note_type_id */ Field, /* contract_address */ AztecAddress, /* nonce */ Field) -> Option<NoteHashAndNullifier>;\n\n/// Performs the message discovery process, in which private are downloaded and inspected to find new private notes,\n/// partial notes and events, etc., and pending partial notes are processed to search for their completion logs.\n/// This is the mechanism via which a contract updates its knowldge of its private state.\n///\n/// Receives the address of the contract on which discovery is performed along with its\n/// `compute_note_hash_and_nullifier` function.\npub unconstrained fn discover_new_messages<Env>(\n contract_address: AztecAddress,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n) {\n debug_log(\"Performing message discovery\");\n\n private_logs::fetch_and_process_private_tagged_logs(\n contract_address,\n compute_note_hash_and_nullifier,\n );\n\n partial_notes::fetch_and_process_public_partial_note_completion_logs(\n contract_address,\n compute_note_hash_and_nullifier,\n );\n}\n"
|
|
7188
7188
|
},
|
|
7189
7189
|
"73": {
|
|
7190
|
-
"path": "/
|
|
7190
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/discovery/nonce_discovery.nr",
|
|
7191
7191
|
"source": "use crate::{\n discovery::{ComputeNoteHashAndNullifier, private_notes::MAX_NOTE_PACKED_LEN},\n utils::array,\n};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::MAX_NOTE_HASHES_PER_TX,\n debug_log::debug_log_format,\n hash::{compute_note_hash_nonce, compute_siloed_note_hash, compute_unique_note_hash},\n traits::ToField,\n};\n\n/// A struct with the discovered information of a complete note, required for delivery to PXE. Note that this is *not*\n/// the complete note information, since it does not include content, storage slot, etc.\npub struct DiscoveredNoteInfo {\n pub nonce: Field,\n pub note_hash: Field,\n pub inner_nullifier: Field,\n}\n\n/// Searches for note nonces that will result in a note that was emitted in a transaction. While rare, it is possible\n/// for multiple notes to have the exact same packed content and storage slot but different nonces, resulting in\n/// different unique note hashes. Because of this this function returns a *vector* of discovered notes, though in most\n/// cases it will contain a single element.\n///\n/// Due to how nonces are computed, this function requires knowledge of the transaction in which the note was created,\n/// more specifically the list of all unique note hashes in it plus the value of its first nullifier.\npub unconstrained fn attempt_note_nonce_discovery<Env>(\n unique_note_hashes_in_tx: BoundedVec<Field, MAX_NOTE_HASHES_PER_TX>,\n first_nullifier_in_tx: Field,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n packed_note: BoundedVec<Field, MAX_NOTE_PACKED_LEN>,\n) -> BoundedVec<DiscoveredNoteInfo, MAX_NOTE_HASHES_PER_TX> {\n let discovered_notes = &mut BoundedVec::new();\n\n debug_log_format(\n \"Attempting nonce discovery on {0} potential notes on contract {1} for storage slot {2}\",\n [unique_note_hashes_in_tx.len() as Field, contract_address.to_field(), storage_slot],\n );\n\n // We need to find nonces (typically just one) that result in a note hash that, once siloed into a unique note hash,\n // is one of the note hashes created by the transaction.\n array::for_each_in_bounded_vec(\n unique_note_hashes_in_tx,\n |expected_unique_note_hash, i| {\n // Nonces are computed by hashing the first nullifier in the transaction with the index of the note in the\n // new note hashes array. We therefore know for each note in every transaction what its nonce is.\n let candidate_nonce = compute_note_hash_nonce(first_nullifier_in_tx, i);\n\n // Given nonce, note content and metadata, we can compute the note hash and silo it to check if it matches\n // the note hash at the array index we're currently processing.\n // TODO(#11157): handle failed note_hash_and_nullifier computation\n let hashes = compute_note_hash_and_nullifier(\n packed_note,\n storage_slot,\n note_type_id,\n contract_address,\n candidate_nonce,\n )\n .expect(f\"Failed to compute a note hash for note type {note_type_id}\");\n\n let siloed_note_hash = compute_siloed_note_hash(contract_address, hashes.note_hash);\n let unique_note_hash = compute_unique_note_hash(candidate_nonce, siloed_note_hash);\n\n if unique_note_hash == expected_unique_note_hash {\n // Note that while we did check that the note hash is the preimage of the expected unique note hash, we\n // perform no validations on the nullifier - we fundamentally cannot, since only the application knows\n // how to compute nullifiers. We simply trust it to have provided the correct one: if it hasn't, then\n // PXE may fail to realize that a given note has been nullified already, and calls to the application\n // could result in invalid transactions (with duplicate nullifiers). This is not a concern because an\n // application already has more direct means of making a call to it fail the transaction.\n discovered_notes.push(\n DiscoveredNoteInfo {\n nonce: candidate_nonce,\n note_hash: hashes.note_hash,\n inner_nullifier: hashes.inner_nullifier,\n },\n );\n\n // We don't exit the loop - it is possible (though rare) for the exact same note content to be present\n // multiple times in the same transaction with different nonces. This typically doesn't happen due to\n // notes containing random values in order to hide their contents.\n }\n },\n );\n\n debug_log_format(\n \"Discovered a total of {0} notes\",\n [discovered_notes.len() as Field],\n );\n\n *discovered_notes\n}\n"
|
|
7192
7192
|
},
|
|
7193
7193
|
"74": {
|
|
7194
|
-
"path": "/
|
|
7194
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/discovery/partial_notes.nr",
|
|
7195
7195
|
"source": "use crate::{\n capsules::CapsuleArray,\n discovery::{\n ComputeNoteHashAndNullifier,\n MAX_LOG_CONTENT_LEN,\n nonce_discovery::{attempt_note_nonce_discovery, DiscoveredNoteInfo},\n },\n oracle::message_discovery::{deliver_note, get_log_by_tag},\n utils::array,\n};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::PUBLIC_LOG_DATA_SIZE_IN_FIELDS,\n debug_log::debug_log_format,\n traits::{Deserialize, Serialize, ToField},\n};\n\nglobal PARTIAL_NOTE_PRIVATE_LOG_CONTENT_NON_NOTE_FIELDS_LEN: u32 = 2;\n\n/// Partial notes have a maximum packed length of their private fields bound by extra content in their private log (e.g.\n/// the storage slot, note completion log tag, etc.).\npub global MAX_PARTIAL_NOTE_PRIVATE_PACKED_LEN: u32 =\n MAX_LOG_CONTENT_LEN - PARTIAL_NOTE_PRIVATE_LOG_CONTENT_NON_NOTE_FIELDS_LEN;\n\n/// The slot in the PXE capsules where we store a `CapsuleArray` of `DeliveredPendingPartialNote`.\n// TODO(#11630): come up with some sort of slot allocation scheme.\npub global DELIVERED_PENDING_PARTIAL_NOTE_ARRAY_LENGTH_CAPSULES_SLOT: Field = 77;\n\n/// Public logs contain an extra field at the beginning with the address of the contract that emitted them, and partial\n/// notes emit their completion tag in the log, resulting in the first two fields in the public log not being part of\n/// the packed public content.\n// TODO(#10273): improve how contract log siloing is handled\npub global NON_PACKED_CONTENT_FIELDS_IN_PUBLIC_LOG: u32 = 2;\n\n/// The maximum length of the packed representation of public fields in a partial note. This is limited by public log\n/// size and extra fields in the log (e.g. the tag).\npub global MAX_PUBLIC_PARTIAL_NOTE_PACKED_CONTENT_LENGTH: u32 =\n PUBLIC_LOG_DATA_SIZE_IN_FIELDS - NON_PACKED_CONTENT_FIELDS_IN_PUBLIC_LOG;\n\n/// A partial note that was delivered but is still pending completion. Contains the information necessary to find the\n/// log that will complete it and lead to a note being discovered and delivered.\n#[derive(Serialize, Deserialize)]\npub(crate) struct DeliveredPendingPartialNote {\n pub(crate) note_completion_log_tag: Field,\n pub(crate) storage_slot: Field,\n pub(crate) note_type_id: Field,\n pub(crate) packed_private_note_content: BoundedVec<Field, MAX_PARTIAL_NOTE_PRIVATE_PACKED_LEN>,\n pub(crate) recipient: AztecAddress,\n}\n\npub unconstrained fn process_partial_note_private_log(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n log_metadata: u64,\n log_content: BoundedVec<Field, MAX_LOG_CONTENT_LEN>,\n) {\n let (note_type_id, storage_slot, note_completion_log_tag, packed_private_note_content) =\n decode_partial_note_private_log(log_metadata, log_content);\n\n // We store the information of the partial note we found in a persistent capsule in PXE, so that we can later search\n // for the public log that will complete it.\n let pending = DeliveredPendingPartialNote {\n note_completion_log_tag,\n storage_slot,\n note_type_id,\n packed_private_note_content,\n recipient,\n };\n\n CapsuleArray::at(\n contract_address,\n DELIVERED_PENDING_PARTIAL_NOTE_ARRAY_LENGTH_CAPSULES_SLOT,\n )\n .push(pending);\n}\n\n/// Searches for public logs that would result in the completion of pending partial notes, ultimately resulting in the\n/// notes being delivered to PXE if completed.\npub unconstrained fn fetch_and_process_public_partial_note_completion_logs<Env>(\n contract_address: AztecAddress,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n) {\n let pending_partial_notes = CapsuleArray::at(\n contract_address,\n DELIVERED_PENDING_PARTIAL_NOTE_ARRAY_LENGTH_CAPSULES_SLOT,\n );\n\n debug_log_format(\n \"{} pending partial notes\",\n [pending_partial_notes.len() as Field],\n );\n\n let mut i = 0;\n while i < pending_partial_notes.len() {\n let pending_partial_note: DeliveredPendingPartialNote = pending_partial_notes.get(i);\n\n let maybe_log = get_log_by_tag(pending_partial_note.note_completion_log_tag);\n if maybe_log.is_none() {\n debug_log_format(\n \"Found no completion logs for partial note with tag {}\",\n [pending_partial_note.note_completion_log_tag],\n );\n i += 1 as u32;\n // Note that we're not removing the pending partial note from the PXE DB, so we will continue searching\n // for this tagged log when performing message discovery in the future until we either find it or the\n // entry is somehow removed from the PXE DB.\n } else {\n debug_log_format(\n \"Completion log found for partial note with tag {}\",\n [pending_partial_note.note_completion_log_tag],\n );\n let log = maybe_log.unwrap();\n\n // Public logs have an extra field at the beginning with the contract address, which we use to verify\n // that we're getting the logs from the expected contract.\n // TODO(#10273): improve how contract log siloing is handled\n assert_eq(\n log.log_content.get(0),\n contract_address.to_field(),\n \"Got a public log emitted by a different contract\",\n );\n\n // Public fields are assumed to all be placed at the end of the packed representation, so we combine the\n // private and public packed fields (i.e. the contents of the log sans the extra fields) to get the\n // complete packed content.\n let packed_public_note_content: BoundedVec<_, MAX_PUBLIC_PARTIAL_NOTE_PACKED_CONTENT_LENGTH> =\n array::subbvec(log.log_content, NON_PACKED_CONTENT_FIELDS_IN_PUBLIC_LOG);\n let complete_packed_note = array::append(\n pending_partial_note.packed_private_note_content,\n packed_public_note_content,\n );\n\n let discovered_notes = attempt_note_nonce_discovery(\n log.unique_note_hashes_in_tx,\n log.first_nullifier_in_tx,\n compute_note_hash_and_nullifier,\n contract_address,\n pending_partial_note.storage_slot,\n pending_partial_note.note_type_id,\n complete_packed_note,\n );\n\n debug_log_format(\n \"Discovered {0} notes for partial note with tag {1}\",\n [discovered_notes.len() as Field, pending_partial_note.note_completion_log_tag],\n );\n\n array::for_each_in_bounded_vec(\n discovered_notes,\n |discovered_note: DiscoveredNoteInfo, _| {\n // TODO:(#10728): decide how to handle notes that fail delivery. This could be due to e.g. a\n // temporary node connectivity issue - is simply throwing good enough here?\n assert(\n deliver_note(\n contract_address,\n pending_partial_note.storage_slot,\n discovered_note.nonce,\n complete_packed_note,\n discovered_note.note_hash,\n discovered_note.inner_nullifier,\n log.tx_hash,\n pending_partial_note.recipient,\n ),\n \"Failed to deliver note\",\n );\n },\n );\n\n // Because there is only a single log for a given tag, once we've processed the tagged log then we\n // simply delete the pending work entry, regardless of whether it was actually completed or not.\n // TODO(#11627): only remove the pending entry if we actually process a log that results in the note\n // being completed.\n pending_partial_notes.remove(i);\n\n // We don't increment `i` here, because CapsuleArray is contiguous and its `remove(...)` function\n // shifts the elements to the left if the removed element is not the last element.\n }\n }\n}\n\nfn decode_partial_note_private_log(\n log_metadata: u64,\n log_content: BoundedVec<Field, MAX_LOG_CONTENT_LEN>,\n) -> (Field, Field, Field, BoundedVec<Field, MAX_PARTIAL_NOTE_PRIVATE_PACKED_LEN>) {\n let note_type_id = log_metadata as Field; // TODO: make note type id not be a full field\n\n assert(\n log_content.len() > PARTIAL_NOTE_PRIVATE_LOG_CONTENT_NON_NOTE_FIELDS_LEN,\n f\"Invalid private note log: all partial note private logs must have at least {PARTIAL_NOTE_PRIVATE_LOG_CONTENT_NON_NOTE_FIELDS_LEN} fields\",\n );\n\n // If PARTIAL_NOTE_PRIVATE_LOG_CONTENT_NON_NOTE_FIELDS_LEN is changed, causing the assertion below to fail, then the\n // destructuring of the partial note private log encoding below must be updated as well.\n std::static_assert(\n PARTIAL_NOTE_PRIVATE_LOG_CONTENT_NON_NOTE_FIELDS_LEN == 2,\n \"unexpected value for PARTIAL_NOTE_PRIVATE_LOG_CONTENT_NON_NOTE_FIELDS_LEN\",\n );\n\n // We currently have two fields that are not the partial note's packed representation, which are the storage slot\n // and the note completion log tag.\n let storage_slot = log_content.get(0);\n let note_completion_log_tag = log_content.get(1);\n\n let packed_private_note_content = array::subbvec(log_content, 2);\n\n (note_type_id, storage_slot, note_completion_log_tag, packed_private_note_content)\n}\n"
|
|
7196
7196
|
},
|
|
7197
7197
|
"75": {
|
|
7198
|
-
"path": "/
|
|
7198
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/discovery/private_logs.nr",
|
|
7199
7199
|
"source": "use crate::{oracle::message_discovery::sync_notes, utils::array};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::{MAX_NOTE_HASHES_PER_TX, PRIVATE_LOG_SIZE_IN_FIELDS},\n debug_log::{debug_log, debug_log_format},\n};\n\nuse crate::discovery::{\n ComputeNoteHashAndNullifier, MAX_LOG_CONTENT_LEN,\n partial_notes::process_partial_note_private_log, PRIVATE_LOG_EXPANDED_METADATA_LEN,\n private_notes::process_private_note_log,\n};\nuse crate::encrypted_logs::log_assembly_strategies::default_aes128::note::encryption::decrypt_log;\n// TODO(#12750): don't make this value assume we're using AES.\nuse crate::encrypted_logs::log_assembly_strategies::default_aes128::note::encryption::PRIVATE_LOG_PLAINTEXT_SIZE_IN_FIELDS;\n\n/// Searches for private logs that signal new private notes that are then delivered to PXE, or new partial notes that\n/// are stored in the PXE capsules so that `fetch_and_process_public_partial_note_completion_logs` can later search for\n/// public logs that will complete them.\npub unconstrained fn fetch_and_process_private_tagged_logs<Env>(\n _contract_address: AztecAddress,\n _compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n) {\n // We will eventually fetch tagged logs, decrypt and process them here, but for now we simply call the `syncNotes`\n // oracle. This has PXE perform tag synchronization, log download, decryption, and finally calls to the the\n // `process_log` contract function with the decrypted payload, which will in turn call `do_process_log` with a\n // decrypted log, letting us continue the work outside of PXE.\n sync_notes();\n}\n\n/// Processes a log's ciphertext by decrypting it and then searching the plaintext for private notes or partial notes.\n///\n/// Private notes result in nonce discovery being performed prior to delivery, which requires knowledge of the\n/// transaction hash in which the notes would've been created (typically the same transaction in which the log was\n/// emitted), along with the list of unique note hashes in said transaction and the `compute_note_hash_and_nullifier`\n/// function.\n///\n/// Partial notes result in a pending partial note entry being stored in a PXE capsule, which will later be retrieved to\n/// search for the note's completion public log.\npub unconstrained fn do_process_log<Env>(\n contract_address: AztecAddress,\n log: BoundedVec<Field, PRIVATE_LOG_SIZE_IN_FIELDS>,\n tx_hash: Field,\n unique_note_hashes_in_tx: BoundedVec<Field, MAX_NOTE_HASHES_PER_TX>,\n first_nullifier_in_tx: Field,\n recipient: AztecAddress,\n compute_note_hash_and_nullifier: ComputeNoteHashAndNullifier<Env>,\n) {\n debug_log_format(\"Processing log with tag {0}\", [log.get(0)]);\n\n let log_plaintext = decrypt_log(log, recipient);\n\n // The first thing to do after decrypting the log is to determine what type of private log we're processing. We\n // currently just have two log types: 0 for private notes and 1 for partial notes. This will likely be expanded and\n // improved upon in the future to also handle events, etc.\n\n let (log_type_id, log_metadata, log_content) = decode_log_plaintext(log_plaintext);\n\n if log_type_id == 0 {\n debug_log(\"Processing private note log\");\n\n process_private_note_log(\n contract_address,\n tx_hash,\n unique_note_hashes_in_tx,\n first_nullifier_in_tx,\n recipient,\n compute_note_hash_and_nullifier,\n log_metadata,\n log_content,\n );\n } else if log_type_id == 1 {\n debug_log(\"Processing partial note private log\");\n\n process_partial_note_private_log(contract_address, recipient, log_metadata, log_content);\n } else {\n // TODO(#11569): handle events\n debug_log_format(\n \"Unknown log type id {0} (probably belonging to an event log)\",\n [log_type_id as Field],\n );\n }\n}\n\n/// Decodes a log's plaintext following aztec-nr's standard log encoding.\n///\n/// The standard private log layout is composed of:\n/// - an initial field called the 'expanded metadata'\n/// - an arbitrary number of fields following that called the 'log content'\n///\n/// ```\n/// log_plainext: [ log_expanded_metadata, ...log_content ]\n/// ```\n///\n/// The expanded metadata itself is (currently) interpreted as a u64, of which:\n/// - the upper 57 bits are the log type id\n/// - the remaining 7 bits are called the 'log metadata'\n///\n/// ```\n/// log_expanded_metadata: [ log_type_id | log_metadata ]\n/// <--- 57 bits --->|<--- 7 bits --->\n/// ```\n///\n/// The meaning of the log metadata and log content depend on the value of the log type id. Note that there is\n/// nothing special about the log metadata, it _can_ be considered part of the content. It just has a different name\n/// to make it distinct from the log content given that it is not a full field.\nunconstrained fn decode_log_plaintext(\n log_plaintext: BoundedVec<Field, PRIVATE_LOG_PLAINTEXT_SIZE_IN_FIELDS>,\n) -> (u64, u64, BoundedVec<Field, MAX_LOG_CONTENT_LEN>) {\n assert(\n log_plaintext.len() >= PRIVATE_LOG_EXPANDED_METADATA_LEN,\n f\"Invalid log plaintext: all logs must be decrypted into at least {PRIVATE_LOG_EXPANDED_METADATA_LEN} fields\",\n );\n\n // If PRIVATE_LOG_EXPANDED_METADATA_LEN is changed, causing the assertion below to fail, then the destructuring of\n // the log encoding below must be updated as well.\n std::static_assert(\n PRIVATE_LOG_EXPANDED_METADATA_LEN == 1,\n \"unexpected value for PRIVATE_LOG_EXPANDED_METADATA_LEN\",\n );\n\n // See the documentation of this function for a description of the log layout\n let expanded_log_metadata = log_plaintext.get(0);\n\n let log_type_id = ((expanded_log_metadata as u64) / 128);\n let log_metadata = ((expanded_log_metadata as u64) % 128);\n\n let log_content = array::subbvec(log_plaintext, PRIVATE_LOG_EXPANDED_METADATA_LEN);\n\n (log_type_id, log_metadata, log_content)\n}\n"
|
|
7200
7200
|
},
|
|
7201
7201
|
"90": {
|
|
7202
|
-
"path": "/
|
|
7202
|
+
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/hash.nr",
|
|
7203
7203
|
"source": "use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__FUNCTION_ARGS, GENERATOR_INDEX__MESSAGE_NULLIFIER,\n GENERATOR_INDEX__PUBLIC_CALLDATA, 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, ToField},\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_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\n// Computes the hash of input arguments or return values for private functions, or for authwit creation.\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\n// Same as `hash_args_array`, but takes a slice instead of an array.\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// Computes the hash of calldata for public functions.\npub fn hash_calldata_array<let N: u32>(calldata: [Field; N]) -> Field {\n if calldata.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(calldata, GENERATOR_INDEX__PUBLIC_CALLDATA)\n }\n}\n\n// Same as `hash_calldata_array`, but takes a slice instead of an array.\npub fn hash_calldata(calldata: [Field]) -> Field {\n if calldata.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(calldata, GENERATOR_INDEX__PUBLIC_CALLDATA)\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"
|
|
7204
7204
|
}
|
|
7205
7205
|
}
|