@aztec/accounts 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  {
2
- "noir_version": "0.23.0+ea6aebcc4e190d9dbadaf1dd0f70950651eed615",
2
+ "noir_version": "0.23.0+9a70040211d205f472aa31924649c2fef999eb49",
3
3
  "name": "SchnorrAccount",
4
4
  "functions": [
5
5
  {
6
- "name": "is_valid_public",
6
+ "name": "set_is_valid_storage",
7
7
  "function_type": "Open",
8
- "is_internal": false,
8
+ "is_internal": true,
9
9
  "abi": {
10
10
  "parameters": [
11
11
  {
@@ -206,9 +206,14 @@
206
206
  },
207
207
  "visibility": "private"
208
208
  },
209
- { "name": "message_hash", "type": { "kind": "field" }, "visibility": "private" }
209
+ { "name": "message_hash", "type": { "kind": "field" }, "visibility": "private" },
210
+ { "name": "value", "type": { "kind": "boolean" }, "visibility": "private" }
210
211
  ],
211
- "param_witnesses": { "inputs": [{ "start": 0, "end": 30 }], "message_hash": [{ "start": 30, "end": 31 }] },
212
+ "param_witnesses": {
213
+ "inputs": [{ "start": 0, "end": 30 }],
214
+ "message_hash": [{ "start": 30, "end": 31 }],
215
+ "value": [{ "start": 31, "end": 32 }]
216
+ },
212
217
  "return_type": {
213
218
  "abi_type": {
214
219
  "kind": "struct",
@@ -474,22 +479,22 @@
474
479
  "visibility": "public"
475
480
  },
476
481
  "return_witnesses": [
477
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
478
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
479
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
480
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
481
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
482
- 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
483
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
484
- 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
485
- 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231
482
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
483
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
484
+ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
485
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
486
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
487
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
488
+ 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
489
+ 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
490
+ 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232
486
491
  ]
487
492
  },
488
- "bytecode": "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",
489
- "debug_symbols": "5Z3NjmTZkZzfpdeEcN2P//JVBC0G0ggYYMARRO4IvrvuSBVZRTCb1ZaVEW2mWrFRiBvhhyfDPNvI76u//vLv//Hf/+Uv//Yff/rzL3/86y/Xf7HLf/njf/3rL3/+X//yp//8kz//5V/+919++eP1h1/+9U//4/7Pv/3hl//5b//+r7/80e3623/7w/994sBPBPxEwk8U/ETDT8xvf+IP//A667QvL7XufXt1nMfb71Pf3q7nvr099+39uW9/nvv28dy3z+e+fT337fu5b//cb60991vrz/3W+nO/tf7cb60/91vrz/3W+nO/tf7cb60/91vrP/at3X281C/zb9/+vVnivM0S8fbie98/hlmiYc7FNIwxDeNMwxymYYJpmGQappiGaaZhmBL4MCVwMCVwMCVwMCVwMCVwMCVwMCVwMCVwMCVwMCVwMCVwMiVwMiVwMiVwMiVwMiVwMiVwMiVwMiVwMiVwMiVwMSVwMSVwMSVwMSVwMSVwMSVwMSVwMSVwMSVwMSVwMyVwMyVwMyVwMyVwMyVwMyVwMyVwMyVwMyVwMyXwMCXwMCXwMCXwMCXwMCXwMCXwMCXwMCXwMCXwMCXwMiXwMiXwMiXwMiXwMiXwMiXwMiXwMiXwMiXwEiWwX0QJfL8F0zBECewXUQL7RZTAfhElsF+v/Gq/vfj+d0d7Zxi7mIZ53Q+wx9s13f/43jVZMA2TTMMU0zDNNMzrfoWYuObLiyfs+mYYfwyzRMP49cJr6scwnmf+7pqwV38Z3XRHd9LR7drOxzKw6+x7wx/l4UN5eJSadYTk+fLED6XT/ZOdj1Pc/zxfw7gfH/BjCM1v+YAfyoV7vvP2Afc/1zsf4M/+AJTydoQx+fJEwk8U/AT883rgn1cETvh/TyAEwZcnDH7C4SfgOw/4zgO+84DvPOA7D/jOA77zhO884TtP+M4TvvOE7zzhO0/4zhO+84TvPOE7L/jOC77zgu+84Dsv+M4LvvOC77zgOy/4zgu+84bvvOE7b/jOG77zhu+84Ttv+M4bvvOG77zhOx/4zge+84HvfOA7H/jOB77zge984Dsf+M4HvvOF73zhO1/4zhe+84XvfOE7X/jOF77zhe980Ts/1wU/YfATDj9x4CcCfiLhJwp+ouEnBn4CvnOD79zgOzf4zg2+c4Pv3OA7N/jODb5zg+/c4Dt3+M4dvnOH79zhO3f4zh2+c4fvHO4QD9whHofv/MB3fuA7P/Cdwz3cgXu4A/dwB+7hDtzDHbiHO3APd+Ae7sA93IF7uAP3cAfu4Q7cwx24hztwD3fgHu7APdyBe7gD93AH7uEO3MMduIc7cA934B7uwD3cgXu4A/dwB+7hDtzDHbiHO3APd+Ae7sA93IF7uAP3cAfu4Q7cwx24hztwD3fgHu7APdyBe7gD93AH7uEO3MMduIc7cA934B7uwD3cgXu4A/dwB+7hDtzDHbiHO3APd+Ae7sA93IF7uAP3cAfu4Q7cwx24hztwD3fgHu7APdyBe7gD93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AB93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AJ93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AF93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AN93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AD93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93AL93B2wUXc/Yjhjzj+yMEfCfyRxB8p/JHGHxn8Efz2Db99w2/f8Ns3/PYNv33Db9/w2zf89g2/fcNv3/Hbd/z2Hb99x2/f8dt3/PYdv33Hb9/x23f89g9++we//YPf/sFv/+C3f/DbP/jtH/z2D377B7/9wG8/8NsP/PYDv/3Abz/w2w/89gO//cBvP/DbT/z2E7/9xG8/8dtP/PYTv/3Ebz/x20/89hO//cJvv/DbL/z2C7/9wm+/8Nsv/PYLv/3Cb7/w22/89hu//cZvv/Hbb/z2G7/9xm+/8dtv/PYbv/3Bb3/w2x/89ge//cFvf/DbH/z2B7/9wW9/8Ntf/PYXv/3Fb3/x21/89he//cVvf/HbX/z28a7P8K7P8K7P8K7P8K7v/q0XfyTxRwp/pPFHBn8Ev3286zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO86zO863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863O863Ok6/vDP7wufb68MiPfXhv19u711Hfvp777PPXd90fe3Sfz8dr7n9veXt/vvfzuWh8vvr6+9Xn7IUAaz+cPY0zDONMw52nDPD4hnv4J+fRPqKd/Qv/gJ2y8fUJd84M/FMM0zBINsxfTMMY0jDMNc5iGCaZhkmmYYhqGKYGXKYGXKIHPRZTA5yJK4HMRJfC5iBL4XEQJfC6iBD4XUQKfiyiBz0WUwOdiSmBjSmBjSmBjSmBjSmBjSmBjSmBjSmBjSmBjSmBjSmBnSmBnSmBnSmBnSmBnSmBnSmBnSmBnSmBnSmBnSuDDlMCHKYEPUwIfpgQ+TAl8mBL4MCXwYUrgw5TAhymBgymBgymBgymBgymBgymBgymBgymBgymBgymBgymBkymBkymBkymBkymBkymBkymBkymBkymBkymBkymBiymBiymBiymBiymBiymBiymBiymBiymBiymBiymBmymBmymBmymBmymBmymBmymBmymBmymBmymBmymBhymBhymBhymBhymBhymBhymBhymBmZi4w8TEHSYm7jAxcYeJiTtMTNxhYuIOExN3mJi4w8TEHSYm7jAxcYeJiQsmJi6YmLhgYuKCiYmLiyiBg4mJCyYmLpiYuGBi4oKJiQsmJi6YmLhgYuKCiYkLJiYumJi4YGLigomJCyYmLpiYuGBi4oKJiQsmJi6YmLhgYuKCiYkLJiYumJi4YGLigomJCyYmLpiYuGBi4oKJiQsmJi6YmLhgYuKCiYkLJiYumJi4YGLigomJCyYmLpiYuGBi4oKJiQsmJi6YmLhgYuKCiYkLJiYumJi4YGLigomJCyYmLpiYuGBi4oKJiQsmJi6YmLhgYuKCiYkLJiYumJi4YGLigomJCyYmLpiYuGBi4oKJiQsmJi6YmLhgYuKCiYkLJiYumJi4YGLigomJCyYmLpiYuGBi4oKJiQsmJi6YmLhgYuKCiYkLJiYumJi4YGLigomJCyYmLpiYuGBi4oKJiQsmJi6YmLhgYuKCiYkLJiYumJi4ZGLikomJSyYmLpmYuLyIEjiZmLhkYuKSiYlLJiYumZi4ZGLikomJSyYmLpmYuGRi4pKJiUsmJi6ZmLhkYuKSiYlLJiYumZi4ZGLikomJSyYmLpmYuGRi4pKJiUsmJi6ZmLhkYuKSiYlLJiYumZi4ZGLikomJSyYmLpmYuGRi4pKJiUsmJi6ZmLhkYuKSiYlLJiYumZi4ZGLikomJSyYmLpmYuGRi4pKJiUsmJi6ZmLhkYuKSiYlLJiYumZi4ZGLikomJSyYmLpmYuGRi4pKJiUsmJi6ZmLhkYuKSiYlLJiYumZi4ZGLikomJSyYmLpmYuGRi4pKJiUsmJi6ZmLhkYuKSiYlLJiYumZi4ZGLikomJSyYmLpmYuGRi4pKJiUsmJi6ZmLhkYuKSiYlLJiYumZi4ZGLikomJSyYmLpmYuGRi4pKJiSsmJq6YmLhiYuKKiYmriyiBi4mJKyYmrpiYuGJi4oqJiSsmJq6YmLhiYuKKiYkrJiaumJi4YmLiiomJKyYmrpiYuGJi4oqJiSsmJq6YmLhiYuKKiYkrJiaumJi4YmLiiomJKyYmrpiYuGJi4oqJiSsmJq6YmLhiYuKKiYkrJiaumJi4YmLiiomJKyYmrpiYuGJi4oqJiSsmJq6YmLhiYuKKiYkrJiaumJi4YmLiiomJKyYmrpiYuGJi4oqJiSsmJq6YmLhiYuKKiYkrJiaumJi4YmLiiomJKyYmrpiYuGJi4oqJiSsmJq6YmLhiYuKKiYkrJiaumJi4YmLiiomJKyYmrpiYuGJi4oqJiSsmJq6YmLhiYuKKiYkrJiaumJi4YmLiiomJKyYmrpiYuGJi4oqJiSsmJq6YmLhiYuKKiYkrJiaumJi4ZmLimomJayYmrpmYuL6IEriZmLhmYuKaiYlrJiaumZi4ZmLimomJayYmrpmYuGZi4pqJiWsmJq6ZmLhmYuKaiYlrJiaumZi4ZmLimomJayYmrpmYuGZi4pqJiWsmJq6ZmLhmYuKaiYlrJiaumZi4ZmLimomJayYmrpmYuGZi4pqJiWsmJq6ZmLhmYuKaiYlrJiaumZi4ZmLimomJayYmrpmYuGZi4pqJiWsmJq6ZmLhmYuKaiYlrJiaumZi4ZmLimomJayYmrpmYuGZi4pqJiWsmJq6ZmLhmYuKaiYlrJiaumZi4ZmLimomJayYmrpmYuGZi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tYUErS0kaG0hQWsLCUZbSDDaQoLRFhKMtpBgLumtO9pCgtEWEoy2kGC0hQSjLSQYbSHBaAsJRltIMNpCgtEWEoy2kGC0hQSjLSQYbSHBaAsJRltIMORCgu+Or711ydUB3x1fe+uSQ/7fHV9765Lj+N8dX3vrkoPz3xufnIb/7vjaW/dob92jvXWP9tY92lv3aG/do711j/bWPdpbN7S3bmhv3dDeuqG9dXHxDtf42ls3tLduaG/d0N66ob11U3vrpvbWTe2tm9pb9/NtU68dX3vrpvbWTe2tm9pbN7W3bmlv3dLeuqW9dUt7636+T+q142tv3dLeuqW9dUt765b21m3trdvaW7e1t25rb93Pt169dnztrdvaW7e1t25rb93W3rqjvXVHe+uO9tYd7a37+U6m146vvXVHe+uO9tYd7a072ltX20012m6q0XZTjbabarTdVKPtphptN9Vou6lG20012m6q1XZTrbabarXdVKvtptpLeuuutptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXabqrVdlOttptqtd1Uq+2mWm031Wq7qVbbTbXSbqq4pN1U9/jKW/ceX3nr3uMrb917fOWte4+vvHXv8ZW37j2+8ta9x1feuvf42ltX2k11j6+9daXdVPf42ltX2k11j6+9daXdVPf42ltX2k11j6+9daXdVPf42ltX2k11j6+9daXdVPf42ltX2k11j6+9daXdVPf42ltX2k11j6+9daXdVPf42ltX2k11j6+9daXdVPf43Fv3LmG/vDZsvx3/nfftebzt9NtL87ydlHtBf+ZJuXf5J56UXI71mSfl/g3hM0/K/cvEZ56U+/eOzzxp/H940s33Tsr928xnnpT7F59PPOn7RpnH23/vjLn95ZVlX1+b+fbu9dR376e++zz13feZ7/6+bOTT3t2e+u7+1Hc/T333eOq7P/W7Wk/9rtZTv6v11O9qPfW72k/9rvZTv6v91O9qP/W72k/9rvZTv6v91O9qP/W72k/9rvZTv6vz1O/qPPW7Ok/9rs5Tv6sDfFcfjyT+SOGPNP7ID/38e4S//WvF/c/19vr++gn77E/Y6+mfYE/+hF/5CzZ/6yfY7uOlftk3/7523nvxRL91CDFf/1XwmrdpDtU0QTVNUk1TVNP0C6eZeusSvnnxt9MM1TTLNI1fVNMY1TRONc0Ls3h936apd7/hHlTTvC5v/Lr264uvd6cZqmmWaZpzUU1jVNM41TSHapqgmiappimqaaiy+FBl8aHK4qDK4qDK4qDK4qDK4qDK4qDK4qDK4qDK4qDK4qDK4qTK4qTK4qTK4qTK4qTK4qTK4qTK4qTK4qTK4qTK4qLK4qLK4qLK4qLK4qLK4qLK4qLK4qLK4qLK4qLK4qbK4qbK4qbK4qbK4qbK4qbK4qbK4qbK4qbK4qbK4qHK4qHK4qHK4qHK4qHK4qHK4qHK4qHK4qHK4qHK4qXK4qXK4qXK4qXK4qXK4qXK4qXK4qXK4qXK4iXK4vyVv2zhd5uGKIvzV/4qhN9tGqIszl/5iwp+t2mIsjh/5a8R+N2mIcri/BXJ/+82DVUWG1UWG1UWG1UWG1UWG1UWG1UWG1UWG1UWG1UWG1UWO1UWO1UWO1UWO1UWO1UWO1UWO1UWM3F3eTFxd3kxcXd5MXF3eTFxd3kxcXd5MXF3eTFxd3kxcXd5MXF3eTFxd3kxcXd5MXF3eTFxd3kxcXd5MXF3eTFxd3kxcXd5MXF3eTFxd/c0VFnMxN3d01BlMRN3d09DlcVM3N09DVUWM3F3eTFxd3kxcXd5MXF3eTFxd3kxcXd5MXF3eTFxd3kxcXd5MXF3eTFxd3kxcXd5MXF3eTFxd3kxcXd5vZTmqjcP7fXNXx/z7TSHapoX/hR7+uPFnufdaZpqmqGaZpmmeSWx9Bumed1vFBPX42/Ymfi7vPG3aZxqmhfmzYl4vDgu+7ubeuetr+1HPJld3/6VSd/cbEhPn9LTl/T0LT39UEz/ZZpXMlG/YRqjmsappuFI+8c0HOn9mIYjjR/TvDBdI97+IsOIeHeapppmqKZZomnslUzUb5jGqKZxqmkO1TRBNU1STcOUxXYxZbFdTFlsF1UWG1UWG1UWG1UWG1UWG1UWG1UWG1UWG1UWG1UWG1UWO1UWO1UWO1UWO1UWO1UWO1UWO1UWO1UWO1UWO1UWH6osPlRZ/Eru5/7KPF5s7/4vp/ZK7uc3TFNU0zTVNEM1zTJN80ru5++m6XenMappnGqaQzVNUE3zyiyer/+fGnt3T72S+/kN0yzTNK9kW37DNEY1jVNNc6imeWHeeL7ljfe7W/OVbMtvmKaopmmqaYZqmmWapi6qaYxqGqea5lBNQ5XFRZXFRZXFRZXFRZXFRZXFTZXFTZXF/dIs/g4xYX2opgmqaZJqGiZCy6gILaMitIyK0DIqQsvGqKahyuKhyuKhyuKhyuKhyuKhyuKhyuKhyuKlyuKlyuKlyuKlyuKlyuKlyuKlyuKlyuKlyuJlymK/mLLYL6Ys9ospi/1iymK/mLLYL6Ys9osp/fxiSj9/n8q5/yt7PPfN/01w++0p/9BT50NPxYeeyg89VdhTf/vb/wE="
493
+ "bytecode": "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",
494
+ "debug_symbols": "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9NNf+ukv/fSXfvpLP/2tn/7WT3/rp7/109/66W/99Ld++ls//a2f/tZPP/TTD/30Qz/90E8/9NMP/fRDP/3QTz/00w/99I9++kc//aOf/tFP/+inf/TTP/rpH/30j376Rz/91E8/9dNP/fRTP/3UTz/100/99FM//dRPP/XTL/30Sz/90k+/9NMv/fRLP/3ST7/00y/99Es//dZPv/XTb/30Wz/91k+/9dNv/fRbP/3WT7/107/66V/99K9++lc//auf/tVP/+qnf/XTv/rpX/30Rz/90U9/9NMf/fRHP/3RT3/00x/99Ec/fZ31LZ31LZ31LZ31LZ31PX/r1R9J/ZHSH2n9kas/op++zvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvqWzvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvq2zvpCZ32hs77QWV/orC901hc66wud9YXO+kJnfaGzvtBZX+isL3TWFzrrC531hc76Qmd9obO+0Flf6KwvdNYXOusLnfWFzvpCZ32hs77QWV/orC901hc66wud9YXO+kJnfaGzvtBZX+isL3TWFzrrC531hc76Qmd9obO+0Flf6KwvdNYXOusLnfWFzvpCZ32hs77QWV/orC901hc66wud9YXO+kJnfaGzvtBZX+isL3TWFzrrC531hc76Qmd9obO+0Flf6KwvdNYXOusLnfWFzvpCZ32hs77QWV/orC901hc66wud9YXO+kJnfaGzvtBZX+isL3TWFzrrC531hc76Qmd9obO+0Flf6KwvdNYXOusLnfWFzvpCZ32hs77QWV/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO/orO8orO8v/+l19ZofX1m73l97vr37/dR3n898dwU2fse7r9/y7vk6P74yd76/tvKDl67uH1+6X9/eNtb7IJsySFAGOZRB8lMGeXv3+tR370999/up7/6b9kqe+/butX/TN0C+XpRBFmWQTRkkKIMcyiBJGaQogzRlkEsZhLJZF2WzLspmXZTNuiibdVE266Js1kXZrIuyWRdlsy7KZt2Uzbopm3VTNuumbNZN2aybslk3ZbNuymbdlM26KZs1KJs1KJs1KJs1KJs1KJs1KJs1KJs1KJs1KJs1KJv1UDbroWzWQ9msh7JZD2WzHspmPZTNeiib9VA266Fs1qRs1qRs1qRs1qRs1qRs1qRs1qRs1qRs1qRs1qRs1qJs1qJs1qJs1qJs1qJs1qJs1qJs1qJs1qJs1qJs1qZs1qZs1qZs1qZs1qZs1qZs1qZs1qZs1qZs1qZs1kvZrJeyWS9ls17KZr2UzXopm/VSNuulbNZL2ayXslmHslmHslmHslmHslmHslmHslmHslmHslmHslkpDlZRHKyiOFhFcbCK4mDVC7JZ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zjfsON+w43zDjvMNO8437DjfsGN8w/bL+Ibtl/EN2y/jG7Zfxjdsv4xv2H4Z37D9Mr5h+2V8w/bL+Ibtl/MNu5xv2OV8wy7nG3Y537DL+YZdzjfscr5hl/MNu5xv2OV8w27nG3Y737Db+Ybdzjfsdr5ht/MNu51v2O18w27nG3Y737DhfMOG8w0bzjdsON+wf0An6Xcc3vmGDecbNpxv2HC+YcP5hj3ON+xxvmGdm07t3HRq56ZTOzed2rnp1M5Np3ZuOrVz06mdm07t3HRq56ZTOzed2rnp1M5Np3ZuOrVz06mdm07t3HRq56ZTOzed2rnp1M5Np3ZuOrVz06mdm07t3HRq56ZTOzed2rnp1M5Np3ZuOrVz06mdm07t3HRq56ZTOzed2rnp1M5Np3ZuOrVz06mdm07t3HRq56ZTOzed2rnp1M5Np3ZuOrVz06mdm07t3HRq56ZTOzed2rnp1M5Np3ZuOrVz06mdm07t3HS6zk2n69x0us5Np+vcdLov4xv2OjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N52uc9PpOjedrnPT6To3na5z0+k6N53Guek0zk2ncW46jXPTaV7GN+w4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTuPcdBrnptM4N53Guek0zk2ncW46jXPTaZybTmPcdIqXcdPpGd73hn2G971hn+F9b9hneN8b9hne94Z9hve9YZ/hfW/YZ3jfG/YZ3vmGNW46PcM737DGTadneOcb1rjp9AzvfMMaN52e4Z1vWOOm0zO88w1r3HR6hne+YY2bTs/wzjescdPpGd75hjVuOj3DO9+wxk2nZ3jnG9a46fQM73zDGjednuGdb1jjptMzvPMNa9x0eoZ3vmGNm07P8M43rHHT6Rne+YY1bjo9wzvfsMZNp2d45xvWuOn0DO98wxo3nZ7hnW9Y46bTM7zzDWvcdHqGd75hjZtOz/DON6xx0+kZ3vmGNW46PcM737DGTadneOcb1rjp9AzvfMMaN52e4Z1vWOOm0zO88w1r3HR6hne+YY2bTs/wzjescdPpGd75hjVuOj3DO9+wxk2nZ3jnG9a46fQM73zDGjednuGdb1jjptMzvPMNa9x0eoZ3vmGNm07P8M43rHHT6Rne+YY1bjo9wzvfsMZNp2d45xvWuOn0DO98wxo3nZ7hnW9Y46bTM7zxDbucm07Luem0nJtOy7nptF7GN+xybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOi3nptNybjot56bTcm46Leem03JuOm3nptN2bjpt56bTdm467ZfxDbudm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTtu56bSdm07buem0nZtO27nptJ2bTuHcdArnplM4N53CuekUL+MbNpybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46hXPTKZybTuHcdArnplM4N53CuekUzk2ncG46Heem03FuOh3nptNxbjqdl/ENe5ybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtOx7npdJybTse56XScm07Huel0nJtO6dx0SuemUzo3ndK56ZQv4xs2nZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqlc9MpnZtO6dx0SuemUzo3ndK56ZTOTad0bjqVc9OpnJtO5dx0KuemU72Mb9hybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56VTOTadybjqVc9OpnJtO5dx0KuemUzk3ncq56dTOTad2bjq1c9OpnZtO/TK+Ydu56dTOTad2bjq1c9OpnZtO7dx0auemUzs3ndq56dTOTad2bjq1c9OpnZtO7dx0auemUzs3ndq56dTOTad2bjq1c9Op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"
490
495
  },
491
496
  {
492
- "name": "entrypoint",
497
+ "name": "is_valid",
493
498
  "function_type": "Secret",
494
499
  "is_internal": false,
495
500
  "abi": {
@@ -682,7 +687,7 @@
682
687
  "path": "authwit::aztec::protocol_types::contrakt::deployment_data::ContractDeploymentData",
683
688
  "fields": [
684
689
  {
685
- "name": "deployer_public_key",
690
+ "name": "public_key",
686
691
  "type": {
687
692
  "kind": "struct",
688
693
  "path": "authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint",
@@ -692,8 +697,15 @@
692
697
  ]
693
698
  }
694
699
  },
695
- { "name": "constructor_vk_hash", "type": { "kind": "field" } },
696
- { "name": "function_tree_root", "type": { "kind": "field" } },
700
+ { "name": "initialization_hash", "type": { "kind": "field" } },
701
+ {
702
+ "name": "contract_class_id",
703
+ "type": {
704
+ "kind": "struct",
705
+ "path": "authwit::aztec::protocol_types::contract_class::ContractClassId",
706
+ "fields": [{ "name": "inner", "type": { "kind": "field" } }]
707
+ }
708
+ },
697
709
  { "name": "contract_address_salt", "type": { "kind": "field" } },
698
710
  {
699
711
  "name": "portal_contract_address",
@@ -721,52 +733,9 @@
721
733
  },
722
734
  "visibility": "private"
723
735
  },
724
- {
725
- "name": "payload",
726
- "type": {
727
- "kind": "struct",
728
- "path": "authwit::entrypoint::EntrypointPayload",
729
- "fields": [
730
- {
731
- "name": "function_calls",
732
- "type": {
733
- "kind": "array",
734
- "length": 4,
735
- "type": {
736
- "kind": "struct",
737
- "path": "authwit::entrypoint::FunctionCall",
738
- "fields": [
739
- { "name": "args_hash", "type": { "kind": "field" } },
740
- {
741
- "name": "function_selector",
742
- "type": {
743
- "kind": "struct",
744
- "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector",
745
- "fields": [
746
- { "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }
747
- ]
748
- }
749
- },
750
- {
751
- "name": "target_address",
752
- "type": {
753
- "kind": "struct",
754
- "path": "authwit::aztec::protocol_types::address::AztecAddress",
755
- "fields": [{ "name": "inner", "type": { "kind": "field" } }]
756
- }
757
- },
758
- { "name": "is_public", "type": { "kind": "boolean" } }
759
- ]
760
- }
761
- }
762
- },
763
- { "name": "nonce", "type": { "kind": "field" } }
764
- ]
765
- },
766
- "visibility": "public"
767
- }
736
+ { "name": "message_hash", "type": { "kind": "field" }, "visibility": "private" }
768
737
  ],
769
- "param_witnesses": { "inputs": [{ "start": 0, "end": 34 }], "payload": [{ "start": 34, "end": 51 }] },
738
+ "param_witnesses": { "inputs": [{ "start": 0, "end": 34 }], "message_hash": [{ "start": 34, "end": 35 }] },
770
739
  "return_type": {
771
740
  "abi_type": {
772
741
  "kind": "struct",
@@ -822,6 +791,7 @@
822
791
  },
823
792
  { "name": "args_hash", "type": { "kind": "field" } },
824
793
  { "name": "return_values", "type": { "kind": "array", "length": 4, "type": { "kind": "field" } } },
794
+ { "name": "meta_hwm", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } },
825
795
  {
826
796
  "name": "read_requests",
827
797
  "type": {
@@ -1052,7 +1022,7 @@
1052
1022
  "path": "authwit::aztec::protocol_types::contrakt::deployment_data::ContractDeploymentData",
1053
1023
  "fields": [
1054
1024
  {
1055
- "name": "deployer_public_key",
1025
+ "name": "public_key",
1056
1026
  "type": {
1057
1027
  "kind": "struct",
1058
1028
  "path": "authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint",
@@ -1062,8 +1032,15 @@
1062
1032
  ]
1063
1033
  }
1064
1034
  },
1065
- { "name": "constructor_vk_hash", "type": { "kind": "field" } },
1066
- { "name": "function_tree_root", "type": { "kind": "field" } },
1035
+ { "name": "initialization_hash", "type": { "kind": "field" } },
1036
+ {
1037
+ "name": "contract_class_id",
1038
+ "type": {
1039
+ "kind": "struct",
1040
+ "path": "authwit::aztec::protocol_types::contract_class::ContractClassId",
1041
+ "fields": [{ "name": "inner", "type": { "kind": "field" } }]
1042
+ }
1043
+ },
1067
1044
  { "name": "contract_address_salt", "type": { "kind": "field" } },
1068
1045
  {
1069
1046
  "name": "portal_contract_address",
@@ -1083,22 +1060,22 @@
1083
1060
  "visibility": "public"
1084
1061
  },
1085
1062
  "return_witnesses": [
1086
- 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169,
1087
- 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187,
1088
- 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205,
1089
- 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223,
1090
- 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241,
1091
- 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259,
1092
- 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277,
1093
- 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295,
1094
- 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313,
1095
- 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331,
1096
- 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349,
1097
- 4350, 4351, 4352, 4353, 4354, 4355
1063
+ 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
1064
+ 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
1065
+ 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
1066
+ 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
1067
+ 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137,
1068
+ 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155,
1069
+ 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
1070
+ 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191,
1071
+ 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
1072
+ 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227,
1073
+ 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
1074
+ 1246, 1247, 1248, 1249, 1250, 1251, 1252
1098
1075
  ]
1099
1076
  },
1100
- "bytecode": "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",
1101
- "debug_symbols": "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OEchmeQd5zAk5R3nMCTlHecwJOUd5zAkq0lCJO04FEk7DkXSjkORtONQJO04EMlsx6FI2nEoknYciqQdhyJZTRIiacehSNpxKJJ2HIqkHYciaceBSBY7DkXSjkORtONQJO04FMlqkhBJOw5F0o5DkbTjUCTtOBRJOw5EstpxKJJ2HIqkHYciacehSFaThEjacSiSdhyKpB2HImnHoUjacSCSzY5DkbTjUCTtOBRJOw5FspokRNKOQ5G041Ak7TgUSTsORdKOA5HsdhyKpB2HImnHoUjacSiS1SQhknYciqQdhyJpx6FI2nEoknYciORqx6FI2nEoknYciqQdhyJZTRIiacehSNpxKJJ2HIqkHYciaceBSG52HIqkHYciacehSNpxKJLVJCGSdhyKpB2HImnHoUjacSiSdhyI5LDjUCTtOBRJOw5F0o5DkawmCZG041Ak7TgUSTsORdKOQ5G04zAk02LHoUjacSiSdhyKpB2HIllNEiJpx6FI2nEoknYciqQdhyJpx4FIJjsORdKOQ5G041Ak7TgUyWqSEEk7DkXSjkORtONQJO04FEk7DkQy23EoknYciqQdhyJpx6FIVpOESNpxKJJ2HIqkHYciacehSNpxIJLFjkORtONQJO04FEk7DkWymiRE0o5DkbTjUCTtOBRJOw5F0o4Dkax2HIqkHYciacehSNpxKJLVJCGSdhyKpB2HImnHoUjacSiSdhyIZLPjUCTtOBRJOw5F0o5DkawmCZG041Ak7TgUSTsORdKOQ5G040Akux2HImnHoUjacSiSdhyKZDVJiKQdhyJpx6FI2nEoknYciqQdByK52nEoknYciqQdhyJpx6FIVpOESNpxKJJ2HIqkHYciacehSNpxIJKbvOP01m5x7+C8mGQu5fo58uXsPiEp7ziHISnvOIchKe84hyFZTRIiKe84hyEp7ziHISnvOIchKe84hyEp7zhHITnsOBRJOw5F0o5DkbTjUCSrSUIk7TgUSTsORdKOQ5G041Ak7TgMybzYcSiSdhyKpB2HImnHoUhWk4RI2nEoknYciqQdhyJpx6FI2nEgksmOQ5G041Ak7TgUSTsORbKaJETSjkORtONQJO04FEk7DkXSjgORzHYciqQdhyJpx6FI2nEoktUkIZJ2HIqkHYciacehSNpxKJJ2HIhkseNQJO04FEk7DkXSjkORrCYJ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"
1077
+ "bytecode": "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",
1078
+ "debug_symbols": "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kPSmt5xquR+S3PQ2PdfS9FxL03MtTc+13D+V1zskuelteq6l6bmWpudamp5raXqupem5lqbnWpqea2l6rqXpuZam51qanmtpeq6l6bmWpudamp5raXqupem5lqbnWpqea2l6rqXpuZam51qanmtpeq6l6bmWpudamp5raXqupem5lqbnWpqea2l6rqXpuZam51qanmtpeq6l6bmWpudamp5raXqupem5lqbnWpqea2l6rqXpuZam51qanmtpeq6l6bmWpudamp5raXqupem5lqbnWpqea2l6rqXpuZam51qanmtpeq6l6bmWpudamp5raXqupem5lqbnWpqea2l6rqXpuZam51qanmtpeq6l6bmWpudamp5raXqupem5lqbnWpqea2l6rqXpuZam51qanmtpeq6l6bmWpudamp5raXqupem5lqbnWpqea2l6rqXpuZau51q6nmvpeq6l67mWvslNb9dzLV3PtXQ919L1XEvXcy1dz7V0PdfS9VxL13MtXc+1dD3X0vVcS9dzLV3PtXQ919L1XEvXcy1dz7V0PdfS9VxL13MtXc+1dD3X0vVcS9dzLV3PtXQ919L1XEvXcy1dz7V0PdfS9VxL13MtXc+1dD3X0vVcS9dzLV3PtXQ919L1XEvXcy1dz7V0PdfS9VxL13MtXc+1dD3X0vVcS9dzLV3PtXQ919L1XEvXcy1dz7V0PdfS9VxL13MtXc+1dD3X0vVcS9dzLV3PtXQ919L1XEvXcy1dz7V0PdfS9VxL13MtXc+1dD3X0vVcS9dzLV3PtXQ919L1XEvXcy1dz7V0PdfS9VxL13MtXc+1dD3X0vVcS9dzLV3PtXQ919L1XEvXcy1dz7V0PdfS9VxL13MtXc+1dD3XMvRcy9BzLUPPtQw91zI2uekdeq5l6LmWoedahp5rGXquZei5lqHnWoaeaxl6rmXouZah51qGnmsZeq5l6LmWoedahp5rGXquZei5lqHnWoaeaxl6rmXouZah51qGnmsZeq5l6LmWoedahp5rGXquZei5lqHnWoaeaxl6rmXouZah51qGnmsZeq5l6LmWoedahp5rGXquZei5lqHnWoaeaxl6rmXouZah51qGnmsZeq5l6LmWoedahp5rGXquZei5lqHnWoaeaxl6rmXouZah51qGnmsZeq5l6LmWoedahp5rGXquZei5lqHnWoae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"
1102
1079
  },
1103
1080
  {
1104
1081
  "name": "constructor",
@@ -1294,7 +1271,7 @@
1294
1271
  "path": "authwit::aztec::protocol_types::contrakt::deployment_data::ContractDeploymentData",
1295
1272
  "fields": [
1296
1273
  {
1297
- "name": "deployer_public_key",
1274
+ "name": "public_key",
1298
1275
  "type": {
1299
1276
  "kind": "struct",
1300
1277
  "path": "authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint",
@@ -1304,8 +1281,15 @@
1304
1281
  ]
1305
1282
  }
1306
1283
  },
1307
- { "name": "constructor_vk_hash", "type": { "kind": "field" } },
1308
- { "name": "function_tree_root", "type": { "kind": "field" } },
1284
+ { "name": "initialization_hash", "type": { "kind": "field" } },
1285
+ {
1286
+ "name": "contract_class_id",
1287
+ "type": {
1288
+ "kind": "struct",
1289
+ "path": "authwit::aztec::protocol_types::contract_class::ContractClassId",
1290
+ "fields": [{ "name": "inner", "type": { "kind": "field" } }]
1291
+ }
1292
+ },
1309
1293
  { "name": "contract_address_salt", "type": { "kind": "field" } },
1310
1294
  {
1311
1295
  "name": "portal_contract_address",
@@ -1396,6 +1380,7 @@
1396
1380
  },
1397
1381
  { "name": "args_hash", "type": { "kind": "field" } },
1398
1382
  { "name": "return_values", "type": { "kind": "array", "length": 4, "type": { "kind": "field" } } },
1383
+ { "name": "meta_hwm", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } },
1399
1384
  {
1400
1385
  "name": "read_requests",
1401
1386
  "type": {
@@ -1626,7 +1611,7 @@
1626
1611
  "path": "authwit::aztec::protocol_types::contrakt::deployment_data::ContractDeploymentData",
1627
1612
  "fields": [
1628
1613
  {
1629
- "name": "deployer_public_key",
1614
+ "name": "public_key",
1630
1615
  "type": {
1631
1616
  "kind": "struct",
1632
1617
  "path": "authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint",
@@ -1636,8 +1621,15 @@
1636
1621
  ]
1637
1622
  }
1638
1623
  },
1639
- { "name": "constructor_vk_hash", "type": { "kind": "field" } },
1640
- { "name": "function_tree_root", "type": { "kind": "field" } },
1624
+ { "name": "initialization_hash", "type": { "kind": "field" } },
1625
+ {
1626
+ "name": "contract_class_id",
1627
+ "type": {
1628
+ "kind": "struct",
1629
+ "path": "authwit::aztec::protocol_types::contract_class::ContractClassId",
1630
+ "fields": [{ "name": "inner", "type": { "kind": "field" } }]
1631
+ }
1632
+ },
1641
1633
  { "name": "contract_address_salt", "type": { "kind": "field" } },
1642
1634
  {
1643
1635
  "name": "portal_contract_address",
@@ -1657,24 +1649,24 @@
1657
1649
  "visibility": "public"
1658
1650
  },
1659
1651
  "return_witnesses": [
1660
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1661
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1662
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1663
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1664
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1665
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
1666
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1667
- 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
1668
- 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
1652
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1653
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1654
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1655
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1656
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1657
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1658
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
1659
+ 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
1660
+ 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257
1669
1661
  ]
1670
1662
  },
1671
- "bytecode": "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",
1672
- "debug_symbols": "5ZfLTiMxEEX/xesoqqernF8ZsYhmGAkJhdEkuyj/Tgdiu2msWDQoEFglLd0qnb71aHsf7h9+r3d3D5ttWO0DYlj92oftv/Xm+Ljdrf/vwgoW4XbzZ/g9LMLfu/vbsCIc/r/SYUpZSoBU1MINMbFIFgtgESN4KzUk05McETi90N8sAtLVkvPlyMU8i5X93eTSIsfoJcrEOvxkmNVkKpVfWmKMxXkSPC/u4+t148ePwK9EDh18R8rd46ixiA2ecOxr4fgH4Hgtborcxck0VsfQtCFlID5pGbxOuMVWH5AUZIp+XkzJU8lMPHo/nNVi6duYWF+USc+LlfGkVZNO3p6DBBd2MFnMmUF4bOGRBj+Txqc0dGEaBK04KZ3vL7PSBmaaJuuF+IrZ5dLsaKmsMPTOXGssc62JOiuMKFnm4O7CUyiTrVU7uHl0RX+qK4b5BGlqY1ca8+xWth3XvEg6aznGH2u5ZcsdYNqI9o1cYeZy4YCemmOGlvFRmp4/pMv2RUmL7xGrlao5SOYENXeBlAroaKc6P+/UZbNsHPPWFozTQsvSZ8SkGTEIc4LwzUG2bF8DJOZ+l+TTyg5BPieoaYSWIsXRCRKHa/rN4fAI"
1663
+ "bytecode": "H4sIAAAAAAAA/+2dB3QcxRnH53SnainGOAQSIDlsU4IB36meqDbGNBtjei+S72QLZMnIZxvRQgjpjfSeEEJ6o/fee++9996r4fvbO9bntXjwnr71Y96fee//ttze7PxmZ2e+nZ2dL5Vy7hm3JMiqqxClRVm1nYnW/XZlbLsqtl0d+39tbLshtj0ytj0qtj06tr1KtK1DKlpOjJZNudbm5lJbYynflO/INbZ3FlpyzS2drYV8Id9SaCk2FpqaSoXmQlt7Z3tbrj3f3FTKd7W0N3XlloRxKq7cMAPSVqPSPEa0SDQ2Wo4jW24gWju6Zjpf1ibND50v67hlg3W5XteZleu8v34+jetGHKgP1otxVMQ4csML+WrDPPmqcZ6AFXFm3WAZT0fxx+/9VLREWF8dXxHL0/XVceOj+NLuo8NEQ574eVLG5xhjF1cuqTSODSCNqQTSmEQ6xzvbttUH1J8jo/VqtT9rdb7mXCtsn8UGkVtiB+lQ5wbvW38M0pG2T8fi+i9jHa9cmzrFlYlOgPq8VjFWRvs960i1L6XyvyqB9KUUt4/bb/vzIa2jovXevnJ318Dk/lJHuVSc3lcu6QLj/6ArOA+lKz79e6XKiOpYPLoA+N90A7k0THQ2uaHjtL5LN3DJ1CbWloBuvYdrCWzo7C0BxJmNCtFyBcF9uluBlEqjvwk2Ek1A3KI1o30J1bbNuraN591QtS1uxNEqTeY1ZFTzVlrHm8s1VbvBfDSMd+nTp8+frDpPpcorX8Mblp+8PrfvIfDn8fvTan1lNxhq1Xq8Uh3hlq3th/pPJvafevV71RDcWWPu+D1RHUtjRu1DC5rKDOaHT1sS5azOfbRFr9Prgy4jSVgcyA9fj8wqlWfM7+zpnjm1NDCptzijo7/c3dEzqVjsL82bN1RllB4CwBcWbcqk1T5/8TNqX0UMVmeSPz7Rljz+3IdaFs97E6Ll6qK8W/75MB/9nouWKEmNsTTGW9zhtpKWNUSjXVy5tFveJncunOcs6zKVZB5slFAeWKdzgrNtST/rC+HrC9ENj69Lm0TNbkk9jZCQBdyuLWB9DoShLGDdcKXUPt/YVah9SxtHFb/5M7tY8QlZtnmkdTWV/wlY+20JWWGNn1n7zq3qBgODtV8frcNGq84sz1qzgtNWo9K4UrRemtNdntI7s39grvSXTeubpQ1ef7y2sSrUum4bdR+dPx5xxbvckJYR9tyNdW7Z8uHP72J54cMIlZ46+/TkE+Jc3H7WK47aGE+9+r1GMdYnwJhS5/Vx63TEz73I2eZDw8fkQ8MQaWlYwfngz1en9um+df27X1bEWHQb749fYd3M1t23Oq7hPpi2OHvDNAnmlCFzayDMFYbMbYEwpw2ZC4EwZwyZ2wNhrjRk3jgQ5ipD5k0CYbYcdLRpIMzrGDJvFgjzOEPmzQmZtyBknkjIPImQeUtC5smEzFsRMk8hZN6akHkbQuZtCZm3I2TenpB5KiHzNELmHQiZpxMy70jIPIOQeSdC5p0JmXchZN6VkHk3QubdCZn3IGTek5B5L0LmvQmZ9yFk3peQeT9C5v0JmQ8gZD6QkLmDkLmTkHkmIXORkLlEyNxFyDyLkHk2IXM3IfNBhMwHEzL3EDLPIWTuJWTuI2SeS8h8CCFzPyHzPELmMiHzfELmBYTMCwmZDyVkHiBkPoyQ+XBC5iMImY8kZD6KkPlrhMxHEzJ/nZD5GELmbxAyH0vI/E1C5m8FwjzekPnbgTBbujb5TiDMlmX7u4TM3yNk/j4h8w8ImX9IyPwjQuYfEzIfR8j8E0LmnxIy/4yQ+eeEzL8gZP4lIfOvCJl/Tcj8G0Lm3xIy/46Q+feEzH8gZP4jIfOfCJmPJ2T+MyHzCYTMfyFkPpGQ+a+EzH8LhHk9Q+a/E17nfwTCbOnj55+E1/lfhMz/JmT+DyHzfwmZ/0fI/H9C5pMImU8mZD6FkPlUQubTCJlPJ2Q+g5D5TELmswiZzyZkPoeQ+VxC5vMImc8nZL6AkPlCQuaLCJkvJmS+hJD5UkLmywiZLydkvoKQ+UpC5qsIma8mZL6GkPlaQubrCJmvJ2S+gZD5RkLmmwiZbyZkvoWQ+VZC5tsImW8nZL6DkPlOQua7CJnvJmS+h5D5XkLm+wiZ7ydkfoCQ+UFC5ocCYd7QkPlhwuv8CCHzo4TMjxEyP07I/AQh85OBMNcYMj8VCHOtIfPTgTDXGTI/EwjzCEPmZwNhrjdkfi4Q5gZD5ucDYf6cIfMLgTCPNGR+MRDmlQyZXwqEeZQh88uBMK9syPxKIMyjDZlfDYT584bMrwXCvIoh8+uBMH/BkPmNQJhXNWR+MxDm1QyZ3wqE+YuGzG8HwvwlQ+Z3AmFe3ZD53UCY1zBkfi8Q5jUNmd8PhPnLhsyLAmH+iiHzB4EwZw2ZXSoM5rUMmVOGzBKVS0dxjVH8qSgP8FtGVCmqEmGeUryfQH89+q/Rn4v+TfT3of8L/UHoH0F/AZ6f8TyJ5ys8b8D+hj0K+wz2CtpvtGeo31Hf4f7H/ZAVraWuAdI1VnR9tN0iahW1iQqidtHGok1Em4o2E20u2iLK80miLUWTRVuJpoi2Fm0j2la0nWh70VTRNNEOoumiHUUzRDuJdhbtItpVtJtod9Eeoj1Fe4n2Fu0j2le0n2h/0QGiA0Udok7RTFFRVBJ1iWaJZou6RQeJDhb1iOaIekV9ormiQ0T9onmismi+aIFooehQ0YDoMNHhoiNER4qOEsEf/NEi+As/RgR/0seK4G8Y/nfhjxb+WeGvFP474c8S/h3h7xD+/+AP7zgR/KXBfxj8acG/FPwtwf8Q/PHAPw38tcB/Cfx5wL8F/D3A/wH8ARwvwnzxJ4gwn/iJIsw3jfmXMR8x5ufFfLWYvxXzmWJ+T8x3ifkfMR/iSSLMl4f54zCfGuYXw3xbmH8K8zFhfiLM14P5azCfC+Y3wXwfmP8C80FcJMJ8AZeI8D05vq/G98b4/hbfo+L7THyviO/38D0bvu9COcP3P/ge5iYRvpfA9wMYT4/x5RhvjfHHGI+L8akYr4nxixjPh/FtGO+F8U8YD/SQCONFHhFhPAHer+N9M96/4n0k3s/hfRXe3+B9Bvr30d+N/l/0h6J/EP1l6D9Cfwr6F/C8jedPPI/h+QT2OuxX2HOwb9Deo/1De4AbGfWFv5cQRkXLNaJlR7lcmjO3nC33ZTuKxezC7vLsbN+CUn9XTx+K2OJ79hMf/yHoEsXE2ukAAA==",
1664
+ "debug_symbols": "3ZbdbhpBDIXfZa4R8u/Y5lWqXKA2lSJFpCrcId69W8rM0s2IUTYRCVwhpGPrs+es7X16fvm+3j29bLZptU+IafVtn7a/1pu/f7e79e9dWsEiPW5+DL+HRfr59PyYVoR+WLzSobGdpGgaVS3SEBM7ncQkPIoRmqlRspTcqOT/6R8WCelmyfl65Iq5kKvld5NLixxZKpFAdPjJwAuSiY382hIjaRET0GVxH19vGz9/BL5axY8OvpMV3zsDnPHAkce+GI9/AI+PzxvEHZ4omYO1So2aTjBuOcG4IY5KHBaXpTTMpprXz2dHzLJY3EkLEaQMVISAjrjXFoIrtwURqQKde4COOPiZOC5THLo6TlQc6tnG3MoMtgCeDg3iW4aXa8NTLjzICJ0PVqNmziSd2aR1VaqNeyDysU69nzpNy0Vm7ud1vpZmDDxpM+NoleGqmDXF8h11kUupDvlyFzGgnhig9u4u2v100TFKFyWm35x/6TpzNQA5YqdOrplFx54I/9vty+bRY1J6Y3k8NkoIwoyY5tqWKIVoHs3mp/m+bF9kHOW6EYHpw8myfa/0gnBOEM0J4jcH+bK96yTXoPDpyw5BOieoOSfVi4eyjW87xD8cDn8A"
1673
1665
  },
1674
1666
  {
1675
- "name": "set_is_valid_storage",
1667
+ "name": "is_valid_public",
1676
1668
  "function_type": "Open",
1677
- "is_internal": true,
1669
+ "is_internal": false,
1678
1670
  "abi": {
1679
1671
  "parameters": [
1680
1672
  {
@@ -1875,14 +1867,9 @@
1875
1867
  },
1876
1868
  "visibility": "private"
1877
1869
  },
1878
- { "name": "message_hash", "type": { "kind": "field" }, "visibility": "private" },
1879
- { "name": "value", "type": { "kind": "boolean" }, "visibility": "private" }
1870
+ { "name": "message_hash", "type": { "kind": "field" }, "visibility": "private" }
1880
1871
  ],
1881
- "param_witnesses": {
1882
- "inputs": [{ "start": 0, "end": 30 }],
1883
- "message_hash": [{ "start": 30, "end": 31 }],
1884
- "value": [{ "start": 31, "end": 32 }]
1885
- },
1872
+ "param_witnesses": { "inputs": [{ "start": 0, "end": 30 }], "message_hash": [{ "start": 30, "end": 31 }] },
1886
1873
  "return_type": {
1887
1874
  "abi_type": {
1888
1875
  "kind": "struct",
@@ -2148,22 +2135,22 @@
2148
2135
  "visibility": "public"
2149
2136
  },
2150
2137
  "return_witnesses": [
2151
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2152
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2153
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
2154
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2155
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2156
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2157
- 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2158
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
2159
- 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232
2138
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2139
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2140
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
2141
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2142
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
2143
+ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
2144
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2145
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2146
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231
2160
2147
  ]
2161
2148
  },
2162
- "bytecode": "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",
2163
- "debug_symbols": "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uYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYcruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYdruYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYcbuYe7cg935R7uyj3clXu4K/dwV+7hrtzDXbmHu3IPd+Ue7so93JV7uCv3cFfu4a7cw125h7tyD3flHu7KPdyVe7gr93BX7uGu3MNduYe7cg935R7uyj3clXu4K/dwV+7hrtzDXbmHu3IPd+Ue7so93JV7uCv3cFfu4a7cw125h7tyD3flHu7KPdyVe7gr93BX7uGu3MNduYe7cg935R7uyj3clXu4K/dwV+7hrtzDXbmHu3IPd+Ue7so93JV7uCv3cFfu4a7cw125h7tyD3flHu7KPdyVe7gr93BX7uGu3MNduYe7cg935R7uyj3clXu4K/dwV+7hrtzDXbmHu3IPd+Ue7so93JV7uCv3cFfu4a7cw125h7tyD3flHu7KPdyVe7gr93BX7uGu3MNduYe7cg935R7uyj3clXu49ZKLuOeRpT8S+iNbf+Toj6T+SOmPtP7I6I/o21/69pe+/aVvf+nbX/r2l779pW9/6dtf+vaXvv3Qtx/69kPffujbD337oW8/9O2Hvv3Qtx/69re+/a1vf+vb3/r2t779rW9/69vf+va3vv2tb//o2z/69o++/aNv/+jbP/r2j779o2//6Ns/+vZT337q2099+6lvP/Xtp7791Lef+vZT337q2y99+6Vvv/Ttl7790rdf+vZL337p2y99+6Vvv/Xtt7791rff+vZb337r2299+61vv/Xtt7790bc/+vZH3/7o2x99+6Nvf/Ttj7790bc/+vavvv2rb//q27/69q++/atv/+rbv/r2r759vetbete39K5v6V3f0ru+50+9+iOpP1L6I60/Mvoj+vb1rm/pXd/Su76ld31L7/qW3vUtvetbete39K5v6V3f0ru+pXd9S+/6lt71Lb3rW3rXt/Sub+ld39K7vqV3fUvv+pbe9S2961t617f0rm/pXd/Su76ld31L7/qW3vUtvetbete39K5v6V3f0ru+pXd9S+/6lt71Lb3rW3rXt/Sub+ld39K7vqV3fUvv+pbe9S2961t617f0rm/pXd/Su76ld31L7/qW3vUtvetbete39K5v6V3f0ru+pXd9S+/6lt71Lb3rW3rXt/Sub+ld39K7vqV3fUvv+pbe9S2961t617f0rm/pXd/Su76ld31L7/qW3vUtvetbete39K5v6V3f0ru+pXd9S+/6lt71Lb3rW3rXt/Sub+ldX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hdX+hd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"
2149
+ "bytecode": "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",
2150
+ "debug_symbols": "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PdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdzAPdyBe7gD93AH7uEO3MMduIc7cA934B7uwD3cgXu4A/dwB+7hDtzDHbiHO3APd+Ae7sA93IF7uAP3cAfu4Q7cwx24hztwD3fgHu7APdyBe7gD93AH7uEO3MMduIc7cA934B7uwD3cgXu4A/dwB+7hDtzDHbiHO3APd+Ae7sA93IF7uAP3cAfu4Q7cwx24hztwD3fgHu7APdyBe7gD93AH7uEO3MMduIc7cA934B7uwD3cgXu4A/dwB+7hDtzDHbiHO3APd+Ae7sA93IF7uAP3cAfu4Q7cwx24hztwD3fgHu7APdyBe7gD93AH7uEO3MMduIc7cA934B7uwD3cgXu4A/dwB+7hDtzDHbiHO3APd+Ae7sA93IF7uAP3cAfu4Q7cwx24hztwD3fgHu7APdyBe7gD93AH7uEO3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MMt3MPZ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O51M2elkyk4nU3Y6mbLTyZSdTqbsdDJlp5MpO51M2elkyk4nU3Y6mbLTyZSdTqbsdDJlp5MpO51M2elkyk4nU3Y6mbLTyZSdTqbsdDJlp5MrO51c2enkyk4nV3Y6+SW8YV3Z6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnkys7nVzZ6eTKTidXdjq5stPJlZ1Orux0cmWnUyg7nULZ6RTKTqdQdjrFJbxhQ9npFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKDudQtnpFMpOp1B2OoWy0ymUnU6h7HQKZadTKjudUtnplMpOp1R2OuUlvGFT2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MqO51S2emUyk6nVHY6pbLTKZWdTqnsdEplp1MpO51K2elUyk6nUnY61SW8YUvZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUyk7nUrZ6VTKTqdSdjqVstOplJ1Opex0KmWnUys7nVrZ6dTKTqdWdjr1JbxhW9np1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZadTKzudWtnp1MpOp1Z2OrWy06mVnU6t7HRqZafTKDudRtnpNMpOp1F2Os0lvGFH2ek0yk6nUXY6jbLT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Gz03bfTctNFz00bPTRs9Nyr0/APja29dKqAdH5+Kff/A+Npbt7W3bmtv3d+Bjv/U8bW3bmtv3dbeuq29dVt764721h3trTvaW3e0t+5ob93R3rqjvXVHe+uO9tYd7a17tLfu0d66R3vrHu2ti+t5uMbX3rpHe+se7a17tLfu0d66q711V3vrrvbWXe2t++lGqhePr711V3vrrvbWXe2tu9Jb1y/preuX9Nb1S3rr+iW9df2S3rp+SW9dv6S3rl/SW9cv6a3rl/bWNe2ta9pb17S3rmlv3U+3Xr14fO2ta9pb17S3rmlvXdPeuq69dV1767r21nXtrfvpTqYXj6+9dV1767r21nXtrevaW1fbTeXabirXdlO5tpvKtd1Uru2mcm03lWu7qVzbTeXabirXdlO5tpvKtd1Uru2mcm03lWu7qVzbTeXabirXdlO5tpvKtd1Uru2mcm03lWu7qVzbTeXabirXdlO5tpvKtd1Uru2mcm03lWu7qVzbTeXabirXdlO5tpvKtd1Uru2mcm03lWu7qVzbTeXabirXdlO5tpvKtd1Uru2mcm03lWu7qVzbTeXabirXdlO5tpvKtd1Uru2mcm03lWu7qVzbTeXabirXdlO5tpvKtd1Uru2mcm03lWu7qVzbTeXabirXdlO5tpvKtd1Uru2mCm03VWi7qULbTRXabqq4pLduaLupQttNFdpuqtB2U4W2myq03VSh7aYKbTdVaLupQttNFdpuqtB2U4W2myq03VSh7aYKbTdVaLupQttNFdpuqtB2U4W2myq03VSh7aYKbTdVaLupQttNFdpuqtB2U4W2myq03VSh7aYKbTdVaLupQttNFdpuqtB2U4W2myq03VSh7aYKbTdVaLupQttNFdpuqtB2U4W2myq03VSh7aYKbTdVaLupQttNFdpuqtB2U4W2myq03VSh7aYKbTdVaLupQttNFdpuqtB2U4W2myq03VSh7aYKbTdVaLupQttNFdpuqtB2U4W2myq03VSh7aYKbTdVaLupQttNFVRuqi8zUQmnHjMx7cfHTExL7zHT6zeZX/l4tXv/64+D3av28eL7v9/XW/u8PUHKP0HJP0HLP8HIP8GRf4JVf4LfQQL14SfY690nMPkncPEnyPetINeXq65vzD65X145/fU54+3m/sybxzNvns+8eT3z5v3Mm88zb36eefN94s3fdxR81s2f+Qm1Z35C7ZmfUHvmJ9Se+Qm1Z35C7ZmfUHvmJ9Se+Qn1Z35C/ZmfUH/mJ9Sf+Qn1Z35C/ZmfUH/mJ9Sf+Qn1Z35C/Zmf0HjmJzSAT+jjEscvCfySxC/5Td/5Wefxd5P7j1///rD7dv9+8v3nyfc/z7x//cJvJ/y197f5+re9qf3697d878XnbZj7j1+Hses8pumLahqjmsappgmqafJ106y/VRZb17vTFNU0TTXNUE1zqKZZpmnmhVm8/XixX9e7n/Axqmlelzd3Q/p1mjzvTlNU0zTVNEM1zaGaZpmmORfVNEY1jVNNE1TTUGXxocriQ5XFhyqLD1UWH6osXqosXqosXqosXqosXqosXqosXqosXqosXqosXqYs/oVf1PO7TcOUxXExZXFcTFn8C7/k5nebhimL42LK4riYsjgupiyOiyqLjSqLjSqLjSqLjSqLjSqLjSqLjSqLjSqLjSqLjSqLnSqLnSqLnSqLnSqLnSqLnSqLnSqLnSqLnSqLnSqLgyqLgyqLgyqLgyqLgyqLgyqLgyqLgyqLgyqLgyqLkyqLkyqLkyqLkyqLkyqLkyqLkyqLkyqLkyqLkyqLiyqLiyqLiyqLiyqLiyqLiyqLiyqLiyqLiyqLiyqLmyqLmyqLmyqLmyqLmyqLmyqLmyqLmyqLmyqLmyqLhyqLhyqLhyqLhyqLqbi7oOLugoq7CyruLqi4u6Di7oKKuwsq7i6ouLug4u6CirsLKu4uqLi7oOLugoq7CyruLqi4u6Di7oKKuwsq7i6ouLug4u6CirsLKu4uqLi7oOLukoq7SyruLqm4u6Ti7n6jbPvTp2HK4qTi7pKKu0sq7i6puLuk4u6SirtLKu4uqbi7pOLukoq7y1fSXHY9fnOHm9d707yS5voV07zwu9j3cd/7j/buNEk1TVFN01TTDNU0L7SbXlHn8eor+vrZPP42z3LN80pq6f6nhMdpZew/nNY7t7bsNz2rlb+b36+knJ4wvUtPH9LTp/T0RTH9Y5qhmuZQTbNM0yRH2j+m4UjvxzQcafyY5oXpmsfepvn5b6b82TRJNU1RTdNU0wzVNIdqmmWa5pVc1K+YxqimcappqLK4qLK4qLK4qLK4qLK4qLK4qLK4qbK4qbK4qbK4qbK4qbK4qbK4qbK4qbK4qbK4qbJ4qLJ4qLJ4qLJ4qLJ4qLJ4qLJ4qLJ4qLJ4qLL4leyP9eN3irq9/6+nr2R/fsU0QTVNUk1TVNM01TTzO03z7v+v5pXsz6+YZpmmeSX78yumMappXpjF7l//fzX17p56JfvzK6ZpqmmGappDNc0STVOv5Ft+xTQvzBvft7wJs3encappgmqapJqmqKZpqmmGappDNc0yTfNKvuVXTEOVxUaVxUaVxUaVxUaVxUaVxUaVxUaVxfbSLP4GNVF+UU1jVNM41TRMlFZRUVpFRWkVFaVVVJRW+aGahiqLgyqLgyqLgyqLgyqLgyqLgyqLgyqLgyqLgyqLgyqLkyqLkyqLkyqLkyqLkyqLkyqLkyqLkyqLkyqLkyqLiyqLiyqLiyqLiyr9iir93qdyvB9vEle+Xbb5dtV+5Kr3KZdvXmUfuso/dFVgV/397/8P"
2164
2151
  },
2165
2152
  {
2166
- "name": "is_valid",
2153
+ "name": "entrypoint",
2167
2154
  "function_type": "Secret",
2168
2155
  "is_internal": false,
2169
2156
  "abi": {
@@ -2356,7 +2343,7 @@
2356
2343
  "path": "authwit::aztec::protocol_types::contrakt::deployment_data::ContractDeploymentData",
2357
2344
  "fields": [
2358
2345
  {
2359
- "name": "deployer_public_key",
2346
+ "name": "public_key",
2360
2347
  "type": {
2361
2348
  "kind": "struct",
2362
2349
  "path": "authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint",
@@ -2366,8 +2353,15 @@
2366
2353
  ]
2367
2354
  }
2368
2355
  },
2369
- { "name": "constructor_vk_hash", "type": { "kind": "field" } },
2370
- { "name": "function_tree_root", "type": { "kind": "field" } },
2356
+ { "name": "initialization_hash", "type": { "kind": "field" } },
2357
+ {
2358
+ "name": "contract_class_id",
2359
+ "type": {
2360
+ "kind": "struct",
2361
+ "path": "authwit::aztec::protocol_types::contract_class::ContractClassId",
2362
+ "fields": [{ "name": "inner", "type": { "kind": "field" } }]
2363
+ }
2364
+ },
2371
2365
  { "name": "contract_address_salt", "type": { "kind": "field" } },
2372
2366
  {
2373
2367
  "name": "portal_contract_address",
@@ -2395,9 +2389,52 @@
2395
2389
  },
2396
2390
  "visibility": "private"
2397
2391
  },
2398
- { "name": "message_hash", "type": { "kind": "field" }, "visibility": "private" }
2392
+ {
2393
+ "name": "payload",
2394
+ "type": {
2395
+ "kind": "struct",
2396
+ "path": "authwit::entrypoint::EntrypointPayload",
2397
+ "fields": [
2398
+ {
2399
+ "name": "function_calls",
2400
+ "type": {
2401
+ "kind": "array",
2402
+ "length": 4,
2403
+ "type": {
2404
+ "kind": "struct",
2405
+ "path": "authwit::entrypoint::FunctionCall",
2406
+ "fields": [
2407
+ { "name": "args_hash", "type": { "kind": "field" } },
2408
+ {
2409
+ "name": "function_selector",
2410
+ "type": {
2411
+ "kind": "struct",
2412
+ "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector",
2413
+ "fields": [
2414
+ { "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }
2415
+ ]
2416
+ }
2417
+ },
2418
+ {
2419
+ "name": "target_address",
2420
+ "type": {
2421
+ "kind": "struct",
2422
+ "path": "authwit::aztec::protocol_types::address::AztecAddress",
2423
+ "fields": [{ "name": "inner", "type": { "kind": "field" } }]
2424
+ }
2425
+ },
2426
+ { "name": "is_public", "type": { "kind": "boolean" } }
2427
+ ]
2428
+ }
2429
+ }
2430
+ },
2431
+ { "name": "nonce", "type": { "kind": "field" } }
2432
+ ]
2433
+ },
2434
+ "visibility": "public"
2435
+ }
2399
2436
  ],
2400
- "param_witnesses": { "inputs": [{ "start": 0, "end": 34 }], "message_hash": [{ "start": 34, "end": 35 }] },
2437
+ "param_witnesses": { "inputs": [{ "start": 0, "end": 34 }], "payload": [{ "start": 34, "end": 51 }] },
2401
2438
  "return_type": {
2402
2439
  "abi_type": {
2403
2440
  "kind": "struct",
@@ -2453,6 +2490,7 @@
2453
2490
  },
2454
2491
  { "name": "args_hash", "type": { "kind": "field" } },
2455
2492
  { "name": "return_values", "type": { "kind": "array", "length": 4, "type": { "kind": "field" } } },
2493
+ { "name": "meta_hwm", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } },
2456
2494
  {
2457
2495
  "name": "read_requests",
2458
2496
  "type": {
@@ -2683,7 +2721,7 @@
2683
2721
  "path": "authwit::aztec::protocol_types::contrakt::deployment_data::ContractDeploymentData",
2684
2722
  "fields": [
2685
2723
  {
2686
- "name": "deployer_public_key",
2724
+ "name": "public_key",
2687
2725
  "type": {
2688
2726
  "kind": "struct",
2689
2727
  "path": "authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint",
@@ -2693,8 +2731,15 @@
2693
2731
  ]
2694
2732
  }
2695
2733
  },
2696
- { "name": "constructor_vk_hash", "type": { "kind": "field" } },
2697
- { "name": "function_tree_root", "type": { "kind": "field" } },
2734
+ { "name": "initialization_hash", "type": { "kind": "field" } },
2735
+ {
2736
+ "name": "contract_class_id",
2737
+ "type": {
2738
+ "kind": "struct",
2739
+ "path": "authwit::aztec::protocol_types::contract_class::ContractClassId",
2740
+ "fields": [{ "name": "inner", "type": { "kind": "field" } }]
2741
+ }
2742
+ },
2698
2743
  { "name": "contract_address_salt", "type": { "kind": "field" } },
2699
2744
  {
2700
2745
  "name": "portal_contract_address",
@@ -2714,22 +2759,22 @@
2714
2759
  "visibility": "public"
2715
2760
  },
2716
2761
  "return_witnesses": [
2717
- 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
2718
- 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
2719
- 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
2720
- 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
2721
- 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137,
2722
- 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155,
2723
- 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
2724
- 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191,
2725
- 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
2726
- 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227,
2727
- 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
2728
- 1246, 1247, 1248, 1249, 1250, 1251
2762
+ 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949,
2763
+ 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967,
2764
+ 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
2765
+ 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
2766
+ 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
2767
+ 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039,
2768
+ 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057,
2769
+ 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075,
2770
+ 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093,
2771
+ 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111,
2772
+ 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129,
2773
+ 2130, 2131, 2132, 2133, 2134, 2135, 2136
2729
2774
  ]
2730
2775
  },
2731
- "bytecode": "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",
2732
- "debug_symbols": "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"
2776
+ "bytecode": "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",
2777
+ "debug_symbols": "7P3druvKkqwJvkteHxww/iPOqzT6otBdDRRQqGp01d1Bvnsrcy9RGjnJyRhBJ2kW7ld7ZUKU3L5J0c1jKCz+57/97//n/+t/+b//t//z//i//u1//M9/c+3f/sf/43/+2//1//1f/o//+D//r//7f/n//d//9j+W//Zv/+v/8f9+/e+//7d/+//8b//7//pv/8O7+u//7Y/XuRLKPy91JbX11TFuvNiH6v95sY/h82K3bL61izm+39slX3+8/v/53/7NL7SVu/sqTy6/K08ln67cb1XuSqxrRSUd1R9ae786uvD5iFY20ee2ok/p69V5SEAQEJD8+25wKbsjAdWHt4Caj/5xg0vvVwdX4+cfN229dSnL+tbLp5BS/lNq1CM1zSS1LnV96687vmzVUdr7613j8l+pZK1Uano/BGpt/5VKmYpKS++3biH+ncoL4doLavhCGDZe3OK7ybTS/v5S/2qP7/d9fcaXvjb0iK72D9TxD+SW+H4iuqUtBy8+hN4M+u3Qw6IXenKfOuo3x//g4ozLJhdvXDa5RLVcWl5bb2v14HnkVw/tgnOo/T/MZeYh/jWF+9Zcg8Vl/0KvD1//hY6+RCm//4GyK2f/fdQ66BDX5a4QUzjgmPK6kJaXNsfDU62PB/mnl33SRrUTwoX/nE89lqPaseZ3/5h5fbHL+QB6iW8cpbWz/z6Kx6vH1kDiVH+QYYEeDfr90Keaa1t0n0HoAHr5tOfXH6y//oa7LP8JZqpxUhLM/X+qaunzXao/3/s/Crp9sAxLXZ2DW/wfBTWwgtKCVpBDK8ijFRTQCopoBSW0gjJaQQWtILQndUJ7Ume0J3VGe1JntCd1RntSZ7QndUZ7Ume0J3VGe1JntCd1RntSF7QndUF7Uhe0J3VBe1IXtCd1QXtSF7QndUF7Uhe0J3VBe1JXtCd1RXtSV7QndUV7Ule0J3VFe1JXtCd1RXtSV7QndUV7Uje0J3VDe1I3tCd1Q3tSN7QndUN7Uje0J3VDe1I3tCd1Q3tSv/4WDFcR2rP69f+Cqwjtae0WtMe1W9Ce125Be2C7Be2J7Ra0R7Zb4J7ZDu6Z7eCe2Q7ume3gntkO7pnt4J7ZDu6Z7eCe2Q7ume3gntke7pnt4Z7ZHu6Z7eGe2R7ume3hntke7pnt4Z7ZHu6Z7eGe2QHumR3gntkB7pkd4J7ZAe6ZHeCe2QHumR3gntkB7pkd4J7ZEe6ZHeGe2RHumR3hntkR7pkd4Z7ZEe6ZHeGe2XCbGh3crkYHt63Rwe1rdHAbGx3czkYHt7XRwe1tdHCbGx3c7kYHt73Rwe1vdHAbHB3cDkcHt8XRwe1xdHCbHB3cLkcHt83Rwe1zdHAbHR3cTkcHt9XRwe11dHCbHR3cbkcHt93Rwe13dHAbHh3cjkcHt+XRwe15dHCbHh3crkcHt+3Rwe17dHAbHx3czkcHt/XRwe19dHCbHx3c7kcHt/3Rwe1/dHAbIB3cDkgHtwXSwe2BdHCbIB3cLkgHtw3Swe2D9HD7ID3cPkgPtw/Sw+2D9AvaM9vD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+SA+3D9LD7YP0cPsgPdw+yAC3DzLA7YMMcPsgA9w+yLCgPbMD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtgwxw+yAD3D7IALcPMsDtg4xw+yAj3D7ICLcPMsLtg4wL2jM7wu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgItw8ywu2DjHD7ICPcPsgEtw8ywe2DTHD7IBPcPsi0oD2zE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YNMcPsgE9w+yAS3DzLB7YPMcPsgM9w+yAy3DzLD7YPMC9ozO8Ptg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7IDLcPMsPtg8xw+yAz3D7I/MA+yFcd74pCqAfv3Wp7v/Xiv996q464pPeLY/TfL/5PqU2N1Ad2bj4m1emR6vVIDXqkRj1Skx6pWY/UokeqHrfU1LilsqhxS2VR45bKosYtlUWNWypL1CNVjVsqixq3VBY1bqksatxSWfS4JafHLTk9bsnpcUtOj1t6IBHiMal63JLT45acHrfk9Lglp8cteT1uyetxS16PW/J63NIDWSyPSdXjlrwet+T1uCWvxy15PW4p6HFLQY9bCnrcUtDjlh5IQXpMqh63FPS4paDHLQU9binocUtRj1uKetxS1OOWoh639ED+2GNS9bilqMctRT1uKepxS1GPW0p63FLS45YeyNFzza1S40+p/1nRA6Ymp7Wimv6sKEpUlNdX5yUfVlTCu6K4fP+j5Y1Xe+fe7+1dCJ9X+/Sv+hN5/Zm8/np7/TGu9acSDup30a0vf/2X+9K7LP9S0NAVvP4esCooJf9Q8Ofrs3+XknP8vDZsP0DXR7OL6auSFLcezWvZLX2IuPyvO0EmJdA4ymQbGkeZREbjKJMjaRxl0i+NY07GUYRjNo4iHItxFOEIP0mQcLR5RoRjUT3P1JVjWtwPjv/JRvWMcsBG9dxxwEb1LHHAJhqbXTaqPf8BG9U+/oCNam9+wEa13z5go9pD/51N1eyLky8rm6+/765sNPviIzaaffERG82++IhNNDa7bDT74iM2mn3xERvNvviIjWZffMRGsy8+YNNU++Ky1p1a+5ONal98wEa1Lz5go9oXH7CJxmaXjWpffMBGtS8+YKPaFx+wUe2LD9io9sV/ZVMXeF9c82eHQFuKIJuwfHbfuOV7Zth69V9/j1IXeA9NwhHeb5NwhPfmJByjcRThCO/5STjCzwckHOFnCRKO8HMHCUf4GYWDo7N5Roaj5nnGxTUSw31nOKT2LzaaZ5QjNprnjiM20djsstE8Hxyx0ez5j9ho9vFHbDR78yM2mv32ARuv2UMfsVHtiz/5af47q+nNRrUvPmCj2hcfsInGZpeNal98wEa1Lz5go9oXH7BR7YsP2Kj2xX9nE1T74gM2mn2xT+vM4MufM0PQ7IuP2Gj2xUdsorHZZaPZFx+x0eyLj9ho9sVHbDT74iM2mn3xAZuo2RcfsdHsi4N7n4URQvhzZoiaffERG82++IhNNDa7bDT74iM2mn3xERvNvviIjWZffMRGsy8+YJM0++IjNuaL99mg++LUPif7pRZ/svlPBeju9VhBpFeA7gSPFaD7tdTWDRevN3fxTwXorupYAbr3OVaA7lDy4vP65s4vfyiAP7vvWAF6tz9WgN6Ts//4leyb+1MBek8+VoDek48VoPfkHJb1gOcc0sb3AL0nHytA78nHCtB7ci5fPbl6/6cC+J5c120Ar/9u6Q8F8OdP5eY+z6L2XzKl/lMBfE9uLa6lLO3P7wH8WU7HCuB78qEC9J5c3PIpxdWNbzJ6Tz5WgN6Tiw9+LcXH8EPBn69vy9uLt/DloWLaflKvxr3En/l2G692Ma/3s0v+KyNhqf9iie4OfssyvjtxK8sByxT8+61TXL5fXcZYovuUX7Ksy5rSuLj8A+Z/yH3g6J3s3jd/KN8LaNtyXV1WU/N6SfjjQfLAATnSCjy9gkCvINIrSPQKMr2CQq+g0ito7AoafU9u9D250ffkRt+THziOQloBfU9u9D250ffkRt+TG3tPbgt7T24Le09uC3tPbgt7T24Le09uC3tPbgt7T24Le09uC3tPbgt9T3b0PdnR92RH35MdfU9+IKJZWgF9T3b0PdnR92RH35MdfU/29D3Z0/dkT9+TPX1PfiAeVloBfU/29D3Z0/dkT9+TPX1PDvQ9OdD35EDfkwN9T34gmlJaAX1PDvQ9OdD35EDfkwN9T470PTnS9+RI35MjfU9+IBZPWgF9T470PTnS9+RI35MjfU9O9D050ffkRN+TE31PfiBGTFoBfU9O9D050ffkRN+TE31PzvQ9OdP35Azfk1tZN/X7Jdc/FcD35EMF8D35UAF8Tz5UgN6TvfuEk3qX3J8K0HvysQL0nnysAL0ne5fXKDfv3Z8KCnpPPlaA3pOPFaD3ZO/9l4Ly59O0oPfkYwXoPflYAXpPfgkoq4IQNhTA9+RDBfA9+VABfE8uaY2V9NUtfyqA78l1Parh9d/1zxkNPsfLt08QmW85/qkAvie3ugavhWXjaQqf43WsAL4nHypA78lhaWv2Y3Bl45uM3pOPFaD35PCy1KsCH35GPf/5eh/XWnwKX3pj21xHOIiYbDIpYWvs5QuVO+Dzah/vBuhrXg7eO7i1XQZXP0/qzfxNX9t73vUtfF5ctutYU1J9DR+N/3ET/Slx+cRZf6f4br/4mHo16g9Qb0b9fuqN/diM9kD2l7QC+GMzDhVk++4+8N01d/AEdXMHT1BHX3d5dlJ4fQj6iS2iafSva+5fBApl1RsXf6D39aeY9R/Yff8D+7cAzy4gsAuAP0zexc8hvcH9cdDU63/gz3wvYf0ex/Jfzmn68/W/OWf4hWftMDF9VbJ5Nkpby27pQ8Tl970Af0A8C0j40+RZQMIfPU8C0sGfU88CEv5QexaQ6Cf70YBEX72kARkNpAxI+JmCBaRNNkIgVU82dQWZFvcD5L/gqJ5WjuConkAO4HjVU8URHNWTwhEc1e7/CI5qR38EJxqcfTiqnfcRHNVu+giOZoec/LplI8W6AUezQz6Eo9khH8EJmh3yIRzNDvkQjmaHfAhHs0M+hBMNzj4czQ75EI5mh3wIR7VDLmvdqbUNOKod8hEc1Q75AE5U7ZCP4Kh2yEdwVDvkIziqHfIRnGhw9uGodshHcFQ75CM48A65fvZwxrYUQThhye9NZOE/9iN94Gy9+uDnKhHeTbOAhHfeJCATvEtnAQnv6FlAwrt/FpDwkwILyGggZUDCTyAsIOGnFRaQNtkIgdQ82bg1DSS478CTF8h/wdE8rRzByZonkEM4mqeKQziaJ4VDOJrd/yGcaHD24Wh26YdwNDvvQzia3fQhHNUOub3/eBX8d9TTCke1Qz6AU1Q75CM4qh3yERzVDvkIjmqHfAQnGpx9OKod8hEc1Q75CI5qh3wER7ND9mkdH3zZGB+KZod8BKdqdsiHcDQ75EM4mh3yIRzNDvkQTjQ4+3A0O+RDOJod8iEczQ75EI5mhxzc+4iNEMLG+FA1O+QjOE2zQz6Eo9khH8LR7JAP4Wh2yIdwosHZh6PZIR/C0eyQD+FodsiHcMwh/wUOukNObXn/JP313/EnnP+Q4OBPAuyQgO42OySge8IOCejOLbV1e8brzV3ckBD5JaC7oA4J6F4lLz6vb+78siEB3VF0SEDv+x0S0LvzsQT40+g6JKB35w4J6N05+48Hzr65DQno3blDAnp37pCA3p1zWNr65iFtfRfgu/OxBPjufCwBvjuXL5tXvd+QAN+d67oB5fXfLf0pAf5Up9zc54nU/kvG2b8kwHfn1uJayuuvbhsS4LvzsQT47nwsAb07l9dIs5bi6tbXGb07d0hA787FB7+W4mP4IeHP17flbc1b+PJTMW0/sFcfX+LP1MWNV7uY11vaJf8V17HUf2Ci+4TfwozvltzKcgAzBf9+6xSX71eXQZjojuWXMOuypocuLv+g+S+96PamvN7lS2880JvXmyfnz+0Q/iUW/vAeUbHolklULLq5EhWLbsNExUZNYvGtnaBYeBMoKRbepEmKhTdRkmI1OSj4w11Exc7roL7W2N5i53VQG2LndVAbYqMmsfM6qA2x8zqoDbGTOajXQs4/ry5fa4ZvsZM5qL+LncxB/VUs/MEbomInc1B/FzuZg/q72Mkc1N/FRk1iJ3NQfxc7mYP6u9j7TUV27791hvL9a/xtsa4u609ZXi/5+betf0lo9BIeyL0Xl+D4JXh+CYFfQuSXkPglZH4JhV8Cf3fO/N258Hfnwt+dC393Lvzd+YEsaHEJ/N258Hfnwt+dC393LvzdufJ358rfnSt/d6783fmBHFpxCfzdufJ358rfnSt/d6783bnxd+fG350bf3du/N35gQxMcQn83bnxd+fG350bf3du9N3ZL/Td2S/03dkv9N3ZL/Td2S/03dkv9N3ZL/Td2S/03dkv9N3ZL/zd2fF3Z8ffnR1/d3b83fmBBEVxCfzd2fF3Z8ffnR1/d3b83dnzd2fP3509f3f2/N35gQRFcQn83dnzd2fP3509f3f2/N058HfnwN+dA393Dvzd+YG4PHEJ/N058HfnwN+dA393DvzdOcJ351bWUOjX36TqhgT47nwsAb47H0uA787HEtC78+vvUOt5KK9FbLchAb07d0hA784dEtC78+vPB+vZQK+1xy0J6N25QwJ6dz6WkNC782vV90tC2XioJvTu3CEBvTt3SEDvzi8Fa5LSa9LfkgDfnY8lwHfnYwnw3bmk9bQyX92yIQG+O9f1ePnXf9eNqQ0+K8y3z8k2vuW4IQG+O7e6HuUTlq2HKnxWWIcE+O58LAG9O4elrUeKBVc2vs7wWWEdEtC7c3g57FXC688hPyT8+frXGPqu5WWevgT/x5lwf7774dFlHj6JLLiavgCFA0B/O5vBw2eWiYpF9xOiYtGdh6hYdI8iKRY+W01ULLrvERUL75AkxcJ7KUmxUZNYTQ4KPldOVOy8DuqPk3I8fFadqNh5HdSfYuHz70TFzuugNsTO66A2xE7moP526oaHz+kTFTuZg/q72Mkc1N/FTuag/i52Mgf1d7GTOai/ioXPKBQVO5mD+rvYyRzU38SGBf2Qtrz49e952fk/fyQR3GzHJcb3L6RK9v/138uhH5eYX38iXt/89eDY+PeK/BLgvzWHEjz6wcDHX3yPftzvsYSAfohvh4TZjtP+2+M3zHac9l/Fznac9t/EPrC7LJRVbFz8gVjv3PorH/ft+Xz6R4BjF+DZBUTw70t068tf/+X8nw/ziG5s4muGWSWUrxXhndXj9efJ+fuXvaFt41l3oMb0VUmKG69ua9ktfYi4/L4X0M+DpgGJbi9oQKJbFxqQ6LaIBWRCH35oQDoDKQMSfSmRBiT6MiUNyGggZUDaZCMEUvVkU1eQaXE/QP4Ljupp5QiO6gnkCI7qqeIATlY9KRzBUe3+j+CodvRHcFS79CM40eDsw1Htpo/gaHbIya9/kk2xbsDR7JAP4Wh2yIdwNDvkIzhFs0M+hKPZIR/C0eyQD+FodsiHcKLB2Yej2SEfwlHtkMtad2ptA45qh3wER7VDPoKj2iEfwKmqHfIRHNUO+QiOaod8BEe1Qz6CEw3OPhzVDvkIDrxDrp8dhrEtRRBOWPJ7f3P4j1DaD5ytVx/8XKXCu2kWkPDOmwUkvEsnAdngHT0LSHj3zwISflJgAQk/VbCAjAZSBiT8tMIC0iYbIZCaJxsXlxVkdj9A/guO5mnlEI7mCeQATlw0TxWHcDRPCodwNLv/QziaHf0hnGhw9uFodt6HcDS76UM4qh1ye//xKvjvqKcVjmqHfARHtUM+gONUO+QjOKod8hEc1Q75CI5qh3wEJxqcfTiqHfIRHNUO+QiOZofs0zo++LIxPjjNDvkQjmaHfATHa3bIh3A0O+RDOJod8iEczQ75EE40OPtwNDvkQziaHfIhHM0OOTj/riSEjfEB/hChR+FodshHcOAPPnoUjmaHfAhHs0M+hKPZIR/CiQZnH45mh3wIR7NDPoRjDvkvcNAdcmrLephwavEnnH9JQPexxxIiutvskIDuCTskoDu31NbtGa83d3FDArq/6pAQ+SXQH1oe4c8H7JCA3vc7JNAfgh3hT6M7lgB/DlyHBPTufHggfIQ/+6xDAnp37pCA3p1zWNr65iFtfRfgu/OxBPjufCwBvjuXL5tXvd+QAN+d67oB5fXfLW1IgO/OzX2eSO2/ZJz9pwT4s5dya3EtZWkb3wX4E5I6JMB352MJ6N25uOVTiqsbX2f4M4E6JKB35+KDX0vxMfyQ8Ofr2/K25i18+amYth/Yq48v8Wfq4sar/+Pf+/1yl/xXXMdS/4GJ7hN+CzO+W3IrywHMFPz7rVNcvl9dBmGiO5ZfwqzLmh66uPyD5r/0otub8nqXL73xQG9eb56cP7dD+EcsuhGSFAt/GI+oWHRzJSoW3YaJisU3bIJioyax8CZQUiy8SZMUC2+iJMVqclDwh7tIioU/rEVUrCYHBX+YyrjYr9XTt9h5HdSG2KhJ7LwOakPsvA5qQ+y8DmpD7GQO6rVE98+ry9dq8FvsZA7qr2LhD8cQFTuZg/q72Mkc1N/FTuag/i42ahI7mYP6u9jJHNTfxU7moP4uVpODgj84QFBsgj8IQFSsIgeV4IP6RcXG28Vm9/6ZTSjfG8G2xbq6rL+ifL3k588q/iUh8UvI/BIKv4TKL6HRS3ggP1xcguOX4PklBH4J/N3Z8Xdnx9+dHX93dvzd2fF3Z8/fnT1/d/b83dnzd+cHMnXFJfB3Z8/fnT1/d/b83dnzd+fA350Df3cO/N058HfnB/I8xSXwd+fA350Df3cO/N058HfnyN+dI393jvzdOfJ35wdyJsUl8HfnyN+dI393jvzdOfJ358TfnRN/d0783Tnxd+cHcibFJfB358TfnRN/d0783Tnxd+fM350zf3fO/N0583fnB3ImxSXwd+fM350zf3fO/N0583fnwt+dC393LvzdufB35weiAsUl8Hfnwt+dC393LvzdufB358rfnSt/d6783bnyd+cHYujEJfB35wrfnVtZzyPwS64bEuC787EE+O58LAG+Ox9KaOjd2bvP0b3eJbchAb07d0hA784dEtC7s3d5PZbOe7clAb07d0hA784dEtC7s/f+S0LZeqiid+cOCejduUMCend+KViTlHwIf0rIC3x3PpYA352PJcB355LWgzJ9dcuGBPjuXH39SKhhQwJ8d26fQ9V8y3FDAnx3bnU9RS4sZeu7AN+djyXAd+djCejdOSxtPc0yuLL1dUbvzscS4LPCwsthrxJ8+HmM9Z+v93GtxafwJfg/jiP9890PT83M8ElkwdX0BSgcAPrb4TEZPrNMVCy6nxAVGzWJRfcoomLR3YyoWHTfIyoW3iFJioX3UoJi4TPgRMVqclDwuXKiYjU5KPisOlGx8zqoPw5py/D5d6Ji53VQG2LndVAbYud1UH+Khc/pExU7mYP623kqGT77T1TsZA7q72KjJrGTOai/i53MQf1d7GQO6u9iJ3NQfxc7mYP6q1j4LEVRsZocFHw+o6hYTQ4KPvNRVKwmB5XQj7nNi19/SpKd3/h9Xp7twOn4/nFuyf6//ntl9AOnX6ua6+8pX0tDbuPfC/0Y6Q4J8N+aQwkV/l/h8Itf+Z9dFf3g7UMJZbpDl//y+C0P/Bb8QbFRk9j7XUQoq9i4+AOx3rn1B6bu2/P59I+AzC6gsAtAf5hHt7789V/O//kwf+Bn2b+U8JphVgnl609WO3/eWnfG5O9NJaFt41nDD2L6qiTFjVe3teyWPkReA9U/IJ2BlAGJbi9oQKJbFxqQ0UDKgERfuKEBib4oRAMSfVGEBiT60gwNSPiZggSkt8lGCKTqyaauINPifoD8FxzV08oRHNUTyBGcaHD24aieFI7gqHb/R3BUO/ojOKpd+hEc1c77AE5Q7aaP4Gh2yMmvf5JNsW7A0eyQD+FodsiHcKLB2Yej2SEfwtHskA/haHbIh3A0O+RDOJod8hGcqNkhH8JR7ZDLWndqbQOOaod8BEe1Qz6CEw3OPhzVDvkIjmqHfARHtUM+gqPaIR/BUe2QD+Ak1Q75CA68Q66fHYaxLUUQTljye39z+I889A+crVcf/FwlwbtpFpDwzpsFZDSQMiDhHT0LSHj3zwISflJgAQk/VbCAhJ9ASEBm+GmFBaRNNkIgNU82Li4ryOx+gPwXHM3TyiGcaHD24WieKg7haJ4UDuFodv+HcDQ7+kM4ml36EZyi2XkfwtHspg/hqHbI7f3Hq+C/o55WOKod8hGcaHD24ah2yEdwVDvkIziqHfIRHNUO+QiOaod8AKeqdshHcFQ75CM4mh2yT+v44MvG+FA1O+RDONHg7MPR7JAP4Wh2yIdwNDvkQziaHfIhHM0O+QhO0+yQD+FodsiHcDQ75OD8u5IQNsaHptkhH8KJBmcfjmaHfAhHs0M+hKPZIR/C0eyQD+FodsgHcOqi2SEfwtHskA/hmEP+Cxx0h5zash4mnFr8CedfEiK/BHS32SEB3RN2SEB3bqmt2zNeb+7ihgR0f9UhAd0FHUuAP6Xw8NTcCn8+YIcE9L7fIQG9O3dIQO/OHRLQu3OHBPTufHggfIU/+6xDAvyB8McS4A+ED0tb3zykje8C/ElbHRLgu/OxBPjuXL5s3qvcDQnw3bmuG1Be/93ShgT47tzc54nU/kvG2b8kwHfn1uJaytK2vgvw3flYAnx3PpaA3p2LWz6luLr1dUbvzscS4E/uKT74tRQfww8Jf76+LW9r3sKXn4pp+4G9+vgSf6Yubrzaxbze0i75r7iOpf4DE90n/BZmfLfkVpYDmCn491unuHy/ugzCRHcsv4T5+qvR+9WLyz9o/ksvur0pr3f50hsP9Ob15sn5czuEf8RGTWLRLZOoWHRzJSoW3YaJisU3bIJi8a2dnFj4w2lExcKbNEmx8CZKUqwmBwV/uIuoWE0OCv7wFVGx8zqor9XTt9h5HdSG2Hkd1J9i4Q8vERU7r4PaEDuvg9oQO5mDei3R/fPq8rUa/BYbNYmdzEH9XexkDurvYidzUH8XO5mD+rvYyRzUX8XCH6ggKnYyB/V3sZM5qL+L1eSg4A8OEBWryUHBB/uLitXkoOCD90XFanJQ8MH4omI1OSj44HpRsZoc1APZ6dm9f/QYyve23G2x/5EE8X7z10t+/sjtXxIyv4TCL6HyS2j0Eh5I3haX4PgleH4JgV9C5JfA350rf3eu/N258nfnyt+dG393bvzdufF358bfnR9IoxWXwN+dG393bvzdufF350bfndtC353bQt+d20LfndtC353bQt+d20LfndtC353bQt+d20LfndvC350df3d2/N3Z8Xdnx9+dH8jYFJfA350df3d2/N3Z8Xdnx9+dPX939vzd2fN3Z8/fnR/I2BSXwN+dPX939vzd2fN3Z8/fnQN/dw783Tnwd+fA350fCH4Ul8DfnQN/dw783Tnwd+fA350jf3eO/N058nfnyN+dHwgVFJfA350jf3eO/N058nfnyN+dE393TvzdOfF358TfnR8IrBOXwN+dE393TvDduZX1dBi/5LohAb47H0uA786HEjJ8dz6WgN6dvfscpO5dchsS0LtzhwT07twhAb07e5fXQ0K9d1sS0LtzhwT07twhAb07e++/JJSthyp6d+6QgN6djyUU9O78UrAmKfkQtiTAd+djCfDd+VgCfHcuaT222Fe3bEiA787V14+EujG1wWeF+fY54tK//NCGBPju3Op6pmdYNh+q8N35WAJ8dz6WgN6dw9LWs4WDKxtfZ/issA4J6N05vBz2KsEH/0PCn6/3ca3Fp/Al+D8Oh/7z3Q/PMG7wSWTB1fQFKBwA+ttRXg0+s0xUbNQkFt15iIpF9yiiYtHdjKhYdN8jKhbeIQmKhU92ExUL77okxWpyUPC5cqJioyaxmhwUfKrduNg/jsxs8Pl3omLndVAbYud1UP9VrF/g0/dExc7roDbETuag/nKeykvsZA7q72KjJrGTOai/i53MQf1d7GQO6u9iJ3NQfxc7mYP6q1j4hERRsZM5qL+L1eSg4PMZRcVGTWI1OSj4dEhRsZocFHzipKhYTQ4KPsVSVKwmBwWfjCkpNqIfTZ19Xn8tnX37YwvKSwL6gdMdEtCPkT6UEP779uAR8/L+vX6s9aOhlPdlYeyyOHZZGrssj11Wxi6rY5e1ocu2G9nxZW7ssrG7xI/dJX7sLvFjd4kfu0v82F3ix+4SP3aXhLG7JIzdJWHsLgljd0kYu0vC2F0Sxu6SMHaXhLG7JIzdJXHsLoljd0kcu0vi2F0Sx+6SOHaXxLG7JI7dJXHsLoljd0kau0vS2F2Sxu6SNHaXpLG7JI3dJWnsLkljd0kau0vS2F2Sx+6SPHaX5LG7JI/dJXnsLsljd0keu0vy2F2Sx+6SPHaXlLG7pIzdJWXsLiljd0kZu0vK2F1Sxu6SMnaXlLG7pIzdJXXsLqljd0kdu0vq2F1Sx+6SOnaX1LG7pI7dJXXsLqljd0kbu0va2F3Sxu6SNnaXtLG7pI3dJW3sLmljd0kbu0va2F3ilmXwOjd43eDC2jK4srYMLq0tg2try+Di2jK4urYMLq8tg/eLG7xf3OD9MroQO7oSO7oUO7oWO7oYO7oaO7ocO7ge6wYXZN3giqwbXJJ1g2uybnBR1g2uyrrBZVk3uC7rBhdm3eDKrBtcmnWDa7MujP6hZ/B+GVyedYPrs25wgdYNrtC6wSVaN7hG6wYXad3gKq0bXKZ1cfQvg4P3y+BKrRtcqnWDa7VucLHWDa7WusHlWje4XusGF2zd4IqtG1yydYNrtm5w0dYNrtq6wWVbN7hu6wYXbt3gyq0bXLp1g2u3bnDx1uXR3x4M3i+D67ducAHXDa7gusElXDe4husGF3Hd4CquG1zGdYPruK6M/lhl8H4ZXMp1g2u5bnAx1w2u5rrB5Vw3uJ7rBhd03eCKrhtc0nV19NdNg/fL4KquG1zWdYPrum5wYdcNruy6waVdN7i26wYXd93g6q5roz+HG/093OAP4gbXd/3g+q4fXN/1g+u7fnB91w+u7/rB9V0/uL7rB9d3vRv9AeXg/TK4vusH13f94PquH1zf9YPru35wfdcPru/60d/bjv7gdvgXt4P3y+hvbkd/dDv6q9vRn92O/u529Ie3g+u7fnB91w+u7/ow+hPtwftlcH3XD67v+sH1XT+4vusH13f94PquH1zf9YPru35wfdfH0d/0D94vg+u7fnB91w+u7/rB9V0/uL7rB9d3/eD6rh9c3/WD67t+cH3X96zv1q3r8uB1ZfC6OnhdG7uuZ3138zo3eJ0fvC4MXhcHrxu8X/Lg/ZIH75c8eL/kwfulDN4vZfB+KYP3Sxm8X8rg/VIG75cyeL+UwfulDN4vZfB+qYP3Sx28X+rg/VIH75c6eL/UwfulDt4vdfB+qYP3Sx28X9rg/dIG75c2eL+0wfulDd4vbfB+aYP3Sxu8X9rg/dLG7pewLIPXucHr/OB1YfC6OHhdGrwuD15XBq+rg9cN3i9u8H7pWN9t5fu6jazc/D5aLH/lPwS3foS//iPC9R8RL/+IjjW0nx/xvs4NXucHrwuD18XB69LgdXnwujJ4XR28ro1dFwfvlzh4v8TB+yUO3i9x8H6Jg/dLHLxf4uD9Egfvlzh4v2yvob2WZt6nHr9c/+eI0bqs17nB6/zgdWHwujh4XRq8Lg9eVwavq4PXtbHr8uD9kgfvlzx4v+TB+yUP3i958H7Jg/dLHrxf8uD9kgfvlzJ4v5TB+6UM3i9l8H4pg/dLGbxfyuD9UgbvlzJ4v5TB+6UO3i918H6pg/dLHbxf6uD9Ugfvlzp4v9TB+6UO3i918H5pg/dLG7xf2uD90gbvlzZ4v7TB+6UN3i9t8H5pg/dLG7tf4rIMXucGr/OD14XB6+LgdWnwujx4XRm8rg5eN3i/uMH7xQ3eL27wfnGD94sbvF/c4P3iBu8XN3i/uMH7xQ3eL37wfvGD94sfvF/84P3iB+8XP3i/+MH7xQ/eL37wfvGD90sYvF/C4P0SBu+XMHi/hMH7JQzeL2HwfgmD90sYvF/C4P0SB++XOHi/xMH7JQ7eL3HwfomD90scvF/i4P0SB++XOHi/DK7vxsH13Ti4vhsH13fj4PpuHFzfjYPru3FwfTcOru/GwfXdOLi+GwfXd+Pg+m4cXN+Ng+u7cXB9Nw6u78bB9d04uL4bB9d34+D6bhxc342D67txcH03Dq7vxsH13Ti4vhsH13fj4PpuHFzfjYPru3FwfTcOru/GwfXdOLi+GwfXd+Pg+m4cXN+Ng+u7cXB9Nw6u78bB9d04uL4bB9d34+D6bhxc342D67txcH03Dq7vxsH13TS4vpsG13fT4PpuGlzfTYPru2lwfTcNru+mwfXdNLi+mwbXd9Pg+m4aXN9Ng+u7aXB9Nw2u76bB9d00uL6bBtd30+D6bhpc302D67tpcH03Da7vpsH13TS4vpsG13fT4PpuGlzfTYPru2lwfTcNru+mwfXdNLi+mwbXd9Pg+m4aXN9Ng+u7aXB9Nw2u76bB9d00uL6bBtd30+D6btpZ3605r9d9/Z7967o4eF0avC4PXlcGr6uD17Wx63bWd7+vq37rOjd4nR+8bvt+aWG9rsVNfXHwujR4XR68rgxeVweva2PX7azvthzX674OSf26zg1eFwevS4PXbfIMtb6vC9+ZCV/XtbHrttc/O65zg9f5weu2uSzL+0DmsLiwdV0bu257na/jOnd4nd/St73uFl5fiPd1wW/1se11t47r8vZ1ZTm4rgxet/3vF9Lnuty2rmtj122vu3Vc5wav84PXhcHrtu+XuLx9T4ib/w7b624d1+Wd6/znuq37envdreO6OnhdG7oub6+7dVznBq/zh9eFsHVdGLwuDl63fb+kz/MlL3Xrujx4XRm8bvt+Sev21Nd1P75Hf25lfa3d/fPa9PXSEtePaJd/xPZqnuxHuOs/wl//EeH6j4jXf0S6/iPy9R9Rrv+I67/d7vpvt7/+2+2v/3b767/d/vpvt7/+2+2v/3b767/d/vpvt7/+2+2v/3aH67/d4fpvd7j+2x2u/3aH898Lt7xXJNzXoJ/D+hHl8o+I5+8o59+gnG9bH+Gu/wh//UeE6z8iXv8Rv+0X7+vy4HVl8Lo6eN32MziHul73H9z+itD5z1cmftbpvWvvT9n+g4L4p7hbPsXf8inhlk+Jt3xKuuVTssCnpLZ+Simbn1Ju+ZR6y6e0Oz4lL7d8irvlU/wtnyLw3fc+rH0tus1Pibd8SrrlU/Itn1Ju+ZR6y6e0Oz6l/Pa7/77ODV7nB68Lg9fFwevS4HV58LoyeF0dvK6NXVcH75c6eL/UwfulDt4vdfB+qYP3Sx28X+rg/VIH75c6eL+0wftl5w/K1a1/0Kqx/v3pd/jriLzz12fhDwl3fEi840PSHR+S7/iQcseH1F9+yPu6NnRd2flb/PF1bvA6P3hdGPotU1ni4HVp8Lo8eF0ZvK4OXjf2G7bilsHr3OB1fvC6wfvFDd4vbvB+cYP3ixu8X9zg/eIG7xc/eL/4wfvFD94vfvB+8YP3ix+8X/zg/eIH7xc/eL/4wfslDN4vYfB+CYP3Sxi8X8Lg/RIG75cweL+EwfslDN4vYfB+iYP3Sxy8X+Lg/RIH75c4eL/EwfslDt4vcfB+iYP3Sxy8X9Lg/ZIG75c0eL+kwfslDd4vafB+SYP3Sxq8X9Lg/ZIG75c8eL/kwfslD94vefB+yYP3Sx68X/Lg/ZIH75fBPT5lcI9PGdzjUwb3+JTBPT6lDN4vZfB+KYP3Sxm8X8rg/VIG75cyeL/UwfulDt4vdfB+qYP3Sx28X+rg/VIH75c6eL/UwfulDt4vbfB+aYP3Sxu8X9rg/dIG75c2eL+0wfulDd4vbfB+aWP3S12Wwevc4HV+8LoweF0cvC4NXpcHryuD19XB6wbvl8H13Tq4vlsH13fr4PpuHVzfrYPru3VwfbcOru/WwfXdOri+WwfXd+vg+m4dXN+tg+u7dXB9tw6u79bB9d06uL5bB9d36+D6bh1c362D67t1cH23Dq7v1sH13Tq4vlsH13fr4PpuHVzfrYPru3VwfbcOru/WwfXdOri+WwfXd+vg+m4dXN+tg+u7dXB9tw6u79bB9d06uL5bB9d36+D6bh1c362D67t1cH23Dq7v1sH13Tq4vlsH13fr4PpuHVzfrYPru3VwfbcOru/WwfXdOri+WwfXd+vg+m4dXN+tg+u7dXB9tw6u79bB9d06uL5bB9d36+D6bh1c362D67t1cH23Dq7v1sH13Tq4vlsH13fr4PpuHVzfrYPru3VwfbcOru/WwfXdOri+WwfXd+vg+m4dXN+tg+u7dXB9tw6u79bB9d06uL7bBtd32+D6bhtc322D67ttcH23Da7vtsH13Ta4vtsG13fb4PpuG1zfbYPru21wfbcNru+2wfXdNri+2wbXd9vg+m4bXN9tg+u7bXB9tw2u77bB9d02uL7bBtd32+D6bhtc322D67ttcH23Da7vtsH13Ta4vtsG13fb4PpuG1zfbYPru21wfbcNru+2wfXdNri+2wbXd9vg+m4bXN9tg+u7bXB9tw2u77bB9d02uL7bBtd32+D6bhtcp22D67QtnQ+WO4ieailf/xHl+o+o139Eu/wjskAMWCjvj4hl6yMEYsDCmtDwtVny6yP89R8Rrv+IeP1HpOs/Il//EQLf7r/npbVcr/+IdvlHlOX6j3DXf4S//iPC9R8Rr/+IdP1H5Os/4vpvd7n+212u/3bX67/d9fpvd73+212v/3bX67/d9fpvd73+212v/3bX67/d9fpvd7v+292u/3a367/d7fpvd7v+292u/3a367/d7fpvd7v+290u/3a7ZVlu+Ax3w2f4Gz5j87txfFkeu2zzHnapvhW5vHU62+vCOnphG7xw+4+bPRe60Qv96IVh9MI4emEavTCPXjh657jRO2f7r5yvV6/ZvLWWrQu3/8zZc6EbvdCPXhhGL4y/vzCW/77DtLwfG9591s398r5qB+jRVW7oKj90Vfj1VSXVnQ+ry/ss1fYdX+fWq8LQVXHoqjR0Vf7tVbUur3/mzRLL8l4D/5HmVz+XpbHL8thlZeyyOnZZG7psu3kdX+bGLvNjl23fx+l94mpt+fuy/9b/0vUT4uWfkE5+wuumf/8V6XVHfh6ZLraNV8f8Zhrrp2m50D4FZbSCyoUFrR9S7/iQdsOHbPc66Q9xd3yIv+NDwh0fEu/4kHTHh+Q7PuSOb7y/4xvv7/jGhzu+8eGOb3y44xsf7vjGh9PfeOfz6v2LO+iiOb27aE51s4uGhFZQvreg+D5XPeefPmPjtesqVM5xu/jCXHxlLr4RFx8X5uIdc/GeufjAXHxkLj4xF8/cYSNzh43MHTYyd9jE3GETc4dNzB024T7nQ1sPI2o7xeM+5zuKx33aRPd+4+jKZvEZ92nTUTzu06ajeNynTUfxuH6+o/jIXDzuc/74D2EZ9znfUTyun+8oHtfPdxQP3GEPiy/AHfa4eOAOe1w8cIc9Lh64wx4XD9xhj4tn7rCFucMW5g5bUDrsWhBK13wXVG/uhLtrJn++1rnyfmfnvoIrnE+f8h13+Z67/MBdfuQuP3GXn7nLv7Ivrh9S7/iQ0z3JL+82419/2zz6hzj8DU9b0Apy9xYk+keI5pmLD8zFR+biE3Pxmbn4wlx8ZS6+8RYfloW5eOIOGxbiDhsW4g4bFuIOGxbiDhsW4g4bFuIOGxbiDhsW5g7rmDusY+6wjrnDOuYOe3qr+qPFM3dYx9xhHXOHdcwd1jF3WI/7nD/8zXHwuM/5juJxnzaHv78MHvdp01E87tOmo3jcp81x8QHXz3cUj+vnO4rHfc4f/qgoBNznfEfxkbl4XD/fUTxwhz0uHrjDHhcP3GGPiwfusIfFR+AOe1w8cIc9Lp65w0bmDns+meLJ4lE67FoQStdcC7q5E/7mZ4sxrDHHMfnPq1P8lF+5y2/U5aeFu3zHXb7nLj9wlx+By3fLp/zwo/w/X93iezG1pa8qcvpITXqkZj1SkTt//UhtYfv7h9z5O8pH7vzH5Wfkzt9RPnLn7ygfufN3lI/c+TvKjxTlp8Vtl4/czTvKR+7QHeUDd93k12PQU1y2ywfuuj3lA3fdjvILcNftKR+46/aUD9x1e8oH7ro95QN33R/l1+3ygbtuT/nAXbenfOSuux5f51LbNg0Fuet2lI/cdY/Lr8hdt6N85K7bUT5y1+0oH7nrdpSP3HW/y2/b5SN33Y7ykbtuR/lXdt31Q+odH3K+g5X1NKwQwtE/xFGESxDIlBEuyN1bkOg+DYFMmQeLD8zFR+biE3Pxmbn4wlx8ZS6+8RYfl4W5eOIOGxfiDhsX4g4bF+IOGxfiDhsX4g4bF+IOGxfiDhsX5g7rmDusY+6wjrnDOuYOK5Ap82DxzB3WMXdYx9xhHXOHdcwd1jN3WM/cYT1zh/XMHdYzd1jP3GE9c4f1zB3WM3dYz9xhA3OHDcwdNjB32MDcYQVylB4snrnDBuYOG5g7bGDusIG5w0bmDhuZO2xk7rCRucMK5Cg9WDxzh43MHTYyd9jI3GEjc4dNzB02MXfYxNxhE3OHFUhkerB45g6bmDtsYu6wibnDJuYOm5k7bGbusJm5w2bmDiuQfPRg8cwdNjN32MzcYTNzh83MHbYwd9jC3GELc4ctzB1WIOXoweKZO2xh7rCFucMW5g5bmDtsZe6wlbnDVuYOW5k7rECi0YPFM3fYytxhK3OHrcwdtjJ32MbcYZkznSJzplNkznSKzJlOkTnTKTJnOkXmTKfInOkUmTOdEnOmU2LOdErMmU6JOdMpLcQdNjFnOiXmTKfEnOmUmDOdEnOmU2LOdErMmU6JOdMpMWc6JeZMp8Sc6ZSYM50Sc6ZTYs50SsyZTok50ykxZzol5kynxJzplJgznRJzplNiznRKzJlOiTnTKTFnOiXmTKfEnOmUmDOdEnOmU2LOdErMmU6JOdMpMWc6JeZMp8Sc6ZSYM50Sc6ZTYs50SsyZTok50ykxZzol5kynxJzplJgznRJzplNiznRKzJlOiTnTKTFnOiXmTKfEnOmUmDOdEnOmU2LOdErMmU6JOdMpMWc6JeZMp8Sc6ZSYM50Sc6ZTYs50SsyZTok50ykxZzol5kynxJzplJgznRJzplNiznRKzJlOiTnTKTFnOiXmTKfEnOmUmDOdEnOmU2LOdErMmU6JOdMpMWc6JeZMp8Sc6ZSYM50Sc6ZTYs50SsyZTok50ykxZzol5kynxJzplJgznRJzplNiznRKzJlOmTnTKTNnOmXmTKfMnOmUF+IOm5kznTJzplNmznTKzJlOmTnTKTNnOmXmTKfMnOmUmTOdMnOmU2bOdMrMmU6ZOdMpM2c6ZeZMp8yc6ZSZM50yc6ZTZs50ysyZTpk50ykzZzpl5kynzJzplJkznTJzplNmznTKzJlOmTnTKTNnOmXmTKfMnOmUmTOdMnOmU2bOdMrMmU6ZOdMpM2c6ZeZMp8yc6ZSZM50yc6ZTZs50ysyZTpk50ykzZzpl5kynzJzplJkznTJzplNmznTKzJlOmTnTKTNnOmXmTKfMnOmUmTOdMnOmU2bOdMrMmU6ZOdMpM2c6ZeZMp8yc6ZSZM50yc6ZTZs50ysyZTpk50ykzZzpl5kynzJzplJkznTJzplNmznTKzJlOmTnTKTNnOmXmTKfMnOmUmTOdMnOmU2bOdMrMmU6ZOdMpM2c6ZeZMp8yc6ZSZM50yc6ZTZs50ysyZTpk50ykzZzpl5kynwpzpVJgznQpzplNhznQqC3GHLcyZToU506kwZzoV5kynwpzpVJgznQpzplNhznQqzJlOhTnTqTBnOhXmTKfCnOlUmDOdCnOmU2HOdCrMmU6FOdOpMGc6FeZMp8Kc6VSYM50Kc6ZTYc50KsyZToU506kwZzoV5kynwpzpVJgznQpzplNhznQqzJlOhTnTqTBnOhXmTKfCnOlUmDOdCnOmU2HOdCrMmU6FOdOpMGc6FeZMp8Kc6VSYM50Kc6ZTYc50KsyZToU506kwZzoV5kynwpzpVJgznQpzplNhznQqzJlOhTnTqTBnOhXmTKfCnOlUmDOdCnOmU2HOdCrMmU6FOdOpMGc6FeZMp8Kc6VSYM50Kc6ZTYc50KsyZToU506kwZzoV5kynwpzpVJgznQpzplNhznQqzJlOhTnTqTBnOhXmTKfCnOlUmDOdCnOmU2HOdCrMmU6FOdOpMGc6FeZMp8Kc6VSYM50Kc6ZTZc50qsyZTpU506kyZzrVhbjDVuZMp8qc6VSZM50qc6ZTZc50qsyZTpU506kyZzpV5kynypzpVJkznSpzplNlznSqzJlOlTnTqTJnOlXmTKfKnOlUmTOdKnOmU2XOdKrMmU6VOdOpMmc6VeZMp8qc6VSZM50qc6ZTZc50qsyZTpU506kyZzpV5kynypzpVJkznSpzplNlznSqzJlOlTnTqTJnOlXmTKfKnOlUmTOdKnOmU2XOdKrMmU6VOdOpMmc6VeZMp8qc6VSZM50qc6ZTZc50qsyZTpU506kyZzpV5kynypzpVJkznSpzplNlznSqzJlOlTnTqTJnOlXmTKfKnOlUmTOdKnOmU2XOdKrMmU6VOdOpMmc6VeZMp8qc6VSZM50qc6ZTZc50qsyZTpU506kyZzpV5kynypzpVJkznSpzplNlznSqzJlOlTnTqTJnOlXmTKfKnOlUmTOdKnOmU2XOdKrMmU6VOdOpMWc6NeZMp8ac6dSYM53aQtxhG3OmU2POdGrMmU6NOdOpMWc6NeZMp8ac6dSYM50ac6ZTY850asyZTo0506kxZzo15kynxpzp1JgznRpzplNjznRqzJlOjTnTqTFnOjXmTKfGnOnUmDOdGnOmU2POdGrMmU6NOdOpMWc6NeZMp8ac6dSYM50ac6ZTY850asyZTo0506kxZzo15kynxpzp1JgznRpzplNjznRqzJlOjTnTqTFnOjXmTKfGnOnUmDOdGnOmU2POdGrMmU6NOdOpMWc6NeZMp8ac6dSYM50ac6ZTY850asyZTo0506kxZzo15kynxpzp1JgznRpzplNjznRqzJlOjTnTqTFnOjXmTKfGnOnUmDOdGnOmU2POdGrMmU6NOdOpMWc6NeZMp8ac6dSYM50ac6ZTY850asyZTo0506kxZzo15kynxpzp1JgznRpzplNjznRqzJlOjTnTqTFnOjXmTKfGnOnkFuZQp1f1xD32VT1xk31VT9xlX9UTt9lX9cR99lU9caN9VU/caV/VE7faV/XUvZY53ulVPXWvZQ54elVP3WuZI55e1VP3WuaQp1f11L2WOebpVT11r2UOenpVT91rmaOeXtVT91rmsKdX9dS9ljnu6VU9da9lDnx6VU/da5kjn17VU/da5tCnV/XUvZY59ulVPXWvZQ5+elVP3WuZo59e1VP3Wubwp1f11L2WOf7pVT11r2UOgHpVT91rmSOgXtVT91rmEKhX9dS9ljkG6lU9da9lDoJ6VU/da5mjoF7VU/da5jCoV/XUvZY5DupVPXWvZQ6EelVP3WuZI6Fe1VP3WuZQqFf11L2WORbqVT11r2UOhnpVT91rmaOhXtVT91rmcKhX9dS9ljke6lU9da9lDoh6VU/da5kjol7VU/da5pCoV/XUvZY5JupVPXWvZQ6KelVP3WuZo6Je1VP3WuawqFf11L2WOS7qVT11r2UOjHpVT91rmSOjXtVT91rm0KhX9dS9ljk26lU9c6911LlRjjo3ylHnRjnq3Ci3MPdaR50b5ahzoxx1bpSjzo1y1LlRjjo3ylHnRjnq3ChHnRvlqHOjHHVulKPOjXLUuVGOOjfKUedGOercKEedG+Woc6McdW6Uo86NctS5UY46N8pR50Y56twoR50b5ahzoxx1bpSjzo1y1LlRjjo3ylHnRjnq3ChHnRvlqHOjHHVulKPOjXLUuVGOOjfKUedGOercKEedG+Woc6McdW6Uo86NctS5UY46N8pR50Y56twoR50b5ahzoxx1bpSjzo1y1LlRjjo3ylHnRjnq3ChHnRvlqHOjHHVulKPOjXLUuVGOOjfKUedGOercKEedG+Woc6McdW6Uo86NctS5UY46N8pR50Y56twoR50b5ahzoxx1bpSjzo1y1LlRjjo3ylHnRjnq3ChHnRvlqHOjHHVulKPOjXLUuVGOOjfKUedGOercKEedG+Woc6McdW6Uo86NctS5UY46N8pR50Z56twoT50b5alzozx1bpRfmHutp86N8tS5UZ46N8pT50Z56twoT50b5alzozx1bpSnzo3y1LlRnjo3ylPnRnnq3ChPnRvlqXOjPHVulKfOjfLUuVGeOjfKA2cXhRb+eW1oe9XjPu87qgfOz4ku//Pa6MpO9bjPnJ7qcZ85PdXjPnN6qo/U1eP6+57qcZ/3MZd39TXsVI/7vO+pHtff91SP6+87qgfOz+mpHrjXdlQP3Gs7qgfutR3VA/fajuqBe21H9dS9Fjg/p6d66l4Lk5+zVgSTifOp6OaeuLuW8udr21pEq2mnek9dfYCtPi/lPQTlpbXPq5Mb+y7enYrzqNZEqfVTfyavv5DXX8nrb9z1352mI14/bk/vqx+3q/fVz9nXP/Vz9upP/eT9N5P330zefzN5/83k/beQ999C3n8LcP91axXZHc5qOb1ntZzq9qxWgHu1uFbgvv47rbK/3inAfuFRLsA+5FEuwP7mUS7AvulRLsB+7EkuFdjnPcoF2D8+ymUaXyrMZRoPK8wlGpdNLuZ3t7mY393mYn53m4v53W0u5nc3uTTzu9tczO9uczG/u83F/O42l2hcNrmY393mYn53m4v53W0u5ne3uZjf3eISFvO721zM725zMb+7zcX87jaXaFw2uZjf3eZifnebi/ndbS7md7e5mN/d5OLM725zMb+7zcX87jYX87vbXKJx2eRifnebi/ndbS7md7e5mN/d5OI1+pfj5M3gNfqXHi4a+9FxamLwGvtRDxeN/aiHi8Z+1MNF4/pLB5egcf2lh4tG/3Kc0xSCRv/Sw0Xj+ksPl2hcNrmo9LsdXFT63Q4uKv1uB5f5/e5H6/wedtUap/Glv3hnX/N7ocTXkr/e+ZvMNM5UnMw03lSczDTuVJxMNDI7ZKZxqOJkpvGo4mSmcam/IdOif9fcUtohM41PFSczjauVJpNUeuAuMio9cBcZlR64i4xKD9xFJiokExb3fnFYgtsho9ED95HR6IH7yGj0wH1kNHrgPjIaPXAXGeRzRR4mo9EDh6W9aw5uKTtkNHrgPjIaPXAfmWhkdsjo9MA9ZHR64B4yOj1wDxmdHjinD5n6g8yfr27x/YeGHysWOX1R1OmXhSkinxlERFGlD3frT3iCS2H7WTfPmUjiZFT68C4y0cjskFHpw7vIqPThXWRU+vAuMip9+DeZvLOuOM/JS9Jk5jl7SZyMTg/c3JuMX+IOGZ0euIeMTg/cQyYamR0yOj1wDxmdHriHjE4P3ENGpwf+IuP8DhmdHriDzDznMYmTUemBfVqnA593Zu15zmQSJ6PSA3eRiUZmh4xKD9xFRqUH7iKj0gN3kVHpgb/JlJ01vXlOaBImE+c5o0mcjEoPHNx7j1V4Udoho9IDd5FR6YG7yEQjs0NGpQfuIqPSA3eRUemBu8io9MDfZILfIaPSA/eQmefcJnEynB74Uz+nU/3UD+wnvX+/c/ahHNyZ3r9L9nE7pToin24krhXY84lrBXZx4lqBfZm4VmCnJa4V2Dv9Tmt6pxD7sp1WGz2wGxLXCuxvxLUCeyFxrdP4pg6tUZHWaXxTh1Zk31TX2cXXvD27IJ9q1VU/sr/J70N/cnDLwb1W4/vFdc/fIJ8oJa0V+ZQoca3I/kZaK7K/kdaK7G+ktUZFWpH9jbRWZH8jrRXZC0lrVeSbkE8xktaKfIqRuFZFvgn5pCFxrYp8E/JpQOJaFfkm5BN7xLUq8k3Ip+qIa1Xkm5BPvhHXqsg3IZ9OI65VkW9CPkFGXKsi34R8you41ln6a2jvzNrQ4rZW5FM1xLXO8hyO7v3i6HbuYeRTDMS1zvIc7tE6y3O4R+ss82uP1lnm1x6ts/TX1x361lp3foeEnKwvrnWW+bVH6yzza4/WaXxTh9aoSOs0vqlDK6dv+tTP6YU+9XP6m0/9nJ5lrR85sTyE9bffIQrsN0LOIBfXCuxDxLUC+xBxrVGRVmAfIq4V2If8TuvxHhzkvG1xrcD+RlwrsBeS1oqcci2udRrf1KF1Gt/UoXUa39ShNXJoTXF7TkPOdO6qn8Tf7NYP7Fnip/744zS77/qBfUhX/cjeooa1/hoOnlXOLe+anfNfKbkxrGoTcn7wBWqR/YW8WmSHIa8W2WPIq42q1CJ7Enm1yA5GXi3yGo28WuRVGnm1qrwUcg7tBWpVeSnkJNoL1KryUsjJtReoVeWlkNNrL1CrykshJ9heoFaVl0JOsb1ArSovhZxke4FaVV4KOc32ArWqvBRyou0FalV5KeS03AvUqvJSyIm5F6hV5aWQU3MvUKvKSyEn516gVpWXQk7PvUCtKi+FnKB7gVpVXgo5RfcCtaq8FHKS7gVqVXkp5DTdC9Sq8lLIiboXqFXlpZBTdS9Qq8pLISfrXqBWlZdCTte9QK0qL4WcsHuBWlVeCjll9wK1qrxUUuWlkDOU5dUipyhfoFaVl8qqvBRyRvYFaqMqtaq8FHJS9gVqVXkp5LTsC9Sq8lLIidkXqFXlpZBTsy9Qq8pLISdnX6BWlZdCTs++QK0qL4WczH2BWlVeCjr1W16tKi8Fnfwtr1aVl4JO/5ZXq8pLQSeAy6tV5aWgU8Dl1aryUtBJ4PJqVXkp6DRwebWqvBR0Iri8WlVeCjptXF6tKi+FnGR+gVpNXiqryj3PqnLPs6rc86wq9zwvUZVaTV4qq8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz7Oq3POsKvc8q8o9z6pyz4uq3POiKve8qMo9L6pyz8sSVanV5KWKqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs+Lqtzzoir3vKjKPS+qcs/LNGnR1b9fXP3Pd/5onaX/9Gid5QlVY36XHMuO1lmeTz1aZ3k6dWidJke4R+ssU16PVs4Z71M/Z8/81A/cB1Pw64vbcuRwkm9vh5PK13un5Ust8Bx2gVrgOewCtcAu5wK1wD7nArXATkdeLXLO7wVqgd3OBWqB/c4FaoHd0QVqoyq1qrwUcs7vBWpVeSnknN8L1GryUhU55/cCtZq8VEXO+b1ArSYvVZeoSq0mL1WRc34vUKvJS1XknN8L1KryUsg5vxeoVeWlkHN+L1Crykshp6P+Su3xb10qcjaqtFbk9MzfaT38nUBFzs4U1zrL06lHa1SkdZYpr0cr54z3qZ+zZ37qB+6Dxbv3i1/PuoN7Lebyz4t//Ibpx70GPIVJa0XOtBTXCuxvxLUC+xtxrcD+RlxrVKQV2N+IawX2N+Jagb2QuFZFvgk5wVJaK3J+pbhWRb4JObtSXKsi34ScWymuVZFvQs6sFNeqyDch51WKa1Xkm5CzKsW1KvJNyDmV4loV+SbkjEpxrYp8E3I+pbhWRb4JOZtSXKsi34ScSymuVZFvQs6kFNeqyDch51GKa1Xkm5CzKMW1KvJNyDmU4loV+aaiyDcVRb6pKPJNyDmq4lqjIq2KfFNR5JuQ83HFtSryTcj5uNJakfNxxbUq8k3I+bjiWhX5JuTcXXGtinwTcuauuFZFvgk5b1dcqyLfhJy1K65VkW9CztkV16rINyFn7IprVeSbkPN1xbUq8k3I2briWvX4poacqyuuVY9vasiZuuJa9fimtkRFWvX4poacpSuuVY9vasg5uuJaFfkm5Axdca2KfBNyfq64VkW+yUVFWhX5JqfINyHnP4trVeSbnCLf5BX5JuRcb3GtinwTcq63uNaoSKsi34Sc6y2uVZFvUpQX3hTlhTdFeeFNUV54U5QX3hTlhTdFeeFNUV54U5QX3hTlhTdFeeFNUV54U5QX3hTlhTdFeeFNUV54U5QX3hTlhTdFeeFNUV54U5QX3hTlhTdFeeFNUV54U5QX3hTlhTdFeeFNUV54U5QX3hTlhTdFeeFNUV54U5QX3hTlhTdFeeFNUV54U5QX3hTlhTdFeeFNUV54U5QX3hTlhTdFeeFtmqzl1yveJfu4o3WWntOjdZZnU435XXIsO1pneTZ1aJ0mk7dH6ywzXY/WWWa6Hq2cM92nfs6e+akfuA/W9G5tudV8cK/5UMJaR21fdYQvtcDT1wVqgeevC9QCu5wL1AL7HHm1yCm6F6gF9joXqAV2OxeoBfY7F6iNqtSq8lLIiboXqFXlpZBTdS9Qq8hL+QU5WfcCtYq81EutIi/1UqvIS73URlVqFXmpl1pFXuqlVpGXeqlV5KVealV5KeS03QvUqvJSyIm7F6hV5aWQU3cvUKvKSyEn716gVpWXQk7fvUCtKi+FnMB7gVpVXgo5hfcCtaq8FHIS7wVqVXkp5DTeC9Sq8lLIibwXqFXlpZBTeS9Qq8pLISfzXqBWlZdCTue9QK0qL4Wc0HuBWlVeCjml9wK1qrwUclLvBWpVeSnktN4L1KryUsiJvReoVeWlkFN7L1CrykshJ/deoFaVl0JO771ArSovhZzge4FaVV4KOcX3ArWqvBRyku8FalV5KeQ03wvUqvJSyIm+F6hV5aWQU30vUKvKSyEn+16gVpWXQk73vUCtKi+FnPB7gVpVXgo55fcCtaq8VFHlpYoqL4WcWH2BWlVeqqjyUkWVl0JOJL9ArSovhZxKfoFaVV4KOZn8ArWqvBRykvkFalV5KU255y+1qryUptzzl1pVXkpT7vlLrSovpSn3/KVWlZfSlHv+UqvKS2nKPX+pVeWlNOWev9Rq8lJOVe65U5V77lTlnjtVueduiarUavJSTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+5U5Z47VbnnTlXuuVOVe+6mSYuu/v3i6n++80frLP2nR+ssT6ga87vkWDa1+mmyhHu0zvJ06tE6y5zXo3WWKa9Ha6TU+qmfs2d+6sftg2Xx5Z8Xl+Xbswzfa7hTmLxW3BlMXiuuvxHXCpzvK68V19/Ia8X1N/Jacf2NvNaoSCuuF5LXqsg3ASf6ymtV5JuA03zFtQJn+cprVeSbgHN85bUq8k3AGb7yWhX5JuD8XnmtinwTcHavvFZFvgk4t1deqyLfBJzZK69VkW8CzuuV16rINwHnuf5Oa2jvP0qGFne0ztJfO7QC533+Tmt073s4up17GDjtU17rLM/hHq2zPId7tM4yv/ZonWV+7dE6S3+N+f3iWMOO1ln6a4dW4HxPea2zzK89WqfxTR1ap/FNHVqjIq3T+KYOrdP4pg6t0/imDq2KfBNwmqe4VuAsT3mtnL7pUz+nF/rUD+xvXHy/uPznu23WH8nrB/Yhzre1/rb8++l1dOA8THmtwD5EXCuwDxHXCuxDpLUC52DKawX2IeJagT2LuFZkfyOtNSrSqsg3AWdfymtV5JuAcy/ltSryTcCZl/JaFfkm4LxLea2KfBNw1qW8VkW+CTjnUl6rIt8EnHEpr1WRbwLOt5TXqsg3NUW+qSnyTS0q0jpLf+3YF9Fm6a/HWgNwjufvtB7/zjoA53jKa53lOdyjdZbncI/WWebXHq2zzK89Wmfpr8e/eQvI+aDiWmeZXzu0IueDimudxjd1aJ3GN3VoncY3dWiNirRO45s6tE7jmzq0KvJNyPmg4loV+SbkfNC/aP3Uz+mFPvUD+xsf/bt+H8NO/cCepav+CFz/esRV8aUIfNeBfYi4VmAfIq4V2IeIawX2IeJagX2ItFbkvE1xrcCeRVwrsr+R1orshaS1RkVaFfmmoMg3BUW+CTlHVVyrIt8UFfmmqMg3IefjimtV5JuQ83HFtSryTcg5qr/S2vG7TeQcVWmtyHmbv7uHj38Hhpy3Ka51mudwh9ZpnsMdWqeZXzu0TjO/dmhVNL8i521Ka0XO2xTXqmh+Rc7mFNeqaH5FzvwU18rpmz71c3qhT/2c/uZTP6dn+dQP7EPCahlL8O3gu+79u2S/s8c4IOdtimsF9iHiWoF9iLhWYB8irjUq0grsQ36nNb09ly87ngs5b1NcK7C/EdcK7IXEtU7jm461Iudtimudxjd1aJ3GN3VoJfFNIW/PacgZml31k/ib3fqRPUtb1vqb26kf2Yf01I/sLYp71//6K9e/n16TRM6klNaKnEkprhXZW0hrRfYW0lqRvYW01qhIK7JnkdaK7G+ktSJ7IWmtinxT0+Ob4qLHN0XkDFlxrXp8U0TOkBXXGhVp1eObInKGrLhWPb4pImfIimtV5JuQs0Z/pfV4X1NEzhoV1zrNc/hwn0REzqQU1zrNc7hD6zTP4WOtyJmU4lqnmV87tCqaX5FzMcW1RkVaFc2vyBma4loVza/IGZriWhXNr8gZmuJaFa37I2doimtV5JuQMzTFtXL6pk/9nF7oUz+wv4llzemP37/R/lE/sGfpqh/Yh8S07gWOrZ7/riNnUoprBfYh4lqBfYi4VmAfIq41KtIK7EPEtQJ7FnGtyP5GWiuyF5LWqsg3JUW+KSnyTcgZsuJaFfkm5AxZca2KfBNyhqy4VkW+CTlDVlyrIt+EnCErrnWW/trxu03krFFxrdM8h49/B4aciymudZrn8LFW5AxNca3TzK8dWqeZXzu0KppfkTM0xbUqml+RMzTFtSqaX5EzNMW1KppfkTM0/6L1Uz+nF/rUz+lvPvVzepZP/RG3/hTf71xSOjpT5DjLOyJnXYprBfYh4lqBfYi4VmAfIq4V2IdIa0XO2/yd1sPM54ictymuFdjf/EXrp35gf9NVf8StPy/vKkp2VeAZAuxvxLUC+xtxrcD+RlwrsL8R1wrsb4S1JuRczN9pPez5CTkXU1wrsL8R1wrshcS1RkVap/FNHVqn8U0dWjl906d+Ti/0qR/Z36R133Zuy8G9ltd7Lae6fa85ZH8jrRXZ3/xKa1zWdw4H77xfxYcLshd6kguyb3qSSzQum1yQ/diTXJC925NckH3ek1yQ/eOTXKbxpbJckLN/H+Vifnebi/ndbS7md7e5ROOyycX87jYX87vbXMzvbnMxv7vNxfzuJhfkzOZHuZjf3eZifnebi/ndbS7RuGxyMb+7zcX87jYX87vbXMzvbnMxv7vJBTkb/FEu5ne3uZjf3eZifnebSzQum1zM725zMb+7zcX87jYX87vbXMzvbnJBznR/lIv53W0u5ne3uZjf3eYSjcsmF/O721zM725zMb+7zcX87jYX87ubXJCz+B/lYn53m4v53W0u5ne3uUTjssnF/O42F/O721zM725zMb+7zcX87iYX5DNPHuVifnebi/ndbS7md7e5ROOyycX87jYX87vbXMzvbnMxv7vNxfzuJhfks2oe5WJ+d5uL+d1tLuZ3t7lE47LJxfzuNhfzu9tczO9uczG/u83F/O4mF+QzkR7lYn53m4v53W0u5ne3uUTjssnF/O42F/O721w0+pfQ3ofrhrbNJUOfefQkF439KLr8z2ujKztcNPajHi4a+1EPF439qIeLxvWXHi4a1196uGj0LzG/z/mJNWxzmedMI2EuGtdferhoXH/p4aLS73ZwicZlk4tKv9vBRaXf7eCi0u92cFHpdzu4mN/d5KLy/KMeLuZ3t7nM73c/Wuf3sB+tcRatv3hnl4v/58Wv//yqeSlfZKZxpuJkpvGm4mSmcafiZKbxp+JkpnGovyFTwvvFr/9s22TmObNInMw0LvVXZNyykqk/v01/vjq19zun9kXRLV8Up/G0j1Kcxi0/SjEaRQGKKj27OEWV/l6cospZQJyiyrlBnKLOGUOY4jxnSj1K0WYXCYo2u0hQtNlFgmI0igIUbXaRoGiziwRFm10kKNrsIkHRZhcBivOcD/YoRZtdJChGo3hEcRWYvl/7g6L5RQmK1qMlvtHWowUoznOm0aMUrUdLULT1RQmKtr6486u3ec5XEidjvm6PjMq1vbqsvyGtcY+MyvW6LjIq/X0XGZWeva5N+/WfbZvMPGctiZNR6a1rWXtTC/7fT7vCec5mepSiSm8tTjEaRQGKKj27OEWd/l6aos5ZQJqizrlBmqLOGUOY4jxnYT1K0WYXCYo2u0hQtNlFgmI0igIUbXaRoGiziwRFm10kKNrsIkHRZhcBivOca/YoRZtdJCja7CJB0fziIcXj3x3Pc77WoxStR5//Rpd5zu56lKL1aAmK1qMlKNr6ogTFaBR/UPyQMQ+4R8Z83R4ZlWt7bX1n16rbIaNyva6LjEp/30NmnvPqfvHOfgntXfMSlx0yGn14HxmN3tovzq1kSvz3065wnhPuHqUYjaIARY0+XJ6iRs8uT1Gjv5enqHEWkKeocW4QpzjPGYGPUtQ5j0hTtNlFgqLNLhIUo1EUoGiziwRFm10kKNrsIkHRZhcJija7CFBUeXakPEWbXSQo2uwiQdFmFwmK0SgKULTZRYKizS4SFG12kaBos4sERZtdBCiqPGdSnqLNLhIUbXaRoGiziwTFaBQFKNrsIkHRZhcJija7SFC02UWCos0uAhRVnjMpT9FmFwmKNrtIULTZRYJiNIoCFG12kaBos4sERZtdJCja7CJB0WYXAYoqz9+Vp2iziwRFm10kKNrsIkExGkUBija7SFA0v3hI8TA3tag8+1WcospzPMW/0SrP8ZSnaD1agqL1aAmKtr4oQdHWF39S/JAxD7hHxnzdDhmVZ2j6pYV3zc7vkdG5XtdDRqe/7yGj0rO7LzJtj0w0MjtkVHprl9/6vPft3w9c4VpGKl+5zyl9UVTprcUpqvTW4hRV+nBxiio9uzRFledMylNUOQuIU1Q5N4hT1DljSFOMRlGAos0uEhRtdpGgaLOLBEWbXSQo2uxynmJVef6uPEWbXSQo2uwiQdFmFwmK0SgKULTZRYKizS4SFG12kaBos4sERZtdBCjqPIdYnKLNLhIUbXaRoGiziwTFaBQFKJpfPKR4uE+t6jxTVpqiznM8f0fxcFdL1XmOpzhF69ESFK1HS1C09UUJira++JPih4x5wD0y5uv2yNja3g4Znedi+pI+NbuDp3Vs+f20Xtr2XKrzXExxiipnAXGKKmcBcYrRKApQVDkLiFNUOQuIU1Q5N/yK4tcK/Pc7/6CocsYQp6hyHpGmqPNcTHGKNrtIULTZRYKizS4SFKNR7Ke491sDnediilO02UWCos0uPyl+yNg8skfGZowdMjrPpOwio3IWCB8y0eWDp7X7cHz95/er4xdHldPABRxVzgMXcIzGUYSjypngdxxDWt4cQ3I7HFVOBRdwVDkX/JKj9yvHln5w3JjFjn+Zp/OEyoeZq5xlnmWu8/TLh5nb/HU/c5vV7mduc939zKMxv525zYv3M7fZ8n7mNofez9zm0PuZ2xx6O/Nic+j9zG0OvZ+5zaH3M7c59H7m0Zjfztzm0PuZ2xx6P3ObQ29nrvMk5SuZH2eP6Tyj+WHm0Zjf/mwx33I/c/Mt9zM333I/c1s/v5+5rZ+fYb5y1Hm68QUczUfLcLS160OO0b0Vupj2ONp6tAzHaBxFONr8dcgxuXXfUHI7+4Z0nnR8AUebk46/17WsHFP9wXHjvV157zLyPpevV4cv6jYpPUHdZqX7qTedZy8/Tt3msCeo29T2BHWb8Z6gHo36A9RtfnyCuk2bT1C32fQJ6jabPkHdZtMHqOs8W/tx6jabPkHdZtMnqNts+gT1aNQfoG6z6RPUbTZ9grrNpk9Qt9n0Ceo2mz5A3dts+gR1m02foG6z6RPUbTZ9gno06g9Qt9n0Ceo2mz5B3WbTJ6jbbPoEdZtNH6AebDZ9grrNpk9Qt9n0Ceo2mz5BPRr1B6jbbPoEdZtNn6Bus+kT1G02fYK6zaYPUI82mz5B3WbTJ6jbbPoEdfPrstSPs2JbNLd+P3PzL8LMD/McWzL3cj9z8y73Mzfncj9zW1O/n3k05ieYfzia55bhaD5ahqOtY8twtJXpQ47Zv+twueaDnhRbfvek5asnpfTF3Oa625lnm+vuZ25z3f3Mba67n7nNdfczj8b8duY2A8oyT2vR6buOH8xtXryfuc2W9zO3OfR+5jaH3s682Bx6P3ObQ+9nbnPoZcyL22Fuc+j9zKMxv525zaFnmH842mwpw9HmxUOOZWlvjiW1g2eAq3E9obX+OMnx61fAxSbGJ6jbzPgA9WpT4xPUbW58grpNjk9Qt9lRmnpaf31Vy7JDPRr1B6jb/PgEdZs2n6Bus+kT1G02fYK6zabC1EutK/X60zkOrdw2m2PR/4Vs5kX/F7L5WPhfqOX11a/Vh+3e0mw+foJ6NOoPULf5+AnqNh8/Qd3m4yeo23z8BHWbj6Wp17hSb5tpZWFZbOZ9grrNsU9Qt9n0Ceo2mz5BPRr1B6jbbPoEdZtNpam79b0X99OvD6wKv/6FbI5F/xeymRf9X8jmY9l/Ib+09b3dUrd7i7P5+AnqNh8/Qd3m4yeo23z8BPVo1B+gbvPxE9RtPham7tx6DozzYYe6zbxPULc59gnqNps+QN3bbPoEdZtNn6Bus+kT1G02lfbr0a3Uw0+/PrQq7KP9C4H/C9nMi/4vZPOx8L+Q9yuP1+fs9Babj5+gbvPxE9RtPn6AerD5+AnqNh8/Qd3m4yeo23wsTT20lXryO9SjUX+Aus2xT1C32fQJ6jabPkHdZtMnqNts+gD1aLOp9N+zyvr3LJ9/+vWhVeFocyz6v5DNvOj/QjYf//wX+pCJRmaHjMo5M8b3i31a3MG3urp3GdV/vXPKXxRVzo3iFFXOgeIUVc514hRVzmnSFJPKuUucosrZ6HcU4zsSvOZlh6LK+UWcosoZQ5xiNIoCFG12kaBos4sERZtdDimu4fft+7U/KNrsIkHRZhcBitlmFwmKNrtIULTZRYKizS5HFJvPb4qh7VCMRlGAos0uEhRtdpGgaLOLBEWbXSQozj+7rFrL/BPGRyvnHPCpn9OBf+oH9r4lvH8HVcr3qYjb91pc1ncOB+/cc19G47LJBdifPsoF2HE+ygXYQz7KBdgVPsoF2Oc9yaUCe8JHuQD7x0e5APvSR7mY393mEo3LJhfzu9tczO9uczG/u83F/O42F/O7m1ya+d1tLuZ3t7mY393mYn53m0s0LptczO9uczG/u83F/O42F/O721zM725xcYv53W0u5ne3uZjf3eZifnebSzQum1zM725zMb+7zcX87jYX87vbXMzvbnJBPuX6Mi6hhX9eG9oeF43+pYeLxn4U3ft38dGVHS4a+1EPF439qIeLxn7UwQX5FNdHuWhcf+nhotG/xPzOO4k17HDR6F96uETjsslF4/pLDxeVfreDi0q/28FFpd/t4DK/3121Ip+0KK51Gl/6i3d2NbwXSlyNX8ntwX2RmcaZipOZxpuKk4lGZofMNP5UnMw0DlWczDQeVZzMNC71V2RWm+peGHbITONTpckgn9H2MBmdHriHjE4P3ENGpwfuIRONzA4ZlR64re/sWgw7ZFR64C4yKj1wFxmVHriLjEoP3EMG+bysh8mo9MBdZDR6YL8sa83Lj99ufJPR6IH7yEQjs0NGowfuI6PRA/eR0eiB+8ho9MB9ZDR6YL+s+vyS6zYZ5HOXHiaj0QP3kdHpgXvI6PTAPWSikdkho9MD95BR6YHd+s7e7a1CIJ8h9DAZlR64i4xKD9xDBvlkoIfJqPTAXWRUeuAuMpwe+FN/JK8f2E/Wpb3rr94f3JnerxYx7uwXRT4fSFwrsOcT1wrs4sS1Avsyaa3I5+2IawX2Tr/Tmt4/ZvNlZ98Y8rk4f9H6qR/Ys3TVH4Hrj2mtP1WB7xWyv5HWiuxvpLUi+xtprcj+Rlorsr8R1op8vsrvtB73fOQzU8S1Ivsbaa3IXkhaa1SkdRrf1KF1Gt/UoZXTN33q5/RCn/o5/c27fo98RkZX/Zw+5FM/p7f41M/pFz71R/L6Ofv6p37OXv2pn7v/euQzBrrqJ++/jrz/OvL+i3xmQlf95P3XkfdfR95/kc+A6KqfvP8in6nQVT95/0U+o6CrfuT+W9ffq9V29EvEv736oxa5W8urRe7tv1Hb1pLb9+8Wv9YxPXKWv7hWZM8grRXZX0hrRfEin4pQ3MWnIhS/sFYEk/D+qQilp38qQum7n4pQeuOnIpQO9qkIpc98KkLpBp+K4J7ZMHnOn4rgntkw+cWfiuCe2TB5vZ+K4J7ZMPm0n4rgntkweayfiuCe2TD5o5+Krnxmr59yaYbm51PcLZ/ib/mUcMunxFs+Jd3yKfmWTym3fEq95VNu+e7nW777+Zbvfr7lu59v+e7nW777+Zbvfr7lu59v+e7nW777+Zbvfrnlu19u+e6XW7775Zbvfrnlu19u+e6XW7775Zbvfrnlu19u+e7XW7779Zbvfr3lu19v+e7XW7779Zbvfr3lu19v+e7XW7779Zbvfrvlu99u+e63W7777Zbv/vmdjGF97etPIsu//339qeNv4ef3G4pXlOEqKmAVRZhfMGz8WuOyE+9Dex+yGlrc4TJNrqgwl2lSRWW5wPymBI3LNImiwlymyRMV5jJNor4wl2hcNrlMk6YvzGWaLH1hLuZ3t7lo9Lsvd/LPa2PMO1w0+t3oP1y2k88izO/x0Lho9Ls9XDT63R4uGv1uD5doXDa5aPS70eU3F7fHRaPf7eGi0e/2cFHpdzu4qPS7x1ySSr/bwUWl3+3gotLvdnBR6Xc7uETjssnF/O42F/O721zM725zMb+7zcX87iaXbH53m4v53W0u5ne3uZjf3eYSjcsmF/O721zM725zMb+7zcX87jYX87ubXIr53W0u5ne3uZjf3eZifnebSzQum1zM725zMb+7zcX87jYX87vbXMzvbnKp5ne3uQD7l5zePw8suS1HXH7xzj6UdVfxi9Hn1UvZeLWL9X1IqUvfp1QscePVacWR6hcNt3wxj8b8dubAvmta5sCeblrmwH5xWubAXpSSeV7eL87fvuUHc2CfS8o8rMzrNvMG7KGnZQ68Hj0tc+C17mmZ2xx6P/NozG9nbnOosD9v7zpSazvMbQ69n7nNofcztzn0fuY2h97NPC02h97P3ObQ+5nbHHo/c5tD72cejfntzG0OvZ+5zaH3M7c59H7mNofez9zm0NuZO5tD72duc+j9zG0OvZ+5zaH3M4/G/HbmNofez9zm0PuZ2xx6P3ObQ+9nbnPo7cy9zaH3M7c59H7mNofez9zm0PuZR2N+O3ObQ+9nbnPo/cxtDr2fuc2h9zO3OfR25shngk/L3Pz5IfPg/Zt5aOmI+eF+/4R8NvW0zM2f38/c/Pn9zM2f38/c/Lks8+N90An5nPFZmSOfYT4tc/s70f3M7e9E9zO3OfR+5tGYy3rF4/UW5PPop2Vuc+j9zG0OvZ+5zaH3M7c59HbmyebQ+5nbHHo/c5tD72duc+j9zKMxv525zaH3M7c59H7mNofez9zm0PuZ2xx6O/Nsc+j9zG0OvZ+5zaH3M7c59H7m0Zjfztzm0PuZ2xx6P3ObQ+9nbnPo/cxtDr2debE59H7mNofez9zm0PuZ2xx6P/NozG9nbnPo/cxtDr2fuc2h9zO3OfR+5jaH3s68qvTnLq/MvW8HzDt2k1eVjlucYjSKAhRVumJxiip9rjhFlc71VxTz8g4Hy67sUFTpRX9J8XDndFXpLqUpNpV/txCnqPIvEeIUbXaRoGiziwTFaBSP/OLxakSz2UWCos0uEhRtdpGgaLOLBEWbXc5TzIvNLhIUbXaRoGiziwRFm10kKEajKEDRZhcJija7SFC02UWCos0uEhRtdhGg6Gx2kaBos4sERZtdJCja7CJBMRpFAYo2u0hQtNlFgqLNLhIUbXaRoGiziwBFb7OLBEWbXSQo2uwiQdFmFwmK0SgKULTZRYKizS4SFG12kaBos4sERZtdBCgGlX5xce939kuJRxQP9wHmoNIvilOMRlGAokq/KE5RpV8Up6jSL/6K4vH+6BxU+sVfUjzawZaDSr8oTTGqXOsWp6hyrVucos0uEhRtdpGgGI3i+dWIaLOLBEWbXSQo2uwiQdFmFwmKNrsIUEw2u0hQtNlFgqLNLhIUbXaRoBiNogBFm10kKNrsIkHRZhcJija7SFC02UWAos5z3cUp2uwiQdFmFwmKNrtIUIxGUYCizS4SFG12kaBos4sERZtdJCja7CJAUedZ4OIUbXaRoGiziwRFm10kKEajKEDRZhcJija7SFC02UWCos0uEhRtdhGgqPL8aFfL8s+LXQv+iOLxPkCV50fLU4xGUYCiRr8oT1GjX5SnqNEv/o5ix/5oledH/5bi4Q42ledHi1NUeX60PEWNa93yFG12kaBos4sExWgUz69GqDw/Wp6izS4SFG12kaBos4sERZtdzlMsKs+Plqdos4sERZtdJCja7CJBMRpFAYo2u0hQtNlFgqLNLhIUbXaRoGiziwBFledHy1O02UWCos0uEhRtdpGgGI2iAEWbXSQo2uwiQdFmFwmKNrtIULTZRYCiyvOj5Sna7CJB0WYXCYo2u0hQjEZRgKLNLhIUbXaRoGiziwRFm10kKNrsIkBR5fnR7vXnpjfF8r23b3AfYFF5frQ8xWgUBSiq9IviFFX6RXGKKv3iryge770qKs+Plqeo0i9KU1R5frQ8RZVr3eIUbXaRoGizy6HTOZ6jVZ4fLU/RZhcJija7SFC02UWCos0uEhRtdhGgqPL8aHmKNrtIULTZRYKizS4SFKNRFKBos4sERZtdJCja7CJB0WYXCYo2uwhQVHl+tDxFm10kKNrsIkHRZhcJitEoClC02UWCos0uEhRtdpGgaLOLBEWbXQQoqjw/Wp6izS4SFG12kaBos4sExWgUBSja7CJB0WYXCYo2u0hQtNlFgGKdxi/GZX3ncPDOob1/7x7azyo+XKZxgMJcpvF0wlyicdnkMo3vEuYyjZMS5jKNNxLmMo3bEeYyzdqrLJd5TigW5mJ+d5uLRr8bw/uNY8w7XDT63eg/XMoOl2hcNrlo9Ls9XDT63R4uGv1uDxeNfreHi0a/G11+c3HbXOo8p9oKc9Hod3u4qPS7HVxU+t0OLtG4bHJR6Xc7uKj0ux1cVPrdDi4q/W4HF/O7m1zmOQlVmIv53W0u5ne3uZjf3eYSjcsmF/O721zM725zMb+7zcX87jYX87ubXOY5PVOYi/ndbS7md7e5mN/d5hKNyyYX87vbXMzvbnMxv7vNxfzuNhfzu5tcgvndbS7md7e5mN/d5mJ+d5tLNC6bXID9S0zvn/GX2OoBl+Pf/FfkEwPFtQL7DGmtyKfviWsF9gPiWoF7vLhW4L4trhW4F4trBV5PEtcKvEYkrlWRb0I+rexXWo/3P1bkM8V+p/Vwb01FPvlLXOssvqlH6yy+qUfrLL6pR2tUpHUW39SxBoN8upO41ll8U4/WaXxTh9ZpfNOxVuRTh8S1TuObOrRO45s6tE7jmzq0RkVaFfkm5JNlxLUq8k3Ip7SIa1Xkm5BPPBHXqsg3IZ8eIq5VkW9CPolDXKsi34R8qoW4VkW+CfmECHGtinxTVeSbkM/nENeqyDchn6MhrjUq0qrINyGfYSGuVZFvQj5rQlyrIt+EfCaEuFbg/hrKur/lpeRAa8fvEZGz+MW1AvdXca3A/VVcK3B/FdcK3F/FtQL3V2GtDTmDXlwr8LqEuFbgdQlxrXp8U1viJFqP93E05Jz232k9/K10Q85eF9c6i2/q0TqLb+rROotv6tCKnGUurnUW33S8BtOQM8fFtc7im3q0RkVap/FNHVqn8U0dWqfxTR1ap/FNHVqn8U3HWpEzscW1KvJNyNnV4loV+SbkjGlxrYp8E3IWtLhWRb4JObNZXKsi34ScrSyuVZFvQs5AFteqyDchZxWLa1Xkm4Ii34ScKy2uVZFvQs6VltaKnCstrlWRb0LOlRbXqsg3IedKi2tV5JuQc6XFtQL3V+/XPSu+lAOtHb9HRM4fFtcK3F/FtQL3V3GtwP1VXCtwfxXXCtxfxbUC91dxrcDrEuJagdclxLUq8k3I+cO/0tqxjwM5f/h3Wo9/K42cPyyudRbf1KM1KtI6i2/q0TqLb+rROotv6liDQc4fFtc6i2/q0IqcPyyudRrf1KF1Gt/UoXUa39ShNSrSOo1v6tA6jW/q0KrINyHnD4trVeSbkPOHxbUq8k3I+cPiWhX5JuT8YXGtinwTcv6wuFZFvgk5f1hcqyLfhJw/LK5VkW9qinwTcq60uNaoSKsi34ScKy2uVZFvQs6VFteqxjfFBTlXWlyrGt/00qrGN720AvdX59tbq2vLgdbD3yO+tAL3V3GtwP1VXCtwfxXXCtxfpbUi5w+LawXur+JagfuruFbgdQlxrVGRVkW+CTl/+FdaD/dxvLTO4psOfyv90jqLb+rROotv6tCKnD8srnUW39SjdRbf1KN1Ft/UsQaDnD8srnUW39SjdRrf1KF1Gt/UoXUa39ShdRrfdKwVOX9YXOs0vqlD6zS+qUOrIt+EnD8srlWRb0LOHxbXqsg3IecPi2tV5JuQ84fFtSryTcj5w+JaFfkm5Pxhca2KfBNy/rC4VkW+KSryTci50tJakXOlxbUq8k3IudLiWhX5JuRcaXGtinwTcq60uFZFvgk5V1paK3L+8OuPw2+tS20HWjt+j4icPyyuFbi/imsF7q/iWoH7q7hW4P4qrhW4v4prBe6v4lqB1yWktSLnD4trVeSbkPOHf6W1Yx8Hcv7w77Qe/1YaOX9YXOssvqlH6yy+qUfrLL6pR+ssvqlH6yy+qWMNBjl/WFzrLL6pR+s0vqlD6zS+qUNrVKR1Gt/UoXUa39ShdRrf1KF1Gt/UoVWRb0LOHxbXqsg3IecPi2tV5JuQ84fFtSryTcj5w+JaFfkm5Pxhca16fJNDzh8W16rHNznk/GFxrXp8k1uiIq16fJNDzpUW16rHNznkXGlxrYp8E3KutLhWRb4JOVdaXKsi34ScKy2uFbe/5prePzHMreYDrXU9qKT6uKMVt7/Ka8Xtr+JagfOH5bXi9ld5rbj99Zda0/t3ay9hR+8cl7WKcPTa3Yo/DHH7Ng/DaAxPM8Rdn+FhiLvuw8NwGr/7IMNpfPSDDKfx588xBM7P5mE4zTzxIEObU84ztDnlPMNoDE8ztDnlPEObU84ztDnlPEObU84ztDnlNEPgvHoehjannGdoc8p5hjannGcYjeFphjannGdoc8p5hjannGYInMuPwfA4a84B5/3zMLS+/PfXdvyeEjjHnoeh9eXzDK0vn2do64fnGdr64WmG2fzhAcP83hQRa9hhaP7wPENbPzzP0NYPzzOMxvA0Q5tTzjO0OeU8Q5tTzjO0OeU8Q5tTTjMEPseFh6HNKecZ2pxynqHNKdtconHZ5KJynvhFFT4sZdXnvqqI4YuiyolCnKLKmUKcosqpQpyiyrlCmiLwSUdMFFXOFuIUVU4Xv6IY3aovLTsUVc4X4hSjURSgaLOLBEWbXSQo2uwiQdFmFwmKNrscUSxh1Vf9NkXg08aYKNrsIkHRZhcJija7SFCMRlGAos0uEhRtdvkNxbZD0WYXCYo2u0hQnGZ2ie/9ITVu7w/xwOfyyWudZg7o0DqNW+/QOo2n7tAaFWmdxp92aJ3GRXZoncbrdWidxpF1aFXkm4DP5ZPXqsg3AZ/LJ69VkW8CPpdPXqsi3+QU+aZ5zlvs0KrIN81z3uKx1nnOW+zQqsg3zXPeYodWRb5pnvMLO7Qq8k3znAfYoVWRb5rnfL0OrYp80zzn1XVoVeSb5jn/rUOrIt80z3lqHVoV+aZ5zifr0KrIN81z3leHVkW+aZ7zszq0KvJN85xH1aFVkW+a53ynDq2KfNM85yV1aFXkm6Ii3xQV+aZ5zpXq0KrINyVFvikp8k3znL/VoVWRb5rnPKsOrYp80zznQ3VoVeSb5jlvqUOrIt80z/lFHVoV+aZ5zgPq0KrIN81zvk6HVkW+aZ7zajq0KvJN85z/0qFVkW+a5zyVDq2KfNM8Z5l0aFXkm+Y5RaRDqyLfNM+JHB1aFfmmeU636NCqyDfNc1JEh1ZFvmmeUxc6tCryTfOcYNChVZFvmuc0gA6tinzTPMn6HVoV+aZ5Uuo7tCryTfMkvndoVZmF/YszqEN7FxFa3GGoMglbmKHKM3xEGYZ58rUfZKjy/B5hhipP7xFmqPLsHmGG0RieZqjy3B5hhipP7RFmaHPKeYY2p/z9tTG83zfGvMPQ5pQDhv7DcHvNIcyTZ/8gQ5tTzjO0OeU8Q5tTzjOMxvA0Q5tTDhi6998CottjaHPKeYY2p5xnaHPKeYY2p5xmOM/5EQ8ytDnlPEObU84ztDnlPMNoDE8ztDnlPEObU84ztDnlPEObU84ztDnlNMN5zmt5kKHNKecZ2pxynqHNKecZRmN4mqHNKecZ2pxynqHNKecZ2pxynqHNKacZznM+0oMMbU45z9DmlPMMbU45zzAaw9MMbU45z9DmlPMMbU45z9DmlPMMbU45zXCe88geZAjsD8v6c/JcfThi6N/Aq9/ZV4d8Hpa4VmC/Ja4V2BeJawX2L+JagX3G77Re9XzP5f18r2GHIbDPYGGIfH4XDUPg9VAahsDroTQMp/G7DzKMxvA0w2n8+YMMp/H9DzKcZp54kKHNKecZ2pxymiHyeXk0DG1OOc/Q5pTzDG1OOc8wGsPTDG1OOc/Q5pTzDG1OOc/Q5pTzDG1OOc0Q+RxDCIYdGcHI5yPSMLS+fPBdPv79EPK5fzQMrS+fZ2h9+TRD5PMPaRja+uF5huYPT3ts5HMgaRhGY3iaoa0fnmdoc8p5hjannGdoc8p5hjannGUYkc9PpWFoc8p5hjannGdoc8p5htEYnmZoc8o2F5s9trmonCd+UYVbyvsPcG6p/ktf+KKocqIQp6hyppCmiHzaKRFFlXOFOEWVk4U4RZWzhTjFaBT/TtEtbxbOubhDUeV8IU5R5TQiTtFmFwmKNrtIULTZRYAi8gmoRBRtdvkFRe92KNrsIkHRZhcJinEWivH9q8kat381GZFPLBXXOs0c0KF1GrfeoXUaT92hdRrne6wV+eRLca3TuMgOrdN4vQ6t0ziyDq1RkVZFvgn5pENxrYp8E/LJgeJaFfkm5JP4xLUq8k3IJ9uJa1Xkm5BPihPXqsg3IZ+8Jq5VkW9CPslMXKsi34R8Mpi4VkW+KSnyTfOczNahNSrSqsg3zXMyW4dWRb5pnpPZOrQq8k3znHTWoVWRb5rn5LAOrYp80zwncXVoVeSb5jnZqkOrIt80z0lRHVoV+aZ5Tl7q0KrIN81zklGHVkW+aZ6TgTq0KvJN85y006FVkW+a5+SaDq2KfFNV5JuqIt80zwk/HVoV+aYaFWlV5JvmOQmpQ6si3zTPyUIdWhX5Jjsh5eC1x6e/RTshRYBhNIanGVry8HmGllJ8nqGdkHKeoZ2Qcp6hnZBylmGyE1IEGNoJKecZ2pxynqHNKX9/bQzv940x7zCMxvDvDP2HYdlhaHPKeYY2p5xnaHPKeYY2p5xnaHPKaYY6z1wRPS096TxxRZihzSnnGdqccp5hNIanGdqccp6hzSnnGdqccp6hzSnnGdqccpqhzvNVhBnanHKeoc0p5xnanHKeYTSGpxnanHKeoc0p5xnanHKeoc0p5xnanHKa4Tzn7DzI0OaU8wxtTjnP0OaU8wyjMTzN0OaU8wxtTjnP0OaU8wxtTjnP0OaU0wznOdfqQYY2p5xnaHPKeYY2p5xnGI3haYY2p5xnCOwPX4tK64vbcsTQv/fVVb+zrw75PCxprcjnYYlrBfZF4lqB/Yu4VmCf8TutFz3fj3OjEvI5WzQMgX0GDUPg9VAahsDroTQMp/G7DzKcxkc/xxD53DUahtP4/gcZTjNPPMjQ5pTzDKMxPM3Q5pTzDG1OOc/Q5pTzDG1OOc/Q5pTTDJHPOaRhaHPKeYY2p5xnaHPKeYbRGJ5maHPKeYY2p5xnaHPKeYY2p5xnaHPKaYbI54rSMLQ55TxDm1POMzR/+PfXdpwhgXy+Jw1D68t/f23H78ub9eXzDK0vn2doffk8Q1s/PM8wGsPTDM0fHjDM5c2whh2G5g/PM7T1w/MMbf3wPEObU84yzMjnp9IwtDnlPEObU84ztDnlPMNoDE8ztDnlPEObU84ztDnlPEObU7a52OyxyQX5nNPruPyiChfru4qXJPdVxfJFUeVEIU5R5UwhTlHlVCFOMRpFAYoqJwtxiipnC3GKKqeLX1Fcf2r0Aud3KKqcL8QpqpxGpCkin31KRNFmFwmKNrtIULTZRYJiNIp/p5jSh2Leo2iziwRFm10kKNrsIkHRZhcJija7CFBEPg+ViKLNLkcUc1wplrBD0WYXCYo2u0hQjEZRgKLNLhIUbXaRoGiziwTFaWaXw1yFjHyOqbRW5PNGxbVO49Y7tE7jqTu0TuN8O7RGRVqncZEdWqfxeh1ap3FkHVoV+aZ5zg091jrPuaEdWhX5pnnODe3Qqsg3zXO+Z4dWRb5pnvMyO7Qq8k3znD/ZoVWRb5rnPMcOrYp80zznI3ZoVeSb5jlvsEOrIt80z/l9HVoV+aZ5zsPr0KrIN81zvlyHVkW+aZ7z2jq0KvJN85x/1qFVkW+a5zyxDq2KfNM853N1aFXkm+Y576pDqyLfNM/5UR1aFfmmGhVpVeSb5jlnq0OrIt9UFfmmec45O9Y6z3lkHVoV+aZ5zvfq0KrIN81zXlaHVkW+aZ7zpzq0KvJN85zn1KFVj28q85yP1KFVj28q85w31KFVj28qS1SkVY9vKvOch9OhVY9vKvOcL9OhVZFvmuccmA6tinzTPGeqdGhV5JvmOZ+kQ6si3zTPWR8dWhX5pnnOzejQqsg3zXMGRYdWRb5pnvMcOrQq8k3znI3QoVWRb5rnnIEOrYp80zyZ/R1aFfmmefLvO7Qq8k3zZMl3aFXkm+bJZe/Qqsg3zZNx3qFVkW9SlBdeFOWFF0V54UVRXnhRlBdeFOWFF0V54UVRXnhRlBdeFOWFF0V54UVRXnhRlBdeFOWFF0V54UVRXnhRlBdeFOWFF0V54UVRXnhRlBdeFOWFF0V54UVRXnhRlBdeFOWFl3lypX9z2mpc1jcOB68N7X2sfGhxh6HKE2uFGU7jBx5kOI3PeI7hPLndDzKcxhc9yHAav/Ugw2l83IMMozE8zXCa9boHGdqccp6hzSl/f20M7/eNMe8wtDnlgKH/MNxZc5gnz/45hvPk5D/I0OaU8wxtTjnP0OaU8wyjMfw7Q/f+W0B0ewxtTjnP0OaU8wxtTjnP0OaU8wxtTjnNcJ5zKR5kaHPKeYY2p5xnaHPKeYbRGJ5maHPKeYY2p5xnaHPKeYY2p5xnaHPKWYZ1nnNgHmRoc8p5hjannGdoc8p5htEYnmZoc8p5hjannGdoc8p5hjannGdoc8pphvOcu/QgQ5tTzjO0OeU8Q5tTzjOMxvA0Q5tTzjO0OeU8Q5tTzjO0OeU8Q5tTTjNEPg8r1PdWuRxrOGLo3y+uPu5oBfZx4lqjIq3AvkhcK7B/EdcK7DN+p/Wq53su7+d7DTsMgX0GDUNgn8HCEPlcMBqGwOuhNAyn8bsPMpzGRz/IMBrD0wyn8f0PMpxmnniQoc0p5xnanHKeoc0ppxkin8NHw9DmlPMMbU45z9DmlPMMozE8zdDmlPMMbU45z9DmlPMMbU45zRD5HEMIhscZwRX5fEQahtaXD77Lx78fQj73j4ah9eXzDK0vn2do64enGSKfq0jD0PzhaY+NfA4kDUNbPzzPMBrD0wxtTjnP0OaU8wxtTjnP0OaU8wxtTjnNEPn8VBqGNqecZ2hzynmGNqecZxiN4SYXmz22uaicJ35RhVvKuwq3VP+lL3xRVDlRiFNUOVOIU1Q5VUhTRD7vlIiiyslCnKLK2UKcosrp4jcU3fJm4ZyLOxSjURSgqHIaEados4sERZtdJCja7CJB0WYXAYrIZ6DiUfRuh6LNLhIUbXaRoDjN7BLfv5qscedXk8gnloprnWYO6NA6jVvv0DqNp+7QOo3z7dA6jT891NqQT6gU1zqN1+vQOo0j69Cqxze1JSrSqsc3NeQTCcW16vFNDfmEP3GtinwT8ol54loV+SbkE+jEtSryTcgnuolrVeSbkE9IE9eqyDchnzgmrlWRb/KKfJNX5JvmOZmtQ6si3zTPyWwdWhX5pnlOZuvQqsg3zXOCWodWRb5pnhPJOrQq8k3znPDVoVWRb5rnxKwOrYp80zwnUHVoVeSb5jnRqUOrIt80zwlJHVoV+aZ5Thzq0KrIN81zgk+HVkW+aZ4TcTq0KvJN85ww06FVkW9KinzTPCf8dGhV5JuSIt+UoiKtinzTPCcWdWhV5JvmOQHoWKudkHLw2uPT35qdkCLA0JKHzzOMxvA0Q0spPs/QTkg5z9BOSDnP0E5IOc/QTkg5zdBOSBFgaHPKeYY2p/z9tTG83zfGvMPQ5pQDhv7DcGfNwU5IEWBoc8p5hjannGdoc8p5hjannGdoc8oBw8PT0pvOE1eEGdqccp6hzSnnGdqccp5hNIanGdqccp6hzSnnGdqccp6hzSnnGdqccpqhztNVhBnanHKeoc0p5xnanHKeYTSGpxnanHKeoc0p5xnanHKeoc0p5xnanHKSYVrmOb/nQYY2p5xnaHPKeYY2p5xnGI3haYY2p5xnaHPKeYY2p5xnaHPKeYY2p5xmOM95WQ8ytDnlPEObU84ztDnlPMNoDE8zBPaHPr/Lz8EtBwwP99W9tAL7OHGtwH5LWivyeVjiWoH9i7hWYJ8hrhXYD4hrBe7b4lqB1wHFtQKv14lrVeSbkM/D+pXWw9yAl9ZZfNPhXsy0IJ+HJa51Ft/Uo3UW39SjdRbf1KM1KtI6i2/qWINBPg9LXOssvqlH6zS+qUPrNL7pWCvyeVjiWqfxTR1ap/FNHVqn8U0dWqMirYp8E/J5WOJaFfkm5POwxLUq8k3I52GJa1Xkm5DPwxLXqsg3IZ+HJa5VkW9CPg9LXKsi34R8Hpa4VkW+KSvyTcjnnIlrVeSbkM8NE9caFWlV5JuQz8sS16rINyGfPyWuVZFvQj7PSVwrcH91axXZtXagVfQspRcX4F78KBfgvv0oF+Ae/ygXYD/wKBdg7/AoF2Cf8SQX5LNbHuUCvO7zKBfgNaJHuZjf3eYSFXLp2NeDfL7JdVyOf2ePfGbJo1w0+t0eLhr9bg8XjX63gwvyGSCPctHodzvWMZHP6niUi0a/28MlGpdNLir9bgcXlX63g4tKv9vBRaXf7eCi0u8ecnHIZ0k8ysX87jYX87vbXMzvbnOJxmWTi/ndbS7md7e5mN/d5mJ+d5uL+d1NLshnEjzKxfzuNhfzu9tczO9uc4nGZZOL+d1tLuZ3t7mY393mYn53m4v53U0uyGdNPMrF/O42F/O721zM725zicZlk4v53W0u5ne3udzsX0R/xe/uPplBuHpHXb2nrj5QVx+pq0/U1Wfq6gt19ZW6eupeG3F77fG+Nhdxe+3xLggXcXttT/W4vbanetxe21M9bq/tqR631/ZUj9trOybDiNtre6rH7bUd1SfgXttRPXCv7ageuNd2VA/cazuqB+61HdUD99qO6oF7bUf11L02UffaRN1rM3WvzdS9NlP32kzda+9O3xaunrrXZupem6l7babutZm61xbqXluoe22h7rWFutfena4tXD11ry3UvbZQ99pC3WsLda+t1L22UvfaSt1rBTJgl3dB3sckWH3H7xQEklqfrL5QV1+pq2/M1QskiD5ZvaOu3lNXH6irj9TVU/fahttrO34T2HB7bcevixpur+2pHrfXHlfvF9xe21M9bq/tqR631/ZUj9trjydDv+D22p7qcXttT/XAvbajeuBe21E9cK/tqB641x5X74B7bUf1wL22o3rgXttRPXWvFUj0erJ66l7rqHuto+61jrrXOupe66l7rafutZ6613rqXiuQJvRk9dS91lP3Wk/daz11r/XUvTZQ99pA3WsDda8N1L1WILvoyeqpe22g7rWButcG6l57Pj/H+feHvBYonGD1x79T8Ofzcx6tPlBXH6mrT9TVZ+rqC3X1lbr6xlz9+fycR6un7rUJt9ce/ybQJ9xe2/HrovP5OY9Wj9tre6rH7bU91eP22p7qcXttT/W4vbZjMsy4vbanetxe21M9cK/tqB6413ZUD9xrO6oH7rUd1QP32o7qgXttR/XAvbajeupeW6h7baHutYW61xbqXns+P+fR6ql7baHutYW61xbqXluoe22l7rWVutdW6l5bqXttpe61lbrXVupeW6l7baXutZW61zbqXtuoe22j7rWNuteezy56pnq3LOm/72xYWt7XtVg/xbvPZWHssjh2WRq7LP/6Mpfqf98JyChLef+Dfl9Xv65Lg9flwevK4HV18Lo2dt325v+O69zgdX7wurOPod2Xfj4iXv8Rp83zEtfY0iWXg8dRzG+ssYY/HjH/qijDVVQurOjzKfWWT2l3fMr5TcVdn+Ju+RR/y6eEWz4l3vIp6ZZPybd8yi3ffX/Ld9/f8t0Pt3z3wy3f/XDLdz/c8t0/vwnvd4NHevfVnOp2Xw0JriLcxbjs6/rauFM97mJcT/W4i3E91eMuxnVUH3EX43qqx12M66kedzGup3rcxbie6iN19bh/+OqpnrrXAm9U7KmeutcCb1TsqB54o2JP9dS9FnijYk/1pBvT/6medGP6P9WT/rH9X9Wzbtj6p3rSP7b/Uz3pH9v/qZ70j+3/VB+pqwf+YdvxX82QN2x1VA/8w7aO6oF/2NZRPXCvPa4eecNWR/XAvbajeuBe21E9cK/tqB6413ZUT91rkTdsdVRP3WthNmx9KkLpn2tFd2+s2l1L+fO1zpX3OztXvyI2ffqq35HX78nrD+T1R/L6E3n9mbz+Kzvk51PqLZ9yc4T/8a9+7j5GvaMi3Kj9jr9TAB+N3lM9btR+T/WRunrcqP2e6nGj9nuqx43a76keN2q/p3rcY22Oqw/AR6P3VM/cawPw0eg91TP32rAw99oAfDR6T/XMvTYAH43eUz1zrw3AR6N3VA98NHpP9dS9Fvho9J7qqXst8NHoPdVT91rgo9F7qqfutcBHo/dUT91rgY/nPv7FcgA+nrunetJjK/+pnvTYyn+qJz228p/qSY+I/lf1rEdE/1M96RHR/1QPfET04e+QAvIR0R3VR+rqgY+I7qgeuNd2VA/cazuqB+61HdUD99rj6iNwr+2oHrjXdlRP3Wsjda89n3rxaPUovfZTEUr//FR0c0/8ze8dY2j/vNjF5D+vTvGr/kpef+OuPy3k9Tvy+j15/YG8/ghcv1s+9Ycf9f/56hbfK60tfVWR05fWpEhrVqQV2QPUj9YWdr6DyB6gp35kD9BRf0b2AD31I3uAnvqRPUBP/cgeoKf+SFF/WtxO/ch9vad+5F7dUz9w/02+rPXHZad+4P7bVT9w/+2pvwD33676gftvV/3A/berfuD+21U/cP/9UX/dqR+4/3bVD9x/u+pH7r+lrvW3Hf9QkPtvT/3I/bej/orcf3vqR+6/PfUj99+e+pH7b0/9yP33u/62Uz9y/+2pH7n/9tR/Zf/9fEq95VPO97KyntAVQjj6tzhMiAkCmTXSFbl7K5Ld6yGQWfNk9YG6+khdfaKuPlNXX6irr9TVN+Lq47JQV8/ca+PC3Gvjwtxr48Lca+PC3Gvjwtxr48Lca+PC3GvjQt1rHXWvddS91lH3WkfdawUya56snrrXOupe66h7raPutY6613rqXuupe62n7rWeutd66l7rqXutp+61nrrXeupe66l7baDutYG61wbqXhuoe61AVtOT1VP32kDdawN1rw3UvTZQ99pI3Wsjda+N1L02UvdagaymJ6un7rWRutdG6l4bqXttpO61ibrXJupem6h7baLutQKpT09WT91rE3WvTdS9NlH32kTdazN1r83UvTZT99pM3WsF0pWerJ6612bqXpupe22m7rWZutcW6l5bqHttoe61hbrXCiQpPVk9da8t1L22UPfaQt1rC3WvrdS9tlL32krdayt1rxVITXqyeupeW6l7baXutZW611bqXtuoey11blSkzo2K1LlRkTo3KlLnRkXq3KhInRsVqXOjInVuVKLOjUrUuVGJOjcqUedGpYW51ybq3KhEnRuVqHOjEnVuVKLOjUrUuVGJOjcqUedGJercqESdG5Woc6MSdW5Uos6NStS5UYk6NypR50Yl6tyoRJ0blahzoxJ1blSizo1K1LlRiTo3KlHnRiXq3KhEnRuVqHOjEnVuVKLOjUrUuVGJOjcqUedGJercqESdG5Woc6MSdW5Uos6NStS5UYk6NypR50Yl6tyoRJ0blahzoxJ1blSizo1K1LlRiTo3KlHnRiXq3KhEnRuVqHOjEnVuVKLOjUrUuVGJOjcqUedGJercqESdG5Woc6MSdW5Uos6NStS5UYk6NypR50Yl6tyoRJ0blahzoxJ1blSizo1K1LlRiTo3KlHnRiXq3KhEnRuVqHOjEnVuVKLOjUrUuVGJOjcqUedGJercqESdG5Woc6MSdW5Uos6NStS5UYk6NypR50Yl6tyoRJ0blahzoxJ1blSizo1K1LlRiTo3KlPnRmXq3KhMnRuVqXOj8sLcazN1blSmzo3K1LlRmTo3KlPnRmXq3KhMnRuVqXOjMnVuVKbOjcrUuVGZOjcqU+dGZercqEydG5Wpc6MydW5Ups6NytS5UZk6NypT50Zl6tyoTJ0blalzozJ1blSmzo3K1LlRmTo3KlPnRmXq3KhMnRuVqXOjMnVuVKbOjcrUuVGZOjcqU+dGZercqEydG5Wpc6MydW5Ups6NytS5UZk6NypT50Zl6tyoTJ0blalzozJ1blSmzo3K1LlRmTo3KlPnRmXq3KhMnRuVqXOjMnVuVKbOjcrUuVGZOjcqU+dGZercqEydG5Wpc6MydW5Ups6NytS5UZk6NypT50Zl6tyoTJ0blalzozJ1blSmzo3K1LlRmTo3KlPnRmXq3KhMnRuVqXOjMnVuVKbOjcrUuVGZOjcqU+dGZercqEydG5Wpc6MydW5Ups6NytS5UZk6NypT50Zl6tyoTJ0bVahzowp1blShzo0q1LlRZWHutYU6N6pQ50YV6tyoQp0bVahzowp1blShzo0q1LlRhTo3qlDnRhXq3KhCnRtVqHOjCnVuVKHOjSrUuVGFOjeqUOdGFercqEKdG1Woc6MKdW5Uoc6NKtS5UYU6N6pQ50YV6tyoQp0bVahzowp1blShzo0q1LlRhTo3qlDnRhXq3KhCnRtVqHOjCnVuVKHOjSrUuVGFOjeqUOdGFercqEKdG1Woc6MKdW5Uoc6NKtS5UYU6N6pQ50YV6tyoQp0bVahzowp1blShzo0q1LlRhTo3qlDnRhXq3KhCnRtVqHOjCnVuVKHOjSrUuVGFOjeqUOdGFercqEKdG1Woc6MKdW5Uoc6NKtS5UYU6N6pQ50YV6tyoQp0bVahzowp1blShzo0q1LlRhTo3qlDnRhXq3KhCnRtVqHOjCnVuVKHOjSrUuVGFOjeqUOdGFercqEKdG1Woc6MKdW5Uoc6NqtS5UZU6N6pS50ZV6tyoujD32kqdG1Wpc6MqdW5Upc6NqtS5UZU6N6pS50ZV6tyoSp0bValzoyp1blSlzo2q1LlRlTo3qlLnRlXq3KhKnRtVqXOjKnVuVKXOjarUuVGVOjeqUudGVercqEqdG1Wpc6MqdW5Upc6NqtS5UZU6N6pS50ZV6tyoSp0bValzoyp1blSlzo2q1LlRlTo3qlLnRlXq3KhKnRtVqXOjKnVuVKXOjarUuVGVOjeqUudGVercqEqdG1Wpc6MqdW5Upc6NqtS5UZU6N6pS50ZV6tyoSp0bValzoyp1blSlzo2q1LlRlTo3qlLnRlXq3KhKnRtVqXOjKnVuVKXOjarUuVGVOjeqUudGVercqEqdG1Wpc6MqdW5Upc6NqtS5UZU6N6pS50ZV6tyoSp0bValzoyp1blSlzo2q1LlRlTo3qlLnRlXq3KhKnRtVqXOjKnVuVKXOjarUuVGVOjeqUudGNercqEadG9Woc6MadW5UW5h7baPOjWrUuVGNOjeqUedGNercqEadG9Woc6MadW5Uo86NatS5UY06N6pR50Y16tyoRp0b1ahzoxp1blSjzo1q1LlRjTo3qlHnRjXq3KhGnRvVqHOjGnVuVKPOjWrUuVGNOjeqUedGNercqEadG9Woc6MadW5Uo86NatS5UY06N6pR50Y16tyoRp0b1ahzoxp1blSjzo1q1LlRjTo3qlHnRjXq3KhGnRvVqHOjGnVuVKPOjWrUuVGNOjeqUedGNercqEadG9Woc6MadW5Uo86NatS5UY06N6pR50Y16tyoRp0b1ahzoxp1blSjzo1q1LlRjTo3qlHnRjXq3KhGnRvVqHOjGnVuVKPOjWrUuVGNOjeqUedGNercqEadG9Woc6MadW5Uo86NatS5UY06N6pR50Y16tyoRp0b1ahzoxp1blSjzo1q1LlRjTo3qlHnRjXq3KhGnRvVqHOj3EIdHPUqn7nbvspnbrev8pn77at85ob7Kp+5477KZ265r/KZe+6rfOam+yqfu+tSR0i9yufuutQhUq/yubsudYzUq3zurksdJPUqn7vrUkdJvcrn7rrUYVKv8rm7LnWc1Kt87q5LHSj1Kp+761JHSr3K5+661KFSr/K5uy51rNSrfO6uSx0s9Sqfu+tSR0u9yufuutThUq/yubsudbzUq3zurksdMPUqn7vrUkdMvcrn7rrUIVOv8rm7LnXM1Kt87q5LHTT1Kp+761JHTb3K5+661GFTr/K5uy513NSrfO6uSx049Sqfu+tSR069yufuutShU6/yubsudezUq3zurksdPPUqn7vrUkdPvcrn7rrU4VOv8rm7LnX81Kt87q5LHUD1Kp+761JHUL3K5+661CFUr/K5uy51DNWrfO6uSx1E9Sqfu+tSR1G9yufuutRhVK/yubsudRzVq3zurksdSPUqn7vrUkdSvcrn7rrUoVSv8rm7LnUs1at87q5LHUz1Kp+761JHU73Kp+66jjubynFnUznubCrHnU3lFuqu67izqRx3NpXjzqZy3NlUjjubynFnUznubCrHnU3luLOpHHc2lePOpnLc2VSOO5vKcWdTOe5sKsedTeW4s6kcdzaV486mctzZVI47m8pxZ1M57mwqx51N5bizqRx3NpXjzqZy3NlUjjubynFnUznubCrHnU3luLOpHHc2lePOpnLc2VSOO5vK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Iu/aEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6NK6N6oEro3qoTujSqhe6Nq6N6oGro3qobujaqhe6PqJfKuraF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhu6NqqF7o2ro3qgaujeqhe6NaqF7o1ro3qgWujeqXSLv2ha6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujWujeqBa6N6qF7o1qoXujeujeqB66N6qH7o3qoXuj+iXyru2he6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3qofujeqhe6N66N6oHro3Kl1CF0ddx4+8ba/jR1631/Ej79vr+JEX7nX8yBv3On7klXsdP/LOvY4feelex4+9dUNXSF3Hj711Q5dIXcePvXVD10hdx4+9dUMXSV3Hj711Q1dJXcePvXVDl0ldx4+9dUPXSV3Hj711QxdKXcePvXVDV0pdx4+9dUOXSl3Hj711Q9dKXcePvXVDF0tdx4+9dUNXS13Hj711Q5dLXcePvXVD10tdx4+9dUMXTF3Hj711Q1dMXcePvXVDl0xdx4+9dUPXTF3Hj711QxdNXcePvXVDV01dx4+9dUOXTV3Hj711Q9dNXcePvXVDF05dx4+9dUNXTl3Hj711Q5dOXcePvXVD105dx4+9dUMXT13Hj711Q1dPXcePvXVDl09dx4+9dUPXT13Hj711QxdQXcePvXVDV1Bdx4+9dUOX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hO6NKqF7o0ro3qgSujeqhO6NKpfIu7aE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBK6N6qE7o0qoXujSujeqBq6N6qG7o2qoXujaujeqHqJvGtr6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujaqhe6Nq6N6oGro3qobujWqhe6Na6N6oFro3qoXujWqXyLu2he6NaqF7o1ro3qgWujeqhe6NaqF7o1ro3qgWujeqhe6NaqF7o1ro3qgWujeqhe6NaqF7o1ro3qgWujeqhe6NaqF7o1ro3qgWujeqhe6NaqF7o1ro3qgWujeqhe6NaqF7o1ro3qgWujeqhe6NaqF7o1ro3qgWujeqhe6NaqF7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"
2733
2778
  },
2734
2779
  {
2735
2780
  "name": "compute_note_hash_and_nullifier",
@@ -2766,182 +2811,206 @@
2766
2811
  },
2767
2812
  "return_witnesses": [6, 7, 8, 9]
2768
2813
  },
2769
- "bytecode": "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",
2770
- "debug_symbols": "7d3bbizJcS7gd5lrYaMzI/IQepUNXwg+AAYM2bB0J+jdXQKGXGOYmiVRvdhfd9WVBE4XO6Ji8e+sJL+qP/30H//5z7/747//5+//8NNv//TT7f+18dNv//+ffvrDf/3u93/5wh/++Lv//uNPv7395qd//f2/HP/759/89G///h//+tNvezv+//95Xd+zxs+v7Xvd6v3166OXt7XeXnz79q3j9ud/+s1fSplOKcspZTulFFNKvzmlNKeU7pQSTinplOKkbXfStjtp25207U7ahpO24aRtOGkbTtqGk7bhpG04aRtO2oaTtuGkbTppm07appO26aRtOmmbTtqmk7bppG06aZtO2g4nbYeTtsNJ2+Gk7XDSdjhpO5y0HU7aDidth5O200nb6aTtdNJ2Omk7nbSdTtpOJ22nk7bTSdvppO1y0nY5abuctF1O2i4nbZeTtstJ2+Wk7XLSdjlpu5203U7abidtt5O220nb7aTtdtJ2O2m7nbTdTtqWk7blpG05aVtO2paTtuWkbTlpW07alpO25aRtuzlx225O3rabE7jt5iRuuzmR226QcbhByOEGKYcbxBxuUO42KHcblLsNyt0G5W6DcleyZRIuk3SZxMsgX9YgYNYgYdYgYtYgY9YgZNYgZdYgZtYgZ9YgaNYgadYgatYga9YgbNYgbdYgbtYgb9YgcNYgcdYgctYgc9YgdNYgddYgdtYgd9YgeNYgedYgetYge9YgfNYgfdYgftYgf9YggNYggdYggtYgg9YghNYghdYghtYgh9YgiNYgidYgitYgi9YgjNYgjdYgjtYgj9YgkNYgkdYgktYgk9YglNYgldYgltYgl9YgmNYgmdYgmtYgm9YgnNYgndYgntYgn9YgoNYgodYgotYgo9YgpNYgpdYgptYgp9YgqNYgqdYgqtYgq9YgrNYgrdYgrtYgr9Yhr9Yhr9Yhr9Yhr9ZvTu52yKt1yKt1yKt1yKt1yKt1yKt1yKt1yKt1yKt1yKt1yKt1yKt1yKt1yKt16Xlo0gPRqCeiQbkrPRNNeiia9FQ06bFo0nPRpAejQV6tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ16tQ14tIK8WkFcLyKsF5NXi5uRuQF4tIK8WkFcLyKsF5NUC8moBebWAvFpAXi0grxaQVwvIqwXk1QLyagF5tYC8WkBeLSCvFpBXC8irBeTVAvJqAXm1gLxaQF4tIK8WkFcLyKsF5NUC8moBebWAvFpAXi0grxaQVwvIqwXk1QLyagF5tYC8WkBeLSCvFpBXC8irBeTVAvJqAXm1gLxaQF4tIK8WkFcLyKsF5NUC8moBebWAvFpAXi0grxaQVwvIqwXk1QLyagF5tYC8WkBeLSCvFpBXC8irBeTVAvJqAXm1gLxaQF4tIK8WkFcLyKsF5NUC8moBebWAvFpAXi0grxaQVwvIqwXk1QLyagF5tYC8WkBeLSCvFpBXC8irBeTVAvJqAXm1hLxaQl4tIa+WkFfLm5O7CXm1hLxaQl4tIa+WkFdLyKsl5NUS8moJebWEvFpCXi0hr5aQV0vIqyXk1RLyagl5tYS8WkJeLSGvlpBXS8irJeTVEvJqCXm1hLxaQl4tIa+WkFdLyKsl5NUS8moJebWEvFpCXi0hr5aQV0vIqyXk1RLyagl5tYS8WkJeLSGvlpBXS8irJeTVEvJqCXm1hLxaQl4tIa+WkFdLyKsl5NUS8moJebWEvFpCXi0hr5aQV0vIqyXk1RLyagl5tYS8WkJeLSGvlpBXS8irJeTVEvJqCXm1hLxaQl4tIa+WkFdLyKsl5NUS8moJebWEvFpCXi0hr5aQV0vIqyXk1RLyagl5tYS8WkJeLSGvlpBXS8irJeTVBuTVBuTVBuTVBuTVxs3J3QF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQF5tQl5tQl5tQl5tQl5tXlzcndCXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1CXm1BXm1BXm1BXm1BXm3dnNxdkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFdbkFfbkFfbkFfbkFfbkFfbNyd3N+TVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVNuTVCvJqBXm1grxaQV6tbk7uFuTVCvJqBXm1grxaQV6tIK9WkFcryKsV5NUK8moFebWCvFpBXq0gr1aQVyvIqxXk1QryagV5tYK8WkFerSCvVpBXK8irFeTVCvJqBXm1grxaQV6tIK9WkFcryKsV5NUK8moFebWCvFpBXq0gr1aQVyvIqxXk1QryagV5tYK8WkFerSCvVpBXK8irFeTVCvJqBXm1grxaQV6tIK9WkFcryKsV5NUK8moFebWCvFpBXq0gr1aQVyvIqxXk1QryagV5tYK8WkFerSCvVpBXK8irFeTVCvJqBXm1grxaQV6tIK9WkFcryKsV5NUK8moFebWCvFpBXq0gr1aQVyvIqxXk1QryagV5tYK8WkFerSCvVpBXazcIrB3FOMl7FONE71GMk71HMU74HsU46XsU48TvUYyTv0cxTgAfxUgJDNG1oxgpgSG8dhQjJTDE145ipASGANtRjJTAEGE7ipESGEJsRzFSAkOM7ShGSmAIsh3FSAkMUbajGCmBIcx2FCMlMMTZjmKkBIZA21GMlMAQaTuKkRIYQm1HMVICQ6ztKEZKYAi2HcVICQzRtqMYKYEh3HYUIyUwxNuOYqQEhoDbUYyUwBBxO4qREhhCbkcxUgJDzO0oRkpgCLodxUgJDFG3oxgpgSHsdhQjJTDE3Y5ipASGwNtRjJTAEHk7ipESGEJvRzFSAkPs7ShGSmAIvh3FSAkM0bejGCmB/1H8tqJ/KybnP1jMkorZUjEFFfOPArj7FtOkYrpUTEjFpFTMkIqREnhLCbylBN5SApeUwCUlcEkJXFICl5TAJSVwSQlcUgKXlMAFJXC7QQncblACtxuUwO0GJfDxu2SpGCiB2w1K4HaDErjdoARuNymBm5TATUrgJiVwkxK4SQncpARuUgI3KYGblMBNSuAuJXCXErhLCdylBO5SAncpgbuUwF1K4C4lcJcSOKQEDimBQ0rgkBI4pAQOKYFDSuCQEjikBA4pgVNK4JQSOKUETimBU0rglBI4pQROKYFTSuCUEnhICTykBB5SAg8pgYeUwENK4CEl8JASeEgJPKQEnlICTymBp5TAU0rgKSXwlBJ4Sgk8pQSeUgJPKYGXlMBLSuAlJfCSEnhJCbykBJZMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJNMXJdMXJdMXJdMXJdMXL9BCdwlE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clE9clExeSiQvJxIVk4kIycXGDEjgkExeSiQvJxIVk4kIycSGZuJBMXEgmLiQTF5KJC8nEhWTiQjJxIZm4kExcSCYuJBMXkokLycSFZOJCMnEhmbiQTFxIJi4kExeSiQvJxIVk4kIycSGZuJBMXEgmLiQTF5KJC8nEhWTiQjJxIZm4kExcSCYuJBMXkokLycSFZOJCMnEhmbiQTFxIJi4kExeSiQvJxIVk4kIycSGZuJBMXEgmLiQTF5KJC8nEhWTiQjJxIZm4kExcSCYuJBMXkokLycSFZOJCMnEhmbiQTFxIJi4kExeSiQvJxIVk4kIycSGZuJBMXEgmLiQTF5KJC8nEhWTiQjJxIZm4kExcSCYuJBMXkokLycSFZOJCMnEhmbiQTFxKJi4lE5eSiUvJxOUNSuCUTFxKJi4lE5eSiUvJxKVk4lIycSmZuJRMXEomLiUTl5KJS8nEpWTiUjJxKZm4lExcSiYuJROXkolLycSlZOJSMnEpmbiUTFxKJi4lE5eSiUvJxKVk4lIycSmZuJRMXEomLiUTl5KJS8nEpWTiUjJxKZm4lExcSiYuJROXkolLycSlZOJSMnEpmbiUTFxKJi4lE5eSiUvJxKVk4lIycSmZuJRMXEomLiUTl5KJS8nEpWTiUjJxKZm4lExc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"
2814
+ "bytecode": "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",
2815
+ "debug_symbols": "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1EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB81EB8VCE+qhAfVYiPKsRH1WH0aSE+qhAfVYiPKsRHFeKjCvFRhfioQnxUIT6qEB9ViI8qxEcV4qMK8VGF+KhCfFQhPqoQH1WIjyrERxXiowrxUYX4qEJ8VCE+qhAfVYiPKsRHFeKjCvFRhfioQnxUIT6qEB9ViI8qxEcV4qMK8VGF+KhCfFQhPqoQH1WIjyrERxXiowrxUYX4qEJ8VCE+qhAfVYiPKsRHFeKjCvFRhfioQnxUIT6qEB9ViI8qxEcV4qMK8VGF+KhCfFQhPqoQH1WIjyrERxXiowrxUYX4qEJ8VCE+qhAfVYiPKsRHFeKjCvFRhfioQnxUIT6qEB9ViI8qxEcV4qMK8VGF+KhCfFQhPqoQH1WIjyrERxXiowrxUYX4qIn4qIn4qIn4qIn4qHkYfToRHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURHzURH7UQH7UQH7UQH7UQH7UOo08X4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qMW4qM24qM24qM24qM24qP2YfTpRnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnzURnxUHAiQOoMYjXoGMSr1DGJ06hnEKNUziNGqZxCjVs8gRq+eQYxiPYMozYpQqTOI0qwIljqDKM2KcKkziNKsCJg6gyjNipCpM4jSrAiaOoMozYqwqTOI0qwInDqDKM2K0KkziNKsCJ46gyjNivCpM4jSrAigOoMozYoQqjOI0qwIojqDKM2KMKoziNKsCKQ6gyjNilCqM4jSrAimOoMozYpwqjOI0qwIqDqDKM2KkKoziNKsCKo6gyjNirCqM4jSrAisOoMozYrQqjOI0qwIrjqDKM2K8KoziNKsCLA6gyjNihCrM4jSrAiyOoMozYowqzOI0qwItDqDKM2KUKsziNKsCLY6gyjNinCrM4jSrAi4OoMozYqQqzOI0qwIujqDKM2KsKsziNKsCLw6gyjNitCrM4jSrAi+OoMozYrwqzOI0qwIwDqDKM2KEKwzCNKsoRisUAxWKAYrFIN1/nurEgRp1lAMVigGKxSDFYrBCsVghWKwQjFYoRisUAxWKAYrFIMVisEKxWCFYrBCMVihGKxQDFYoBisUgxWKwQrFYIVisEIxWKEYrFAMVigGKxSDFYrBCsVghWKwQjFYoRisUAxWKAYr/osGa9WPR87fffevBQklSCpBmhKkK0GGEqSUIFMJspQgGwkylGYdSrMOpVmH0qxDadahNOtQmnUozTqUZh1Ks5bSrKU0aynNWkqzltKspTRrKc1aSrOW0qylNOtU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sduvUR927PYr2ocdu/3692HH3l9jv8fY7dfWDzt2+5X4w44d/wC9Rx27/e8XDzv21yn1DmMfx+uUepexv06pdxn765R6l7G/Tql3GXt/jf0eY3+dUu8y9tcp9S5jf51S7zL21yn1LmN/1lPqzd+GasSznjx/wiif9TT5E0b5rCfEnzDKZz31/YRR9tcobzXKZz2d/YRRPuuJ6yeM8llPUT9hlM96MvoJo3yddm41ynyddm42ytdp52ajfJ12bjbK12nnZqPsDzTKO74TzchHOuvcdZCPdNK56yAf6Zxz10E+0innroN8pDPOPQfZHumEc9dBPtL55q6DfKTTzV0H+Uhnm7sOsr8GeZtBvk42Nxrk62Rzo0G+TjY3GuTrZHOjQb5ONrcZZP/+XXu2t1D7d+91/fEgd4wfD95jvD921Xv8ce34de3489rx17Xj70vHv8NHoN80flw7fl47frt2/GvvuuPau+649q47rr3rjmvvuuPau25de9eta++6de1dt669697hYy9vGv/au25de9eta++6de1dt669685r77rz2rvuvPauO6+9697hc8VuGv/au+689q47r73rzmvvuvPau+669q67rr3rrmvvuuvau+4dPvPmpvGvveuua++669q77rr2rruuvevua++6+9q77r72rruvveve4bMzbhr/2rvuvvauu6+96+5r77r70rtuHZfedeu49K5bx6V33TouvevWceldt45L77p1XHrXrePSu24dl95167j2rhvX3nXj2rtuXHvXjWvvund439abxr/2rhvX3nXj2rtuXHvXjWvvunntXTevvevmtXfdvPaue4f3D7xp/GvvunntXTevvevmtXfdvPau266967Zr77rt2rtuu/aue4f3trpp/Gvvuu3au+73v3vSXm/fOo89Pon/H3mbmPr+Ny76CWvY119DPx5gDfEAa8gHWEN7gDX0B1jDeIA11AOs4QH26f4A+3R/gH16PMA+PR5gnx4PsE+PB9inv/8Nr37CGh5gnx4PsE/fQua1eeSPR7fZ+ydrOH7L1N4fWu09UNcCDS1QaYGmFmh9d6D2/iuuvj4KtLFAt3Bltw0UWqDUAjUt0Lc3db6/tXfujwINLVBpgaYWaGmBthVoHocWKLRAqQVqWiCsqeeBNfU8sKaeB9bU88Caeh5aU4fW1KE1dWhNHVpTh9bUoTV1aE0dWlOH1tShNXVqTZ1aU6fW1Kk1dWpNnVpTp9bUqTV1ak2dWlP/G3+pPfePq8bv/sns/Y9E57/xB9KfXdW/dNX40lX1pavml65aX7rqw/8Vxn67X3V8dNXHf1L56VXxpavyS1e1L13Vv3TV+NJVH/6/UfH2U1UZH101v3TV+tJV+ytXffxnPJ9eFV+6Kr901Yf/b9R8v2p9eFX/0lXjS1fVl66aX7pqfemq/ZWrPv4kpfMfct+u2h/9pHz8AUafXpVfuqp96ar+pavGl66q/9xVf//7/wM="
2771
2816
  }
2772
2817
  ],
2773
2818
  "events": [],
2774
2819
  "file_map": {
2775
- "18": {
2776
- "source": "mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n \n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(_self: Self, _bit_size: u32) -> [u1] {}\n \n #[builtin(to_be_bits)]\n fn __to_be_bits(_self: Self, _bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(_self: Self, _bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(_self: Self, _radix: u32, _result_len: u32) -> [u8] {}\n \n #[builtin(to_be_radix)]\n fn __to_be_radix(_self: Self, _radix: u32, _result_len: u32) -> [u8] {}\n\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n\n}\n\n#[builtin(modulus_num_bits)]\npub fn modulus_num_bits() -> Field {}\n\n#[builtin(modulus_be_bits)]\npub fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub fn modulus_le_bytes() -> [u8] {}\n// Convert a 32 byte array to a field element\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n",
2820
+ "3": {
2821
+ "source": "struct BoundedVec<T, MaxLen> {\n storage: [T; MaxLen],\n // TODO: change this to return a u64 as Noir now\n // uses u64 for indexing\n len: Field,\n empty_value: T,\n}\n\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\n pub fn new(initial_value: T) -> Self {\n BoundedVec { storage: [initial_value; MaxLen], len: 0, empty_value: initial_value }\n }\n\n pub fn get(mut self: Self, index: Field) -> T {\n assert(index as u64 < self.len as u64);\n self.storage[index]\n }\n\n pub fn get_unchecked(mut self: Self, index: Field) -> T {\n self.storage[index]\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len as u64 < MaxLen as u64, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> Field {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> Field {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<Len>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len as u64 <= MaxLen as u64, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<Len>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len as u64 <= MaxLen as u64, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + (i as Field)] = vec.get_unchecked(i as Field);\n }\n }\n self.len = new_len;\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len as u64 > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = self.empty_value;\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if (!exceeded_len) {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n}",
2822
+ "path": "std/collections/bounded_vec.nr"
2823
+ },
2824
+ "19": {
2825
+ "source": "mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n \n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n \n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n \n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n\n}\n\n#[builtin(modulus_num_bits)]\npub fn modulus_num_bits() -> Field {}\n\n#[builtin(modulus_be_bits)]\npub fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub fn modulus_le_bytes() -> [u8] {}\n// Convert a 32 byte array to a field element\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n",
2777
2826
  "path": "std/field.nr"
2778
2827
  },
2779
- "30": {
2828
+ "31": {
2780
2829
  "source": "struct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::unsafe::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some {\n self._value\n } else {\n default\n }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some {\n self\n } else {\n other\n }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<U, Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some {\n self\n } else {\n default()\n }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some {\n Option::none()\n } else {\n self\n }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n",
2781
2830
  "path": "std/option.nr"
2782
2831
  },
2783
- "42": {
2832
+ "43": {
2784
2833
  "source": "use crate::context::{PrivateContext, PublicContext};\nuse crate::oracle;\nuse dep::protocol_types::{\n address::AztecAddress,\n grumpkin_point::GrumpkinPoint,\n};\n\npub fn emit_encrypted_log<N>(\n context: &mut PrivateContext,\n contract_address: AztecAddress,\n storage_slot: Field,\n encryption_pub_key: GrumpkinPoint,\n log: [Field; N]\n) {\n let _ = oracle::logs::emit_encrypted_log(contract_address, storage_slot, encryption_pub_key, log);\n context.accumulate_encrypted_logs(log);\n}\n\npub fn emit_unencrypted_log<T>(context: &mut PublicContext, log: T) {\n let contract_address = context.this_address();\n let event_selector = 5; // TODO: compute actual event selector.\n let _ = oracle::logs::emit_unencrypted_log(contract_address, event_selector, log);\n // context.accumulate_unencrypted_logs(log);\n}\n\n// TODO: We might want to remove this since emitting unencrypted logs from private functions is violating privacy.\n// --> might be a better approach to force devs to make a public function call that emits the log if needed then\n// it would be less easy to accidentally leak information.\n// If we decide to keep this function around would make sense to wait for traits and then merge it with emit_unencrypted_log.\npub fn emit_unencrypted_log_from_private<T>(context: &mut PrivateContext, log: T) {\n let contract_address = context.this_address();\n let event_selector = 5; // TODO: compute actual event selector.\n let _ = oracle::logs::emit_unencrypted_log(contract_address, event_selector, log);\n // context.accumulate_unencrypted_logs(log);\n}\n",
2785
2834
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/log.nr"
2786
2835
  },
2787
- "43": {
2788
- "source": "use dep::protocol_types::{\n abis::{\n call_context::CallContext,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_circuit_public_inputs::PublicCircuitPublicInputs,\n },\n contrakt::deployment_data::ContractDeploymentData,\n hash::hash_args,\n header::Header,\n};\n\n// docs:start:private-global-variables\nstruct PrivateGlobalVariables {\n chain_id: Field,\n version: Field,\n}\n// docs:end:private-global-variables\n\nimpl PrivateGlobalVariables {\n fn serialize(self) -> [Field; 2] {\n [self.chain_id, self.version]\n }\n}\n\n// docs:start:public-global-variables\nstruct PublicGlobalVariables {\n chain_id: Field,\n version: Field,\n block_number: Field,\n timestamp: Field,\n}\n// docs:end:public-global-variables\n\nimpl PublicGlobalVariables {\n fn serialize(self) -> [Field; 4] {\n [self.chain_id, self.version, self.block_number, self.timestamp]\n }\n}\n\n// PrivateContextInputs are expected to be provided to each private function\n// docs:start:private-context-inputs\nstruct PrivateContextInputs {\n call_context : CallContext,\n historical_header: Header,\n contract_deployment_data: ContractDeploymentData,\n private_global_variables: PrivateGlobalVariables,\n}\n// docs:end:private-context-inputs\n\n// PublicContextInputs are expected to be provided to each public function\n// docs:start:public-context-inputs\nstruct PublicContextInputs {\n call_context: CallContext,\n historical_header: Header,\n\n public_global_variables: PublicGlobalVariables,\n}\n// docs:end:public-context-inputs\n\nstruct Hasher {\n fields: [Field],\n}\n\nimpl Hasher {\n pub fn new()-> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<N>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n\n pub fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n",
2836
+ "44": {
2837
+ "source": "use dep::protocol_types::{\n abis::{\n call_context::CallContext,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_circuit_public_inputs::PublicCircuitPublicInputs,\n },\n contrakt::deployment_data::ContractDeploymentData,\n hash::hash_args,\n traits::{Hash, Serialize},\n header::Header,\n};\n\n// docs:start:private-global-variables\nstruct PrivateGlobalVariables {\n chain_id: Field,\n version: Field,\n}\n// docs:end:private-global-variables\n\nimpl Serialize<2> for PrivateGlobalVariables {\n fn serialize(self) -> [Field; 2] {\n [self.chain_id, self.version]\n }\n}\n\n// docs:start:public-global-variables\nstruct PublicGlobalVariables {\n chain_id: Field,\n version: Field,\n block_number: Field,\n timestamp: Field,\n}\n// docs:end:public-global-variables\n\nimpl Serialize<4> for PublicGlobalVariables {\n fn serialize(self) -> [Field; 4] {\n [self.chain_id, self.version, self.block_number, self.timestamp]\n }\n}\n\n// PrivateContextInputs are expected to be provided to each private function\n// docs:start:private-context-inputs\nstruct PrivateContextInputs {\n call_context : CallContext,\n historical_header: Header,\n contract_deployment_data: ContractDeploymentData,\n private_global_variables: PrivateGlobalVariables,\n}\n// docs:end:private-context-inputs\n\n// PublicContextInputs are expected to be provided to each public function\n// docs:start:public-context-inputs\nstruct PublicContextInputs {\n call_context: CallContext,\n historical_header: Header,\n\n public_global_variables: PublicGlobalVariables,\n}\n// docs:end:public-context-inputs\n\nstruct Hasher {\n fields: [Field],\n}\n\nimpl Hash for Hasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl Hasher {\n pub fn new()-> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<N>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n",
2789
2838
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/abi.nr"
2790
2839
  },
2791
- "44": {
2792
- "source": "use dep::std::option::Option;\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::{\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n },\n hash::pedersen_hash,\n};\n\nuse crate::context::{PrivateContext, Context};\nuse crate::note::{\n lifecycle::create_note,\n note_getter::{get_note, view_notes},\n note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions,\n};\nuse crate::oracle::notes::check_nullifier_exists;\n\n// docs:start:struct\nstruct ImmutableSingleton<Note, N> {\n context: Option<&mut PrivateContext>,\n storage_slot: Field,\n note_interface: NoteInterface<Note, N>,\n}\n// docs:end:struct\n\nimpl<Note, N> ImmutableSingleton<Note, N> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n note_interface: NoteInterface<Note, N>,\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self {\n context: context.private,\n storage_slot,\n note_interface,\n }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, ImmutableSingleton>` type (for example), because the storage slot often also identifies an actor. \n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n pedersen_hash([self.storage_slot], GENERATOR_INDEX__INITIALIZATION_NULLIFIER)\n }\n\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // docs:start:initialize\n pub fn initialize(\n self,\n note: &mut Note, \n broadcast: bool,\n ) {\n let context = self.context.unwrap();\n\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n context.push_new_nullifier(nullifier, 0);\n\n create_note(\n context,\n self.storage_slot,\n note,\n self.note_interface,\n broadcast,\n );\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note(self) -> Note {\n let context = self.context.unwrap();\n let storage_slot = self.storage_slot;\n get_note(context, storage_slot, self.note_interface)\n }\n // docs:end:get_note\n\n // docs:start:view_note\n unconstrained pub fn view_note(self) -> Note {\n let options = NoteViewerOptions::new().set_limit(1);\n view_notes(self.storage_slot, self.note_interface, options)[0].unwrap()\n }\n // docs:end:view_note\n}\n",
2840
+ "45": {
2841
+ "source": "use dep::std::option::Option;\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::{\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n },\n hash::pedersen_hash,\n};\n\nuse crate::context::{PrivateContext, Context};\nuse crate::note::{\n lifecycle::create_note,\n note_getter::{get_note, view_notes},\n note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions,\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\nstruct ImmutableSingleton<Note> {\n context: Option<&mut PrivateContext>,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T> Storage<T> for ImmutableSingleton<T> {}\n\nimpl<Note> ImmutableSingleton<Note> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self {\n context: context.private,\n storage_slot,\n }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, ImmutableSingleton>` type (for example), because the storage slot often also identifies an actor. \n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n pedersen_hash([self.storage_slot], GENERATOR_INDEX__INITIALIZATION_NULLIFIER)\n }\n\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // docs:start:initialize\n pub fn initialize<N>(\n self,\n note: &mut Note, \n broadcast: bool,\n ) where Note: NoteInterface<N> {\n let context = self.context.unwrap();\n\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n context.push_new_nullifier(nullifier, 0);\n\n create_note(\n context,\n self.storage_slot,\n note,\n broadcast,\n );\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<N>(self) -> Note where Note: NoteInterface<N> {\n let context = self.context.unwrap();\n let storage_slot = self.storage_slot;\n get_note(context, storage_slot)\n }\n // docs:end:get_note\n\n // docs:start:view_note\n unconstrained pub fn view_note<N>(self) -> Note where Note: NoteInterface<N> {\n let options = NoteViewerOptions::new().set_limit(1);\n view_notes(self.storage_slot, options)[0].unwrap()\n }\n // docs:end:view_note\n}\n",
2793
2842
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/state_vars/immutable_singleton.nr"
2794
2843
  },
2795
- "45": {
2796
- "source": "use crate::context::{Context};\nuse crate::oracle::storage::storage_read;\nuse crate::oracle::storage::storage_write;\nuse crate::types::type_serialization::TypeSerializationInterface;\nuse dep::std::option::Option;\n\n// docs:start:public_state_struct\nstruct PublicState<T, T_SERIALIZED_LEN> {\n context: Context,\n storage_slot: Field,\n serialization_methods: TypeSerializationInterface<T, T_SERIALIZED_LEN>,\n}\n// docs:end:public_state_struct\n\nimpl<T, T_SERIALIZED_LEN> PublicState<T, T_SERIALIZED_LEN> {\n // docs:start:public_state_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field,\n serialization_methods: TypeSerializationInterface<T, T_SERIALIZED_LEN>,\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicState {\n context,\n storage_slot,\n serialization_methods,\n }\n }\n // docs:end:public_state_struct_new\n\n // docs:start:public_state_struct_read\n pub fn read(self) -> T {\n assert(self.context.private.is_none(), \"Public state reads only supported in public functions\");\n storage_read(self.storage_slot, self.serialization_methods.deserialize)\n }\n // docs:end:public_state_struct_read\n\n // docs:start:public_state_struct_write\n pub fn write(self, value: T) {\n assert(self.context.private.is_none(), \"Public state writes only supported in public functions\");\n let serialize = self.serialization_methods.serialize;\n let fields = serialize(value);\n storage_write(self.storage_slot, fields);\n }\n // docs:end:public_state_struct_write\n}\n",
2844
+ "46": {
2845
+ "source": "use crate::context::{Context};\nuse crate::oracle::storage::storage_read;\nuse crate::oracle::storage::storage_write;\nuse dep::std::option::Option;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_state_struct\nstruct PublicState<T> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_state_struct\n\nimpl<T> Storage<T> for PublicState<T> {}\n\nimpl<T> PublicState<T> {\n // docs:start:public_state_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field,\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicState {\n context,\n storage_slot,\n }\n }\n // docs:end:public_state_struct_new\n\n // docs:start:public_state_struct_read\n pub fn read<T_SERIALIZED_LEN>(self) -> T where T: Deserialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"Public state writes only supported in public functions\");\n let fields = storage_read(self.storage_slot);\n T::deserialize(fields)\n }\n // docs:end:public_state_struct_read\n\n // docs:start:public_state_struct_write\n pub fn write<T_SERIALIZED_LEN>(self, value: T) where T: Serialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"Public state writes only supported in public functions\");\n let fields = T::serialize(value);\n storage_write(self.storage_slot, fields);\n }\n // docs:end:public_state_struct_write\n}\n",
2797
2846
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/state_vars/public_state.nr"
2798
2847
  },
2799
- "46": {
2800
- "source": "use crate::context::{PrivateContext, PublicContext, Context};\nuse dep::std::option::Option;\nuse dep::protocol_types::{\n hash::pedersen_hash,\n traits::{ToField}\n};\n\n// docs:start:map\nstruct Map<K, V> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, V> Map<K, V> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map {\n context,\n storage_slot,\n state_var_constructor,\n }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = pedersen_hash([self.storage_slot, key.to_field()],0);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n",
2848
+ "48": {
2849
+ "source": "use crate::context::{PrivateContext, PublicContext, Context};\nuse dep::std::option::Option;\nuse dep::protocol_types::{\n hash::pedersen_hash,\n traits::{ToField}\n};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T> Storage<T> for Map<K, T> {}\n\nimpl<K, V> Map<K, V> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map {\n context,\n storage_slot,\n state_var_constructor,\n }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = pedersen_hash([self.storage_slot, key.to_field()],0);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n",
2801
2850
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/state_vars/map.nr"
2802
2851
  },
2803
- "53": {
2804
- "source": "use crate::types::type_serialization::TypeSerializationInterface;\n\nglobal BOOL_SERIALIZED_LEN: Field = 1;\n\nfn deserializeBool(fields: [Field; BOOL_SERIALIZED_LEN]) -> bool {\n fields[0] as bool\n}\n\nfn serializeBool(value: bool) -> [Field; BOOL_SERIALIZED_LEN] {\n [value as Field]\n}\n\nglobal BoolSerializationMethods = TypeSerializationInterface {\n deserialize: deserializeBool,\n serialize: serializeBool,\n};\n",
2805
- "path": "/usr/src/yarn-project/aztec-nr/aztec/src/types/type_serialization/bool_serialization.nr"
2806
- },
2807
- "55": {
2808
- "source": "struct BoundedVec<T, MaxLen> {\n storage: [T; MaxLen],\n len: Field,\n}\n\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\n pub fn new(initial_value: T) -> Self {\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\n }\n\n pub fn get(mut self: Self, index: Field) -> T {\n assert(index as u64 < self.len as u64);\n self.storage[index]\n }\n\n pub fn get_unchecked(mut self: Self, index: Field) -> T {\n self.storage[index]\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len as u64 < MaxLen as u64);\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn push_array<Len>(&mut self, array: [T; Len]) {\n let newLen = self.len + array.len();\n assert(newLen as u64 <= MaxLen as u64);\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = newLen;\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len as u64 > 0);\n\n let elem = self.storage[self.len - 1];\n self.len -= 1;\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if (!exceeded_len) {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n}\n\n#[test]\nfn test_vec_push_pop() {\n let mut vec: BoundedVec<Field, 3> = BoundedVec::new(0);\n assert(vec.len == 0);\n vec.push(2);\n assert(vec.len == 1);\n vec.push(4);\n assert(vec.len == 2);\n vec.push(6);\n assert(vec.len == 3);\n let x = vec.pop();\n assert(x == 6);\n assert(vec.len == 2);\n assert(vec.get(0) == 2);\n assert(vec.get(1) == 4);\n}\n\n#[test]\nfn test_vec_push_array() {\n let mut vec: BoundedVec<Field, 3> = BoundedVec::new(0);\n vec.push_array([2, 4]);\n assert(vec.len == 2);\n assert(vec.get(0) == 2);\n assert(vec.get(1) == 4);\n}\n\n#[test(should_fail)]\nfn test_vec_get_out_of_bound() {\n let mut vec: BoundedVec<Field, 2> = BoundedVec::new(0);\n vec.push_array([2, 4]);\n let _x = vec.get(2);\n}\n\n#[test(should_fail)]\nfn test_vec_get_not_declared() {\n let mut vec: BoundedVec<Field, 2> = BoundedVec::new(0);\n vec.push_array([2]);\n let _x = vec.get(1);\n}\n\n#[test(should_fail)]\nfn test_vec_get_uninitialized() {\n let mut vec: BoundedVec<Field, 2> = BoundedVec::new(0);\n let _x = vec.get(0);\n}\n\n#[test(should_fail)]\nfn test_vec_push_overflow() {\n let mut vec: BoundedVec<Field, 1> = BoundedVec::new(0);\n vec.push(1);\n vec.push(2);\n}\n\n#[test]\nfn test_vec_any() {\n let mut vec: BoundedVec<Field, 3> = BoundedVec::new(0);\n vec.push_array([2, 4, 6]);\n assert(vec.any(|v| v == 2) == true);\n assert(vec.any(|v| v == 4) == true);\n assert(vec.any(|v| v == 6) == true);\n assert(vec.any(|v| v == 3) == false);\n}\n\n#[test]\nfn test_vec_any_not_default() {\n let default_value = 1;\n let mut vec: BoundedVec<Field, 3> = BoundedVec::new(default_value);\n vec.push_array([2, 4]);\n assert(vec.any(|v| v == default_value) == false);\n}\n",
2809
- "path": "/usr/src/yarn-project/aztec-nr/aztec/src/types/vec.nr"
2810
- },
2811
- "68": {
2812
- "source": "pub fn arr_copy_slice<T, N, M>(src: [T; N], mut dst: [T; M], offset: Field) -> [T; M] {\n for i in 0..dst.len() {\n dst[i] = src[i + offset];\n }\n dst\n}\n\n// TODO(#3470): Copied over from https://github.com/AztecProtocol/aztec-packages/blob/a07c4bd47313be6aa604a63f37857eb0136b41ba/yarn-project/noir-protocol-circuits/src/crates/rollup-lib/src/base/base_rollup_inputs.nr#L599\n// move to a shared place?\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\nstruct Reader<N> {\n data: [Field; N],\n offset: Field,\n}\n\nimpl<N> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_array<K>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, K>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, K, C>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n } \n}\n",
2852
+ "63": {
2853
+ "source": "pub fn arr_copy_slice<T, N, M>(src: [T; N], mut dst: [T; M], offset: Field) -> [T; M] {\n for i in 0..dst.len() {\n dst[i] = src[i + offset];\n }\n dst\n}\n\n// TODO(#3470): Copied over from https://github.com/AztecProtocol/aztec-packages/blob/a07c4bd47313be6aa604a63f37857eb0136b41ba/yarn-project/noir-protocol-circuits/src/crates/rollup-lib/src/base/base_rollup_inputs.nr#L599\n// move to a shared place?\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n",
2813
2854
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/utils.nr"
2814
2855
  },
2815
- "70": {
2816
- "source": "use crate::{\n abi::{\n PrivateContextInputs,\n PublicContextInputs,\n },\n key::nullifier_key::validate_nullifier_key_against_address,\n messaging::process_l1_to_l2_message,\n oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n public_call::call_public_function_internal,\n enqueue_public_function_call::enqueue_public_function_call_internal,\n context::get_portal_address,\n header::get_header_at,\n nullifier_key::{get_nullifier_key_pair, NullifierKeyPair},\n },\n types::vec::BoundedVec,\n utils::Reader,\n};\nuse dep::protocol_types::{\n abis::{\n append_only_tree_snapshot::AppendOnlyTreeSnapshot,\n call_context::CallContext,\n global_variables::GlobalVariables,\n function_data::FunctionData,\n function_selector::FunctionSelector,\n nullifier_key_validation_request::NullifierKeyValidationRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_circuit_public_inputs::PublicCircuitPublicInputs,\n call_stack_item::PrivateCallStackItem,\n call_stack_item::PublicCallStackItem,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash},\n },\n address::{\n AztecAddress,\n EthAddress,\n },\n constants::{\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n },\n contrakt::{\n deployment_data::ContractDeploymentData,\n storage_read::StorageRead,\n storage_update_request::StorageUpdateRequest,\n },\n grumpkin_point::GrumpkinPoint,\n grumpkin_private_key::GrumpkinPrivateKey,\n hash::hash_args,\n header::Header,\n state_reference::StateReference,\n};\nuse dep::std::{\n option::Option,\n};\n\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n// use dep::std::collections::vec::Vec;\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n args_hash : Field,\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\n\n read_requests: BoundedVec<SideEffect, MAX_READ_REQUESTS_PER_CALL>,\n nullifier_key_validation_requests: BoundedVec<NullifierKeyValidationRequest, MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n new_commitments: BoundedVec<SideEffect, MAX_NEW_COMMITMENTS_PER_CALL>,\n new_nullifiers: BoundedVec<SideEffectLinkedToNoteHash, MAX_NEW_NULLIFIERS_PER_CALL>,\n\n private_call_stack_hashes : BoundedVec<Field, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_stack_hashes : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n new_l2_to_l1_msgs : BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n historical_header: Header,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec<Field>,\n // unencrypted_logs_preimages: Vec<Field>,\n\n nullifier_key: Option<NullifierKeyPair>,\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs: inputs,\n side_effect_counter: inputs.call_context.start_side_effect_counter,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n read_requests: BoundedVec::new(SideEffect::empty()),\n nullifier_key_validation_requests: BoundedVec::new(NullifierKeyValidationRequest::empty()),\n\n new_commitments: BoundedVec::new(SideEffect::empty()),\n new_nullifiers: BoundedVec::new(SideEffectLinkedToNoteHash::empty()),\n\n historical_header: inputs.historical_header,\n\n private_call_stack_hashes: BoundedVec::new(0),\n public_call_stack_hashes: BoundedVec::new(0),\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n\n nullifier_key: Option::none(),\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.storage_contract_address\n }\n\n pub fn this_portal_address(self) -> EthAddress {\n self.inputs.call_context.portal_contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.private_global_variables.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.private_global_variables.version\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n // Returns the header of a block whose state is used during private execution\n pub fn get_header(self) -> Header {\n self.historical_header\n }\n\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let encrypted_log_preimages_length = 0;\n let unencrypted_log_preimages_length = 0;\n\n let priv_circuit_pub_inputs = PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n return_values: self.return_values.storage,\n read_requests: self.read_requests.storage,\n nullifier_key_validation_requests: self.nullifier_key_validation_requests.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n private_call_stack_hashes: self.private_call_stack_hashes.storage,\n public_call_stack_hashes: self.public_call_stack_hashes.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n end_side_effect_counter: self.side_effect_counter,\n encrypted_logs_hash: encrypted_logs_hash,\n unencrypted_logs_hash: unencrypted_logs_hash,\n encrypted_log_preimages_length: encrypted_log_preimages_length,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n historical_header: self.historical_header,\n contract_deployment_data: self.inputs.contract_deployment_data,\n chain_id: self.inputs.private_global_variables.chain_id,\n version: self.inputs.private_global_variables.version,\n };\n priv_circuit_pub_inputs\n }\n\n pub fn push_read_request(&mut self, read_request: Field) {\n let side_effect = SideEffect {\n value: read_request,\n counter: self.side_effect_counter,\n };\n self.read_requests.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn push_new_note_hash(&mut self, note_hash: Field) {\n let side_effect = SideEffect {\n value: note_hash,\n counter: self.side_effect_counter,\n };\n self.new_commitments.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\n let side_effect = SideEffectLinkedToNoteHash {\n value: nullifier,\n note_hash: nullified_commitment,\n counter: self.side_effect_counter,\n };\n self.new_nullifiers.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn request_nullifier_secret_key(&mut self, account: AztecAddress) -> GrumpkinPrivateKey {\n let key_pair = if self.nullifier_key.is_none() {\n let key_pair = get_nullifier_key_pair(account);\n validate_nullifier_key_against_address(account, key_pair.public_key);\n let request = NullifierKeyValidationRequest { public_key: key_pair.public_key, secret_key: key_pair.secret_key };\n self.nullifier_key_validation_requests.push(request);\n self.nullifier_key = Option::some(key_pair);\n key_pair\n } else {\n let key_pair = self.nullifier_key.unwrap_unchecked();\n // If MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL is larger than 1, need to update the way the key pair is cached.\n assert(MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL == 1);\n assert(key_pair.account == account, \"Cannot query nullifier key for more than one account per call\");\n key_pair\n };\n key_pair.secret_key\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, content: Field) \n // docs:end:context_message_portal\n {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\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 msg_key: Field,\n content: Field,\n secret: Field\n ) \n // docs:end:context_consume_l1_to_l2_message\n {\n let nullifier = process_l1_to_l2_message(self.historical_header.state.l1_to_l2_message_tree.root, self.this_address(), self.this_portal_address(), self.chain_id(), self.version(), msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, 0)\n }\n // docs:end:consume_l1_to_l2_message\n\n pub fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n pub fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n pub fn call_private_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress, \n function_selector: FunctionSelector, \n args: [Field; ARGS_COUNT]\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress, \n function_selector: FunctionSelector, \n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n pub fn call_private_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let fields = call_private_function_internal(\n contract_address,\n function_selector, \n args_hash,\n self.side_effect_counter,\n );\n let mut reader = Reader::new(fields);\n\n let item = PrivateCallStackItem {\n contract_address: AztecAddress::from_field(reader.read()),\n function_data: FunctionData {\n selector: FunctionSelector::from_field(reader.read()),\n is_internal: reader.read() as bool,\n is_private: reader.read() as bool,\n is_constructor: reader.read() as bool,\n },\n public_inputs: PrivateCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : AztecAddress::from_field(reader.read()),\n storage_contract_address : AztecAddress::from_field(reader.read()),\n portal_contract_address : EthAddress::from_field(reader.read()),\n function_selector: FunctionSelector::from_field(reader.read()), // practically same as fields[1]\n is_delegate_call : reader.read() as bool,\n is_static_call : reader.read() as bool,\n is_contract_deployment: reader.read() as bool,\n start_side_effect_counter: reader.read() as u32,\n },\n args_hash: reader.read(),\n return_values: reader.read_array([0; RETURN_VALUES_LENGTH]), // +1\n read_requests: reader.read_struct_array(SideEffect::deserialise, [SideEffect::empty(); MAX_READ_REQUESTS_PER_CALL]),\n nullifier_key_validation_requests: reader.read_struct_array(NullifierKeyValidationRequest::deserialise, [NullifierKeyValidationRequest::empty(); MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL]),\n new_commitments: reader.read_struct_array(SideEffect::deserialise, [SideEffect::empty(); MAX_NEW_COMMITMENTS_PER_CALL]),\n new_nullifiers: reader.read_struct_array(SideEffectLinkedToNoteHash::deserialise, [SideEffectLinkedToNoteHash::empty(); MAX_NEW_NULLIFIERS_PER_CALL]),\n private_call_stack_hashes: reader.read_array([0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL]),\n public_call_stack_hashes: reader.read_array([0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL]),\n new_l2_to_l1_msgs: reader.read_array([0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL]),\n end_side_effect_counter: reader.read() as u32,\n encrypted_logs_hash: reader.read_array([0; NUM_FIELDS_PER_SHA256]),\n unencrypted_logs_hash: reader.read_array([0; NUM_FIELDS_PER_SHA256]),\n encrypted_log_preimages_length: reader.read(),\n unencrypted_log_preimages_length: reader.read(),\n historical_header: reader.read_struct(Header::deserialize),\n contract_deployment_data: ContractDeploymentData {\n deployer_public_key: GrumpkinPoint {\n x: reader.read(), \n y: reader.read()\n },\n constructor_vk_hash : reader.read(),\n function_tree_root : reader.read(),\n contract_address_salt : reader.read(),\n portal_contract_address : EthAddress::from_field(reader.read()),\n },\n chain_id: reader.read(),\n version: reader.read(),\n },\n is_execution_request: reader.read() as bool,\n };\n\n reader.finish();\n\n assert_eq(item.public_inputs.call_context.start_side_effect_counter, self.side_effect_counter);\n self.side_effect_counter = item.public_inputs.end_side_effect_counter + 1;\n \n assert(contract_address.eq(item.contract_address));\n assert(function_selector.eq(item.function_data.selector));\n\n assert(args_hash == item.public_inputs.args_hash);\n\n assert(item.is_execution_request == false);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address));\n assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address));\n\n self.private_call_stack_hashes.push(item.hash());\n\n item.public_inputs.return_values\n }\n\n pub fn call_public_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress, \n function_selector: FunctionSelector, \n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress, \n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field\n ) {\n let fields = enqueue_public_function_call_internal(\n contract_address, \n function_selector, \n args_hash,\n self.side_effect_counter\n );\n\n let mut reader = Reader::new(fields);\n\n let item = PublicCallStackItem {\n contract_address: AztecAddress::from_field(reader.read()),\n function_data: FunctionData {\n selector: FunctionSelector::from_field(reader.read()),\n is_internal: reader.read() as bool,\n is_private: reader.read() as bool,\n is_constructor: reader.read() as bool,\n },\n public_inputs: PublicCircuitPublicInputs {\n call_context: CallContext {\n msg_sender : AztecAddress::from_field(reader.read()),\n storage_contract_address : AztecAddress::from_field(reader.read()),\n portal_contract_address : EthAddress::from_field(reader.read()),\n function_selector: FunctionSelector::from_field(reader.read()), // practically same as fields[1]\n is_delegate_call : reader.read() as bool,\n is_static_call : reader.read() as bool,\n is_contract_deployment: reader.read() as bool,\n start_side_effect_counter: reader.read() as u32,\n },\n args_hash: reader.read(),\n return_values: [0; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [SideEffect::empty(); MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [SideEffectLinkedToNoteHash::empty(); MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: 0,\n historical_header: Header::empty(),\n prover_address: AztecAddress::zero(),\n },\n is_execution_request: true,\n };\n reader.finish();\n\n assert(contract_address.eq(item.contract_address));\n assert(function_selector.eq(item.function_data.selector));\n\n assert_eq(item.public_inputs.call_context.start_side_effect_counter, self.side_effect_counter);\n // We increment the sideffect counter by one, to account for the call itself being a side effect.\n self.side_effect_counter = self.side_effect_counter + 1;\n \n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address));\n assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address));\n\n self.public_call_stack_hashes.push(item.hash());\n }\n}\n\nstruct PublicContext {\n inputs: PublicContextInputs,\n side_effect_counter: u32,\n\n args_hash : Field,\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\n\n contract_storage_update_requests: BoundedVec<StorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\n contract_storage_reads: BoundedVec<StorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\n public_call_stack_hashes: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n\n new_commitments: BoundedVec<SideEffect, MAX_NEW_COMMITMENTS_PER_CALL>,\n new_nullifiers: BoundedVec<SideEffectLinkedToNoteHash, MAX_NEW_NULLIFIERS_PER_CALL>,\n\n new_l2_to_l1_msgs: BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\n\n unencrypted_logs_hash: BoundedVec<Field, NUM_FIELDS_PER_SHA256>,\n unencrypted_logs_preimages_length: Field,\n\n historical_header: Header,\n prover_address: AztecAddress,\n}\n\nimpl PublicContext {\n pub fn new(inputs: PublicContextInputs, args_hash: Field) -> PublicContext {\n let empty_storage_read = StorageRead::empty();\n let empty_storage_update = StorageUpdateRequest::empty();\n PublicContext {\n inputs: inputs,\n side_effect_counter: inputs.call_context.start_side_effect_counter,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\n contract_storage_reads: BoundedVec::new(empty_storage_read),\n public_call_stack_hashes: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(SideEffect::empty()),\n new_nullifiers: BoundedVec::new(SideEffectLinkedToNoteHash::empty()),\n\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n \n unencrypted_logs_hash: BoundedVec::new(0),\n unencrypted_logs_preimages_length: 0,\n\n historical_header: inputs.historical_header,\n prover_address: AztecAddress::zero(),\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\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.storage_contract_address\n }\n\n pub fn this_portal_address(self) -> EthAddress {\n self.inputs.call_context.portal_contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.public_global_variables.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.public_global_variables.version\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n pub fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n pub fn timestamp(self) -> Field {\n self.inputs.public_global_variables.timestamp\n }\n\n pub fn finish(self) -> PublicCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_log_preimages_length = 0;\n\n\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_reads: self.contract_storage_reads.storage,\n return_values: self.return_values.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack_hashes: self.public_call_stack_hashes.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n unencrypted_logs_hash: unencrypted_logs_hash,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n historical_header: self.inputs.historical_header,\n prover_address: self.prover_address,\n };\n pub_circuit_pub_inputs\n }\n\n pub fn push_new_note_hash(&mut self, note_hash: Field) {\n let side_effect = SideEffect {\n value: note_hash,\n counter: self.side_effect_counter\n };\n self.new_commitments.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\n let side_effect = SideEffectLinkedToNoteHash {\n value: nullifier,\n note_hash: 0, // cannot nullify pending notes in public context\n counter: self.side_effect_counter\n };\n self.new_nullifiers.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n pub fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(self.historical_header.state.l1_to_l2_message_tree.root, this, self.this_portal_address(), self.chain_id(), self.version(), msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, 0)\n }\n\n pub fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n pub fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n pub fn call_public_function<ARGS_COUNT>(\n _self: Self,\n contract_address: AztecAddress, \n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n call_public_function_internal(\n contract_address, \n function_selector, \n args_hash,\n )\n }\n\n pub fn call_public_function_no_args(\n _self: Self,\n contract_address: AztecAddress, \n function_selector: FunctionSelector,\n ) -> [Field; RETURN_VALUES_LENGTH] {\n call_public_function_internal(\n contract_address, \n function_selector, \n 0,\n )\n }\n\n}\n\nstruct Context {\n private: Option<&mut PrivateContext>,\n public: Option<&mut PublicContext>,\n}\n\nimpl Context {\n pub fn private(context: &mut PrivateContext) -> Context {\n Context {\n private: Option::some(context),\n public: Option::none()\n }\n }\n\n pub fn public(context: &mut PublicContext) -> Context {\n Context {\n public: Option::some(context),\n private: Option::none()\n }\n }\n\n pub fn none() -> Context {\n Context {\n public: Option::none(),\n private: Option::none()\n }\n }\n}\n",
2856
+ "65": {
2857
+ "source": "mod private;\nmod public;\nmod avm;\n\nuse public::PublicContext;\nuse private::PrivateContext;\nuse avm::AVMContext;\n\nstruct Context {\n private: Option<&mut PrivateContext>,\n public: Option<&mut PublicContext>,\n}\n\nimpl Context {\n pub fn private(context: &mut PrivateContext) -> Context {\n Context {\n private: Option::some(context),\n public: Option::none()\n }\n }\n\n pub fn public(context: &mut PublicContext) -> Context {\n Context {\n public: Option::some(context),\n private: Option::none()\n }\n }\n\n pub fn none() -> Context {\n Context {\n public: Option::none(),\n private: Option::none()\n }\n }\n}\n",
2817
2858
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/context.nr"
2818
2859
  },
2819
- "75": {
2820
- "source": "use crate::abi::PublicContextInputs;\nuse crate::context::{\n PrivateContext,\n PublicContext,\n};\nuse crate::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_note_hash_for_read_or_nullify,\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, N>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface<Note, N>,\n broadcast: bool\n) {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, is_transient: true };\n let set_header = note_interface.set_header;\n set_header(note, header);\n // As `is_transient` is true, this will compute the inner note hsah\n let inner_note_hash = compute_note_hash_for_read_or_nullify(note_interface, *note);\n\n let serialize = note_interface.serialize;\n let serialized_note = serialize(*note);\n assert(notify_created_note(storage_slot, serialized_note, inner_note_hash) == 0);\n\n context.push_new_note_hash(inner_note_hash);\n\n if broadcast {\n let broadcast = note_interface.broadcast;\n broadcast(context, storage_slot, *note);\n }\n}\n\npub fn create_note_hash_from_public<Note, N>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note,\n note_interface: NoteInterface<Note, N>\n) {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, is_transient: true };\n let set_header = note_interface.set_header;\n set_header(note, header);\n let inner_note_hash = compute_note_hash_for_read_or_nullify(note_interface, *note);\n\n context.push_new_note_hash(inner_note_hash);\n}\n\npub fn destroy_note<Note, N>(\n context: &mut PrivateContext,\n note: Note,\n note_interface: NoteInterface<Note, N>\n) {\n let mut nullifier = 0;\n let mut nullified_commitment: Field = 0;\n let compute_nullifier = note_interface.compute_nullifier;\n nullifier = compute_nullifier(note, context);\n\n // We also need the note commitment corresponding to the \"nullifier\"\n let get_header = note_interface.get_header;\n let header = get_header(note);\n // `nullified_commitment` is used to inform the kernel which pending commitment\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\n // nonzero nonce implies \"persistable\" nullifier (nullifies a persistent/in-tree\n // commitment) in which case `nullified_commitment` is not used since the kernel\n // just siloes and forwards the nullifier to its output.\n if (header.is_transient) {\n // TODO(1718): Can we reuse the note commitment computed in `compute_nullifier`?\n nullified_commitment = compute_note_hash_for_read_or_nullify(note_interface, note);\n }\n assert(notify_nullified_note(nullifier, nullified_commitment) == 0);\n\n context.push_new_nullifier(nullifier, nullified_commitment)\n}\n",
2860
+ "72": {
2861
+ "source": "use crate::abi::PublicContextInputs;\nuse crate::context::{\n PrivateContext,\n PublicContext,\n};\nuse crate::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::{compute_note_hash_for_insertion, compute_note_hash_for_consumption},\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, N>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note,\n broadcast: bool\n) where Note: NoteInterface<N> {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, is_transient: true };\n // TODO: change this to note.setHeader(header) once https://github.com/noir-lang/noir/issues/4095 is fixed\n Note::set_header(note, header);\n // As `is_transient` is true, this will compute the inner note hsah\n let inner_note_hash = compute_note_hash_for_insertion(*note);\n\n // TODO: Strong typing required because of https://github.com/noir-lang/noir/issues/4088\n let serialized_note: [Field; N] = Note::serialize_content(*note);\n assert(notify_created_note(storage_slot, serialized_note, inner_note_hash) == 0);\n\n context.push_new_note_hash(inner_note_hash);\n\n if broadcast {\n Note::broadcast(*note, context, storage_slot);\n }\n}\n\npub fn create_note_hash_from_public<Note, N>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N> {\n let contract_address = (*context).this_address();\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, is_transient: true };\n // TODO: change this to note.setHeader(header) once https://github.com/noir-lang/noir/issues/4095 is fixed\n Note::set_header(note, header);\n let inner_note_hash = compute_note_hash_for_insertion(*note);\n\n context.push_new_note_hash(inner_note_hash);\n}\n\npub fn destroy_note<Note, N>(context: &mut PrivateContext, note: Note) where Note: NoteInterface<N> {\n let mut nullifier = 0;\n let mut consumed_note_hash: Field = 0;\n nullifier = note.compute_nullifier(context);\n\n // We also need the note hash corresponding to the \"nullifier\"\n let header = note.get_header();\n // `consumed_note_hash` is used to inform the kernel which pending note hash\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\n // nonzero nonce implies \"persistable\" nullifier (nullifies a persistent/in-tree\n // note hash) in which case `consumed_note_hash` is not used since the kernel\n // just siloes and forwards the nullifier to its output.\n if (header.is_transient) {\n // TODO(1718): Can we reuse the note hash computed in `compute_nullifier`?\n consumed_note_hash = compute_note_hash_for_consumption(note);\n }\n assert(notify_nullified_note(nullifier, consumed_note_hash) == 0);\n\n context.push_new_nullifier(nullifier, consumed_note_hash)\n}\n",
2821
2862
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/note/lifecycle.nr"
2822
2863
  },
2823
- "76": {
2824
- "source": "use crate::{\n context::PrivateContext,\n note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n },\n utils::arr_copy_slice,\n};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::{\n GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__UNIQUE_COMMITMENT,\n GENERATOR_INDEX__SILOED_COMMITMENT,\n },\n hash::pedersen_hash,\n};\n\nfn compute_inner_hash(storage_slot: Field, note_hash: Field) -> Field {\n // TODO(#1205) Do we need a generator index here?\n pedersen_hash([storage_slot, note_hash], 0)\n}\n\nfn compute_siloed_hash(contract_address: AztecAddress, inner_note_hash: Field) -> Field {\n let inputs = [contract_address.to_field(), inner_note_hash];\n pedersen_hash(inputs, GENERATOR_INDEX__SILOED_COMMITMENT)\n}\n\nfn compute_unique_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n pedersen_hash(inputs, GENERATOR_INDEX__UNIQUE_COMMITMENT)\n}\n\nfn compute_inner_note_hash<Note, N>(note_interface: NoteInterface<Note, N>, note: Note) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note);\n\n let compute_note_hash = note_interface.compute_note_hash;\n let note_hash = compute_note_hash(note);\n\n compute_inner_hash(header.storage_slot, note_hash)\n}\n\nfn compute_siloed_note_hash<Note, N>(note_interface: NoteInterface<Note, N>, note_with_header: Note) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n let inner_note_hash = compute_inner_note_hash(note_interface, note_with_header);\n\n compute_siloed_hash(header.contract_address, inner_note_hash)\n}\n\nfn compute_unique_siloed_note_hash<Note, N>(note_interface: NoteInterface<Note, N>, note_with_header: Note) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n let siloed_note_hash = compute_siloed_note_hash(note_interface, note_with_header);\n\n compute_unique_hash(header.nonce, siloed_note_hash)\n}\n\npub fn compute_siloed_nullifier<Note, N>(\n note_interface: NoteInterface<Note, N>,\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n let compute_nullifier = note_interface.compute_nullifier;\n let inner_nullifier = compute_nullifier(note_with_header, context);\n\n let input = [header.contract_address.to_field(), inner_nullifier];\n pedersen_hash(input, GENERATOR_INDEX__OUTER_NULLIFIER)\n}\n\npub fn compute_note_hash_for_read_or_nullify<Note, N>(note_interface: NoteInterface<Note, N>, note_with_header: Note) -> Field {\n let get_header = note_interface.get_header;\n let header = get_header(note_with_header);\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386)\n if (header.is_transient) {\n // If a note is transient, we just read the inner_note_hash (kernel will silo by contract address).\n compute_inner_note_hash(note_interface, note_with_header)\n } else if (header.nonce == 0) {\n // If not transient and nonce is zero, that means we are reading a public note.\n compute_siloed_note_hash(note_interface, note_with_header)\n } else {\n // When nonce is nonzero, that means we are reading a settled note (from tree) created in a\n // previous TX. So we need the unique_siloed_note_hash which has already been hashed with\n // contract address and then nonce. This hash will match the existing leaf in the private\n // data tree, so the kernel can just perform a membership check directly on this hash/leaf.\n compute_unique_siloed_note_hash(note_interface, note_with_header)\n }\n}\n\npub fn compute_note_hash_and_nullifier<Note, N, S>(\n note_interface: NoteInterface<Note, N>,\n note_header: NoteHeader,\n serialized_note: [Field; S]\n) -> [Field; 4] {\n let deserialize = note_interface.deserialize;\n let set_header = note_interface.set_header;\n let mut note = deserialize(arr_copy_slice(serialized_note, [0; N], 0));\n set_header(&mut note, note_header);\n\n let compute_note_hash = note_interface.compute_note_hash;\n let note_hash = compute_note_hash(note);\n let inner_note_hash = compute_inner_hash(note_header.storage_slot, note_hash);\n\n let siloed_note_hash = compute_siloed_hash(note_header.contract_address, inner_note_hash);\n\n let unique_siloed_note_hash = compute_unique_hash(note_header.nonce, siloed_note_hash);\n\n let compute_nullifier_without_context = note_interface.compute_nullifier_without_context;\n let inner_nullifier = compute_nullifier_without_context(note);\n\n [inner_note_hash, siloed_note_hash, unique_siloed_note_hash, inner_nullifier]\n}\n",
2864
+ "73": {
2865
+ "source": "use crate::{\n context::PrivateContext,\n note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n },\n utils::arr_copy_slice,\n};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n constants::{\n GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__UNIQUE_COMMITMENT,\n GENERATOR_INDEX__SILOED_COMMITMENT,\n },\n hash::pedersen_hash,\n};\n\nfn compute_siloed_hash(contract_address: AztecAddress, inner_note_hash: Field) -> Field {\n let inputs = [contract_address.to_field(), inner_note_hash];\n pedersen_hash(inputs, GENERATOR_INDEX__SILOED_COMMITMENT)\n}\n\nfn compute_unique_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n pedersen_hash(inputs, GENERATOR_INDEX__UNIQUE_COMMITMENT)\n}\n\nfn compute_inner_note_hash<Note, N>(note: Note) -> Field where Note: NoteInterface<N> {\n let header = note.get_header();\n let note_hash = note.compute_note_content_hash();\n\n // TODO(#1205) Do we need a generator index here?\n pedersen_hash([header.storage_slot, note_hash], 0)\n}\n\nfn compute_siloed_note_hash<Note, N>(note_with_header: Note) -> Field where Note: NoteInterface<N> {\n let header = note_with_header.get_header();\n\n let inner_note_hash = compute_inner_note_hash(note_with_header);\n\n compute_siloed_hash(header.contract_address, inner_note_hash)\n}\n\nfn compute_unique_siloed_note_hash<Note, N>(note_with_header: Note) -> Field where Note: NoteInterface<N> {\n let header = note_with_header.get_header();\n\n let siloed_note_hash = compute_siloed_note_hash(note_with_header);\n\n compute_unique_hash(header.nonce, siloed_note_hash)\n}\n\npub fn compute_siloed_nullifier<Note, N>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N> {\n let header = note_with_header.get_header();\n let inner_nullifier = note_with_header.compute_nullifier(context);\n\n let input = [header.contract_address.to_field(), inner_nullifier];\n pedersen_hash(input, GENERATOR_INDEX__OUTER_NULLIFIER)\n}\n\npub fn compute_note_hash_for_insertion<Note, N>(note: Note) -> Field where Note: NoteInterface<N> {\n compute_inner_note_hash(note)\n}\n\npub fn compute_note_hash_for_consumption<Note, N>(note: Note) -> Field where Note: NoteInterface<N> {\n let header = note.get_header();\n // There are 3 cases for reading a note intended for consumption:\n // 1. The note was inserted in this transaction, and is transient.\n // 2. The note was inserted in a previous transaction, and was inserted in public\n // 3. The note was inserted in a previous transaction, and was inserted in private\n\n if (header.is_transient) {\n // If a note is transient, we just read the inner_note_hash (kernel will silo by contract address).\n compute_inner_note_hash(note)\n } else if (header.nonce == 0) {\n // If not transient and nonce is zero, that means we are reading a public note.\n compute_siloed_note_hash(note)\n } else {\n // When nonce is nonzero, that means we are reading a settled note (from tree) created in a\n // previous TX. So we need the unique_siloed_note_hash which has already been hashed with\n // contract address and then nonce. This hash will match the existing leaf in the private\n // data tree, so the kernel can just perform a membership check directly on this hash/leaf.\n compute_unique_siloed_note_hash(note)\n }\n}\n\npub fn compute_note_hash_and_nullifier<T, N, S>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n serialized_note: [Field; S]\n) -> [Field; 4] where T: NoteInterface<N> {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n // TODO: change this to note.setHeader(header) once https://github.com/noir-lang/noir/issues/4095 is fixed\n T::set_header((&mut note), note_header);\n\n let inner_note_hash = compute_inner_note_hash(note);\n\n let siloed_note_hash = compute_siloed_hash(note_header.contract_address, inner_note_hash);\n\n let unique_siloed_note_hash = compute_unique_hash(note_header.nonce, siloed_note_hash);\n\n let inner_nullifier = note.compute_nullifier_without_context();\n\n [inner_note_hash, siloed_note_hash, unique_siloed_note_hash, inner_nullifier]\n}\n",
2825
2866
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/note/utils.nr"
2826
2867
  },
2827
- "80": {
2828
- "source": "use dep::std::option::Option;\nuse dep::protocol_types::constants::{\n MAX_READ_REQUESTS_PER_CALL,\n GET_NOTE_ORACLE_RETURN_LENGTH,\n GET_NOTES_ORACLE_RETURN_LENGTH,\n MAX_NOTES_PER_PAGE,\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\n};\nuse crate::context::PrivateContext;\nuse crate::note::{\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, Comparator},\n note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_or_nullify,\n};\nuse crate::oracle;\nuse crate::types::vec::BoundedVec;\n\nfn check_note_header<Note, N>(\n context: PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface<Note, N>,\n note: Note\n) {\n let get_header = note_interface.get_header;\n let header = get_header(note);\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address));\n assert(header.storage_slot == storage_slot);\n}\n\nfn check_note_fields<N>(fields: [Field; N], selects: BoundedVec<Option<Select>, N>) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n\n // Values are computed ahead of time because circuits evaluate all branches\n let isEqual = fields[select.field_index] == select.value;\n let isLt = fields[select.field_index].lt(select.value);\n\n if (select.comparator == Comparator.EQ) {\n assert(isEqual, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.NEQ) {\n assert(!isEqual, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LT) {\n assert(isLt, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LTE) {\n assert(isLt | isEqual, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GT) {\n assert(!isLt & !isEqual, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GTE) {\n assert(!isLt, \"Mismatch return note field.\");\n }\n }\n}\n\nfn check_notes_order<N>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let eq = fields_0[sort.field_index] == fields_1[sort.field_index];\n let lt = fields_0[sort.field_index] as u120 < fields_1[sort.field_index] as u120;\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, N>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface<Note, N>\n) -> Note {\n let note = get_note_internal(storage_slot, note_interface);\n\n check_note_header(*context, storage_slot, note_interface, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n\n context.push_read_request(note_hash_for_read_request);\n note\n}\n\npub fn get_notes<Note, N, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note_interface: NoteInterface<Note, N>,\n options: NoteGetterOptions<Note, N, FILTER_ARGS>\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] {\n let opt_notes = get_notes_internal(storage_slot, note_interface, options);\n let mut num_notes = 0;\n let mut prev_fields = [0; N];\n for i in 0..opt_notes.len() {\n let opt_note = opt_notes[i];\n if opt_note.is_some() {\n let note = opt_note.unwrap_unchecked();\n let serialize = note_interface.serialize;\n let fields = serialize(note);\n check_note_header(*context, storage_slot, note_interface, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_read_request(note_hash_for_read_request);\n\n num_notes += 1;\n };\n }\n if options.limit != 0 {\n assert(num_notes <= options.limit, \"Invalid number of return notes.\");\n }\n opt_notes\n}\n\nunconstrained fn get_note_internal<Note, N>(storage_slot: Field, note_interface: NoteInterface<Note, N>) -> Note {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n 0,\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n placeholder_note,\n placeholder_fields\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, N, FILTER_ARGS>(\n storage_slot: Field,\n note_interface: NoteInterface<Note, N>,\n options: NoteGetterOptions<Note, N, FILTER_ARGS>\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] {\n let (num_selects, select_by, select_values, select_comparators, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n note_interface,\n num_selects,\n select_by,\n select_values,\n select_comparators,\n sort_by,\n sort_order,\n options.limit,\n options.offset,\n placeholder_opt_notes,\n placeholder_fields\n );\n\n let filter = options.filter;\n let filter_args = options.filter_args;\n filter(opt_notes, filter_args)\n}\n\nunconstrained pub fn view_notes<Note, N>(\n storage_slot: Field,\n note_interface: NoteInterface<Note, N>,\n options: NoteViewerOptions<Note, N>\n) -> [Option<Note>; MAX_NOTES_PER_PAGE] {\n let (num_selects, select_by, select_values, select_comparators, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n oracle::notes::get_notes(\n storage_slot,\n note_interface,\n num_selects,\n select_by,\n select_values,\n select_comparators,\n sort_by,\n sort_order,\n options.limit,\n options.offset,\n placeholder_opt_notes,\n placeholder_fields\n )\n}\n\nunconstrained fn flatten_options<Note, N>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [Field; N], [u3; N], [u8; N], [u2; N]) {\n let mut num_selects = 0;\n let mut select_by = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by[num_selects] = select.unwrap_unchecked().field_index;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by[i] = sort.unwrap_unchecked().field_index;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (num_selects, select_by, select_values, select_comparators, sort_by, sort_order)\n}\n",
2868
+ "74": {
2869
+ "source": "use dep::protocol_types::address::AztecAddress;\nuse dep::protocol_types::traits::Empty;\n\nstruct NoteHeader {\n contract_address: AztecAddress,\n nonce: Field,\n storage_slot: Field,\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386)\n // Remove this and check the nonce to see whether a note is transient or not.\n is_transient: bool,\n}\n\nimpl Empty for NoteHeader {\n fn empty() -> Self {\n NoteHeader { contract_address: AztecAddress::zero(), nonce: 0, storage_slot: 0, is_transient: false }\n }\n}\n\nimpl NoteHeader {\n pub fn new(contract_address: AztecAddress, nonce: Field, storage_slot: Field) -> Self {\n NoteHeader { contract_address, nonce, storage_slot, is_transient: false }\n }\n}\n",
2870
+ "path": "/usr/src/yarn-project/aztec-nr/aztec/src/note/note_header.nr"
2871
+ },
2872
+ "77": {
2873
+ "source": "use dep::std::option::Option;\nuse dep::protocol_types::{\n constants::{\n MAX_READ_REQUESTS_PER_CALL,\n GET_NOTE_ORACLE_RETURN_LENGTH,\n GET_NOTES_ORACLE_RETURN_LENGTH,\n MAX_NOTES_PER_PAGE,\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\n },\n};\nuse crate::context::PrivateContext;\nuse crate::note::{\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, Comparator, NoteStatus},\n note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_consumption,\n};\nuse crate::oracle;\n\nfn check_note_header<Note, N>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N> {\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address));\n assert(header.storage_slot == storage_slot);\n}\n\nfn check_note_fields<N>(fields: [Field; N], selects: BoundedVec<Option<Select>, N>) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n\n // Values are computed ahead of time because circuits evaluate all branches\n let isEqual = fields[select.field_index] == select.value;\n let isLt = fields[select.field_index].lt(select.value);\n\n if (select.comparator == Comparator.EQ) {\n assert(isEqual, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.NEQ) {\n assert(!isEqual, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LT) {\n assert(isLt, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LTE) {\n assert(isLt | isEqual, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GT) {\n assert(!isLt & !isEqual, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GTE) {\n assert(!isLt, \"Mismatch return note field.\");\n }\n }\n}\n\nfn check_notes_order<N>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let eq = fields_0[sort.field_index] == fields_1[sort.field_index];\n let lt = fields_0[sort.field_index] as u120 < fields_1[sort.field_index] as u120;\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, N>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> Note where Note: NoteInterface<N> {\n let note = get_note_internal(storage_slot);\n\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_consumption(note);\n\n context.push_read_request(note_hash_for_read_request);\n note\n}\n\npub fn get_notes<Note, N, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, FILTER_ARGS>\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N> {\n let opt_notes = get_notes_internal(storage_slot, options);\n let mut num_notes = 0;\n let mut prev_fields = [0; N];\n for i in 0..opt_notes.len() {\n let opt_note = opt_notes[i];\n if opt_note.is_some() {\n let note = opt_note.unwrap_unchecked();\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_consumption(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_read_request(note_hash_for_read_request);\n\n num_notes += 1;\n };\n }\n if options.limit != 0 {\n assert(num_notes <= options.limit, \"Invalid number of return notes.\");\n }\n opt_notes\n}\n\nunconstrained fn get_note_internal<Note, N>(storage_slot: Field) -> Note where Note: NoteInterface<N> {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, N, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, FILTER_ARGS>\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N> {\n let (num_selects, select_by, select_values, select_comparators, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by,\n select_values,\n select_comparators,\n sort_by,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n let filter = options.filter;\n let filter_args = options.filter_args;\n filter(opt_notes, filter_args)\n}\n\nunconstrained pub fn view_notes<Note, N>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N>\n) -> [Option<Note>; MAX_NOTES_PER_PAGE] where Note: NoteInterface<N> {\n let (num_selects, select_by, select_values, select_comparators, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by,\n select_values,\n select_comparators,\n sort_by,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n )\n}\n\nunconstrained fn flatten_options<Note, N>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [Field; N], [u3; N], [u8; N], [u2; N]) {\n let mut num_selects = 0;\n let mut select_by = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by[num_selects] = select.unwrap_unchecked().field_index;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by[i] = sort.unwrap_unchecked().field_index;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (num_selects, select_by, select_values, select_comparators, sort_by, sort_order)\n}\n",
2829
2874
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/note/note_getter.nr"
2830
2875
  },
2831
- "83": {
2832
- "source": "use dep::std::option::Option;\nuse crate::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n};\nuse crate::utils::arr_copy_slice;\n\nuse dep::protocol_types::address::AztecAddress;\n\n#[oracle(notifyCreatedNote)]\nfn notify_created_note_oracle<N>(_storage_slot: Field, _serialized_note: [Field; N], _inner_note_hash: Field) -> Field {}\n\nunconstrained pub fn notify_created_note<N>(storage_slot: Field, serialized_note: [Field; N], inner_note_hash: Field) -> Field {\n notify_created_note_oracle(storage_slot, serialized_note, inner_note_hash)\n}\n\n#[oracle(notifyNullifiedNote)]\nfn notify_nullified_note_oracle<N>(_nullifier: Field, _inner_note_hash: Field) -> Field {}\n\nunconstrained pub fn notify_nullified_note<N>(nullifier: Field, inner_note_hash: Field) -> Field {\n notify_nullified_note_oracle(nullifier, inner_note_hash)\n}\n\n#[oracle(getNotes)]\nfn get_notes_oracle<N, S>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u3; N],\n _sort_by: [u8; N],\n _sort_order: [u2; N],\n _limit: u32,\n _offset: u32,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<N, S>(\n storage_slot: Field,\n num_selects: u8,\n select_by: [u8; N],\n select_values: [Field; N],\n select_comparators: [u3; N],\n sort_by: [u8; N],\n sort_order: [u2; N],\n limit: u32,\n offset: u32,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by,\n select_values,\n select_comparators,\n sort_by,\n sort_order,\n limit,\n offset,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, N, M, S, NS>(\n storage_slot: Field,\n note_interface: NoteInterface<Note, N>,\n num_selects: u8,\n select_by: [u8; M],\n select_values: [Field; M],\n select_comparators: [u3; M],\n sort_by: [u8; M],\n sort_order: [u2; M],\n limit: u32,\n offset: u32,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS] // TODO: Remove it and use `limit` to initialize the note array.\n) -> [Option<Note>; S] {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by,\n select_values,\n select_comparators,\n sort_by,\n sort_order,\n limit,\n offset,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n let deserialize = note_interface.deserialize;\n let set_header = note_interface.set_header;\n for i in 0..placeholder_opt_notes.len() {\n if i as u32 < num_notes {\n // lengths named as per typescript.\n let return_header_length: Field = 2; // num_notes & contract_address.\n let extra_preimage_length: Field = 2; // nonce & is_transient.\n let read_offset: Field = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let is_transient = fields[read_offset + 1] as bool;\n let header = NoteHeader { contract_address, nonce, storage_slot, is_transient };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = deserialize(serialized_note);\n set_header(&mut note, header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n#[oracle(checkNullifierExists)]\nfn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n",
2876
+ "80": {
2877
+ "source": "use dep::std::option::Option;\nuse crate::note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n};\nuse crate::utils::arr_copy_slice;\n\nuse dep::protocol_types::{\n address::AztecAddress,\n};\n\n#[oracle(notifyCreatedNote)]\nfn notify_created_note_oracle<N>(_storage_slot: Field, _serialized_note: [Field; N], _inner_note_hash: Field) -> Field {}\n\nunconstrained pub fn notify_created_note<N>(storage_slot: Field, serialized_note: [Field; N], inner_note_hash: Field) -> Field {\n notify_created_note_oracle(storage_slot, serialized_note, inner_note_hash)\n}\n\n#[oracle(notifyNullifiedNote)]\nfn notify_nullified_note_oracle<N>(_nullifier: Field, _inner_note_hash: Field) -> Field {}\n\nunconstrained pub fn notify_nullified_note<N>(nullifier: Field, inner_note_hash: Field) -> Field {\n notify_nullified_note_oracle(nullifier, inner_note_hash)\n}\n\n#[oracle(getNotes)]\nfn get_notes_oracle<N, S>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u3; N],\n _sort_by: [u8; N],\n _sort_order: [u2; N],\n _limit: u32,\n _offset: u32,\n _status: u2,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<N, S>(\n storage_slot: Field,\n num_selects: u8,\n select_by: [u8; N],\n select_values: [Field; N],\n select_comparators: [u3; N],\n sort_by: [u8; N],\n sort_order: [u2; N],\n limit: u32,\n offset: u32,\n status: u2,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by,\n select_values,\n select_comparators,\n sort_by,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, N, M, S, NS>(\n storage_slot: Field,\n num_selects: u8,\n select_by: [u8; M],\n select_values: [Field; M],\n select_comparators: [u3; M],\n sort_by: [u8; M],\n sort_order: [u2; M],\n limit: u32,\n offset: u32,\n status: u2,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N] // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S] where Note: NoteInterface<N> {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by,\n select_values,\n select_comparators,\n sort_by,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i as u32 < num_notes {\n // lengths named as per typescript.\n let return_header_length: Field = 2; // num_notes & contract_address.\n let extra_preimage_length: Field = 2; // nonce & is_transient.\n let read_offset: Field = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let is_transient = fields[read_offset + 1] as bool;\n let header = NoteHeader { contract_address, nonce, storage_slot, is_transient };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n // TODO: change this to note.setHeader(header) once https://github.com/noir-lang/noir/issues/4095 is fixed\n Note::set_header(&mut note, header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n#[oracle(checkNullifierExists)]\nfn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n",
2833
2878
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/notes.nr"
2834
2879
  },
2835
- "84": {
2880
+ "81": {
2836
2881
  "source": "use dep::protocol_types::{\n abis::function_selector::FunctionSelector,\n address::AztecAddress,\n};\n\n// contract_address + \n// args_hash +\n// crate::abi::FUNCTION_DATA_SIZE +\n// crate::abi::CALL_CONTEXT_SIZE\n// = 2 + 4 + 8\nglobal ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_SIZE: Field = 14;\n\n#[oracle(enqueuePublicFunctionCall)]\nfn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_SIZE] {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_SIZE] {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter\n )\n}\n",
2837
2882
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr"
2838
2883
  },
2839
- "89": {
2884
+ "86": {
2840
2885
  "source": "use dep::protocol_types::{\n address::AztecAddress,\n grumpkin_point::GrumpkinPoint,\n grumpkin_private_key::GrumpkinPrivateKey,\n};\n\nstruct NullifierKeyPair {\n account: AztecAddress,\n public_key: GrumpkinPoint,\n secret_key: GrumpkinPrivateKey,\n}\n\n#[oracle(getNullifierKeyPair)]\nfn get_nullifier_key_pair_oracle(_account: AztecAddress) -> [Field; 4] {}\n\nunconstrained fn get_nullifier_key_pair_internal(account: AztecAddress) -> NullifierKeyPair {\n let result = get_nullifier_key_pair_oracle(account);\n NullifierKeyPair {\n account,\n public_key: GrumpkinPoint { x: result[0], y: result[1] },\n secret_key: GrumpkinPrivateKey { high: result[2], low: result[3] }\n }\n}\n\npub fn get_nullifier_key_pair(account: AztecAddress) -> NullifierKeyPair {\n get_nullifier_key_pair_internal(account)\n}\n\npub fn get_nullifier_secret_key(account: AztecAddress) -> GrumpkinPrivateKey {\n get_nullifier_key_pair_internal(account).secret_key\n}\n",
2841
2886
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/nullifier_key.nr"
2842
2887
  },
2843
- "91": {
2844
- "source": "use dep::protocol_types::{\n abis::function_selector::FunctionSelector,\n address::AztecAddress,\n constants::CALL_PRIVATE_FUNCTION_RETURN_SIZE,\n};\n\n#[oracle(callPrivateFunction)]\nfn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32\n) -> [Field; CALL_PRIVATE_FUNCTION_RETURN_SIZE] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32\n) -> [Field; CALL_PRIVATE_FUNCTION_RETURN_SIZE] {\n call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter\n )\n}\n",
2888
+ "88": {
2889
+ "source": "use dep::protocol_types::{\n abis::{\n function_selector::FunctionSelector,\n private_call_stack_item::PrivateCallStackItem,\n },\n address::AztecAddress,\n constants::PRIVATE_CALL_STACK_ITEM_LENGTH,\n};\n\n#[oracle(callPrivateFunction)]\nfn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32\n) -> [Field; PRIVATE_CALL_STACK_ITEM_LENGTH] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32\n) -> PrivateCallStackItem {\n let fields = call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter\n );\n\n PrivateCallStackItem::deserialize(fields)\n}\n",
2845
2890
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/call_private_function.nr"
2846
2891
  },
2847
- "97": {
2848
- "source": "#[oracle(storageRead)]\nfn storage_read_oracle<N>(_storage_slot: Field, _number_of_elements: Field) -> [Field; N] {}\n\nunconstrained fn storage_read_oracle_wrapper<N>(_storage_slot: Field) -> [Field; N] {\n storage_read_oracle(_storage_slot, N)\n}\n\npub fn storage_read<T, N>(storage_slot: Field, deserialize: fn([Field; N]) -> T) -> T {\n let fields = storage_read_oracle_wrapper(storage_slot);\n deserialize(fields)\n}\n\n#[oracle(storageWrite)]\nfn storage_write_oracle<N>(_storage_slot: Field, _values: [Field; N]) -> [Field; N] {}\n\n// TODO: Remove return value.\nunconstrained pub fn storage_write<N>(storage_slot: Field, fields: [Field; N]) {\n let _hash = storage_write_oracle(storage_slot, fields);\n}\n",
2892
+ "94": {
2893
+ "source": "use dep::protocol_types::traits::{Deserialize, Serialize};\n\n#[oracle(storageRead)]\nfn storage_read_oracle<N>(_storage_slot: Field, _number_of_elements: Field) -> [Field; N] {}\n\nunconstrained fn storage_read_oracle_wrapper<N>(_storage_slot: Field) -> [Field; N] {\n storage_read_oracle(_storage_slot, N)\n}\n\npub fn storage_read<N>(storage_slot: Field) -> [Field; N] {\n storage_read_oracle_wrapper(storage_slot)\n}\n\n#[oracle(storageWrite)]\nfn storage_write_oracle<N>(_storage_slot: Field, _values: [Field; N]) -> [Field; N] {}\n\nunconstrained pub fn storage_write<N>(storage_slot: Field, fields: [Field; N]) {\n let _hash = storage_write_oracle(storage_slot, fields);\n}\n",
2849
2894
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/storage.nr"
2850
2895
  },
2851
- "99": {
2852
- "source": "use dep::protocol_types::{\n address::{\n AztecAddress,\n PartialAddress,\n },\n grumpkin_point::GrumpkinPoint,\n};\n\n#[oracle(getPublicKeyAndPartialAddress)]\nfn get_public_key_and_partial_address_oracle(_address: AztecAddress) -> [Field; 3] {}\n\nunconstrained fn get_public_key_and_partial_address_internal(address: AztecAddress) -> [Field; 3] {\n get_public_key_and_partial_address_oracle(address)\n}\n\npub fn get_public_key(address: AztecAddress) -> GrumpkinPoint {\n let result = get_public_key_and_partial_address_internal(address);\n let pub_key = GrumpkinPoint::new(result[0], result[1]);\n let partial_address = PartialAddress::from_field(result[2]);\n\n let calculated_address = AztecAddress::compute(pub_key, partial_address);\n assert(calculated_address.eq(address));\n\n pub_key\n}\n",
2896
+ "96": {
2897
+ "source": "use dep::protocol_types::{\n address::{\n AztecAddress,\n PartialAddress,\n PublicKeysHash,\n },\n grumpkin_point::GrumpkinPoint,\n};\n\n#[oracle(getPublicKeyAndPartialAddress)]\nfn get_public_key_and_partial_address_oracle(_address: AztecAddress) -> [Field; 3] {}\n\nunconstrained fn get_public_key_and_partial_address_internal(address: AztecAddress) -> [Field; 3] {\n get_public_key_and_partial_address_oracle(address)\n}\n\npub fn get_public_key(address: AztecAddress) -> GrumpkinPoint {\n let result = get_public_key_and_partial_address_internal(address);\n let pub_key = GrumpkinPoint::new(result[0], result[1]);\n let partial_address = PartialAddress::from_field(result[2]);\n\n let calculated_address = AztecAddress::compute(PublicKeysHash::compute(pub_key), partial_address);\n assert(calculated_address.eq(address));\n\n pub_key\n}\n",
2853
2898
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/get_public_key.nr"
2854
2899
  },
2855
- "101": {
2900
+ "98": {
2856
2901
  "source": "use dep::protocol_types::{\n address::AztecAddress,\n constants::NUM_FIELDS_PER_SHA256,\n grumpkin_point::GrumpkinPoint,\n};\n\n// TODO: Should take encrypted data.\n#[oracle(emitEncryptedLog)]\nfn emit_encrypted_log_oracle<N>(\n _contract_address: AztecAddress,\n _storage_slot: Field,\n _encryption_pub_key: GrumpkinPoint,\n _preimage: [Field; N]\n) -> Field {}\n\nunconstrained pub fn emit_encrypted_log<N>(\n contract_address: AztecAddress,\n storage_slot: Field,\n encryption_pub_key: GrumpkinPoint,\n preimage: [Field; N]\n) -> [Field; NUM_FIELDS_PER_SHA256] {\n [emit_encrypted_log_oracle(contract_address, storage_slot, encryption_pub_key, preimage), 0]\n}\n\n#[oracle(emitUnencryptedLog)]\nfn emit_unencrypted_log_oracle<T>(_contract_address: AztecAddress, _event_selector: Field, _message: T) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log<T>(\n contract_address: AztecAddress,\n event_selector: Field,\n message: T\n) -> [Field; NUM_FIELDS_PER_SHA256] {\n // https://github.com/AztecProtocol/aztec-packages/issues/885\n [emit_unencrypted_log_oracle(contract_address, event_selector, message), 0]\n}\n",
2857
2902
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/logs.nr"
2858
2903
  },
2904
+ "99": {
2905
+ "source": "use crate::{\n abi::PublicContextInputs,\n messaging::process_l1_to_l2_message,\n oracle::{\n arguments,\n public_call::call_public_function_internal,\n },\n};\nuse dep::protocol_types::{\n abis::{\n global_variables::GlobalVariables,\n function_selector::FunctionSelector,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem,\n public_circuit_public_inputs::PublicCircuitPublicInputs,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash},\n },\n address::{\n AztecAddress,\n EthAddress,\n },\n constants::{\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_READ_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n },\n contrakt::{\n storage_read::StorageRead,\n storage_update_request::StorageUpdateRequest,\n },\n hash::hash_args,\n header::Header,\n utils::reader::Reader,\n};\n\nstruct PublicContext {\n inputs: PublicContextInputs,\n side_effect_counter: u32,\n\n args_hash : Field,\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\n\n contract_storage_update_requests: BoundedVec<StorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\n contract_storage_reads: BoundedVec<StorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\n public_call_stack_hashes: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n\n new_commitments: BoundedVec<SideEffect, MAX_NEW_COMMITMENTS_PER_CALL>,\n new_nullifiers: BoundedVec<SideEffectLinkedToNoteHash, MAX_NEW_NULLIFIERS_PER_CALL>,\n\n new_l2_to_l1_msgs: BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\n\n unencrypted_logs_hash: BoundedVec<Field, NUM_FIELDS_PER_SHA256>,\n unencrypted_logs_preimages_length: Field,\n\n // Header of a block whose state is used during public execution. Set by sequencer to be a header of a block\n // previous to the one in which the tx is included.\n historical_header: Header,\n prover_address: AztecAddress,\n}\n\nimpl PublicContext {\n pub fn new(inputs: PublicContextInputs, args_hash: Field) -> PublicContext {\n let empty_storage_read = StorageRead::empty();\n let empty_storage_update = StorageUpdateRequest::empty();\n PublicContext {\n inputs: inputs,\n side_effect_counter: inputs.call_context.start_side_effect_counter,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\n contract_storage_reads: BoundedVec::new(empty_storage_read),\n public_call_stack_hashes: BoundedVec::new(0),\n\n new_commitments: BoundedVec::new(SideEffect::empty()),\n new_nullifiers: BoundedVec::new(SideEffectLinkedToNoteHash::empty()),\n\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n\n unencrypted_logs_hash: BoundedVec::new(0),\n unencrypted_logs_preimages_length: 0,\n\n historical_header: inputs.historical_header,\n prover_address: AztecAddress::zero(),\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\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.storage_contract_address\n }\n\n pub fn this_portal_address(self) -> EthAddress {\n self.inputs.call_context.portal_contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.public_global_variables.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.public_global_variables.version\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n pub fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n pub fn timestamp(self) -> Field {\n self.inputs.public_global_variables.timestamp\n }\n\n pub fn finish(self) -> PublicCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_log_preimages_length = 0;\n\n\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_reads: self.contract_storage_reads.storage,\n return_values: self.return_values.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack_hashes: self.public_call_stack_hashes.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n unencrypted_logs_hash: unencrypted_logs_hash,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n historical_header: self.inputs.historical_header,\n prover_address: self.prover_address,\n };\n pub_circuit_pub_inputs\n }\n\n pub fn push_new_note_hash(&mut self, note_hash: Field) {\n let side_effect = SideEffect {\n value: note_hash,\n counter: self.side_effect_counter\n };\n self.new_commitments.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\n let side_effect = SideEffectLinkedToNoteHash {\n value: nullifier,\n note_hash: 0, // cannot nullify pending notes in public context\n counter: self.side_effect_counter\n };\n self.new_nullifiers.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn message_portal(&mut self, content: Field) {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\n pub fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(self.historical_header.state.l1_to_l2_message_tree.root, this, self.this_portal_address(), self.chain_id(), self.version(), msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, 0)\n }\n\n pub fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n pub fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\n let _void1 = self;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n pub fn call_public_function<ARGS_COUNT>(\n _self: Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n call_public_function_internal(\n contract_address,\n function_selector,\n args_hash,\n )\n }\n\n pub fn call_public_function_no_args(\n _self: Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> [Field; RETURN_VALUES_LENGTH] {\n call_public_function_internal(\n contract_address,\n function_selector,\n 0,\n )\n }\n\n}\n",
2906
+ "path": "/usr/src/yarn-project/aztec-nr/aztec/src/context/public.nr"
2907
+ },
2908
+ "100": {
2909
+ "source": "use crate::{\n abi::PrivateContextInputs,\n key::nullifier_key::validate_nullifier_key_against_address,\n messaging::process_l1_to_l2_message,\n oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n enqueue_public_function_call::enqueue_public_function_call_internal,\n context::get_portal_address,\n header::get_header_at,\n nullifier_key::{get_nullifier_key_pair, NullifierKeyPair},\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext,\n function_data::FunctionData,\n function_selector::FunctionSelector,\n nullifier_key_validation_request::NullifierKeyValidationRequest,\n private_call_stack_item::PrivateCallStackItem,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem,\n public_circuit_public_inputs::PublicCircuitPublicInputs,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash},\n },\n address::{\n AztecAddress,\n EthAddress,\n },\n constants::{\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n },\n contract_class::ContractClassId,\n contrakt::{\n deployment_data::ContractDeploymentData,\n storage_read::StorageRead,\n storage_update_request::StorageUpdateRequest,\n },\n grumpkin_private_key::GrumpkinPrivateKey,\n hash::hash_args,\n header::Header,\n utils::reader::Reader,\n};\nuse dep::std::option::Option;\n\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n// use dep::std::collections::vec::Vec;\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n meta_hwm: u32,\n\n args_hash : Field,\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\n\n read_requests: BoundedVec<SideEffect, MAX_READ_REQUESTS_PER_CALL>,\n nullifier_key_validation_requests: BoundedVec<NullifierKeyValidationRequest, MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n new_commitments: BoundedVec<SideEffect, MAX_NEW_COMMITMENTS_PER_CALL>,\n new_nullifiers: BoundedVec<SideEffectLinkedToNoteHash, MAX_NEW_NULLIFIERS_PER_CALL>,\n\n private_call_stack_hashes : BoundedVec<Field, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_stack_hashes : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n new_l2_to_l1_msgs : BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec<Field>,\n // unencrypted_logs_preimages: Vec<Field>,\n\n nullifier_key: Option<NullifierKeyPair>,\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs: inputs,\n side_effect_counter: inputs.call_context.start_side_effect_counter,\n meta_hwm: 0,\n\n args_hash: args_hash,\n return_values: BoundedVec::new(0),\n\n read_requests: BoundedVec::new(SideEffect::empty()),\n nullifier_key_validation_requests: BoundedVec::new(NullifierKeyValidationRequest::empty()),\n\n new_commitments: BoundedVec::new(SideEffect::empty()),\n new_nullifiers: BoundedVec::new(SideEffectLinkedToNoteHash::empty()),\n\n historical_header: inputs.historical_header,\n\n private_call_stack_hashes: BoundedVec::new(0),\n public_call_stack_hashes: BoundedVec::new(0),\n new_l2_to_l1_msgs: BoundedVec::new(0),\n\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\n\n nullifier_key: Option::none(),\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.storage_contract_address\n }\n\n pub fn this_portal_address(self) -> EthAddress {\n self.inputs.call_context.portal_contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.private_global_variables.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.private_global_variables.version\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\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_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\n let encrypted_log_preimages_length = 0;\n let unencrypted_log_preimages_length = 0;\n\n let priv_circuit_pub_inputs = PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n return_values: self.return_values.storage,\n meta_hwm: self.meta_hwm,\n read_requests: self.read_requests.storage,\n nullifier_key_validation_requests: self.nullifier_key_validation_requests.storage,\n new_commitments: self.new_commitments.storage,\n new_nullifiers: self.new_nullifiers.storage,\n private_call_stack_hashes: self.private_call_stack_hashes.storage,\n public_call_stack_hashes: self.public_call_stack_hashes.storage,\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\n end_side_effect_counter: self.side_effect_counter,\n encrypted_logs_hash: encrypted_logs_hash,\n unencrypted_logs_hash: unencrypted_logs_hash,\n encrypted_log_preimages_length: encrypted_log_preimages_length,\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\n historical_header: self.historical_header,\n contract_deployment_data: self.inputs.contract_deployment_data,\n chain_id: self.inputs.private_global_variables.chain_id,\n version: self.inputs.private_global_variables.version,\n };\n priv_circuit_pub_inputs\n }\n\n pub fn push_read_request(&mut self, read_request: Field) {\n let side_effect = SideEffect {\n value: read_request,\n counter: self.side_effect_counter,\n };\n self.read_requests.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn push_new_note_hash(&mut self, note_hash: Field) {\n let side_effect = SideEffect {\n value: note_hash,\n counter: self.side_effect_counter,\n };\n self.new_commitments.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\n let side_effect = SideEffectLinkedToNoteHash {\n value: nullifier,\n note_hash: nullified_commitment,\n counter: self.side_effect_counter,\n };\n self.new_nullifiers.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn request_nullifier_secret_key(&mut self, account: AztecAddress) -> GrumpkinPrivateKey {\n let key_pair = if self.nullifier_key.is_none() {\n let key_pair = get_nullifier_key_pair(account);\n validate_nullifier_key_against_address(account, key_pair.public_key);\n let request = NullifierKeyValidationRequest { public_key: key_pair.public_key, secret_key: key_pair.secret_key };\n self.nullifier_key_validation_requests.push(request);\n self.nullifier_key = Option::some(key_pair);\n key_pair\n } else {\n let key_pair = self.nullifier_key.unwrap_unchecked();\n // If MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL is larger than 1, need to update the way the key pair is cached.\n assert(MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL == 1);\n assert(key_pair.account == account, \"Cannot query nullifier key for more than one account per call\");\n key_pair\n };\n key_pair.secret_key\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, content: Field)\n // docs:end:context_message_portal\n {\n self.new_l2_to_l1_msgs.push(content);\n }\n\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\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 msg_key: Field,\n content: Field,\n secret: Field\n )\n // docs:end:context_consume_l1_to_l2_message\n {\n let nullifier = process_l1_to_l2_message(self.historical_header.state.l1_to_l2_message_tree.root, self.this_address(), self.this_portal_address(), self.chain_id(), self.version(), msg_key, content, secret);\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, 0)\n }\n // docs:end:consume_l1_to_l2_message\n\n pub fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n pub fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\n let _void1 = self.inputs;\n let _void2 = log;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\n\n pub fn call_private_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> [Field; RETURN_VALUES_LENGTH] {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n pub fn call_private_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field\n ) -> [Field; RETURN_VALUES_LENGTH] {\n let item = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n self.side_effect_counter,\n );\n\n assert_eq(item.public_inputs.call_context.start_side_effect_counter, self.side_effect_counter);\n self.side_effect_counter = item.public_inputs.end_side_effect_counter + 1;\n\n assert(contract_address.eq(item.contract_address));\n assert(function_selector.eq(item.function_data.selector));\n\n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address));\n assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address));\n\n self.private_call_stack_hashes.push(item.hash());\n\n item.public_inputs.return_values\n }\n\n pub fn call_public_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field\n ) {\n let fields = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n self.side_effect_counter\n );\n\n let mut reader = Reader::new(fields);\n\n // Note: Not using PublicCirclePublicInputs::deserialize here, because everything below args_hash is 0 and\n // there is no more data in fields because there is only ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_SIZE fields!\n let item = PublicCallStackItem {\n contract_address: AztecAddress::from_field(reader.read()),\n function_data: reader.read_struct(FunctionData::deserialize),\n public_inputs: PublicCircuitPublicInputs {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n return_values: [0; RETURN_VALUES_LENGTH],\n contract_storage_update_requests: [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [SideEffect::empty(); MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [SideEffectLinkedToNoteHash::empty(); MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\n unencrypted_log_preimages_length: 0,\n historical_header: Header::empty(),\n prover_address: AztecAddress::zero(),\n },\n is_execution_request: true,\n };\n reader.finish();\n\n assert(contract_address.eq(item.contract_address));\n assert(function_selector.eq(item.function_data.selector));\n\n assert_eq(item.public_inputs.call_context.start_side_effect_counter, self.side_effect_counter);\n // We increment the sideffect counter by one, to account for the call itself being a side effect.\n self.side_effect_counter = self.side_effect_counter + 1;\n\n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\n // the msg_sender in the nested call to be equal to our address, and the execution context address\n // for the nested call to be equal to the address we actually called.\n assert(item.public_inputs.call_context.is_delegate_call == false);\n assert(item.public_inputs.call_context.is_static_call == false);\n assert(item.public_inputs.call_context.is_contract_deployment == false);\n assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address));\n assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address));\n\n self.public_call_stack_hashes.push(item.hash());\n }\n}\n",
2910
+ "path": "/usr/src/yarn-project/aztec-nr/aztec/src/context/private.nr"
2911
+ },
2859
2912
  "102": {
2860
- "source": "global ARGS_LENGTH: Field = 16;\nglobal RETURN_VALUES_LENGTH: Field = 4;\n\n/**\n * Convention for constant array lengths are mainly divided in 2 classes:\n * - FUNCTION CALL\n * - TRANSACTION\n *\n * Agreed convention is to use MAX_XXX_PER_CALL resp. MAX_XXX_PER_TX, where XXX denotes a type of element such as\n * commitment, or nullifier, e.g.,:\n * - MAX_NEW_NULLIFIERS_PER_CALL\n * - MAX_NEW_COMMITMENTS_PER_TX\n *\n * In the kernel circuits, we accumulate elements such as commitments and the nullifiers from all functions calls in a\n * transaction. Therefore, we always must have:\n * MAX_XXX_PER_TX ≥ MAX_XXX_PER_CALL\n *\n * For instance:\n * MAX_NEW_COMMITMENTS_PER_TX ≥ MAX_NEW_COMMITMENTS_PER_CALL\n * MAX_NEW_NULLIFIERS_PER_TX ≥ MAX_NEW_NULLIFIERS_PER_CALL\n *\n */\n\n// docs:start:constants\n// \"PER CALL\" CONSTANTS\nglobal MAX_NEW_COMMITMENTS_PER_CALL: Field = 16;\nglobal MAX_NEW_NULLIFIERS_PER_CALL: Field = 16;\nglobal MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL: Field = 4;\nglobal MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL: Field = 4;\nglobal MAX_NEW_L2_TO_L1_MSGS_PER_CALL: Field = 2;\nglobal MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL: Field = 16;\nglobal MAX_PUBLIC_DATA_READS_PER_CALL: Field = 16;\nglobal MAX_READ_REQUESTS_PER_CALL: Field = 32;\nglobal MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL: Field = 1;\n\n// \"PER TRANSACTION\" CONSTANTS\nglobal MAX_NEW_COMMITMENTS_PER_TX: Field = 64;\nglobal MAX_NEW_NULLIFIERS_PER_TX: Field = 64;\nglobal MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX: Field = 8;\nglobal MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX: Field = 8;\nglobal MAX_NEW_L2_TO_L1_MSGS_PER_TX: Field = 2;\nglobal MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX: Field = 16;\nglobal MAX_PUBLIC_DATA_READS_PER_TX: Field = 16;\nglobal MAX_NEW_CONTRACTS_PER_TX: Field = 1;\nglobal MAX_OPTIONALLY_REVEALED_DATA_LENGTH_PER_TX: Field = 4;\nglobal MAX_READ_REQUESTS_PER_TX: Field = 128;\nglobal MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX: Field = 4;\nglobal NUM_ENCRYPTED_LOGS_HASHES_PER_TX: Field = 1;\nglobal NUM_UNENCRYPTED_LOGS_HASHES_PER_TX: Field = 1;\n// docs:end:constants\n\n// ROLLUP CONTRACT CONSTANTS - constants used only in l1-contracts\nglobal NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP: Field = 16;\n\n// TREES RELATED CONSTANTS\nglobal VK_TREE_HEIGHT: Field = 3;\nglobal FUNCTION_TREE_HEIGHT: Field = 5;\nglobal CONTRACT_TREE_HEIGHT: Field = 16;\nglobal NOTE_HASH_TREE_HEIGHT: Field = 32;\nglobal PUBLIC_DATA_TREE_HEIGHT: Field = 40;\nglobal NULLIFIER_TREE_HEIGHT: Field = 20;\nglobal L1_TO_L2_MSG_TREE_HEIGHT: Field = 16;\nglobal ROLLUP_VK_TREE_HEIGHT: Field = 8;\n\n// SUB-TREES RELATED CONSTANTS\nglobal CONTRACT_SUBTREE_HEIGHT: Field = 0;\nglobal CONTRACT_SUBTREE_SIBLING_PATH_LENGTH: Field = 16;\nglobal NOTE_HASH_SUBTREE_HEIGHT: Field = 6;\nglobal NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH: Field = 26;\nglobal NULLIFIER_SUBTREE_HEIGHT: Field = 6;\nglobal PUBLIC_DATA_SUBTREE_HEIGHT: Field = 4;\nglobal ARCHIVE_HEIGHT: Field = 16;\nglobal NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH: Field = 14;\nglobal PUBLIC_DATA_SUBTREE_SIBLING_PATH_LENGTH: Field = 36;\nglobal L1_TO_L2_MSG_SUBTREE_HEIGHT: Field = 4;\nglobal L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH: Field = 12;\n\n// MISC CONSTANTS\nglobal FUNCTION_SELECTOR_NUM_BYTES: Field = 4;\nglobal MAPPING_SLOT_PEDERSEN_SEPARATOR: Field = 4;\n// sha256 hash is stored in two fields to accommodate all 256-bits of the hash\nglobal NUM_FIELDS_PER_SHA256: Field = 2;\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\n\n// NOIR CONSTANTS - constants used only in yarn-packages/noir-contracts\n// Some are defined here because Noir doesn't yet support globals referencing other globals yet.\n// Move these constants to a noir file once the issue bellow is resolved:\n// https://github.com/noir-lang/noir/issues/1734\nglobal L1_TO_L2_MESSAGE_LENGTH: Field = 8;\nglobal L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH: Field = 25;\nglobal MAX_NOTE_FIELDS_LENGTH: Field = 20;\n// GET_NOTE_ORACLE_RETURN_LENGT = MAX_NOTE_FIELDS_LENGTH + 1 + 2\n// The plus 1 is 1 extra field for nonce.\n// + 2 for EXTRA_DATA: [number_of_return_notes, contract_address]\nglobal GET_NOTE_ORACLE_RETURN_LENGTH: Field = 23;\nglobal MAX_NOTES_PER_PAGE: Field = 10;\n// VIEW_NOTE_ORACLE_RETURN_LENGTH = MAX_NOTES_PER_PAGE * (MAX_NOTE_FIELDS_LENGTH + 1) + 2;\nglobal VIEW_NOTE_ORACLE_RETURN_LENGTH: Field = 212;\nglobal CALL_CONTEXT_LENGTH: Field = 8;\nglobal HEADER_LENGTH: Field = 18; // 2 for last_archive, 2 for body hash, 10 for state reference, 4 for global vars \nglobal FUNCTION_DATA_LENGTH: Field = 4;\nglobal CONTRACT_DEPLOYMENT_DATA_LENGTH: Field = 6;\n// Change this ONLY if you have changed the PrivateCircuitPublicInputs structure.\n// In other words, if the structure/size of the public inputs of a function call changes then we should change this\n// constant as well CALL_PRIVATE_FUNCTION_RETURN_SIZE and PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH\nglobal PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH: Field = 200;\nglobal CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH: Field = 3;\nglobal CONTRACT_STORAGE_READ_LENGTH: Field = 2;\n// Change this ONLY if you have changed the PublicCircuitPublicInputs structure.\nglobal PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH: Field = 190;\nglobal GET_NOTES_ORACLE_RETURN_LENGTH: Field = 674;\nglobal CALL_PRIVATE_FUNCTION_RETURN_SIZE: Field = 210;\nglobal PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH: Field = 98;\nglobal PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH: Field = 188;\nglobal COMMITMENTS_NUM_BYTES_PER_BASE_ROLLUP: Field = 2048;\nglobal NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP: Field = 2048;\nglobal PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP: Field = 1024;\nglobal CONTRACTS_NUM_BYTES_PER_BASE_ROLLUP: Field = 32;\nglobal CONTRACT_DATA_NUM_BYTES_PER_BASE_ROLLUP: Field = 64;\nglobal CONTRACT_DATA_NUM_BYTES_PER_BASE_ROLLUP_UNPADDED: Field = 52;\nglobal L2_TO_L1_MSGS_NUM_BYTES_PER_BASE_ROLLUP: Field = 64;\nglobal LOGS_HASHES_NUM_BYTES_PER_BASE_ROLLUP: Field = 64;\n\n/**\n * Enumerate the hash_indices which are used for pedersen hashing.\n * We start from 1 to avoid the default generators. The generator indices are listed\n * based on the number of elements each index hashes. The following conditions must be met:\n *\n * +-----------+-------------------------------+----------------------+\n * | Hash size | Number of elements hashed (n) | Condition to use |\n * |-----------+-------------------------------+----------------------|\n * | LOW | n ≤ 8 | 0 < hash_index ≤ 32 |\n * | MID | 8 < n ≤ 16 | 32 < hash_index ≤ 40 |\n * | HIGH | 16 < n ≤ 48 | 40 < hash_index ≤ 48 |\n * +-----------+-------------------------------+----------------------+\n *\n * Note: When modifying, modify `GeneratorIndexPacker` in packer.hpp accordingly.\n */\n// Indices with size ≤ 8\nglobal GENERATOR_INDEX__COMMITMENT = 1;\nglobal GENERATOR_INDEX__COMMITMENT_NONCE = 2;\nglobal GENERATOR_INDEX__UNIQUE_COMMITMENT = 3;\nglobal GENERATOR_INDEX__SILOED_COMMITMENT = 4;\nglobal GENERATOR_INDEX__NULLIFIER = 5;\nglobal GENERATOR_INDEX__INITIALIZATION_NULLIFIER = 6;\nglobal GENERATOR_INDEX__OUTER_NULLIFIER = 7;\nglobal GENERATOR_INDEX__PUBLIC_DATA_READ = 8;\nglobal GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST = 9;\nglobal GENERATOR_INDEX__FUNCTION_DATA = 10;\nglobal GENERATOR_INDEX__FUNCTION_LEAF = 11;\nglobal GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA = 12;\nglobal GENERATOR_INDEX__CONSTRUCTOR = 13;\nglobal GENERATOR_INDEX__CONSTRUCTOR_ARGS = 14;\nglobal GENERATOR_INDEX__CONTRACT_ADDRESS = 15;\nglobal GENERATOR_INDEX__CONTRACT_LEAF = 16;\nglobal GENERATOR_INDEX__CALL_CONTEXT = 17;\nglobal GENERATOR_INDEX__CALL_STACK_ITEM = 18;\nglobal GENERATOR_INDEX__CALL_STACK_ITEM_2 = 19;\nglobal GENERATOR_INDEX__L1_TO_L2_MESSAGE_SECRET = 20;\nglobal GENERATOR_INDEX__L2_TO_L1_MSG = 21;\nglobal GENERATOR_INDEX__TX_CONTEXT = 22;\nglobal GENERATOR_INDEX__PUBLIC_LEAF_INDEX = 23;\nglobal GENERATOR_INDEX__PUBLIC_DATA_LEAF = 24;\nglobal GENERATOR_INDEX__SIGNED_TX_REQUEST = 25;\nglobal GENERATOR_INDEX__GLOBAL_VARIABLES = 26;\nglobal GENERATOR_INDEX__PARTIAL_ADDRESS = 27;\nglobal GENERATOR_INDEX__BLOCK_HASH = 28;\nglobal GENERATOR_INDEX__SIDE_EFFECT = 29;\n// Indices with size ≤ 16\nglobal GENERATOR_INDEX__TX_REQUEST = 33;\nglobal GENERATOR_INDEX__SIGNATURE_PAYLOAD = 34;\n// Indices with size ≤ 44\nglobal GENERATOR_INDEX__VK = 41;\nglobal GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS = 42;\nglobal GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS = 43;\nglobal GENERATOR_INDEX__FUNCTION_ARGS = 44;\n",
2913
+ "source": "global ARGS_LENGTH: Field = 16;\nglobal RETURN_VALUES_LENGTH: Field = 4;\n\n/**\n * Convention for constant array lengths are mainly divided in 2 classes:\n * - FUNCTION CALL\n * - TRANSACTION\n *\n * Agreed convention is to use MAX_XXX_PER_CALL resp. MAX_XXX_PER_TX, where XXX denotes a type of element such as\n * commitment, or nullifier, e.g.,:\n * - MAX_NEW_NULLIFIERS_PER_CALL\n * - MAX_NEW_COMMITMENTS_PER_TX\n *\n * In the kernel circuits, we accumulate elements such as commitments and the nullifiers from all functions calls in a\n * transaction. Therefore, we always must have:\n * MAX_XXX_PER_TX ≥ MAX_XXX_PER_CALL\n *\n * For instance:\n * MAX_NEW_COMMITMENTS_PER_TX ≥ MAX_NEW_COMMITMENTS_PER_CALL\n * MAX_NEW_NULLIFIERS_PER_TX ≥ MAX_NEW_NULLIFIERS_PER_CALL\n *\n */\n\n// docs:start:constants\n// \"PER CALL\" CONSTANTS\nglobal MAX_NEW_COMMITMENTS_PER_CALL: Field = 16;\nglobal MAX_NEW_NULLIFIERS_PER_CALL: Field = 16;\nglobal MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL: Field = 4;\nglobal MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL: Field = 4;\nglobal MAX_NEW_L2_TO_L1_MSGS_PER_CALL: Field = 2;\nglobal MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL: Field = 16;\nglobal MAX_PUBLIC_DATA_READS_PER_CALL: Field = 16;\nglobal MAX_READ_REQUESTS_PER_CALL: Field = 32;\nglobal MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL: Field = 1;\n\n// \"PER TRANSACTION\" CONSTANTS\nglobal MAX_NEW_COMMITMENTS_PER_TX: Field = 64;\nglobal MAX_NEW_NULLIFIERS_PER_TX: Field = 64;\nglobal MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX: Field = 8;\nglobal MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX: Field = 8;\nglobal MAX_NEW_L2_TO_L1_MSGS_PER_TX: Field = 2;\nglobal MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX: Field = 16;\nglobal MAX_PUBLIC_DATA_READS_PER_TX: Field = 16;\nglobal MAX_NEW_CONTRACTS_PER_TX: Field = 1;\nglobal MAX_OPTIONALLY_REVEALED_DATA_LENGTH_PER_TX: Field = 4;\nglobal MAX_READ_REQUESTS_PER_TX: Field = 128;\nglobal MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX: Field = 4;\nglobal NUM_ENCRYPTED_LOGS_HASHES_PER_TX: Field = 1;\nglobal NUM_UNENCRYPTED_LOGS_HASHES_PER_TX: Field = 1;\n\nglobal MAX_NEW_COMMITMENTS_PER_TX_META: Field = 8;\nglobal MAX_NEW_NULLIFIERS_PER_TX_META: Field = 8;\nglobal MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX_META: Field = 2;\n// docs:end:constants\n\n// ROLLUP CONTRACT CONSTANTS - constants used only in l1-contracts\nglobal NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP: Field = 16;\n\n// TREES RELATED CONSTANTS\nglobal VK_TREE_HEIGHT: Field = 3;\nglobal FUNCTION_TREE_HEIGHT: Field = 5;\nglobal CONTRACT_TREE_HEIGHT: Field = 16;\nglobal NOTE_HASH_TREE_HEIGHT: Field = 32;\nglobal PUBLIC_DATA_TREE_HEIGHT: Field = 40;\nglobal NULLIFIER_TREE_HEIGHT: Field = 20;\nglobal L1_TO_L2_MSG_TREE_HEIGHT: Field = 16;\nglobal ROLLUP_VK_TREE_HEIGHT: Field = 8;\nglobal ARTIFACT_FUNCTION_TREE_MAX_HEIGHT = 5;\n\n// SUB-TREES RELATED CONSTANTS\nglobal CONTRACT_SUBTREE_HEIGHT: Field = 0;\nglobal CONTRACT_SUBTREE_SIBLING_PATH_LENGTH: Field = 16;\nglobal NOTE_HASH_SUBTREE_HEIGHT: Field = 6;\nglobal NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH: Field = 26;\nglobal NULLIFIER_SUBTREE_HEIGHT: Field = 6;\nglobal PUBLIC_DATA_SUBTREE_HEIGHT: Field = 4;\nglobal ARCHIVE_HEIGHT: Field = 16;\nglobal NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH: Field = 14;\nglobal PUBLIC_DATA_SUBTREE_SIBLING_PATH_LENGTH: Field = 36;\nglobal L1_TO_L2_MSG_SUBTREE_HEIGHT: Field = 4;\nglobal L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH: Field = 12;\n\n// MISC CONSTANTS\nglobal FUNCTION_SELECTOR_NUM_BYTES: Field = 4;\nglobal MAPPING_SLOT_PEDERSEN_SEPARATOR: Field = 4;\n// sha256 hash is stored in two fields to accommodate all 256-bits of the hash\nglobal NUM_FIELDS_PER_SHA256: Field = 2;\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 32;\n\n// CONTRACT CLASS CONSTANTS\n// This should be around 8192 (assuming 2**15 instructions packed at 8 bytes each), \n// but it's reduced to speed up build times, otherwise the ClassRegisterer takes over 5 mins to compile.\n// We are not using 1024 so we can squeeze in a few more args to methods that consume packed public bytecode,\n// such as the ClassRegisterer.register, and still land below the 32 * 32 max args limit for hashing.\nglobal MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS: Field = 1000;\n// Bytecode size for private functions is per function, not for the entire contract.\n// Note that private functions bytecode includes a mix of acir and brillig.\nglobal MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS: Field = 500;\n// Same for unconstrained functions: the size is per function.\nglobal MAX_PACKED_BYTECODE_SIZE_PER_UNCONSTRAINED_FUNCTION_IN_FIELDS: Field = 500;\n// Since we are not yet emitting selectors we'll use this magic value to identify events emitted by the ClassRegisterer.\n// This is just a stopgap until we implement proper selectors.\n// sha224sum 'struct ContractClassRegistered {contract_class_id: ContractClassId, version: Field, artifact_hash: Field, private_functions_root: Field, packed_public_bytecode: [Field; MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS] }'\nglobal REGISTERER_CONTRACT_CLASS_REGISTERED_MAGIC_VALUE = 0x6999d1e02b08a447a463563453cb36919c9dd7150336fc7c4d2b52f8;\n// sha224sum 'struct ClassPrivateFunctionBroadcasted'\nglobal REGISTERER_PRIVATE_FUNCTION_BROADCASTED_MAGIC_VALUE = 0x1b70e95fde0b70adc30496b90a327af6a5e383e028e7a43211a07bcd;\n// sha224sum 'struct ClassUnconstrainedFunctionBroadcasted'\nglobal REGISTERER_UNCONSTRAINED_FUNCTION_BROADCASTED_MAGIC_VALUE = 0xe7af816635466f128568edb04c9fa024f6c87fb9010fdbffa68b3d99;\n\n// NOIR CONSTANTS - constants used only in yarn-packages/noir-contracts\n// Some are defined here because Noir doesn't yet support globals referencing other globals yet.\n// Move these constants to a noir file once the issue below is resolved:\n// https://github.com/noir-lang/noir/issues/1734\nglobal L1_TO_L2_MESSAGE_LENGTH: Field = 8;\nglobal L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH: Field = 25;\nglobal MAX_NOTE_FIELDS_LENGTH: Field = 20;\n// GET_NOTE_ORACLE_RETURN_LENGT = MAX_NOTE_FIELDS_LENGTH + 1 + 2\n// The plus 1 is 1 extra field for nonce.\n// + 2 for EXTRA_DATA: [number_of_return_notes, contract_address]\nglobal GET_NOTE_ORACLE_RETURN_LENGTH: Field = 23;\nglobal MAX_NOTES_PER_PAGE: Field = 10;\n// VIEW_NOTE_ORACLE_RETURN_LENGTH = MAX_NOTES_PER_PAGE * (MAX_NOTE_FIELDS_LENGTH + 1) + 2;\nglobal VIEW_NOTE_ORACLE_RETURN_LENGTH: Field = 212;\nglobal CALL_CONTEXT_LENGTH: Field = 8;\nglobal GLOBAL_VARIABLES_LENGTH: Field = 4;\nglobal PARTIAL_STATE_REFERENCE_LENGTH: Field = 8;\nglobal STATE_REFERENCE_LENGTH: Field = 10; // 2 for snap + 8 for partial\nglobal HEADER_LENGTH: Field = 18; // 2 for last_archive, 2 for body hash, 10 for state reference, 4 for global vars\nglobal FUNCTION_DATA_LENGTH: Field = 4;\nglobal CONTRACT_DEPLOYMENT_DATA_LENGTH: Field = 6;\n// Change this ONLY if you have changed the PrivateCircuitPublicInputs structure.\n// In other words, if the structure/size of the public inputs of a function call changes then we should change this\n// constant as well PRIVATE_CALL_STACK_ITEM_LENGTH\nglobal PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH: Field = 205;\nglobal PRIVATE_CALL_STACK_ITEM_LENGTH: Field = 210;\nglobal CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH: Field = 3;\nglobal CONTRACT_STORAGE_READ_LENGTH: Field = 2;\n// Change this ONLY if you have changed the PublicCircuitPublicInputs structure.\nglobal PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH: Field = 201;\nglobal GET_NOTES_ORACLE_RETURN_LENGTH: Field = 674;\nglobal COMMITMENTS_NUM_BYTES_PER_BASE_ROLLUP: Field = 2048;\nglobal NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP: Field = 2048;\nglobal PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP: Field = 1024;\nglobal CONTRACTS_NUM_BYTES_PER_BASE_ROLLUP: Field = 32;\nglobal CONTRACT_DATA_NUM_BYTES_PER_BASE_ROLLUP: Field = 64;\nglobal CONTRACT_DATA_NUM_BYTES_PER_BASE_ROLLUP_UNPADDED: Field = 52;\nglobal L2_TO_L1_MSGS_NUM_BYTES_PER_BASE_ROLLUP: Field = 64;\nglobal LOGS_HASHES_NUM_BYTES_PER_BASE_ROLLUP: Field = 64;\n\n/**\n * Enumerate the hash_indices which are used for pedersen hashing.\n * We start from 1 to avoid the default generators. The generator indices are listed\n * based on the number of elements each index hashes. The following conditions must be met:\n *\n * +-----------+-------------------------------+----------------------+\n * | Hash size | Number of elements hashed (n) | Condition to use |\n * |-----------+-------------------------------+----------------------|\n * | LOW | n ≤ 8 | 0 < hash_index ≤ 32 |\n * | MID | 8 < n ≤ 16 | 32 < hash_index ≤ 40 |\n * | HIGH | 16 < n ≤ 48 | 40 < hash_index ≤ 48 |\n * +-----------+-------------------------------+----------------------+\n *\n * Note: When modifying, modify `GeneratorIndexPacker` in packer.hpp accordingly.\n */\n// Indices with size ≤ 8\nglobal GENERATOR_INDEX__COMMITMENT = 1;\nglobal GENERATOR_INDEX__COMMITMENT_NONCE = 2;\nglobal GENERATOR_INDEX__UNIQUE_COMMITMENT = 3;\nglobal GENERATOR_INDEX__SILOED_COMMITMENT = 4;\nglobal GENERATOR_INDEX__NULLIFIER = 5;\nglobal GENERATOR_INDEX__INITIALIZATION_NULLIFIER = 6;\nglobal GENERATOR_INDEX__OUTER_NULLIFIER = 7;\nglobal GENERATOR_INDEX__PUBLIC_DATA_READ = 8;\nglobal GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST = 9;\nglobal GENERATOR_INDEX__FUNCTION_DATA = 10;\nglobal GENERATOR_INDEX__FUNCTION_LEAF = 11;\nglobal GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA = 12;\nglobal GENERATOR_INDEX__CONSTRUCTOR = 13;\nglobal GENERATOR_INDEX__CONSTRUCTOR_ARGS = 14;\nglobal GENERATOR_INDEX__CONTRACT_ADDRESS = 15;\nglobal GENERATOR_INDEX__CONTRACT_LEAF = 16;\nglobal GENERATOR_INDEX__CALL_CONTEXT = 17;\nglobal GENERATOR_INDEX__CALL_STACK_ITEM = 18;\nglobal GENERATOR_INDEX__CALL_STACK_ITEM_2 = 19;\nglobal GENERATOR_INDEX__L1_TO_L2_MESSAGE_SECRET = 20;\nglobal GENERATOR_INDEX__L2_TO_L1_MSG = 21;\nglobal GENERATOR_INDEX__TX_CONTEXT = 22;\nglobal GENERATOR_INDEX__PUBLIC_LEAF_INDEX = 23;\nglobal GENERATOR_INDEX__PUBLIC_DATA_LEAF = 24;\nglobal GENERATOR_INDEX__SIGNED_TX_REQUEST = 25;\nglobal GENERATOR_INDEX__GLOBAL_VARIABLES = 26;\nglobal GENERATOR_INDEX__PARTIAL_ADDRESS = 27;\nglobal GENERATOR_INDEX__BLOCK_HASH = 28;\nglobal GENERATOR_INDEX__SIDE_EFFECT = 29;\n// Indices with size ≤ 16\nglobal GENERATOR_INDEX__TX_REQUEST = 33;\nglobal GENERATOR_INDEX__SIGNATURE_PAYLOAD = 34;\n// Indices with size ≤ 44\nglobal GENERATOR_INDEX__VK = 41;\nglobal GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS = 42;\nglobal GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS = 43;\nglobal GENERATOR_INDEX__FUNCTION_ARGS = 44;\n",
2861
2914
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/constants.nr"
2862
2915
  },
2863
2916
  "103": {
2864
- "source": "use crate::{\n abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot,\n traits::Empty,\n};\n\nstruct PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot,\n nullifier_tree: AppendOnlyTreeSnapshot,\n contract_tree: AppendOnlyTreeSnapshot,\n public_data_tree: AppendOnlyTreeSnapshot,\n}\n\nglobal PARTIAL_STATE_REFERENCE_LENGTH: Field = 8; // APPEND_ONLY_TREE_SNAPSHOT_LENGTH * 4;\n\nimpl PartialStateReference {\n pub fn eq(self, other: PartialStateReference) -> bool {\n self.note_hash_tree.eq(other.note_hash_tree) &\n self.nullifier_tree.eq(other.nullifier_tree) &\n self.contract_tree.eq(other.contract_tree) &\n self.public_data_tree.eq(other.public_data_tree)\n }\n\n pub fn serialize(self) -> [Field; PARTIAL_STATE_REFERENCE_LENGTH] {\n let serialized_note_hash_tree = self.note_hash_tree.serialize();\n let serialized_nullifier_tree = self.nullifier_tree.serialize();\n let serialized_contract_tree = self.contract_tree.serialize();\n let serialized_public_data_tree = self.public_data_tree.serialize();\n\n [\n serialized_note_hash_tree[0],\n serialized_note_hash_tree[1],\n serialized_nullifier_tree[0],\n serialized_nullifier_tree[1],\n serialized_contract_tree[0],\n serialized_contract_tree[1],\n serialized_public_data_tree[0],\n serialized_public_data_tree[1],\n ]\n }\n\n pub fn deserialize(serialized: [Field; PARTIAL_STATE_REFERENCE_LENGTH]) -> PartialStateReference {\n PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[0], serialized[1]]\n ),\n nullifier_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[2], serialized[3]]\n ),\n contract_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[4], serialized[5]]\n ),\n public_data_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[6], serialized[7]]\n ),\n }\n }\n}\n\nimpl Empty for PartialStateReference {\n fn empty() -> Self {\n Self {\n note_hash_tree: AppendOnlyTreeSnapshot::zero(),\n nullifier_tree: AppendOnlyTreeSnapshot::zero(),\n contract_tree: AppendOnlyTreeSnapshot::zero(),\n public_data_tree: AppendOnlyTreeSnapshot::zero(),\n }\n }\n}\n",
2917
+ "source": "use crate::{\n abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot,\n constants::PARTIAL_STATE_REFERENCE_LENGTH,\n traits::{\n Deserialize,\n Empty,\n Hash,\n Serialize,\n },\n};\n\nstruct PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot,\n nullifier_tree: AppendOnlyTreeSnapshot,\n contract_tree: AppendOnlyTreeSnapshot,\n public_data_tree: AppendOnlyTreeSnapshot,\n}\n\nimpl Eq for PartialStateReference {\n fn eq(self, other: PartialStateReference) -> bool {\n self.note_hash_tree.eq(other.note_hash_tree) &\n self.nullifier_tree.eq(other.nullifier_tree) &\n self.contract_tree.eq(other.contract_tree) &\n self.public_data_tree.eq(other.public_data_tree)\n }\n}\n\nimpl Serialize<PARTIAL_STATE_REFERENCE_LENGTH> for PartialStateReference {\n fn serialize(self) -> [Field; PARTIAL_STATE_REFERENCE_LENGTH] {\n let serialized_note_hash_tree = self.note_hash_tree.serialize();\n let serialized_nullifier_tree = self.nullifier_tree.serialize();\n let serialized_contract_tree = self.contract_tree.serialize();\n let serialized_public_data_tree = self.public_data_tree.serialize();\n\n [\n serialized_note_hash_tree[0],\n serialized_note_hash_tree[1],\n serialized_nullifier_tree[0],\n serialized_nullifier_tree[1],\n serialized_contract_tree[0],\n serialized_contract_tree[1],\n serialized_public_data_tree[0],\n serialized_public_data_tree[1],\n ]\n }\n}\n\nimpl Deserialize<PARTIAL_STATE_REFERENCE_LENGTH> for PartialStateReference {\n fn deserialize(serialized: [Field; PARTIAL_STATE_REFERENCE_LENGTH]) -> PartialStateReference {\n PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[0], serialized[1]]\n ),\n nullifier_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[2], serialized[3]]\n ),\n contract_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[4], serialized[5]]\n ),\n public_data_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[6], serialized[7]]\n ),\n }\n }\n}\n\nimpl Empty for PartialStateReference {\n fn empty() -> Self {\n Self {\n note_hash_tree: AppendOnlyTreeSnapshot::zero(),\n nullifier_tree: AppendOnlyTreeSnapshot::zero(),\n contract_tree: AppendOnlyTreeSnapshot::zero(),\n public_data_tree: AppendOnlyTreeSnapshot::zero(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let partial: PartialStateReference = dep::std::unsafe::zeroed();\n let _serialized = partial.serialize();\n let _deserialized = PartialStateReference::deserialize(_serialized);\n}\n",
2865
2918
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/partial_state_reference.nr"
2866
2919
  },
2867
2920
  "104": {
2868
- "source": "use crate::{\n abis::append_only_tree_snapshot::{\n AppendOnlyTreeSnapshot,\n APPEND_ONLY_TREE_SNAPSHOT_LENGTH,\n },\n partial_state_reference::{\n PartialStateReference,\n PARTIAL_STATE_REFERENCE_LENGTH,\n },\n traits::Empty,\n utils::{\n arr_copy_slice,\n bounded_vec::BoundedVec,\n },\n};\n\nstruct StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot,\n partial: PartialStateReference,\n}\n\nglobal STATE_REFERENCE_LENGTH: Field = 10; // 2 for snap + 8 for partial\n\nimpl StateReference {\n fn eq(self, other: StateReference) -> bool {\n self.l1_to_l2_message_tree.eq(other.l1_to_l2_message_tree) &\n self.partial.eq(other.partial)\n }\n\n fn serialize(self) -> [Field; STATE_REFERENCE_LENGTH] {\n let mut fields: BoundedVec<Field, STATE_REFERENCE_LENGTH> = BoundedVec::new(0);\n\n fields.push_array(self.l1_to_l2_message_tree.serialize());\n fields.push_array(self.partial.serialize());\n\n fields.storage\n }\n\n fn deserialize(serialized: [Field; STATE_REFERENCE_LENGTH]) -> StateReference {\n let mut offset = 0;\n\n let l1_to_l2_message_tree_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let partial_fields = arr_copy_slice(serialized, [0; PARTIAL_STATE_REFERENCE_LENGTH], offset);\n\n StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::deserialize(l1_to_l2_message_tree_fields),\n partial: PartialStateReference::deserialize(partial_fields),\n }\n }\n}\n\nimpl Empty for StateReference {\n fn empty() -> Self {\n Self {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::zero(),\n partial: PartialStateReference::empty(),\n }\n }\n}\n",
2921
+ "source": "use crate::{\n abis::append_only_tree_snapshot::{\n AppendOnlyTreeSnapshot,\n APPEND_ONLY_TREE_SNAPSHOT_LENGTH,\n },\n constants::{\n PARTIAL_STATE_REFERENCE_LENGTH,\n STATE_REFERENCE_LENGTH,\n },\n partial_state_reference::PartialStateReference,\n traits::{\n Deserialize,\n Empty,\n Hash,\n Serialize,\n },\n utils::{\n arr_copy_slice,\n },\n};\n\nstruct StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot,\n partial: PartialStateReference,\n}\n\nimpl Eq for StateReference {\n fn eq(self, other: StateReference) -> bool {\n self.l1_to_l2_message_tree.eq(other.l1_to_l2_message_tree) &\n self.partial.eq(other.partial)\n }\n}\n\nimpl Serialize<STATE_REFERENCE_LENGTH> for StateReference {\n fn serialize(self) -> [Field; STATE_REFERENCE_LENGTH] {\n let mut fields: BoundedVec<Field, STATE_REFERENCE_LENGTH> = BoundedVec::new(0);\n\n fields.extend_from_array(self.l1_to_l2_message_tree.serialize());\n fields.extend_from_array(self.partial.serialize());\n\n fields.storage\n }\n}\n\nimpl Deserialize<STATE_REFERENCE_LENGTH> for StateReference {\n fn deserialize(serialized: [Field; STATE_REFERENCE_LENGTH]) -> StateReference {\n let mut offset = 0;\n\n let l1_to_l2_message_tree_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let partial_fields = arr_copy_slice(serialized, [0; PARTIAL_STATE_REFERENCE_LENGTH], offset);\n\n StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::deserialize(l1_to_l2_message_tree_fields),\n partial: PartialStateReference::deserialize(partial_fields),\n }\n }\n}\n\nimpl Empty for StateReference {\n fn empty() -> Self {\n Self {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::zero(),\n partial: PartialStateReference::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let state: StateReference = dep::std::unsafe::zeroed();\n let _serialized = state.serialize();\n let _deserialized = StateReference::deserialize(_serialized);\n}\n",
2869
2922
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/state_reference.nr"
2870
2923
  },
2871
2924
  "107": {
2872
- "source": "use crate::{\n abis::{\n append_only_tree_snapshot::{\n AppendOnlyTreeSnapshot,\n APPEND_ONLY_TREE_SNAPSHOT_LENGTH,\n },\n global_variables::{\n GlobalVariables,\n GLOBAL_VARIABLES_LENGTH,\n },\n },\n constants::{\n GENERATOR_INDEX__BLOCK_HASH,\n HEADER_LENGTH,\n NUM_FIELDS_PER_SHA256,\n },\n hash::pedersen_hash,\n state_reference::{\n StateReference,\n STATE_REFERENCE_LENGTH,\n },\n traits::Empty,\n utils::{\n arr_copy_slice,\n bounded_vec::BoundedVec,\n },\n};\n\n// docs:start:header\nstruct Header {\n last_archive: AppendOnlyTreeSnapshot,\n body_hash: [Field; NUM_FIELDS_PER_SHA256],\n state: StateReference,\n global_variables: GlobalVariables,\n}\n// docs:end:header\n\nimpl Header {\n\n pub fn serialize(self) -> [Field; HEADER_LENGTH] {\n let mut fields: BoundedVec<Field, HEADER_LENGTH> = BoundedVec::new(0);\n\n fields.push_array(self.last_archive.serialize());\n fields.push_array(self.body_hash);\n fields.push_array(self.state.serialize());\n fields.push_array(self.global_variables.serialize());\n\n fields.storage\n }\n\n pub fn deserialize(serialized: [Field; HEADER_LENGTH]) -> Self {\n let mut offset = 0;\n\n let last_archive_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let body_hash = arr_copy_slice(serialized, [0; NUM_FIELDS_PER_SHA256], offset);\n offset = offset + NUM_FIELDS_PER_SHA256;\n\n let state_fields = arr_copy_slice(serialized, [0; STATE_REFERENCE_LENGTH], offset);\n offset = offset + STATE_REFERENCE_LENGTH;\n\n let global_variables_fields = arr_copy_slice(serialized, [0; GLOBAL_VARIABLES_LENGTH], offset);\n\n Header {\n last_archive: AppendOnlyTreeSnapshot::deserialize(last_archive_fields),\n body_hash,\n state: StateReference::deserialize(state_fields),\n global_variables: GlobalVariables::deserialize(global_variables_fields),\n }\n }\n\n // TODO(#3941) Rename this as hash() and make it hash the whole header\n pub fn block_hash(self) -> Field {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3595)\n pedersen_hash([\n self.global_variables.hash(),\n self.state.partial.note_hash_tree.root,\n self.state.partial.nullifier_tree.root,\n self.state.partial.contract_tree.root,\n self.state.l1_to_l2_message_tree.root,\n self.state.partial.public_data_tree.root,\n ], GENERATOR_INDEX__BLOCK_HASH)\n }\n}\n\nimpl Empty for Header {\n fn empty() -> Self {\n Self {\n last_archive: AppendOnlyTreeSnapshot::zero(),\n body_hash: [0; NUM_FIELDS_PER_SHA256],\n state: StateReference::empty(),\n global_variables: GlobalVariables::empty(),\n }\n }\n}\n",
2925
+ "source": "use crate::{\n abis::{\n append_only_tree_snapshot::{\n AppendOnlyTreeSnapshot,\n APPEND_ONLY_TREE_SNAPSHOT_LENGTH,\n },\n global_variables::{\n GlobalVariables,\n GLOBAL_VARIABLES_LENGTH,\n },\n },\n constants::{\n GENERATOR_INDEX__BLOCK_HASH,\n HEADER_LENGTH,\n NUM_FIELDS_PER_SHA256,\n STATE_REFERENCE_LENGTH,\n },\n hash::pedersen_hash,\n state_reference::StateReference,\n traits::{\n Deserialize,\n Empty,\n Hash,\n Serialize,\n },\n utils::{\n arr_copy_slice,\n },\n};\n\n// docs:start:header\nstruct Header {\n last_archive: AppendOnlyTreeSnapshot,\n body_hash: [Field; NUM_FIELDS_PER_SHA256],\n state: StateReference,\n global_variables: GlobalVariables,\n}\n// docs:end:header\n\nimpl Eq for Header {\n fn eq(self, other: Self) -> bool {\n self.last_archive.eq(other.last_archive) &\n (self.body_hash == other.body_hash) &\n self.state.eq(other.state) &\n self.global_variables.eq(other.global_variables)\n }\n}\n\nimpl Serialize<HEADER_LENGTH> for Header {\n fn serialize(self) -> [Field; HEADER_LENGTH] {\n let mut fields: BoundedVec<Field, HEADER_LENGTH> = BoundedVec::new(0);\n\n fields.extend_from_array(self.last_archive.serialize());\n fields.extend_from_array(self.body_hash);\n fields.extend_from_array(self.state.serialize());\n fields.extend_from_array(self.global_variables.serialize());\n\n fields.storage\n }\n}\n\nimpl Deserialize<HEADER_LENGTH> for Header {\n fn deserialize(serialized: [Field; HEADER_LENGTH]) -> Self {\n let mut offset = 0;\n\n let last_archive_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let body_hash = arr_copy_slice(serialized, [0; NUM_FIELDS_PER_SHA256], offset);\n offset = offset + NUM_FIELDS_PER_SHA256;\n\n let state_fields = arr_copy_slice(serialized, [0; STATE_REFERENCE_LENGTH], offset);\n offset = offset + STATE_REFERENCE_LENGTH;\n\n let global_variables_fields = arr_copy_slice(serialized, [0; GLOBAL_VARIABLES_LENGTH], offset);\n\n Header {\n last_archive: AppendOnlyTreeSnapshot::deserialize(last_archive_fields),\n body_hash,\n state: StateReference::deserialize(state_fields),\n global_variables: GlobalVariables::deserialize(global_variables_fields),\n }\n }\n}\n\nimpl Empty for Header {\n fn empty() -> Self {\n Self {\n last_archive: AppendOnlyTreeSnapshot::zero(),\n body_hash: [0; NUM_FIELDS_PER_SHA256],\n state: StateReference::empty(),\n global_variables: GlobalVariables::empty(),\n }\n }\n}\n\nimpl Hash for Header {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__BLOCK_HASH)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let header: Header = dep::std::unsafe::zeroed();\n let serialized = header.serialize();\n let deserialized = Header::deserialize(serialized);\n assert(header.eq(deserialized));\n}\n\n#[test]\nfn hash_smoke() {\n let header: Header = dep::std::unsafe::zeroed();\n let _hashed = header.hash();\n}\n",
2873
2926
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/header.nr"
2874
2927
  },
2875
2928
  "108": {
2876
- "source": "use crate::address::{AztecAddress, EthAddress};\nuse crate::mocked::VerificationKey;\nuse crate::abis::function_selector::FunctionSelector;\nuse crate::abis::function_leaf_preimage::FunctionLeafPreimage;\nuse crate::abis::new_contract_data::NewContractData as ContractLeafPreimage;\nuse crate::abis::function_data::FunctionData;\nuse crate::abis::side_effect::{SideEffect};\nuse crate::utils::uint256::U256;\nuse crate::utils::bounded_vec::BoundedVec;\nuse crate::constants::{\n ARGS_HASH_CHUNK_COUNT,\n ARGS_HASH_CHUNK_LENGTH,\n CONTRACT_TREE_HEIGHT, \n FUNCTION_TREE_HEIGHT, \n NOTE_HASH_TREE_HEIGHT,\n NUM_FIELDS_PER_SHA256,\n GENERATOR_INDEX__SILOED_COMMITMENT,\n GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK,\n GENERATOR_INDEX__CONSTRUCTOR,\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n GENERATOR_INDEX__CONTRACT_ADDRESS,\n GENERATOR_INDEX__COMMITMENT_NONCE,\n GENERATOR_INDEX__UNIQUE_COMMITMENT,\n GENERATOR_INDEX__FUNCTION_ARGS,\n};\n\nuse dep::std::hash::{pedersen_hash_with_separator, sha256};\n\npub fn sha256_to_field<N>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256(bytes_to_hash);\n\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (sha256_hashed[15 - i] as Field) * v;\n low = low + (sha256_hashed[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n let hash_in_a_field = low + high * v;\n\n hash_in_a_field\n}\n\npub fn hash_args<N>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n for i in 0..ARGS_HASH_CHUNK_COUNT {\n let mut chunk_hash = 0;\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\n if start_chunk_index < (args.len() as u32) {\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\n if item_index < (args.len() as u32) {\n chunk_args[j] = args[item_index];\n }\n }\n chunk_hash = pedersen_hash(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n chunks_hashes[i] = chunk_hash;\n }\n pedersen_hash(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n// Checks that `value` is a member of a merkle tree with root `root` at position `index`\n// The witness being the `sibling_path`\npub fn assert_check_membership<N>(value: Field, index: Field, sibling_path: [Field; N], root: Field) {\n let calculated_root = root_from_sibling_path(value, index, sibling_path);\n assert(calculated_root == root, \"membership check failed\");\n}\n\n// Calculate the Merkle tree root from the sibling path and leaf.\n//\n// The leaf is hashed with its sibling, and then the result is hashed\n// with the next sibling etc in the path. The last hash is the root.\n//\n// TODO(David/Someone): The cpp code is using a uint256, whereas its\n// TODO a bit simpler in Noir to just have a bit array.\n// TODO: I'd generally like to avoid u256 for algorithms like \n// this because it means we never even need to consider cases where \n// the index is greater than p.\npub fn root_from_sibling_path<N>(leaf: Field, leaf_index: Field, sibling_path: [Field; N]) -> Field {\n let mut node = leaf;\n let indices = leaf_index.to_le_bits(N);\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] == 1 {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = merkle_hash(hash_left, hash_right);\n }\n node\n}\n\n// Calculate the function tree root from the sibling path and leaf preimage.\n//\n// TODO: The cpp code passes in components of the FunctionLeafPreimage and then \n// builds it up. We should build it up and then pass the leaf preimage as a parameter.\n// We can then choose to have a general method that takes in anything hashable\n// and deduplicate the logic in `contract_tree_root_from_siblings`\npub fn function_tree_root_from_siblings(\n selector: FunctionSelector,\n is_internal: bool,\n is_private: bool,\n vk_hash: Field,\n acir_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = FunctionLeafPreimage { selector, is_internal, is_private, vk_hash, acir_hash };\n\n let function_leaf = function_leaf_preimage.hash();\n\n let function_tree_root = root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path);\n\n function_tree_root\n}\n\n// Calculate the contract tree root from the sibling path and leaf preimage.\npub fn contract_tree_root_from_siblings(\n function_tree_root: Field,\n storage_contract_address: AztecAddress,\n portal_contract_address: EthAddress,\n contract_leaf_index: Field,\n contract_leaf_sibling_path: [Field; CONTRACT_TREE_HEIGHT]\n) -> Field {\n //TODO(Kev): if we use shorthand syntax here, we get an error as expected,\n // since variable name is `storage_contract_address` but the span is incorrect.\n let contract_leaf_preimage = ContractLeafPreimage { contract_address: storage_contract_address, portal_contract_address, function_tree_root };\n\n let contract_leaf = contract_leaf_preimage.hash();\n\n let computed_contract_tree_root = root_from_sibling_path(contract_leaf, contract_leaf_index, contract_leaf_sibling_path);\n\n computed_contract_tree_root\n}\n\npub fn read_request_root_from_siblings(\n read_request: Field,\n leaf_index: Field,\n sibling_path: [Field; NOTE_HASH_TREE_HEIGHT]\n) -> Field {\n root_from_sibling_path(read_request, leaf_index, sibling_path)\n}\n\npub fn silo_commitment(address: AztecAddress, inner_commitment: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n inner_commitment\n ],\n GENERATOR_INDEX__SILOED_COMMITMENT\n )\n}\n\npub fn silo_nullifier(address: AztecAddress, nullifier: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\nfn merkle_hash(left: Field, right: Field) -> Field {\n pedersen_hash([left, right], 0)\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\n// TODO CPP uses blake2s for this\npub fn compute_new_contract_address_hash(new_contract_address: AztecAddress) -> Field {\n dep::std::hash::pedersen_hash([new_contract_address.to_field()])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n rollup_version_id: Field,\n portal_contract_address: EthAddress,\n chain_id: Field,\n content: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new(0);\n\n let inputs = [\n contract_address.to_field(), rollup_version_id, portal_contract_address.to_field(), chain_id, content\n ];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes = inputs[i].to_be_bytes(32);\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn compute_constructor_hash(\n function_data: FunctionData,\n args_hash: Field,\n constructor_vk_hash: Field\n) -> Field {\n let function_data_hash = function_data.hash();\n\n pedersen_hash(\n [\n function_data_hash,\n args_hash,\n constructor_vk_hash\n ],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n\n// Computes sha256 hash of 2 input hashes stored in 4 fields.\n// \n// This method is bn254 specific. Two fields is needed in order to \n// encode the sha256 output. It can be abstracted away with any 4-2 hash function.\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//\n// Returning a Field would be desirable because then this can be replaced with \n// poseidon without changing the rest of the code\n//\npub fn accumulate_sha256(input: [U128; 4]) -> [Field; NUM_FIELDS_PER_SHA256] {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually \n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field \n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n //\n // Concatenate 4 u128 bit integers into a byte array.\n let mut hash_input_flattened = [0; 64];\n for offset in 0..4 {\n let input_as_bytes = input[offset].to_be_bytes();\n for byte_index in 0..16 {\n hash_input_flattened[offset * 16 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n let sha_digest = dep::std::hash::sha256(hash_input_flattened);\n\n U256::from_bytes32(sha_digest).to_u128_limbs()\n}\n\npub fn compute_logs_hash(\n previous_log_hash: [Field; 2],\n current_log_hash: [Field; 2]\n) -> [Field; NUM_FIELDS_PER_SHA256] {\n accumulate_sha256(\n [\n U128::from_integer(previous_log_hash[0]),\n U128::from_integer(previous_log_hash[1]),\n U128::from_integer(current_log_hash[0]),\n U128::from_integer(current_log_hash[1])\n ]\n )\n}\n\npub fn compute_commitment_nonce(first_nullifier: Field, commitment_index: Field) -> Field {\n pedersen_hash(\n [\n first_nullifier,\n commitment_index\n ],\n GENERATOR_INDEX__COMMITMENT_NONCE\n )\n}\n\npub fn compute_unique_siloed_commitment(nonce: Field, siloed_commitment: Field) -> Field {\n pedersen_hash(\n [\n nonce,\n siloed_commitment\n ],\n GENERATOR_INDEX__UNIQUE_COMMITMENT\n )\n}\n\npub fn compute_unique_siloed_commitments<N>(\n first_nullifier: Field,\n siloed_commitments: [SideEffect; N]\n) -> [SideEffect; N] {\n let mut unique_siloed_commitments = [SideEffect::empty(); N];\n for i in 0..N {\n let siloed_commitment = siloed_commitments[i];\n if siloed_commitment.value != 0 {\n let nonce = compute_commitment_nonce(first_nullifier, i);\n unique_siloed_commitments[i] = SideEffect {\n value: compute_unique_siloed_commitment(nonce, siloed_commitment.value),\n counter: siloed_commitment.counter\n };\n }\n }\n unique_siloed_commitments\n}\n\npub fn pedersen_hash<N>(inputs: [Field; N], hash_index: u32) -> Field {\n dep::std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n",
2929
+ "source": "use crate::address::{AztecAddress, EthAddress};\nuse crate::mocked::VerificationKey;\nuse crate::abis::function_selector::FunctionSelector;\nuse crate::abis::function_leaf_preimage::{ContractClassFunctionLeafPreimage, FunctionLeafPreimage};\nuse crate::contract_class::ContractClassId;\nuse crate::abis::new_contract_data::NewContractData as ContractLeafPreimage;\nuse crate::abis::function_data::FunctionData;\nuse crate::abis::side_effect::{SideEffect};\nuse crate::utils::uint256::U256;\nuse crate::constants::{\n ARGS_HASH_CHUNK_COUNT,\n ARGS_HASH_CHUNK_LENGTH,\n CONTRACT_TREE_HEIGHT, \n FUNCTION_TREE_HEIGHT, \n NOTE_HASH_TREE_HEIGHT,\n NUM_FIELDS_PER_SHA256,\n GENERATOR_INDEX__SILOED_COMMITMENT,\n GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK,\n GENERATOR_INDEX__CONSTRUCTOR,\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n GENERATOR_INDEX__CONTRACT_ADDRESS,\n GENERATOR_INDEX__COMMITMENT_NONCE,\n GENERATOR_INDEX__UNIQUE_COMMITMENT,\n GENERATOR_INDEX__FUNCTION_ARGS,\n};\n\nuse dep::std::hash::{pedersen_hash_with_separator, sha256};\n\npub fn sha256_to_field<N>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256(bytes_to_hash);\n\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (sha256_hashed[15 - i] as Field) * v;\n low = low + (sha256_hashed[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n let hash_in_a_field = low + high * v;\n\n hash_in_a_field\n}\n\npub fn hash_args<N>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n for i in 0..ARGS_HASH_CHUNK_COUNT {\n let mut chunk_hash = 0;\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\n if start_chunk_index < (args.len() as u32) {\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\n if item_index < (args.len() as u32) {\n chunk_args[j] = args[item_index];\n }\n }\n chunk_hash = pedersen_hash(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n chunks_hashes[i] = chunk_hash;\n }\n pedersen_hash(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n// Checks that `value` is a member of a merkle tree with root `root` at position `index`\n// The witness being the `sibling_path`\npub fn assert_check_membership<N>(value: Field, index: Field, sibling_path: [Field; N], root: Field) {\n let calculated_root = root_from_sibling_path(value, index, sibling_path);\n assert(calculated_root == root, \"membership check failed\");\n}\n\n// Calculate the Merkle tree root from the sibling path and leaf.\n//\n// The leaf is hashed with its sibling, and then the result is hashed\n// with the next sibling etc in the path. The last hash is the root.\n//\n// TODO(David/Someone): The cpp code is using a uint256, whereas its\n// TODO a bit simpler in Noir to just have a bit array.\n// TODO: I'd generally like to avoid u256 for algorithms like \n// this because it means we never even need to consider cases where \n// the index is greater than p.\npub fn root_from_sibling_path<N>(leaf: Field, leaf_index: Field, sibling_path: [Field; N]) -> Field {\n let mut node = leaf;\n let indices = leaf_index.to_le_bits(N);\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] == 1 {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = merkle_hash(hash_left, hash_right);\n }\n node\n}\n\n// Calculate the function tree root from the sibling path and leaf preimage.\n//\n// TODO: The cpp code passes in components of the FunctionLeafPreimage and then \n// builds it up. We should build it up and then pass the leaf preimage as a parameter.\n// We can then choose to have a general method that takes in anything hashable\n// and deduplicate the logic in `contract_tree_root_from_siblings`\npub fn function_tree_root_from_siblings(\n selector: FunctionSelector,\n is_internal: bool,\n is_private: bool,\n vk_hash: Field,\n acir_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = FunctionLeafPreimage { selector, is_internal, is_private, vk_hash, acir_hash };\n\n let function_leaf = function_leaf_preimage.hash();\n\n let function_tree_root = root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path);\n\n function_tree_root\n}\n\n// Calculate the contract tree root from the sibling path and leaf preimage.\npub fn contract_tree_root_from_siblings(\n contract_class_id: ContractClassId,\n storage_contract_address: AztecAddress,\n portal_contract_address: EthAddress,\n contract_leaf_index: Field,\n contract_leaf_sibling_path: [Field; CONTRACT_TREE_HEIGHT]\n) -> Field {\n //TODO(Kev): if we use shorthand syntax here, we get an error as expected,\n // since variable name is `storage_contract_address` but the span is incorrect.\n let contract_leaf_preimage = ContractLeafPreimage { contract_address: storage_contract_address, portal_contract_address, contract_class_id };\n\n let contract_leaf = contract_leaf_preimage.hash();\n\n let computed_contract_tree_root = root_from_sibling_path(contract_leaf, contract_leaf_index, contract_leaf_sibling_path);\n\n computed_contract_tree_root\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\npub fn read_request_root_from_siblings(\n read_request: Field,\n leaf_index: Field,\n sibling_path: [Field; NOTE_HASH_TREE_HEIGHT]\n) -> Field {\n root_from_sibling_path(read_request, leaf_index, sibling_path)\n}\n\npub fn silo_commitment(address: AztecAddress, inner_commitment: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n inner_commitment\n ],\n GENERATOR_INDEX__SILOED_COMMITMENT\n )\n}\n\npub fn silo_nullifier(address: AztecAddress, nullifier: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\nfn merkle_hash(left: Field, right: Field) -> Field {\n pedersen_hash([left, right], 0)\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\n// TODO CPP uses blake2s for this\npub fn compute_new_contract_address_hash(new_contract_address: AztecAddress) -> Field {\n dep::std::hash::pedersen_hash([new_contract_address.to_field()])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n rollup_version_id: Field,\n portal_contract_address: EthAddress,\n chain_id: Field,\n content: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new(0);\n\n let inputs = [\n contract_address.to_field(), rollup_version_id, portal_contract_address.to_field(), chain_id, content\n ];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes = inputs[i].to_be_bytes(32);\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn compute_constructor_hash(\n function_data: FunctionData,\n args_hash: Field,\n constructor_vk_hash: Field\n) -> Field {\n let function_data_hash = function_data.hash();\n\n pedersen_hash(\n [\n function_data_hash,\n args_hash,\n constructor_vk_hash\n ],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n\n// Computes sha256 hash of 2 input hashes stored in 4 fields.\n// \n// This method is bn254 specific. Two fields is needed in order to \n// encode the sha256 output. It can be abstracted away with any 4-2 hash function.\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//\n// Returning a Field would be desirable because then this can be replaced with \n// poseidon without changing the rest of the code\n//\npub fn accumulate_sha256(input: [U128; 4]) -> [Field; NUM_FIELDS_PER_SHA256] {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually \n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field \n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n //\n // Concatenate 4 u128 bit integers into a byte array.\n let mut hash_input_flattened = [0; 64];\n for offset in 0..4 {\n let input_as_bytes = input[offset].to_be_bytes();\n for byte_index in 0..16 {\n hash_input_flattened[offset * 16 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n let sha_digest = dep::std::hash::sha256(hash_input_flattened);\n\n U256::from_bytes32(sha_digest).to_u128_limbs()\n}\n\npub fn compute_logs_hash(\n previous_log_hash: [Field; 2],\n current_log_hash: [Field; 2]\n) -> [Field; NUM_FIELDS_PER_SHA256] {\n accumulate_sha256(\n [\n U128::from_integer(previous_log_hash[0]),\n U128::from_integer(previous_log_hash[1]),\n U128::from_integer(current_log_hash[0]),\n U128::from_integer(current_log_hash[1])\n ]\n )\n}\n\npub fn compute_commitment_nonce(first_nullifier: Field, commitment_index: Field) -> Field {\n pedersen_hash(\n [\n first_nullifier,\n commitment_index\n ],\n GENERATOR_INDEX__COMMITMENT_NONCE\n )\n}\n\npub fn compute_unique_siloed_commitment(nonce: Field, siloed_commitment: Field) -> Field {\n pedersen_hash(\n [\n nonce,\n siloed_commitment\n ],\n GENERATOR_INDEX__UNIQUE_COMMITMENT\n )\n}\n\npub fn compute_unique_siloed_commitments<N>(\n first_nullifier: Field,\n siloed_commitments: [SideEffect; N]\n) -> [SideEffect; N] {\n let mut unique_siloed_commitments = [SideEffect::empty(); N];\n for i in 0..N {\n let siloed_commitment = siloed_commitments[i];\n if siloed_commitment.value != 0 {\n let nonce = compute_commitment_nonce(first_nullifier, i);\n unique_siloed_commitments[i] = SideEffect {\n value: compute_unique_siloed_commitment(nonce, siloed_commitment.value),\n counter: siloed_commitment.counter\n };\n }\n }\n unique_siloed_commitments\n}\n\npub fn pedersen_hash<N>(inputs: [Field; N], hash_index: u32) -> Field {\n dep::std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n",
2877
2930
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/hash.nr"
2878
2931
  },
2932
+ "110": {
2933
+ "source": "// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\n// Copied over from \"yarn-project/aztec-nr/aztec/src/utils.nr\"\npub fn arr_copy_slice<T, N, M>(src: [T; N], mut dst: [T; M], offset: Field) -> [T; M] {\n for i in 0..dst.len() {\n dst[i] = src[i + offset];\n }\n dst\n}\n",
2934
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/utils.nr"
2935
+ },
2879
2936
  "125": {
2880
- "source": "use crate::{\n constants::{\n GENERATOR_INDEX__CONTRACT_ADDRESS,\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n },\n hash::pedersen_hash,\n utils,\n grumpkin_point::GrumpkinPoint,\n};\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, ToField};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self {\n inner: 0\n }\n }\n\n pub fn from_field(field : Field) -> Self {\n Self {\n inner : field\n }\n }\n\n pub fn compute(pub_key: GrumpkinPoint, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n pedersen_hash(\n [pub_key.x, pub_key.y, partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS\n )\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n \n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs : Self, rhs : Self) -> Self{\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self {\n inner : result\n }\n }\n\n pub fn serialize(self: Self) -> [Field; 1] {\n [self.inner]\n }\n\n pub fn deserialize(fields: [Field; 1]) -> Self {\n Self {\n inner: fields[0]\n }\n }\n}\n\nstruct EthAddress{\n inner : Field\n}\n\nimpl Eq for EthAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for EthAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for EthAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl EthAddress{\n pub fn zero() -> Self {\n Self {\n inner: 0\n }\n }\n\n pub fn from_field(field : Field) -> Self {\n Self {\n inner : field\n }\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs : Self, rhs : Self) -> Self{\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self {\n inner : result\n }\n }\n\n pub fn serialize(self: Self) -> [Field; 1] {\n [self.inner]\n }\n\n pub fn deserialize(fields: [Field; 1]) -> Self {\n Self {\n inner: fields[0]\n }\n }\n}\n\n// Partial address\nstruct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field : Field) -> Self {\n Self {\n inner : field\n }\n }\n\n pub fn compute(contract_address_salt : Field, function_tree_root : Field, constructor_hash : Field) -> Self {\n PartialAddress::from_field(\n pedersen_hash([\n // TODO why the zeroes?\n 0,\n 0,\n contract_address_salt,\n function_tree_root,\n constructor_hash\n ], GENERATOR_INDEX__PARTIAL_ADDRESS)\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n",
2937
+ "source": "use crate::{\n constants::{\n GENERATOR_INDEX__CONTRACT_ADDRESS,\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n GENERATOR_INDEX__CONSTRUCTOR\n },\n hash::pedersen_hash,\n contract_class::ContractClassId,\n utils,\n grumpkin_point::GrumpkinPoint,\n};\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, ToField, Serialize, Deserialize};\nuse crate::type_serialization::{ETH_ADDRESS_SERIALIZED_LEN, AZTEC_ADDRESS_SERIALIZED_LEN};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_SERIALIZED_LEN> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_SERIALIZED_LEN] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_SERIALIZED_LEN> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_SERIALIZED_LEN]) -> Self {\n AztecAddress::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self {\n inner: 0\n }\n }\n\n pub fn from_field(field : Field) -> Self {\n Self {\n inner : field\n }\n }\n\n pub fn compute_from_public_key(pub_key: GrumpkinPoint, contract_class_id: ContractClassId, salt: Field, initialization_hash: Field, portal_contract_address: EthAddress) -> AztecAddress {\n AztecAddress::compute(PublicKeysHash::compute(pub_key), PartialAddress::compute(contract_class_id, salt, initialization_hash, portal_contract_address))\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n pedersen_hash(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS\n )\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n \n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs : Self, rhs : Self) -> Self{\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self {\n inner : result\n }\n }\n}\n\nstruct EthAddress{\n inner : Field\n}\n\nimpl Eq for EthAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for EthAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for EthAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<ETH_ADDRESS_SERIALIZED_LEN> for EthAddress {\n fn serialize(self: Self) -> [Field; ETH_ADDRESS_SERIALIZED_LEN] {\n [self.inner]\n }\n}\n\nimpl Deserialize<ETH_ADDRESS_SERIALIZED_LEN> for EthAddress {\n fn deserialize(fields: [Field; ETH_ADDRESS_SERIALIZED_LEN]) -> Self {\n Self {\n inner: fields[0]\n }\n }\n}\n\nimpl EthAddress{\n pub fn zero() -> Self {\n Self {\n inner: 0\n }\n }\n\n pub fn from_field(field : Field) -> Self {\n Self {\n inner : field\n }\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs : Self, rhs : Self) -> Self{\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self {\n inner : result\n }\n }\n}\n\n// Partial address\nstruct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field : Field) -> Self {\n Self {\n inner : field\n }\n }\n\n pub fn compute(contract_class_id: ContractClassId, salt: Field, initialization_hash: Field, portal_contract_address: EthAddress) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(contract_class_id, SaltedInitializationHash::compute(salt, initialization_hash, portal_contract_address))\n }\n\n pub fn compute_from_salted_initialization_hash(contract_class_id: ContractClassId, salted_initialization_hash: SaltedInitializationHash) -> Self {\n PartialAddress::from_field(\n pedersen_hash([\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ], GENERATOR_INDEX__PARTIAL_ADDRESS)\n )\n }\n\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\n// Salted initialization hash. Used in the computation of a partial address.\nstruct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field : Field) -> Self {\n Self {\n inner : field\n }\n }\n\n pub fn compute(salt : Field, initialization_hash: Field, portal_contract_address: EthAddress) -> Self {\n SaltedInitializationHash::from_field(\n pedersen_hash([\n salt,\n initialization_hash,\n portal_contract_address.to_field(),\n ], GENERATOR_INDEX__PARTIAL_ADDRESS)\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\n// Public keys hash. Used in the computation of an address.\nstruct PublicKeysHash {\n inner: Field\n}\n\nimpl ToField for PublicKeysHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl PublicKeysHash {\n pub fn from_field(field : Field) -> Self {\n Self {\n inner : field\n }\n }\n\n pub fn compute(public_key: GrumpkinPoint) -> Self {\n PublicKeysHash::from_field(\n pedersen_hash([\n public_key.x,\n public_key.y,\n ], GENERATOR_INDEX__PARTIAL_ADDRESS)\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\npub fn compute_initialization_hash(selector: Field, args_hash: Field) -> Field {\n pedersen_hash(\n [\n selector,\n args_hash\n ],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n",
2881
2938
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/address.nr"
2882
2939
  },
2883
- "130": {
2884
- "source": "use crate::address::EthAddress;\nuse crate::constants::{\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\n};\nuse crate::hash::pedersen_hash;\nuse crate::grumpkin_point::GrumpkinPoint;\nuse crate::traits::Hash;\n\n// docs:start:contract-deployment-data\nstruct ContractDeploymentData {\n deployer_public_key : GrumpkinPoint,\n constructor_vk_hash : Field,\n function_tree_root : Field,\n contract_address_salt : Field,\n portal_contract_address : EthAddress,\n}\n// docs:end:contract-deployment-data\n\nimpl Hash for ContractDeploymentData {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)\n }\n}\n\nimpl ContractDeploymentData {\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\n [\n self.deployer_public_key.x,\n self.deployer_public_key.y,\n self.constructor_vk_hash,\n self.function_tree_root,\n self.contract_address_salt,\n self.portal_contract_address.to_field(),\n ]\n }\n\n fn assert_is_zero(self) {\n self.deployer_public_key.assert_is_zero();\n assert(self.constructor_vk_hash == 0);\n assert(self.function_tree_root == 0);\n assert(self.contract_address_salt == 0);\n self.portal_contract_address.assert_is_zero();\n }\n\n}\n",
2885
- "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/contrakt/deployment_data.nr"
2940
+ "127": {
2941
+ "source": "use crate::traits::{Serialize, Deserialize};\n\nglobal BOOL_SERIALIZED_LEN: Field = 1;\nglobal U32_SERIALIZED_LEN: Field = 1;\nglobal U8_SERIALIZED_LEN: Field = 1;\nglobal FIELD_SERIALIZED_LEN: Field = 1;\nglobal AZTEC_ADDRESS_SERIALIZED_LEN = 1;\nglobal ETH_ADDRESS_SERIALIZED_LEN = 1;\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<U8_SERIALIZED_LEN> for u8 {\n fn serialize(self) -> [Field; U32_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<FIELD_SERIALIZED_LEN> for Field {\n fn serialize(self) -> [Field; U32_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<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",
2942
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/type_serialization.nr"
2886
2943
  },
2887
2944
  "131": {
2888
- "source": "use crate::{\n constants::{\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\n },\n hash::pedersen_hash,\n};\nuse dep::std::cmp::Eq;\nuse crate::traits::{Hash, Empty};\n\nstruct StorageUpdateRequest{\n storage_slot : Field,\n old_value : Field,\n new_value : Field,\n}\n\nimpl Eq for StorageUpdateRequest {\n fn eq(self, request: Self) -> bool {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3595)\n (request.storage_slot == self.storage_slot)\n & (request.old_value == self.old_value)\n & (request.new_value == self.new_value)\n }\n}\n\nimpl Empty for StorageUpdateRequest {\n fn empty() -> Self {\n StorageUpdateRequest {\n storage_slot: 0,\n old_value: 0,\n new_value: 0,\n }\n }\n}\n\nimpl Hash for StorageUpdateRequest {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)\n }\n}\n\nimpl StorageUpdateRequest {\n pub fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\n [self.storage_slot, self.old_value, self.new_value]\n }\n\n pub fn is_empty(self) -> bool {\n self.storage_slot == 0\n }\n}\n",
2889
- "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/contrakt/storage_update_request.nr"
2890
- },
2891
- "132": {
2892
- "source": "use crate::{\n constants::{\n CONTRACT_STORAGE_READ_LENGTH,\n GENERATOR_INDEX__PUBLIC_DATA_READ,\n },\n hash::pedersen_hash,\n};\nuse crate::traits::Empty;\n\nstruct StorageRead {\n storage_slot: Field,\n current_value: Field,\n}\n\nimpl Empty for StorageRead { \n fn empty() -> Self {\n Self {\n storage_slot: 0,\n current_value: 0,\n }\n }\n}\n\nimpl StorageRead {\n\n pub fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\n [self.storage_slot, self.current_value]\n }\n\n pub fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)\n }\n\n pub fn is_empty(self) -> bool {\n self.storage_slot == 0\n }\n}\n",
2893
- "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/contrakt/storage_read.nr"
2945
+ "source": "use crate::{\n address::EthAddress,\n contract_class::ContractClassId,\n constants::{\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\n },\n grumpkin_point::GrumpkinPoint,\n hash::pedersen_hash,\n traits::{\n Deserialize,\n Hash,\n Serialize,\n },\n};\n\n// docs:start:contract-deployment-data\nstruct ContractDeploymentData {\n public_key : GrumpkinPoint,\n initialization_hash : Field,\n contract_class_id : ContractClassId,\n contract_address_salt : Field,\n portal_contract_address : EthAddress,\n}\n// docs:end:contract-deployment-data\n\nimpl Eq for ContractDeploymentData {\n fn eq(self, other: Self) -> bool {\n self.public_key.eq(other.public_key) &\n self.initialization_hash.eq(other.initialization_hash) &\n self.contract_class_id.eq(other.contract_class_id) &\n self.contract_address_salt.eq(other.contract_address_salt) &\n self.portal_contract_address.eq(other.portal_contract_address)\n }\n}\n\nimpl Hash for ContractDeploymentData {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)\n }\n}\n\nimpl Serialize<CONTRACT_DEPLOYMENT_DATA_LENGTH> for ContractDeploymentData {\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\n [\n self.public_key.x,\n self.public_key.y,\n self.initialization_hash,\n self.contract_class_id.to_field(),\n self.contract_address_salt,\n self.portal_contract_address.to_field(),\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_DEPLOYMENT_DATA_LENGTH> for ContractDeploymentData {\n fn deserialize(serialized: [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH]) -> Self {\n Self {\n public_key: GrumpkinPoint {\n x: serialized[0],\n y: serialized[1],\n },\n initialization_hash: serialized[2],\n contract_class_id: ContractClassId::from_field(serialized[3]),\n contract_address_salt: serialized[4],\n portal_contract_address: EthAddress::from_field(serialized[5]),\n }\n }\n}\n\nimpl ContractDeploymentData {\n fn assert_is_zero(self) {\n self.public_key.assert_is_zero();\n assert(self.initialization_hash == 0);\n self.contract_class_id.assert_is_zero();\n assert(self.contract_address_salt == 0);\n self.portal_contract_address.assert_is_zero();\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let data: ContractDeploymentData = dep::std::unsafe::zeroed();\n let serialized = data.serialize();\n let deserialized = ContractDeploymentData::deserialize(serialized);\n assert(data.eq(deserialized));\n}\n",
2946
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/contrakt/deployment_data.nr"
2894
2947
  },
2895
- "140": {
2896
- "source": "use crate::abis::{\n function_data::FunctionData,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_circuit_public_inputs::PublicCircuitPublicInputs,\n};\nuse crate::address::AztecAddress;\nuse crate::constants::{\n GENERATOR_INDEX__CALL_STACK_ITEM,\n};\nuse crate::traits::Hash;\n\nstruct PrivateCallStackItem {\n // This is the _actual_ contract address relating to where this function's code resides in the\n // contract tree. Regardless of whether this is a call or delegatecall, this\n // `contract_address` _does not change_. Amongst other things, it's used as a lookup for\n // getting the correct code from the tree. There is a separate `storage_contract_address`\n // within a CallStackItem which varies depending on whether this is a call or delegatecall.\n contract_address: AztecAddress,\n public_inputs: PrivateCircuitPublicInputs,\n function_data: FunctionData,\n // Not really needed for PrivateCallStackItem.\n is_execution_request: bool,\n}\n\nimpl Hash for PrivateCallStackItem {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator([\n self.contract_address.to_field(),\n self.function_data.hash(),\n self.public_inputs.hash(),\n ], GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nstruct PublicCallStackItem {\n contract_address: AztecAddress,\n public_inputs: PublicCircuitPublicInputs,\n function_data: FunctionData,\n // True if this call stack item represents a request to execute a function rather than a\n // fulfilled execution. Used when enqueuing calls from private to public functions.\n is_execution_request: bool,\n}\n\nimpl Hash for PublicCallStackItem {\n fn hash(self) -> Field {\n let item = if self.is_execution_request {\n self.as_execution_request()\n } else {\n self\n };\n\n dep::std::hash::pedersen_hash_with_separator([\n item.contract_address.to_field(),\n item.function_data.hash(),\n item.public_inputs.hash(),\n ], GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nimpl PublicCallStackItem {\n fn as_execution_request(self) -> Self {\n let public_inputs = self.public_inputs;\n let mut request_public_inputs: PublicCircuitPublicInputs = dep::std::unsafe::zeroed();\n request_public_inputs.call_context = public_inputs.call_context;\n request_public_inputs.args_hash = public_inputs.args_hash;\n\n let call_stack_item = PublicCallStackItem {\n contract_address: self.contract_address,\n function_data: self.function_data,\n is_execution_request: true,\n public_inputs: request_public_inputs,\n };\n call_stack_item\n }\n}\n",
2897
- "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/call_stack_item.nr"
2948
+ "139": {
2949
+ "source": "struct Reader<N> {\n data: [Field; N],\n offset: Field,\n}\n\nimpl<N> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_array<K>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, K>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, K, C>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n } \n}\n",
2950
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/utils/reader.nr"
2898
2951
  },
2899
- "144": {
2900
- "source": "use crate::constants::{GENERATOR_INDEX__SIDE_EFFECT};\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, Hash};\n\ntrait Ordered {\n fn counter(self) -> u32;\n}\n\nstruct SideEffect{\n value: Field,\n counter: u32,\n}\n\nimpl Ordered for SideEffect {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for SideEffect {\n fn eq(self, side_effect: SideEffect) -> bool {\n (self.value == side_effect.value)\n & (self.counter == side_effect.counter)\n }\n}\n\nimpl Empty for SideEffect {\n fn empty() -> Self {\n SideEffect {\n value: 0,\n counter: 0,\n }\n }\n}\n\nimpl Hash for SideEffect {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator(\n self.serialize() , GENERATOR_INDEX__SIDE_EFFECT)\n }\n}\n\nimpl SideEffect {\n pub fn serialize(self) -> [Field; 2] {\n [self.value, self.counter as Field]\n }\n\n pub fn deserialise(values: [Field; 2]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n }\n }\n\n pub fn is_empty(self) -> bool {\n (self.value == 0)\n & (self.counter == 0)\n }\n}\n\nstruct SideEffectLinkedToNoteHash{\n value: Field,\n note_hash: Field,\n counter: u32,\n}\n\nimpl Ordered for SideEffectLinkedToNoteHash {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for SideEffectLinkedToNoteHash {\n fn eq(self, side_effect: SideEffectLinkedToNoteHash) -> bool {\n (self.value == side_effect.value)\n & (self.note_hash == side_effect.note_hash) \n & (self.counter == side_effect.counter)\n }\n}\n\nimpl Empty for SideEffectLinkedToNoteHash {\n fn empty() -> Self {\n SideEffectLinkedToNoteHash {\n value: 0,\n note_hash: 0,\n counter: 0,\n }\n }\n}\n\nimpl Hash for SideEffectLinkedToNoteHash {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIDE_EFFECT)\n }\n}\n\nimpl SideEffectLinkedToNoteHash{\n pub fn serialize(self) -> [Field; 3] {\n [self.value, self.note_hash, self.counter as Field]\n }\n\n pub fn deserialise(values: [Field; 3]) -> Self {\n Self {\n value: values[0],\n note_hash: values[1],\n counter: values[2] as u32,\n }\n }\n\n pub fn is_empty(self) -> bool {\n (self.value == 0)\n & (self.note_hash == 0)\n & (self.counter == 0)\n }\n}\n\n",
2952
+ "143": {
2953
+ "source": "use crate::constants::{GENERATOR_INDEX__SIDE_EFFECT};\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, Hash, Serialize, Deserialize};\n\ntrait Ordered {\n fn counter(self) -> u32;\n}\n\nstruct SideEffect{\n value: Field,\n counter: u32,\n}\n\nimpl Ordered for SideEffect {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for SideEffect {\n fn eq(self, side_effect: SideEffect) -> bool {\n (self.value == side_effect.value)\n & (self.counter == side_effect.counter)\n }\n}\n\nimpl Empty for SideEffect {\n fn empty() -> Self {\n SideEffect {\n value: 0,\n counter: 0,\n }\n }\n}\n\nimpl Hash for SideEffect {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator(\n self.serialize() , GENERATOR_INDEX__SIDE_EFFECT)\n }\n}\n\nimpl Serialize<2> for SideEffect {\n fn serialize(self) -> [Field; 2] {\n [self.value, self.counter as Field]\n }\n}\n\nimpl Deserialize<2> for SideEffect {\n fn deserialize(values: [Field; 2]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n }\n }\n}\n\nstruct SideEffectLinkedToNoteHash{\n value: Field,\n note_hash: Field,\n counter: u32,\n}\n\nimpl Ordered for SideEffectLinkedToNoteHash {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for SideEffectLinkedToNoteHash {\n fn eq(self, side_effect: SideEffectLinkedToNoteHash) -> bool {\n (self.value == side_effect.value)\n & (self.note_hash == side_effect.note_hash) \n & (self.counter == side_effect.counter)\n }\n}\n\nimpl Empty for SideEffectLinkedToNoteHash {\n fn empty() -> Self {\n SideEffectLinkedToNoteHash {\n value: 0,\n note_hash: 0,\n counter: 0,\n }\n }\n}\n\nimpl Hash for SideEffectLinkedToNoteHash {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIDE_EFFECT)\n }\n}\n\nimpl Serialize<3> for SideEffectLinkedToNoteHash {\n fn serialize(self) -> [Field; 3] {\n [self.value, self.note_hash, self.counter as Field]\n }\n}\n\nimpl Deserialize<3> for SideEffectLinkedToNoteHash {\n fn deserialize(values: [Field; 3]) -> Self {\n Self {\n value: values[0],\n note_hash: values[1],\n counter: values[2] as u32,\n }\n }\n}\n\n",
2901
2954
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/side_effect.nr"
2902
2955
  },
2956
+ "145": {
2957
+ "source": "use crate::abis::{\n function_data::FunctionData,\n public_circuit_public_inputs::PublicCircuitPublicInputs,\n};\nuse crate::address::AztecAddress;\nuse crate::constants::GENERATOR_INDEX__CALL_STACK_ITEM;\nuse crate::traits::Hash;\n\nstruct PublicCallStackItem {\n contract_address: AztecAddress,\n public_inputs: PublicCircuitPublicInputs,\n function_data: FunctionData,\n // True if this call stack item represents a request to execute a function rather than a\n // fulfilled execution. Used when enqueuing calls from private to public functions.\n is_execution_request: bool,\n}\n\nimpl Hash for PublicCallStackItem {\n fn hash(self) -> Field {\n let item = if self.is_execution_request {\n self.as_execution_request()\n } else {\n self\n };\n\n dep::std::hash::pedersen_hash_with_separator([\n item.contract_address.to_field(),\n item.function_data.hash(),\n item.public_inputs.hash(),\n ], GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nimpl PublicCallStackItem {\n fn as_execution_request(self) -> Self {\n let public_inputs = self.public_inputs;\n let mut request_public_inputs: PublicCircuitPublicInputs = dep::std::unsafe::zeroed();\n request_public_inputs.call_context = public_inputs.call_context;\n request_public_inputs.args_hash = public_inputs.args_hash;\n\n let call_stack_item = PublicCallStackItem {\n contract_address: self.contract_address,\n function_data: self.function_data,\n is_execution_request: true,\n public_inputs: request_public_inputs,\n };\n call_stack_item\n }\n}\n",
2958
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/public_call_stack_item.nr"
2959
+ },
2903
2960
  "147": {
2904
- "source": "use crate::constants::{\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n};\nuse crate::{\n abis::{\n call_context::CallContext,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash},\n },\n address::AztecAddress,\n contrakt::{\n storage_read::StorageRead,\n storage_update_request::StorageUpdateRequest,\n },\n header::Header,\n utils::bounded_vec::BoundedVec,\n};\n\nstruct PublicCircuitPublicInputs{\n call_context: CallContext,\n\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n\n contract_storage_update_requests: [StorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\n\n // todo: add sideeffect ranges for the input to these hashes\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [SideEffect; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [SideEffectLinkedToNoteHash; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n\n // Here so that the gas cost of this request can be measured by circuits, without actually needing to feed in the\n // variable-length data.\n unencrypted_log_preimages_length: Field,\n\n historical_header: Header,\n\n prover_address: AztecAddress,\n}\n\nimpl PublicCircuitPublicInputs{\n fn hash(self) -> Field { \n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3595) have mercy por favor \n let mut inputs: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0);\n inputs.push(self.call_context.hash());\n inputs.push(self.args_hash);\n inputs.push_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n inputs.push(self.contract_storage_update_requests[i].hash());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n inputs.push(self.contract_storage_reads[i].hash());\n }\n inputs.push_array(self.public_call_stack_hashes);\n\n for i in 0..MAX_NEW_COMMITMENTS_PER_CALL{\n inputs.push(self.new_commitments[i].hash());\n }\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL{\n inputs.push(self.new_nullifiers[i].hash());\n }\n inputs.push_array(self.new_l2_to_l1_msgs);\n inputs.push_array(self.unencrypted_logs_hash);\n inputs.push(self.unencrypted_log_preimages_length);\n inputs.push_array(self.historical_header.serialize());\n inputs.push(self.prover_address.to_field());\n\n assert_eq(inputs.len(), PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH, \"Incorrect number of input fields when hashing PublicCircuitPublicInputs\");\n\n dep::std::hash::pedersen_hash_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)\n }\n\n pub fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \n fields.push_array(self.call_context.serialize()); \n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n fields.push_array(self.contract_storage_update_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n fields.push_array(self.contract_storage_reads[i].serialize());\n }\n fields.push_array(self.public_call_stack_hashes);\n\n for i in 0..MAX_NEW_COMMITMENTS_PER_CALL{\n fields.push_array(self.new_commitments[i].serialize());\n }\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL{\n fields.push_array(self.new_nullifiers[i].serialize());\n }\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.historical_header.serialize());\n fields.push(self.prover_address.to_field());\n fields.storage\n }\n}\n",
2961
+ "source": "use crate::{\n abis::{\n call_context::CallContext,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash},\n },\n address::AztecAddress,\n constants::{\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n },\n contrakt::{\n storage_read::StorageRead,\n storage_update_request::StorageUpdateRequest,\n },\n hash::pedersen_hash,\n header::Header,\n traits::{\n Hash,\n Serialize,\n Deserialize,\n },\n utils::reader::Reader,\n};\n\nstruct PublicCircuitPublicInputs{\n call_context: CallContext,\n\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n\n contract_storage_update_requests: [StorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\n\n // todo: add sideeffect ranges for the input to these hashes\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_commitments: [SideEffect; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [SideEffectLinkedToNoteHash; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n\n // Here so that the gas cost of this request can be measured by circuits, without actually needing to feed in the\n // variable-length data.\n unencrypted_log_preimages_length: Field,\n\n // Header of a block whose state is used during public execution. Set by sequencer to be a header of a block\n // previous to the one in which the tx is included.\n historical_header: Header,\n\n prover_address: AztecAddress,\n}\n\nimpl Eq for PublicCircuitPublicInputs {\n fn eq(self, other: Self) -> bool {\n self.serialize() == other.serialize()\n }\n}\n\nimpl Serialize<PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PublicCircuitPublicInputs {\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \n fields.extend_from_array(self.call_context.serialize()); \n fields.push(self.args_hash);\n fields.extend_from_array(self.return_values);\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n fields.extend_from_array(self.contract_storage_update_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n fields.extend_from_array(self.contract_storage_reads[i].serialize());\n }\n fields.extend_from_array(self.public_call_stack_hashes);\n\n for i in 0..MAX_NEW_COMMITMENTS_PER_CALL{\n fields.extend_from_array(self.new_commitments[i].serialize());\n }\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL{\n fields.extend_from_array(self.new_nullifiers[i].serialize());\n }\n fields.extend_from_array(self.new_l2_to_l1_msgs);\n fields.extend_from_array(self.unencrypted_logs_hash);\n fields.push(self.unencrypted_log_preimages_length);\n fields.extend_from_array(self.historical_header.serialize());\n fields.push(self.prover_address.to_field());\n fields.storage\n }\n}\n\nimpl Deserialize<PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PublicCircuitPublicInputs {\n fn deserialize(serialized: [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n let inputs = PublicCircuitPublicInputs {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n return_values: reader.read_array([0; RETURN_VALUES_LENGTH]),\n contract_storage_update_requests: reader.read_struct_array(StorageUpdateRequest::deserialize, [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL]),\n contract_storage_reads: reader.read_struct_array(StorageRead::deserialize, [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL]),\n public_call_stack_hashes: reader.read_array([0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL]),\n new_commitments: reader.read_struct_array(SideEffect::deserialize, [SideEffect::empty(); MAX_NEW_COMMITMENTS_PER_CALL]),\n new_nullifiers: reader.read_struct_array(SideEffectLinkedToNoteHash::deserialize, [SideEffectLinkedToNoteHash::empty(); MAX_NEW_NULLIFIERS_PER_CALL]),\n new_l2_to_l1_msgs: reader.read_array([0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL]),\n unencrypted_logs_hash: reader.read_array([0; NUM_FIELDS_PER_SHA256]),\n unencrypted_log_preimages_length: reader.read(),\n historical_header: reader.read_struct(Header::deserialize),\n prover_address: reader.read_struct(AztecAddress::deserialize),\n };\n\n reader.finish();\n inputs\n }\n}\n\nimpl Hash for PublicCircuitPublicInputs {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let pcpi: PublicCircuitPublicInputs = dep::std::unsafe::zeroed();\n let serialized = pcpi.serialize();\n let deserialized = PublicCircuitPublicInputs::deserialize(serialized);\n assert(pcpi.eq(deserialized));\n}\n\n#[test]\nfn hash_smoke() {\n let pcpi: PublicCircuitPublicInputs = dep::std::unsafe::zeroed();\n let _hashed = pcpi.hash();\n}\n",
2905
2962
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/public_circuit_public_inputs.nr"
2906
2963
  },
2964
+ "149": {
2965
+ "source": "use crate::{\n abis::{\n function_data::FunctionData,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n },\n address::AztecAddress,\n constants::{\n GENERATOR_INDEX__CALL_STACK_ITEM,\n PRIVATE_CALL_STACK_ITEM_LENGTH,\n },\n hash::pedersen_hash,\n traits::{\n Deserialize,\n Hash,\n Serialize,\n },\n utils::reader::Reader,\n};\n\nstruct PrivateCallStackItem {\n // This is the _actual_ contract address relating to where this function's code resides in the\n // contract tree. Regardless of whether this is a call or delegatecall, this\n // `contract_address` _does not change_. Amongst other things, it's used as a lookup for\n // getting the correct code from the tree. There is a separate `storage_contract_address`\n // within a CallStackItem which varies depending on whether this is a call or delegatecall.\n contract_address: AztecAddress,\n function_data: FunctionData,\n public_inputs: PrivateCircuitPublicInputs,\n}\n\nimpl Eq for PrivateCallStackItem {\n fn eq(self, other: Self) -> bool {\n self.contract_address.eq(other.contract_address) &\n self.function_data.eq(other.function_data) &\n self.public_inputs.eq(other.public_inputs)\n }\n}\n\nimpl Serialize<PRIVATE_CALL_STACK_ITEM_LENGTH> for PrivateCallStackItem {\n fn serialize(self) -> [Field; PRIVATE_CALL_STACK_ITEM_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CALL_STACK_ITEM_LENGTH> = BoundedVec::new(0); \n\n fields.push(self.contract_address.to_field());\n fields.extend_from_array(self.function_data.serialize());\n fields.extend_from_array(self.public_inputs.serialize());\n\n assert_eq(fields.len(), PRIVATE_CALL_STACK_ITEM_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PRIVATE_CALL_STACK_ITEM_LENGTH> for PrivateCallStackItem {\n fn deserialize(serialized: [Field; PRIVATE_CALL_STACK_ITEM_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n\n let item = Self {\n contract_address: reader.read_struct(AztecAddress::deserialize),\n function_data: reader.read_struct(FunctionData::deserialize),\n public_inputs: reader.read_struct(PrivateCircuitPublicInputs::deserialize),\n };\n\n reader.finish();\n item\n }\n}\n\nimpl Hash for PrivateCallStackItem {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item: PrivateCallStackItem = dep::std::unsafe::zeroed();\n let serialized = item.serialize();\n let deserialized = PrivateCallStackItem::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let mut item: PrivateCallStackItem = dep::std::unsafe::zeroed();\n item.function_data.is_private = true;\n let hash = item.hash();\n\n // Value from private_call_stack_item.test.ts \"computes empty item hash\" test\n assert_eq(hash, 0x059cec98e99de84399e51ba84bc3b7fe6f0afa407a8da6ae30b07d40cd4356cd);\n}\n",
2966
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/private_call_stack_item.nr"
2967
+ },
2907
2968
  "150": {
2908
- "source": "use crate::{\n abis::{\n call_context::CallContext,\n nullifier_key_validation_request::NullifierKeyValidationRequest,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash},\n },\n contrakt::deployment_data::ContractDeploymentData,\n hash::{\n pedersen_hash,\n },\n header::Header,\n utils::bounded_vec::BoundedVec,\n};\nuse crate::constants::{\n MAX_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\n};\nuse crate::traits::Hash;\n\nstruct PrivateCircuitPublicInputs {\n call_context: CallContext,\n \n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n\n read_requests: [SideEffect; MAX_READ_REQUESTS_PER_CALL],\n nullifier_key_validation_requests: [NullifierKeyValidationRequest; MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL],\n\n new_commitments: [SideEffect; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [SideEffectLinkedToNoteHash; MAX_NEW_NULLIFIERS_PER_CALL],\n private_call_stack_hashes: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n end_side_effect_counter : u32,\n\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n\n // Here so that the gas cost of this request can be measured by circuits, without actually needing to feed in the\n // variable-length data.\n encrypted_log_preimages_length: Field,\n unencrypted_log_preimages_length: Field,\n\n // Header of the block the transaction is executing against (not the block the transaction is included in).\n historical_header: Header,\n\n contract_deployment_data: ContractDeploymentData,\n\n chain_id: Field,\n version: Field,\n}\n\nimpl Hash for PrivateCircuitPublicInputs {\n fn hash(self) -> Field {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3595)\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0); \n fields.push(self.call_context.hash());\n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n\n for i in 0..MAX_READ_REQUESTS_PER_CALL{\n fields.push_array(self.read_requests[i].serialize());\n }\n for i in 0..MAX_NEW_COMMITMENTS_PER_CALL{\n fields.push_array(self.new_commitments[i].serialize());\n }\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL{\n fields.push_array(self.new_nullifiers[i].serialize());\n }\n fields.push_array(self.private_call_stack_hashes);\n fields.push_array(self.public_call_stack_hashes);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push(self.end_side_effect_counter as Field);\n fields.push_array(self.encrypted_logs_hash);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.historical_header.serialize());\n fields.push(self.contract_deployment_data.hash());\n fields.push(self.chain_id);\n fields.push(self.version);\n\n assert_eq(fields.len(), PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH, \"Incorrect number of input fields when hashing PrivateCircuitPublicInputs\");\n\n pedersen_hash(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)\n }\n}\n\nimpl PrivateCircuitPublicInputs {\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \n fields.push_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.push_array(self.return_values);\n\n for i in 0..MAX_READ_REQUESTS_PER_CALL{\n fields.push_array(self.read_requests[i].serialize());\n }\n for i in 0..MAX_NEW_COMMITMENTS_PER_CALL{\n fields.push_array(self.new_commitments[i].serialize());\n }\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL{\n fields.push_array(self.new_nullifiers[i].serialize());\n }\n fields.push_array(self.private_call_stack_hashes);\n fields.push_array(self.public_call_stack_hashes);\n fields.push_array(self.new_l2_to_l1_msgs);\n fields.push(self.end_side_effect_counter as Field);\n fields.push_array(self.encrypted_logs_hash);\n fields.push_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.push_array(self.historical_header.serialize());\n fields.push_array(self.contract_deployment_data.serialize());\n fields.push(self.chain_id);\n fields.push(self.version);\n\n assert_eq(fields.len(), PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH);\n\n fields.storage\n }\n}\n\n#[test]\nfn serialization_smoke() {\n let pcpi: PrivateCircuitPublicInputs = dep::std::unsafe::zeroed();\n let _serialized = pcpi.serialize();\n}\n\n#[test]\nfn hash_smoke() {\n let pcpi: PrivateCircuitPublicInputs = dep::std::unsafe::zeroed();\n let _hashed = pcpi.hash();\n}\n",
2969
+ "source": "use dep::std::cmp::Eq;\nuse crate::{\n address::AztecAddress,\n traits::{Empty, Serialize, Deserialize},\n grumpkin_point::GrumpkinPoint,\n grumpkin_private_key::GrumpkinPrivateKey,\n};\n\nglobal NULLIFIER_KEY_VALIDATION_REQUEST_SERIALIZED_LEN = 4;\nglobal NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_SERIALIZED_LEN = 5;\n\nstruct NullifierKeyValidationRequest {\n public_key: GrumpkinPoint,\n secret_key: GrumpkinPrivateKey,\n}\n\nimpl Eq for NullifierKeyValidationRequest {\n fn eq(self, request: NullifierKeyValidationRequest) -> bool {\n (request.public_key.eq(self.public_key))\n & (request.secret_key.eq(self.secret_key))\n }\n}\n\nimpl Empty for NullifierKeyValidationRequest {\n fn empty() -> Self {\n NullifierKeyValidationRequest {\n public_key: GrumpkinPoint::zero(),\n secret_key: GrumpkinPrivateKey::zero(),\n }\n }\n}\n\nimpl Serialize<NULLIFIER_KEY_VALIDATION_REQUEST_SERIALIZED_LEN> for NullifierKeyValidationRequest {\n fn serialize(self) -> [Field; NULLIFIER_KEY_VALIDATION_REQUEST_SERIALIZED_LEN] {\n [\n self.public_key.x,\n self.public_key.y,\n self.secret_key.high,\n self.secret_key.low,\n ]\n }\n}\n\nimpl Deserialize<NULLIFIER_KEY_VALIDATION_REQUEST_SERIALIZED_LEN> for NullifierKeyValidationRequest {\n fn deserialize(fields: [Field; NULLIFIER_KEY_VALIDATION_REQUEST_SERIALIZED_LEN]) -> Self {\n Self {\n public_key: GrumpkinPoint::new(fields[0], fields[1]),\n secret_key: GrumpkinPrivateKey::new(fields[2], fields[3]),\n }\n }\n}\n\nimpl NullifierKeyValidationRequest {\n pub fn to_context(self, contract_address: AztecAddress) -> NullifierKeyValidationRequestContext {\n NullifierKeyValidationRequestContext {\n public_key: self.public_key,\n secret_key: self.secret_key,\n contract_address,\n }\n }\n}\n\nstruct NullifierKeyValidationRequestContext {\n public_key: GrumpkinPoint,\n secret_key: GrumpkinPrivateKey,\n contract_address: AztecAddress,\n}\n\nimpl Eq for NullifierKeyValidationRequestContext {\n fn eq(self, request: NullifierKeyValidationRequestContext) -> bool {\n (request.public_key.eq(self.public_key))\n & (request.secret_key.eq(self.secret_key))\n & (request.contract_address.eq(self.contract_address))\n }\n}\n\nimpl Empty for NullifierKeyValidationRequestContext {\n fn empty() -> Self {\n NullifierKeyValidationRequestContext {\n public_key: GrumpkinPoint::zero(),\n secret_key: GrumpkinPrivateKey::zero(),\n contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl Serialize<NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_SERIALIZED_LEN> for NullifierKeyValidationRequestContext {\n fn serialize(self) -> [Field; NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_SERIALIZED_LEN] {\n [\n self.public_key.x,\n self.public_key.y,\n self.secret_key.high,\n self.secret_key.low,\n self.contract_address.to_field(),\n ]\n }\n}\n\nimpl Deserialize<NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_SERIALIZED_LEN> for NullifierKeyValidationRequestContext {\n fn deserialize(fields: [Field; NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_SERIALIZED_LEN]) -> Self {\n Self {\n public_key: GrumpkinPoint::new(fields[0], fields[1]),\n secret_key: GrumpkinPrivateKey::new(fields[2], fields[3]),\n contract_address: AztecAddress::from_field(fields[4]),\n }\n }\n}\n\n",
2970
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/nullifier_key_validation_request.nr"
2971
+ },
2972
+ "151": {
2973
+ "source": "use crate::{\n abis::{\n call_context::CallContext,\n nullifier_key_validation_request::NullifierKeyValidationRequest,\n side_effect::{\n SideEffect,\n SideEffectLinkedToNoteHash,\n },\n },\n constants::{\n MAX_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL,\n MAX_NEW_COMMITMENTS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n NUM_FIELDS_PER_SHA256,\n RETURN_VALUES_LENGTH,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\n },\n contrakt::deployment_data::ContractDeploymentData,\n header::Header,\n hash::pedersen_hash,\n traits::{\n Deserialize,\n Hash,\n Serialize,\n },\n utils::reader::Reader,\n};\n\nstruct PrivateCircuitPublicInputs {\n call_context: CallContext,\n\n args_hash: Field,\n return_values: [Field; RETURN_VALUES_LENGTH],\n\n meta_hwm: u32,\n\n read_requests: [SideEffect; MAX_READ_REQUESTS_PER_CALL],\n nullifier_key_validation_requests: [NullifierKeyValidationRequest; MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL],\n\n new_commitments: [SideEffect; MAX_NEW_COMMITMENTS_PER_CALL],\n new_nullifiers: [SideEffectLinkedToNoteHash; MAX_NEW_NULLIFIERS_PER_CALL],\n private_call_stack_hashes: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n end_side_effect_counter : u32,\n\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\n\n // Here so that the gas cost of this request can be measured by circuits, without actually needing to feed in the\n // variable-length data.\n encrypted_log_preimages_length: Field,\n unencrypted_log_preimages_length: Field,\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n contract_deployment_data: ContractDeploymentData,\n\n // Note: The following 2 values are not redundant to the values in self.historical_header.global_variables because\n // they can be different in case of a protocol upgrade. In such a situation we could be using header from a block\n // before the upgrade took place but be using the updated protocol to execute and prove the transaction.\n chain_id: Field,\n version: Field,\n}\n\nimpl Eq for PrivateCircuitPublicInputs {\n fn eq(self, other: Self) -> bool {\n self.call_context.eq(other.call_context) &\n self.args_hash.eq(other.args_hash) &\n (self.return_values == other.return_values) &\n (self.read_requests == other.read_requests) &\n (self.nullifier_key_validation_requests == other.nullifier_key_validation_requests) &\n (self.new_commitments == other.new_commitments) &\n (self.new_nullifiers == other.new_nullifiers) &\n (self.private_call_stack_hashes == other.private_call_stack_hashes) &\n (self.public_call_stack_hashes == other.public_call_stack_hashes) &\n (self.new_l2_to_l1_msgs == other.new_l2_to_l1_msgs) &\n (self.end_side_effect_counter == other.end_side_effect_counter) &\n (self.encrypted_logs_hash == other.encrypted_logs_hash) &\n (self.unencrypted_logs_hash == other.unencrypted_logs_hash) &\n (self.encrypted_log_preimages_length == other.encrypted_log_preimages_length) &\n (self.unencrypted_log_preimages_length == other.unencrypted_log_preimages_length) &\n self.historical_header.eq(other.historical_header) &\n self.contract_deployment_data.eq(other.contract_deployment_data) &\n self.chain_id.eq(other.chain_id) &\n self.version.eq(other.version)\n }\n}\n\nimpl Serialize<PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PrivateCircuitPublicInputs {\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0);\n fields.extend_from_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.extend_from_array(self.return_values);\n\n fields.push(self.meta_hwm as Field);\n\n for i in 0..MAX_READ_REQUESTS_PER_CALL{\n fields.extend_from_array(self.read_requests[i].serialize());\n }\n for i in 0..MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL{\n fields.extend_from_array(self.nullifier_key_validation_requests[i].serialize());\n }\n for i in 0..MAX_NEW_COMMITMENTS_PER_CALL{\n fields.extend_from_array(self.new_commitments[i].serialize());\n }\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL{\n fields.extend_from_array(self.new_nullifiers[i].serialize());\n }\n fields.extend_from_array(self.private_call_stack_hashes);\n fields.extend_from_array(self.public_call_stack_hashes);\n fields.extend_from_array(self.new_l2_to_l1_msgs);\n fields.push(self.end_side_effect_counter as Field);\n fields.extend_from_array(self.encrypted_logs_hash);\n fields.extend_from_array(self.unencrypted_logs_hash);\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.extend_from_array(self.historical_header.serialize());\n fields.extend_from_array(self.contract_deployment_data.serialize());\n fields.push(self.chain_id);\n fields.push(self.version);\n\n assert_eq(fields.len(), PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PrivateCircuitPublicInputs {\n fn deserialize(serialized: [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n let inputs = Self {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n return_values: reader.read_array([0; RETURN_VALUES_LENGTH]),\n meta_hwm: reader.read() as u32,\n read_requests: reader.read_struct_array(SideEffect::deserialize, [SideEffect::empty(); MAX_READ_REQUESTS_PER_CALL]),\n nullifier_key_validation_requests: reader.read_struct_array(NullifierKeyValidationRequest::deserialize, [NullifierKeyValidationRequest::empty(); MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL]),\n new_commitments: reader.read_struct_array(SideEffect::deserialize, [SideEffect::empty(); MAX_NEW_COMMITMENTS_PER_CALL]),\n new_nullifiers: reader.read_struct_array(SideEffectLinkedToNoteHash::deserialize, [SideEffectLinkedToNoteHash::empty(); MAX_NEW_NULLIFIERS_PER_CALL]),\n private_call_stack_hashes: reader.read_array([0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL]),\n public_call_stack_hashes: reader.read_array([0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL]),\n new_l2_to_l1_msgs: reader.read_array([0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL]),\n end_side_effect_counter: reader.read() as u32,\n encrypted_logs_hash: reader.read_array([0; NUM_FIELDS_PER_SHA256]),\n unencrypted_logs_hash: reader.read_array([0; NUM_FIELDS_PER_SHA256]),\n encrypted_log_preimages_length: reader.read(),\n unencrypted_log_preimages_length: reader.read(),\n historical_header: reader.read_struct(Header::deserialize),\n contract_deployment_data: reader.read_struct(ContractDeploymentData::deserialize),\n chain_id: reader.read(),\n version: reader.read(),\n };\n\n reader.finish();\n inputs\n }\n}\n\nimpl Hash for PrivateCircuitPublicInputs {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let pcpi: PrivateCircuitPublicInputs = dep::std::unsafe::zeroed();\n let serialized = pcpi.serialize();\n let deserialized = PrivateCircuitPublicInputs::deserialize(serialized);\n assert(pcpi.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let inputs: PrivateCircuitPublicInputs = dep::std::unsafe::zeroed();\n let hash = inputs.hash();\n\n // Value from private_circuit_public_inputs.test.ts \"computes empty item hash\" test\n assert_eq(hash, 0x0f16478dc1731c940b04c312d322697f6a3bff523d2660d896426b2ab3af9598);\n}\n",
2909
2974
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/private_circuit_public_inputs.nr"
2910
2975
  },
2911
- "153": {
2912
- "source": "use crate::abis::function_selector::FunctionSelector;\nuse crate::constants::GENERATOR_INDEX__FUNCTION_DATA;\n\nstruct FunctionData {\n // First four bytes of the abi encoding \n // of a function. \n selector : FunctionSelector,\n is_internal : bool,\n is_private : bool,\n is_constructor : bool,\n}\n\nimpl FunctionData {\n // A field is ~256 bits\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3057): Since, function data can fit into a Field,\n // This method will simply return a bit packed Field instead of hashing\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator([\n self.selector.to_field(),\n self.is_internal as Field,\n self.is_private as Field,\n self.is_constructor as Field,\n ], GENERATOR_INDEX__FUNCTION_DATA)\n }\n}\n",
2976
+ "154": {
2977
+ "source": "use crate::{\n abis::function_selector::FunctionSelector,\n constants::{\n GENERATOR_INDEX__FUNCTION_DATA,\n FUNCTION_DATA_LENGTH,\n },\n hash::pedersen_hash,\n traits::{\n Serialize,\n Hash,\n Deserialize,\n },\n};\n\nstruct FunctionData {\n // First four bytes of the abi encoding \n // of a function. \n selector : FunctionSelector,\n is_internal : bool,\n is_private : bool,\n is_constructor : bool,\n}\n\nimpl Eq for FunctionData {\n fn eq(self, other: Self) -> bool {\n self.selector.eq(other.selector) &\n self.is_internal == other.is_internal &\n self.is_private == other.is_private &\n self.is_constructor == other.is_constructor\n }\n}\n\nimpl Serialize<FUNCTION_DATA_LENGTH> for FunctionData {\n // A field is ~256 bits\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3057): Since, function data can fit into a Field,\n // This method will simply return a bit packed Field instead of hashing\n fn serialize(self) -> [Field; FUNCTION_DATA_LENGTH] {\n [\n self.selector.to_field(),\n self.is_internal as Field,\n self.is_private as Field,\n self.is_constructor as Field,\n ]\n }\n}\n\nimpl Deserialize<FUNCTION_DATA_LENGTH> for FunctionData {\n fn deserialize(serialized: [Field; FUNCTION_DATA_LENGTH]) -> Self {\n Self {\n selector: FunctionSelector::from_field(serialized[0]),\n is_internal: serialized[1] as bool,\n is_private: serialized[2] as bool,\n is_constructor: serialized[3] as bool,\n }\n }\n}\n\nimpl Hash for FunctionData {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__FUNCTION_DATA)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let data: FunctionData = dep::std::unsafe::zeroed();\n let serialized = data.serialize();\n let deserialized = FunctionData::deserialize(serialized);\n assert(data.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let data: FunctionData = dep::std::unsafe::zeroed();\n let hash = data.hash();\n\n // Value from function_data.test.ts \"computes empty item hash\" test\n assert_eq(hash, 0x200569267c0f73ac89aaa414239398db9445dd4ad3a8cf37015cd55b8d4c5e8d);\n}\n",
2913
2978
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/function_data.nr"
2914
2979
  },
2915
- "154": {
2980
+ "155": {
2916
2981
  "source": "use dep::std::cmp::Eq;\n\nstruct AppendOnlyTreeSnapshot {\n root : Field,\n next_available_leaf_index : u32\n}\n\nglobal APPEND_ONLY_TREE_SNAPSHOT_LENGTH: Field = 2;\n\nimpl AppendOnlyTreeSnapshot {\n pub fn serialize(self) -> [Field; APPEND_ONLY_TREE_SNAPSHOT_LENGTH] {\n [self.root, self.next_available_leaf_index as Field]\n }\n\n pub fn deserialize(serialized: [Field; APPEND_ONLY_TREE_SNAPSHOT_LENGTH]) -> AppendOnlyTreeSnapshot {\n AppendOnlyTreeSnapshot {\n root : serialized[0],\n next_available_leaf_index : serialized[1] as u32\n }\n }\n\n pub fn zero() -> Self {\n Self {\n root: 0,\n next_available_leaf_index: 0,\n }\n }\n}\n\nimpl Eq for AppendOnlyTreeSnapshot {\n fn eq(self, other : AppendOnlyTreeSnapshot) -> bool {\n (self.root == other.root) & (self.next_available_leaf_index == other.next_available_leaf_index)\n }\n}\n",
2917
2982
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/append_only_tree_snapshot.nr"
2918
2983
  },
2919
- "158": {
2920
- "source": "use crate::{\n abis::function_selector::FunctionSelector,\n address::{EthAddress,AztecAddress},\n constants::{\n CALL_CONTEXT_LENGTH,\n GENERATOR_INDEX__CALL_CONTEXT,\n },\n hash::pedersen_hash,\n};\nuse dep::std::cmp::Eq;\nuse crate::traits::Hash;\n\n// docs:start:call-context\nstruct CallContext {\n msg_sender : AztecAddress,\n storage_contract_address : AztecAddress,\n portal_contract_address : EthAddress,\n\n function_selector : FunctionSelector,\n\n is_delegate_call : bool,\n is_static_call : bool,\n is_contract_deployment : bool,\n\n start_side_effect_counter : u32,\n}\n// docs:end:call-context\n\nimpl Eq for CallContext {\n fn eq(self, call_context: CallContext) -> bool {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3595)\n call_context.msg_sender.eq(self.msg_sender)\n & call_context.storage_contract_address.eq(self.storage_contract_address)\n & call_context.portal_contract_address.eq(self.portal_contract_address)\n & call_context.function_selector.eq(self.function_selector)\n & (call_context.is_delegate_call == self.is_delegate_call)\n & (call_context.is_static_call == self.is_static_call)\n & (call_context.is_contract_deployment == self.is_contract_deployment)\n & (call_context.start_side_effect_counter == self.start_side_effect_counter)\n }\n}\n\nimpl Hash for CallContext {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)\n }\n}\n\nimpl CallContext {\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\n [\n self.msg_sender.to_field(),\n self.storage_contract_address.to_field(),\n self.portal_contract_address.to_field(),\n self.function_selector.to_field(),\n self.is_delegate_call as Field,\n self.is_static_call as Field,\n self.is_contract_deployment as Field,\n self.start_side_effect_counter as Field,\n ]\n }\n\n fn assert_is_zero(self) {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3595)\n assert(self.msg_sender.to_field() == 0);\n assert(self.storage_contract_address.to_field() == 0);\n assert(self.portal_contract_address.to_field() == 0);\n assert(self.function_selector.to_field() == 0);\n assert(self.is_delegate_call == false);\n assert(self.is_static_call == false);\n assert(self.is_contract_deployment == false);\n assert(self.start_side_effect_counter == 0);\n }\n}\n",
2984
+ "156": {
2985
+ "source": "use dep::std::cmp::Eq;\nuse crate::{\n constants::{\n GENERATOR_INDEX__GLOBAL_VARIABLES,\n GLOBAL_VARIABLES_LENGTH,\n },\n traits::{\n Deserialize,\n Empty,\n Hash,\n Serialize,\n },\n};\n\nstruct GlobalVariables {\n chain_id : Field,\n version : Field,\n block_number : Field,\n timestamp : Field,\n}\n\nimpl Serialize<GLOBAL_VARIABLES_LENGTH> for GlobalVariables {\n fn serialize(self) -> [Field; GLOBAL_VARIABLES_LENGTH] {\n [\n self.chain_id,\n self.version,\n self.block_number,\n self.timestamp\n ]\n }\n}\n\nimpl Deserialize<GLOBAL_VARIABLES_LENGTH> for GlobalVariables {\n fn deserialize(serialized: [Field; GLOBAL_VARIABLES_LENGTH]) -> GlobalVariables {\n GlobalVariables {\n chain_id: serialized[0],\n version: serialized[1],\n block_number: serialized[2],\n timestamp: serialized[3],\n }\n }\n}\n\nimpl Eq for GlobalVariables {\n fn eq(self, other : GlobalVariables) -> bool {\n (self.chain_id == other.chain_id) &\n (self.version == other.version) &\n (self.block_number == other.block_number) &\n (self.timestamp == other.timestamp)\n }\n}\n\nimpl Empty for GlobalVariables {\n fn empty() -> Self {\n Self {\n chain_id: 0,\n version: 0,\n block_number: 0,\n timestamp: 0,\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let vars: GlobalVariables = dep::std::unsafe::zeroed();\n let _serialized = vars.serialize();\n let _deserialized = GlobalVariables::deserialize(_serialized);\n}\n",
2986
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/global_variables.nr"
2987
+ },
2988
+ "159": {
2989
+ "source": "use crate::{\n abis::function_selector::FunctionSelector,\n address::{EthAddress,AztecAddress},\n constants::{\n CALL_CONTEXT_LENGTH,\n GENERATOR_INDEX__CALL_CONTEXT,\n },\n hash::pedersen_hash,\n traits::{\n Deserialize,\n Hash,\n Serialize,\n },\n};\n\n// docs:start:call-context\nstruct CallContext {\n msg_sender : AztecAddress,\n storage_contract_address : AztecAddress,\n portal_contract_address : EthAddress,\n\n function_selector : FunctionSelector,\n\n is_delegate_call : bool,\n is_static_call : bool,\n is_contract_deployment : bool,\n\n start_side_effect_counter : u32,\n}\n// docs:end:call-context\n\nimpl CallContext {\n fn assert_is_zero(self) {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3595)\n assert(self.msg_sender.to_field() == 0);\n assert(self.storage_contract_address.to_field() == 0);\n assert(self.portal_contract_address.to_field() == 0);\n assert(self.function_selector.to_field() == 0);\n assert(self.is_delegate_call == false);\n assert(self.is_static_call == false);\n assert(self.is_contract_deployment == false);\n assert(self.start_side_effect_counter == 0);\n }\n}\n\nimpl Eq for CallContext {\n fn eq(self, call_context: CallContext) -> bool {\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3595)\n call_context.msg_sender.eq(self.msg_sender)\n & call_context.storage_contract_address.eq(self.storage_contract_address)\n & call_context.portal_contract_address.eq(self.portal_contract_address)\n & call_context.function_selector.eq(self.function_selector)\n & (call_context.is_delegate_call == self.is_delegate_call)\n & (call_context.is_static_call == self.is_static_call)\n & (call_context.is_contract_deployment == self.is_contract_deployment)\n & (call_context.start_side_effect_counter == self.start_side_effect_counter)\n }\n}\n\nimpl Hash for CallContext {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)\n }\n}\n\nimpl Serialize<CALL_CONTEXT_LENGTH> for CallContext {\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\n [\n self.msg_sender.to_field(),\n self.storage_contract_address.to_field(),\n self.portal_contract_address.to_field(),\n self.function_selector.to_field(),\n self.is_delegate_call as Field,\n self.is_static_call as Field,\n self.is_contract_deployment as Field,\n self.start_side_effect_counter as Field,\n ]\n }\n}\n\nimpl Deserialize<CALL_CONTEXT_LENGTH> for CallContext {\n fn deserialize(serialized: [Field; CALL_CONTEXT_LENGTH]) -> CallContext {\n CallContext {\n msg_sender: AztecAddress::from_field(serialized[0]),\n storage_contract_address: AztecAddress::from_field(serialized[1]),\n portal_contract_address: EthAddress::from_field(serialized[2]),\n function_selector: FunctionSelector::from_field(serialized[3]),\n is_delegate_call: serialized[4] as bool,\n is_static_call: serialized[5] as bool,\n is_contract_deployment: serialized[6] as bool,\n start_side_effect_counter: serialized[7] as u32,\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let context: CallContext = dep::std::unsafe::zeroed();\n let serialized = context.serialize();\n let deserialized = CallContext::deserialize(serialized);\n assert(context.eq(deserialized));\n}\n\n#[test]\nfn hash_smoke() {\n let context: CallContext = dep::std::unsafe::zeroed();\n let _hashed = context.hash();\n}\n",
2921
2990
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/call_context.nr"
2922
2991
  },
2923
- "164": {
2924
- "source": "use crate::utils::field::field_from_bytes;\nuse dep::std::cmp::Eq;\n\nglobal SELECTOR_SIZE = 4;\n\nstruct FunctionSelector {\n // 1st 4-bytes of abi-encoding of function.\n inner: u32,\n}\n\nimpl Eq for FunctionSelector {\n fn eq(self, function_selector: FunctionSelector) -> bool {\n function_selector.inner == self.inner\n }\n}\n\nimpl FunctionSelector {\n fn to_field(self) -> Field {\n self.inner as Field\n }\n\n pub fn from_u32(value: u32) -> Self {\n Self {\n inner : value,\n }\n }\n\n pub fn from_field(value : Field) -> Self {\n Self {\n inner : value as u32,\n }\n }\n\n pub fn from_signature<N>(signature: str<N>) -> Self {\n let bytes = signature.as_bytes();\n let hash = dep::std::hash::keccak256(bytes, bytes.len() as u32);\n\n let mut selector_be_bytes = [0; SELECTOR_SIZE];\n for i in 0..SELECTOR_SIZE {\n selector_be_bytes[i] = hash[i];\n }\n\n FunctionSelector::from_field(field_from_bytes(selector_be_bytes, true))\n }\n\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn serialize(self: Self) -> [Field; 1] {\n [self.inner as Field]\n }\n\n pub fn deserialize(fields: [Field; 1]) -> Self {\n Self {\n inner: fields[0] as u32\n }\n }\n}\n",
2992
+ "165": {
2993
+ "source": "use crate::utils::field::field_from_bytes;\nuse dep::std::cmp::Eq;\nuse crate::traits::{Serialize, Deserialize};\n\nglobal SELECTOR_SIZE = 4;\n\nstruct FunctionSelector {\n // 1st 4-bytes of abi-encoding of function.\n inner: u32,\n}\n\nimpl Eq for FunctionSelector {\n fn eq(self, function_selector: FunctionSelector) -> bool {\n function_selector.inner == self.inner\n }\n}\n\nimpl Serialize<1> for FunctionSelector {\n fn serialize(self: Self) -> [Field; 1] {\n [self.inner as Field]\n }\n}\n\nimpl Deserialize<1> for FunctionSelector {\n fn deserialize(fields: [Field; 1]) -> Self {\n Self {\n inner: fields[0] as u32\n }\n }\n}\n\nimpl FunctionSelector {\n fn to_field(self) -> Field {\n self.inner as Field\n }\n\n pub fn from_u32(value: u32) -> Self {\n Self {\n inner : value,\n }\n }\n\n pub fn from_field(value : Field) -> Self {\n Self {\n inner : value as u32,\n }\n }\n\n pub fn from_signature<N>(signature: str<N>) -> Self {\n let bytes = signature.as_bytes();\n let hash = dep::std::hash::keccak256(bytes, bytes.len() as u32);\n\n let mut selector_be_bytes = [0; SELECTOR_SIZE];\n for i in 0..SELECTOR_SIZE {\n selector_be_bytes[i] = hash[i];\n }\n\n FunctionSelector::from_field(field_from_bytes(selector_be_bytes, true))\n }\n\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n}\n",
2925
2994
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/function_selector.nr"
2926
2995
  },
2927
- "188": {
2928
- "source": "use dep::aztec::abi;\nuse dep::aztec::types::vec::BoundedVec;\nuse dep::aztec::context::PrivateContext;\nuse dep::aztec::protocol_types::{\n abis::{\n call_stack_item::{\n PrivateCallStackItem,\n PublicCallStackItem,\n },\n function_selector::FunctionSelector,\n },\n address::AztecAddress,\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD,\n hash::pedersen_hash,\n};\n\nglobal ACCOUNT_MAX_CALLS: Field = 4;\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS) + 1 (IS_PUBLIC)\nglobal FUNCTION_CALL_SIZE: Field = 4;\n// 3 * 32 + 1\nglobal FUNCTION_CALL_SIZE_IN_BYTES: Field = 97;\n\nstruct FunctionCall {\n args_hash: Field,\n function_selector: FunctionSelector,\n target_address: AztecAddress,\n is_public: bool,\n}\n\nimpl FunctionCall {\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\n [self.args_hash, self.function_selector.to_field(), self.target_address.to_field(), self.is_public as Field]\n }\n\n fn to_be_bytes(self) -> [u8; FUNCTION_CALL_SIZE_IN_BYTES] {\n let mut bytes: [u8; FUNCTION_CALL_SIZE_IN_BYTES] = [0; FUNCTION_CALL_SIZE_IN_BYTES];\n let args_hash_bytes = self.args_hash.to_be_bytes(32);\n for i in 0..32 { bytes[i] = args_hash_bytes[i]; }\n let function_selector_bytes = self.function_selector.to_field().to_be_bytes(32);\n for i in 0..32 { bytes[i + 32] = function_selector_bytes[i]; }\n let target_address_bytes = self.target_address.to_field().to_be_bytes(32);\n for i in 0..32 { bytes[i + 64] = target_address_bytes[i]; }\n bytes[96] = self.is_public as u8;\n bytes\n }\n}\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 17;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 420;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:entrypoint-struct\nstruct EntrypointPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:entrypoint-struct\n\nimpl EntrypointPayload {\n fn hash(self) -> Field {\n pedersen_hash(\n self.serialize(), \n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, ENTRYPOINT_PAYLOAD_SIZE> = BoundedVec::new(0); \n for call in self.function_calls {\n fields.push_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\n\n for i in 0..ACCOUNT_MAX_CALLS {\n let item_bytes = self.function_calls[i].to_be_bytes();\n for j in 0..FUNCTION_CALL_SIZE_IN_BYTES { \n bytes[i * FUNCTION_CALL_SIZE_IN_BYTES + j] = item_bytes[j];\n }\n }\n\n let nonce_bytes = self.nonce.to_be_bytes(32);\n let nonce_offset = FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS;\n for j in 0..32 {\n bytes[nonce_offset + j] = nonce_bytes[j];\n }\n \n bytes\n }\n\n // Executes all private and public calls \n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address, call.function_selector, call.args_hash\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address, call.function_selector, call.args_hash\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n",
2996
+ "196": {
2997
+ "source": "use dep::aztec::context::PrivateContext;\nuse dep::aztec::protocol_types::{\n abis::function_selector::FunctionSelector,\n address::AztecAddress,\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD,\n hash::pedersen_hash,\n traits::{Hash, Serialize}\n};\n\nglobal ACCOUNT_MAX_CALLS: Field = 4;\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS) + 1 (IS_PUBLIC)\nglobal FUNCTION_CALL_SIZE: Field = 4;\n// 3 * 32 + 1\nglobal FUNCTION_CALL_SIZE_IN_BYTES: Field = 97;\n\nstruct FunctionCall {\n args_hash: Field,\n function_selector: FunctionSelector,\n target_address: AztecAddress,\n is_public: bool,\n}\n\nimpl Serialize<FUNCTION_CALL_SIZE> for FunctionCall {\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\n [self.args_hash, self.function_selector.to_field(), self.target_address.to_field(), self.is_public as Field]\n }\n}\n\nimpl FunctionCall {\n fn to_be_bytes(self) -> [u8; FUNCTION_CALL_SIZE_IN_BYTES] {\n let mut bytes: [u8; FUNCTION_CALL_SIZE_IN_BYTES] = [0; FUNCTION_CALL_SIZE_IN_BYTES];\n let args_hash_bytes = self.args_hash.to_be_bytes(32);\n for i in 0..32 { bytes[i] = args_hash_bytes[i]; }\n let function_selector_bytes = self.function_selector.to_field().to_be_bytes(32);\n for i in 0..32 { bytes[i + 32] = function_selector_bytes[i]; }\n let target_address_bytes = self.target_address.to_field().to_be_bytes(32);\n for i in 0..32 { bytes[i + 64] = target_address_bytes[i]; }\n bytes[96] = self.is_public as u8;\n bytes\n }\n}\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 17;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 420;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:entrypoint-struct\nstruct EntrypointPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:entrypoint-struct\n\nimpl Serialize<ENTRYPOINT_PAYLOAD_SIZE> for EntrypointPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, ENTRYPOINT_PAYLOAD_SIZE> = BoundedVec::new(0); \n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for EntrypointPayload {\n fn hash(self) -> Field {\n pedersen_hash(\n self.serialize(), \n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl EntrypointPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\n\n for i in 0..ACCOUNT_MAX_CALLS {\n let item_bytes = self.function_calls[i].to_be_bytes();\n for j in 0..FUNCTION_CALL_SIZE_IN_BYTES { \n bytes[i * FUNCTION_CALL_SIZE_IN_BYTES + j] = item_bytes[j];\n }\n }\n\n let nonce_bytes = self.nonce.to_be_bytes(32);\n let nonce_offset = FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS;\n for j in 0..32 {\n bytes[nonce_offset + j] = nonce_bytes[j];\n }\n \n bytes\n }\n\n // Executes all private and public calls \n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address, call.function_selector, call.args_hash\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address, call.function_selector, call.args_hash\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n",
2929
2998
  "path": "/usr/src/yarn-project/aztec-nr/authwit/src/entrypoint.nr"
2930
2999
  },
2931
- "189": {
2932
- "source": "use dep::aztec::context::{PrivateContext, PublicContext, Context};\nuse dep::aztec::state_vars::{map::Map, public_state::PublicState};\nuse dep::aztec::types::type_serialization::bool_serialization::{BoolSerializationMethods,BOOL_SERIALIZED_LEN};\n\nuse crate::entrypoint::EntrypointPayload;\nuse crate::auth::IS_VALID_SELECTOR;\n\nstruct AccountActions {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n approved_action: Map<Field, PublicState<bool, BOOL_SERIALIZED_LEN>>,\n}\n\nimpl AccountActions {\n pub fn init(context: Context, approved_action_storage_slot: Field, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions {\n context: context,\n is_valid_impl: is_valid_impl,\n approved_action: Map::new(\n context,\n approved_action_storage_slot,\n |context, slot| {\n PublicState::new(context, slot, BoolSerializationMethods)\n },\n ),\n }\n }\n\n pub fn private(context: &mut PrivateContext, approved_action_storage_slot: Field, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions::init(Context::private(context), approved_action_storage_slot, is_valid_impl)\n }\n\n pub fn public(context: &mut PublicContext, approved_action_storage_slot: Field, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions::init(Context::public(context), approved_action_storage_slot, is_valid_impl)\n }\n \n // docs:start:entrypoint\n pub fn entrypoint(self, payload: EntrypointPayload) {\n let message_hash = payload.hash();\n let valid_fn = self.is_valid_impl;\n let private_context = self.context.private.unwrap();\n assert(valid_fn(private_context, message_hash));\n payload.execute_calls(private_context);\n }\n // docs:end:entrypoint\n\n pub fn is_valid(self, message_hash: Field) -> Field {\n let valid_fn = self.is_valid_impl;\n if (valid_fn(self.context.private.unwrap(), message_hash)) {\n IS_VALID_SELECTOR\n } else {\n 0\n }\n }\n\n pub fn is_valid_public(self, message_hash: Field) -> Field {\n let value = self.approved_action.at(message_hash).read();\n if (value){\n IS_VALID_SELECTOR\n } else {\n 0\n }\n }\n\n pub fn internal_set_is_valid_storage(self, message_hash: Field, value: bool) {\n self.approved_action.at(message_hash).write(value);\n }\n}\n",
3000
+ "197": {
3001
+ "source": "use dep::aztec::context::{PrivateContext, PublicContext, Context};\nuse dep::aztec::state_vars::{map::Map, public_state::PublicState};\n\nuse crate::entrypoint::EntrypointPayload;\nuse crate::auth::IS_VALID_SELECTOR;\n\nstruct AccountActions {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n approved_action: Map<Field, PublicState<bool>>,\n}\n\nimpl AccountActions {\n pub fn init(context: Context, approved_action_storage_slot: Field, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions {\n context: context,\n is_valid_impl: is_valid_impl,\n approved_action: Map::new(\n context,\n approved_action_storage_slot,\n |context, slot| {\n PublicState::new(context, slot)\n },\n ),\n }\n }\n\n pub fn private(context: &mut PrivateContext, approved_action_storage_slot: Field, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions::init(Context::private(context), approved_action_storage_slot, is_valid_impl)\n }\n\n pub fn public(context: &mut PublicContext, approved_action_storage_slot: Field, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions::init(Context::public(context), approved_action_storage_slot, is_valid_impl)\n }\n \n // docs:start:entrypoint\n pub fn entrypoint(self, payload: EntrypointPayload) {\n let message_hash = payload.hash();\n let valid_fn = self.is_valid_impl;\n let private_context = self.context.private.unwrap();\n assert(valid_fn(private_context, message_hash));\n payload.execute_calls(private_context);\n }\n // docs:end:entrypoint\n\n pub fn is_valid(self, message_hash: Field) -> Field {\n let valid_fn = self.is_valid_impl;\n if (valid_fn(self.context.private.unwrap(), message_hash)) {\n IS_VALID_SELECTOR\n } else {\n 0\n }\n }\n\n pub fn is_valid_public(self, message_hash: Field) -> Field {\n let value = self.approved_action.at(message_hash).read();\n if (value){\n IS_VALID_SELECTOR\n } else {\n 0\n }\n }\n\n pub fn internal_set_is_valid_storage(self, message_hash: Field, value: bool) {\n self.approved_action.at(message_hash).write(value);\n }\n}\n",
2933
3002
  "path": "/usr/src/yarn-project/aztec-nr/authwit/src/account.nr"
2934
3003
  },
2935
- "192": {
3004
+ "200": {
2936
3005
  "source": "#[oracle(getAuthWitness)]\nfn get_auth_witness_oracle<N>(_message_hash: Field) -> [Field; N] {}\n\nunconstrained pub fn get_auth_witness<N>(message_hash: Field) -> [Field; N] {\n get_auth_witness_oracle(message_hash)\n}\n",
2937
3006
  "path": "/usr/src/yarn-project/aztec-nr/authwit/src/auth_witness.nr"
2938
3007
  },
2939
- "210": {
2940
- "source": "mod public_key_note;\n\n// Account contract that uses Schnorr signatures for authentication.\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\ncontract SchnorrAccount {\n use dep::std;\n use dep::std::option::Option;\n\n use dep::aztec::protocol_types::address::AztecAddress;\n\n use dep::aztec::{\n context::{PrivateContext, Context},\n note::{ note_header::NoteHeader, utils as note_utils },\n oracle::get_public_key::get_public_key,\n state_vars::immutable_singleton::ImmutableSingleton,\n };\n use dep::authwit:: {\n entrypoint::{ EntrypointPayload, ENTRYPOINT_PAYLOAD_SIZE },\n account::AccountActions,\n auth_witness::get_auth_witness,\n };\n\n use crate::public_key_note::{PublicKeyNote, PublicKeyNoteMethods, PUBLIC_KEY_NOTE_LEN};\n\n struct Storage {\n // docs:start:storage\n signing_public_key: ImmutableSingleton<PublicKeyNote, PUBLIC_KEY_NOTE_LEN>,\n // docs:end:storage\n }\n\n impl Storage {\n fn init(context: Context) -> Self {\n Storage {\n // docs:start:storage_init\n signing_public_key: ImmutableSingleton::new(context, 1, PublicKeyNoteMethods),\n // docs:end:storage_init\n }\n }\n }\n\n global ACCOUNT_ACTIONS_STORAGE_SLOT = 2;\n\n // Constructs the contract\n #[aztec(private)]\n fn constructor(signing_pub_key_x: pub Field, signing_pub_key_y: pub Field) {\n let this = context.this_address();\n // docs:start:initialize\n let mut pub_key_note = PublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\n storage.signing_public_key.initialize(&mut pub_key_note, true);\n // docs:end:initialize\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts file\n #[aztec(private)]\n fn entrypoint(payload: pub EntrypointPayload) {\n let actions = AccountActions::private(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl);\n actions.entrypoint(payload);\n }\n\n #[aztec(private)]\n fn is_valid(message_hash: Field) -> Field {\n let actions = AccountActions::private(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl);\n actions.is_valid(message_hash)\n }\n\n #[aztec(public)]\n fn is_valid_public(message_hash: Field) -> Field {\n let actions = AccountActions::public(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl);\n actions.is_valid_public(message_hash)\n }\n\n #[aztec(public)]\n internal fn set_is_valid_storage(message_hash: Field, value: bool) {\n let actions = AccountActions::public(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl);\n actions.internal_set_is_valid_storage(message_hash, value)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, message_hash: Field) -> pub bool {\n // docs:start:entrypoint\n // Load public key from storage\n let storage = Storage::init(Context::private(context));\n // docs:start:get_note\n let public_key = storage.signing_public_key.get_note();\n // docs:end:get_note\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(message_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify signature of the payload bytes\n let verification = std::schnorr::verify_signature(\n public_key.x,\n public_key.y,\n signature,\n message_hash.to_be_bytes(32)\n );\n assert(verification == true);\n // docs:end:entrypoint\n true\n }\n\n // Computes notes hash and nullifier.\n // Note 1: Needs to be defined by every contract producing logs.\n // Note 2: Having it in all the contracts gives us the ability to compute the note hash and nullifier differently for different kind of notes.\n unconstrained fn compute_note_hash_and_nullifier(\n contract_address: AztecAddress,\n nonce: Field,\n storage_slot: Field,\n serialized_note: [Field; PUBLIC_KEY_NOTE_LEN]\n ) -> pub [Field; 4] {\n assert(storage_slot == 1);\n let note_header = NoteHeader::new(contract_address, nonce, storage_slot);\n note_utils::compute_note_hash_and_nullifier(PublicKeyNoteMethods, note_header, serialized_note)\n }\n}\n",
3008
+ "218": {
3009
+ "source": "mod public_key_note;\n\n// Account contract that uses Schnorr signatures for authentication.\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\ncontract SchnorrAccount {\n use dep::std;\n use dep::std::option::Option;\n\n use dep::aztec::protocol_types::address::AztecAddress;\n\n use dep::aztec::{\n context::{PrivateContext, Context},\n note::{ note_header::NoteHeader, utils as note_utils },\n oracle::get_public_key::get_public_key,\n state_vars::immutable_singleton::ImmutableSingleton,\n };\n use dep::authwit:: {\n entrypoint::{ EntrypointPayload, ENTRYPOINT_PAYLOAD_SIZE },\n account::AccountActions,\n auth_witness::get_auth_witness,\n };\n\n use crate::public_key_note::{PublicKeyNote, PUBLIC_KEY_NOTE_LEN};\n\n struct Storage {\n // docs:start:storage\n signing_public_key: ImmutableSingleton<PublicKeyNote>,\n // docs:end:storage\n }\n\n global ACCOUNT_ACTIONS_STORAGE_SLOT = 2;\n\n // Constructs the contract\n #[aztec(private)]\n fn constructor(signing_pub_key_x: pub Field, signing_pub_key_y: pub Field) {\n let this = context.this_address();\n // docs:start:initialize\n let mut pub_key_note = PublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\n storage.signing_public_key.initialize(&mut pub_key_note, true);\n // docs:end:initialize\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts file\n #[aztec(private)]\n fn entrypoint(payload: pub EntrypointPayload) {\n let actions = AccountActions::private(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl);\n actions.entrypoint(payload);\n }\n\n #[aztec(private)]\n fn is_valid(message_hash: Field) -> Field {\n let actions = AccountActions::private(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl);\n actions.is_valid(message_hash)\n }\n\n #[aztec(public)]\n fn is_valid_public(message_hash: Field) -> Field {\n let actions = AccountActions::public(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl);\n actions.is_valid_public(message_hash)\n }\n\n #[aztec(public)]\n internal fn set_is_valid_storage(message_hash: Field, value: bool) {\n let actions = AccountActions::public(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl);\n actions.internal_set_is_valid_storage(message_hash, value)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, message_hash: Field) -> pub bool {\n // docs:start:entrypoint\n // Load public key from storage\n let storage = Storage::init(Context::private(context));\n // docs:start:get_note\n let public_key = storage.signing_public_key.get_note();\n // docs:end:get_note\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(message_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify signature of the payload bytes\n let verification = std::schnorr::verify_signature(\n public_key.x,\n public_key.y,\n signature,\n message_hash.to_be_bytes(32)\n );\n assert(verification == true);\n // docs:end:entrypoint\n true\n }\n\n // Computes notes hash and nullifier.\n // Note 1: Needs to be defined by every contract producing logs.\n // Note 2: Having it in all the contracts gives us the ability to compute the note hash and nullifier differently for different kind of notes.\n unconstrained fn compute_note_hash_and_nullifier(\n contract_address: AztecAddress,\n nonce: Field,\n storage_slot: Field,\n serialized_note: [Field; PUBLIC_KEY_NOTE_LEN]\n ) -> pub [Field; 4] {\n assert(storage_slot == storage.signing_public_key.get_storage_slot());\n let note_header = NoteHeader::new(contract_address, nonce, storage_slot);\n note_utils::compute_note_hash_and_nullifier(\n PublicKeyNote::deserialize_content,\n note_header,\n serialized_note\n )\n }\n}\n",
2941
3010
  "path": "/usr/src/yarn-project/noir-contracts/contracts/schnorr_account_contract/src/main.nr"
2942
3011
  },
2943
- "211": {
2944
- "source": "use dep::aztec::{\n note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_note_hash_for_read_or_nullify,\n },\n hash::pedersen_hash,\n oracle::{\n nullifier_key::get_nullifier_secret_key,\n get_public_key::get_public_key,\n },\n log::emit_encrypted_log,\n context::PrivateContext,\n};\nuse dep::aztec::protocol_types::address::AztecAddress;\n\nglobal PUBLIC_KEY_NOTE_LEN: Field = 3;\n\n// Stores a public key composed of two fields\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\nstruct PublicKeyNote {\n x: Field,\n y: Field,\n owner: AztecAddress, // We store the owner address only to get the secret key to compute the nullifier and to broadcast\n header: NoteHeader,\n}\n\nimpl PublicKeyNote {\n pub fn new(x: Field, y: Field, owner: AztecAddress) -> Self {\n PublicKeyNote {\n x,\n y,\n owner,\n header: NoteHeader::empty(),\n }\n }\n\n // serialize the note as 3 fields\n pub fn serialize(self) -> [Field; PUBLIC_KEY_NOTE_LEN] {\n [self.x, self.y, self.owner.to_field()]\n }\n\n pub fn compute_nullifier(self, context: &mut PrivateContext) -> Field {\n let unique_siloed_note_hash = compute_note_hash_for_read_or_nullify(PublicKeyNoteMethods, self);\n let secret = context.request_nullifier_secret_key(self.owner);\n // TODO(#1205) Should use a non-zero generator index.\n pedersen_hash([\n unique_siloed_note_hash,\n secret.low,\n secret.high,\n ],0)\n }\n\n pub fn compute_nullifier_without_context(self) -> Field {\n let unique_siloed_note_hash = compute_note_hash_for_read_or_nullify(PublicKeyNoteMethods, self);\n let secret = get_nullifier_secret_key(self.owner);\n // TODO(#1205) Should use a non-zero generator index.\n pedersen_hash([\n unique_siloed_note_hash,\n secret.low,\n secret.high,\n ],0)\n }\n\n pub fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n\n // Broadcasts the note as an encrypted log on L1.\n pub fn broadcast(self, context: &mut PrivateContext, slot: Field) {\n let encryption_pub_key = get_public_key(self.owner);\n emit_encrypted_log(\n context,\n (*context).this_address(),\n slot,\n encryption_pub_key,\n self.serialize(),\n );\n }\n}\n\nfn deserialize(serialized_note: [Field; PUBLIC_KEY_NOTE_LEN]) -> PublicKeyNote {\n PublicKeyNote {\n x: serialized_note[0],\n y: serialized_note[1],\n owner: AztecAddress::from_field(serialized_note[2]),\n header: NoteHeader::empty()\n }\n}\n\nfn serialize(note: PublicKeyNote) -> [Field; PUBLIC_KEY_NOTE_LEN] {\n note.serialize()\n}\n\nfn compute_note_hash(note: PublicKeyNote) -> Field {\n // TODO(#1205) Should use a non-zero generator index.\n pedersen_hash(note.serialize(), 0)\n}\n\nfn compute_nullifier(note: PublicKeyNote, context: &mut PrivateContext) -> Field {\n note.compute_nullifier(context)\n}\n\nfn compute_nullifier_without_context(note: PublicKeyNote) -> Field {\n note.compute_nullifier_without_context()\n}\n\nfn get_header(note: PublicKeyNote) -> NoteHeader {\n note.header\n}\n\nfn set_header(note: &mut PublicKeyNote, header: NoteHeader) {\n note.set_header(header);\n}\n\n// Broadcasts the note as an encrypted log on L1.\nfn broadcast(context: &mut PrivateContext, slot: Field, note: PublicKeyNote) {\n note.broadcast(context, slot);\n}\n\nglobal PublicKeyNoteMethods = NoteInterface {\n deserialize,\n serialize,\n compute_note_hash,\n compute_nullifier,\n compute_nullifier_without_context,\n get_header,\n set_header,\n broadcast,\n};\n",
3012
+ "219": {
3013
+ "source": "use dep::aztec::{\n note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_note_hash_for_consumption,\n },\n hash::pedersen_hash,\n oracle::{\n nullifier_key::get_nullifier_secret_key,\n get_public_key::get_public_key,\n },\n log::emit_encrypted_log,\n context::PrivateContext,\n protocol_types::{\n address::AztecAddress,\n }\n};\n\nglobal PUBLIC_KEY_NOTE_LEN: Field = 3;\n\n// Stores a public key composed of two fields\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\nstruct PublicKeyNote {\n x: Field,\n y: Field,\n owner: AztecAddress, // We store the owner address only to get the secret key to compute the nullifier and to broadcast\n header: NoteHeader,\n}\n\nimpl NoteInterface<PUBLIC_KEY_NOTE_LEN> for PublicKeyNote {\n fn serialize_content(self) -> [Field; PUBLIC_KEY_NOTE_LEN] {\n [self.x, self.y, self.owner.to_field()]\n }\n\n fn deserialize_content(serialized_note: [Field; PUBLIC_KEY_NOTE_LEN]) -> PublicKeyNote {\n PublicKeyNote {\n x: serialized_note[0],\n y: serialized_note[1],\n owner: AztecAddress::from_field(serialized_note[2]),\n header: NoteHeader::empty()\n }\n }\n\n fn compute_nullifier(self, context: &mut PrivateContext) -> Field {\n let unique_siloed_note_hash = compute_note_hash_for_consumption(self);\n let secret = context.request_nullifier_secret_key(self.owner);\n // TODO(#1205) Should use a non-zero generator index.\n pedersen_hash([\n unique_siloed_note_hash,\n secret.low,\n secret.high,\n ],0)\n }\n\n fn compute_nullifier_without_context(self) -> Field {\n let unique_siloed_note_hash = compute_note_hash_for_consumption(self);\n let secret = get_nullifier_secret_key(self.owner);\n // TODO(#1205) Should use a non-zero generator index.\n pedersen_hash([\n unique_siloed_note_hash,\n secret.low,\n secret.high,\n ],0)\n }\n\n fn compute_note_content_hash(note: PublicKeyNote) -> Field {\n // TODO(#1205) Should use a non-zero generator index.\n pedersen_hash(note.serialize_content(), 0)\n }\n\n fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n\n fn get_header(self) -> NoteHeader {\n self.header\n }\n\n // Broadcasts the note as an encrypted log on L1.\n fn broadcast(self, context: &mut PrivateContext, slot: Field) {\n let encryption_pub_key = get_public_key(self.owner);\n emit_encrypted_log(\n context,\n (*context).this_address(),\n slot,\n encryption_pub_key,\n self.serialize_content(),\n );\n }\n}\n\nimpl PublicKeyNote {\n pub fn new(x: Field, y: Field, owner: AztecAddress) -> Self {\n PublicKeyNote {\n x,\n y,\n owner,\n header: NoteHeader::empty(),\n }\n }\n}\n",
2945
3014
  "path": "/usr/src/yarn-project/noir-contracts/contracts/schnorr_account_contract/src/public_key_note.nr"
2946
3015
  }
2947
3016
  }