@aztec/accounts 0.20.0 → 0.21.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,9 +1,9 @@
1
1
  {
2
- "noir_version": "0.23.0+602f23f4fb698cf6e37071936a2a46593a998d08",
2
+ "noir_version": "0.23.0+ea6aebcc4e190d9dbadaf1dd0f70950651eed615",
3
3
  "name": "EcdsaAccount",
4
4
  "functions": [
5
5
  {
6
- "name": "constructor",
6
+ "name": "is_valid",
7
7
  "function_type": "Secret",
8
8
  "is_internal": false,
9
9
  "abi": {
@@ -65,18 +65,127 @@
65
65
  }
66
66
  },
67
67
  {
68
- "name": "block_header",
68
+ "name": "historical_header",
69
69
  "type": {
70
70
  "kind": "struct",
71
- "path": "authwit::aztec::protocol_types::abis::block_header::BlockHeader",
71
+ "path": "authwit::aztec::protocol_types::header::Header",
72
72
  "fields": [
73
- { "name": "note_hash_tree_root", "type": { "kind": "field" } },
74
- { "name": "nullifier_tree_root", "type": { "kind": "field" } },
75
- { "name": "contract_tree_root", "type": { "kind": "field" } },
76
- { "name": "l1_to_l2_message_tree_root", "type": { "kind": "field" } },
77
- { "name": "archive_root", "type": { "kind": "field" } },
78
- { "name": "public_data_tree_root", "type": { "kind": "field" } },
79
- { "name": "global_variables_hash", "type": { "kind": "field" } }
73
+ {
74
+ "name": "last_archive",
75
+ "type": {
76
+ "kind": "struct",
77
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
78
+ "fields": [
79
+ { "name": "root", "type": { "kind": "field" } },
80
+ {
81
+ "name": "next_available_leaf_index",
82
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
83
+ }
84
+ ]
85
+ }
86
+ },
87
+ { "name": "body_hash", "type": { "kind": "array", "length": 2, "type": { "kind": "field" } } },
88
+ {
89
+ "name": "state",
90
+ "type": {
91
+ "kind": "struct",
92
+ "path": "authwit::aztec::protocol_types::state_reference::StateReference",
93
+ "fields": [
94
+ {
95
+ "name": "l1_to_l2_message_tree",
96
+ "type": {
97
+ "kind": "struct",
98
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
99
+ "fields": [
100
+ { "name": "root", "type": { "kind": "field" } },
101
+ {
102
+ "name": "next_available_leaf_index",
103
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
104
+ }
105
+ ]
106
+ }
107
+ },
108
+ {
109
+ "name": "partial",
110
+ "type": {
111
+ "kind": "struct",
112
+ "path": "authwit::aztec::protocol_types::partial_state_reference::PartialStateReference",
113
+ "fields": [
114
+ {
115
+ "name": "note_hash_tree",
116
+ "type": {
117
+ "kind": "struct",
118
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
119
+ "fields": [
120
+ { "name": "root", "type": { "kind": "field" } },
121
+ {
122
+ "name": "next_available_leaf_index",
123
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
124
+ }
125
+ ]
126
+ }
127
+ },
128
+ {
129
+ "name": "nullifier_tree",
130
+ "type": {
131
+ "kind": "struct",
132
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
133
+ "fields": [
134
+ { "name": "root", "type": { "kind": "field" } },
135
+ {
136
+ "name": "next_available_leaf_index",
137
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
138
+ }
139
+ ]
140
+ }
141
+ },
142
+ {
143
+ "name": "contract_tree",
144
+ "type": {
145
+ "kind": "struct",
146
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
147
+ "fields": [
148
+ { "name": "root", "type": { "kind": "field" } },
149
+ {
150
+ "name": "next_available_leaf_index",
151
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
152
+ }
153
+ ]
154
+ }
155
+ },
156
+ {
157
+ "name": "public_data_tree",
158
+ "type": {
159
+ "kind": "struct",
160
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
161
+ "fields": [
162
+ { "name": "root", "type": { "kind": "field" } },
163
+ {
164
+ "name": "next_available_leaf_index",
165
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
166
+ }
167
+ ]
168
+ }
169
+ }
170
+ ]
171
+ }
172
+ }
173
+ ]
174
+ }
175
+ },
176
+ {
177
+ "name": "global_variables",
178
+ "type": {
179
+ "kind": "struct",
180
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables",
181
+ "fields": [
182
+ { "name": "chain_id", "type": { "kind": "field" } },
183
+ { "name": "version", "type": { "kind": "field" } },
184
+ { "name": "block_number", "type": { "kind": "field" } },
185
+ { "name": "timestamp", "type": { "kind": "field" } }
186
+ ]
187
+ }
188
+ }
80
189
  ]
81
190
  }
82
191
  },
@@ -126,22 +235,9 @@
126
235
  },
127
236
  "visibility": "private"
128
237
  },
129
- {
130
- "name": "signing_pub_key_x",
131
- "type": { "kind": "array", "length": 32, "type": { "kind": "integer", "sign": "unsigned", "width": 8 } },
132
- "visibility": "public"
133
- },
134
- {
135
- "name": "signing_pub_key_y",
136
- "type": { "kind": "array", "length": 32, "type": { "kind": "integer", "sign": "unsigned", "width": 8 } },
137
- "visibility": "public"
138
- }
238
+ { "name": "message_hash", "type": { "kind": "field" }, "visibility": "private" }
139
239
  ],
140
- "param_witnesses": {
141
- "inputs": [{ "start": 0, "end": 23 }],
142
- "signing_pub_key_x": [{ "start": 23, "end": 55 }],
143
- "signing_pub_key_y": [{ "start": 55, "end": 87 }]
144
- },
240
+ "param_witnesses": { "inputs": [{ "start": 0, "end": 34 }], "message_hash": [{ "start": 34, "end": 35 }] },
145
241
  "return_type": {
146
242
  "abi_type": {
147
243
  "kind": "struct",
@@ -212,6 +308,41 @@
212
308
  }
213
309
  }
214
310
  },
311
+ {
312
+ "name": "nullifier_key_validation_requests",
313
+ "type": {
314
+ "kind": "array",
315
+ "length": 1,
316
+ "type": {
317
+ "kind": "struct",
318
+ "path": "authwit::aztec::protocol_types::abis::nullifier_key_validation_request::NullifierKeyValidationRequest",
319
+ "fields": [
320
+ {
321
+ "name": "public_key",
322
+ "type": {
323
+ "kind": "struct",
324
+ "path": "authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint",
325
+ "fields": [
326
+ { "name": "x", "type": { "kind": "field" } },
327
+ { "name": "y", "type": { "kind": "field" } }
328
+ ]
329
+ }
330
+ },
331
+ {
332
+ "name": "secret_key",
333
+ "type": {
334
+ "kind": "struct",
335
+ "path": "authwit::aztec::protocol_types::grumpkin_private_key::GrumpkinPrivateKey",
336
+ "fields": [
337
+ { "name": "high", "type": { "kind": "field" } },
338
+ { "name": "low", "type": { "kind": "field" } }
339
+ ]
340
+ }
341
+ }
342
+ ]
343
+ }
344
+ }
345
+ },
215
346
  {
216
347
  "name": "new_commitments",
217
348
  "type": {
@@ -261,18 +392,127 @@
261
392
  { "name": "encrypted_log_preimages_length", "type": { "kind": "field" } },
262
393
  { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } },
263
394
  {
264
- "name": "block_header",
395
+ "name": "historical_header",
265
396
  "type": {
266
397
  "kind": "struct",
267
- "path": "authwit::aztec::protocol_types::abis::block_header::BlockHeader",
398
+ "path": "authwit::aztec::protocol_types::header::Header",
268
399
  "fields": [
269
- { "name": "note_hash_tree_root", "type": { "kind": "field" } },
270
- { "name": "nullifier_tree_root", "type": { "kind": "field" } },
271
- { "name": "contract_tree_root", "type": { "kind": "field" } },
272
- { "name": "l1_to_l2_message_tree_root", "type": { "kind": "field" } },
273
- { "name": "archive_root", "type": { "kind": "field" } },
274
- { "name": "public_data_tree_root", "type": { "kind": "field" } },
275
- { "name": "global_variables_hash", "type": { "kind": "field" } }
400
+ {
401
+ "name": "last_archive",
402
+ "type": {
403
+ "kind": "struct",
404
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
405
+ "fields": [
406
+ { "name": "root", "type": { "kind": "field" } },
407
+ {
408
+ "name": "next_available_leaf_index",
409
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
410
+ }
411
+ ]
412
+ }
413
+ },
414
+ { "name": "body_hash", "type": { "kind": "array", "length": 2, "type": { "kind": "field" } } },
415
+ {
416
+ "name": "state",
417
+ "type": {
418
+ "kind": "struct",
419
+ "path": "authwit::aztec::protocol_types::state_reference::StateReference",
420
+ "fields": [
421
+ {
422
+ "name": "l1_to_l2_message_tree",
423
+ "type": {
424
+ "kind": "struct",
425
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
426
+ "fields": [
427
+ { "name": "root", "type": { "kind": "field" } },
428
+ {
429
+ "name": "next_available_leaf_index",
430
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
431
+ }
432
+ ]
433
+ }
434
+ },
435
+ {
436
+ "name": "partial",
437
+ "type": {
438
+ "kind": "struct",
439
+ "path": "authwit::aztec::protocol_types::partial_state_reference::PartialStateReference",
440
+ "fields": [
441
+ {
442
+ "name": "note_hash_tree",
443
+ "type": {
444
+ "kind": "struct",
445
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
446
+ "fields": [
447
+ { "name": "root", "type": { "kind": "field" } },
448
+ {
449
+ "name": "next_available_leaf_index",
450
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
451
+ }
452
+ ]
453
+ }
454
+ },
455
+ {
456
+ "name": "nullifier_tree",
457
+ "type": {
458
+ "kind": "struct",
459
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
460
+ "fields": [
461
+ { "name": "root", "type": { "kind": "field" } },
462
+ {
463
+ "name": "next_available_leaf_index",
464
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
465
+ }
466
+ ]
467
+ }
468
+ },
469
+ {
470
+ "name": "contract_tree",
471
+ "type": {
472
+ "kind": "struct",
473
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
474
+ "fields": [
475
+ { "name": "root", "type": { "kind": "field" } },
476
+ {
477
+ "name": "next_available_leaf_index",
478
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
479
+ }
480
+ ]
481
+ }
482
+ },
483
+ {
484
+ "name": "public_data_tree",
485
+ "type": {
486
+ "kind": "struct",
487
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
488
+ "fields": [
489
+ { "name": "root", "type": { "kind": "field" } },
490
+ {
491
+ "name": "next_available_leaf_index",
492
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
493
+ }
494
+ ]
495
+ }
496
+ }
497
+ ]
498
+ }
499
+ }
500
+ ]
501
+ }
502
+ },
503
+ {
504
+ "name": "global_variables",
505
+ "type": {
506
+ "kind": "struct",
507
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables",
508
+ "fields": [
509
+ { "name": "chain_id", "type": { "kind": "field" } },
510
+ { "name": "version", "type": { "kind": "field" } },
511
+ { "name": "block_number", "type": { "kind": "field" } },
512
+ { "name": "timestamp", "type": { "kind": "field" } }
513
+ ]
514
+ }
515
+ }
276
516
  ]
277
517
  }
278
518
  },
@@ -314,57 +554,22 @@
314
554
  "visibility": "public"
315
555
  },
316
556
  "return_witnesses": [
317
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
318
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
319
- 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
320
- 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
321
- 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
322
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
323
- 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
324
- 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
325
- 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294
557
+ 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257,
558
+ 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275,
559
+ 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
560
+ 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
561
+ 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
562
+ 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347,
563
+ 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
564
+ 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383,
565
+ 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401,
566
+ 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419,
567
+ 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437,
568
+ 1438, 1439, 1440, 1441, 1442, 1443
326
569
  ]
327
570
  },
328
- "bytecode": "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",
329
- "debug_symbols": "7ZzRahsxEEX/ZZ+N0Ugjjca/UvoQ2hQCISlN3oL/vU5qSdv60qXb4MbNfQqB0eTmaCQfzLJP0+39p6vHm/u7h2n3NBWfdh+epoevV3fPvz48Xn17nHZhM13ffT783G+mLze319NOqu43J3UxhHwsjSFar1ZBxUm1FWuQ0ToYqJbg1nqLhOQ/1X/cTBYuNrmcL7labcU51b9OHi82eULJxUTaKquymD/Gnt915I8okcTQA3kcxXlVfL3s+PkV4kvoh1B0Ib5Fa60t+shT6kuc8rbi2GvEyf1spZCW4pSWxsbWWgKlpY9B0dHVUITkqbVNbvPLYN3MVFIBVJxUTqnUQCqAipAKoBJJBVBJpAKoKKkAKplUAJVCKoAK3RZRodsiKnRbQMXptogK3RZRodsiKnRbREVJBVCh2yIqdFtEhW6LqNBtERW6LaAigXILsdBuIRbqLcRCv4VYlFgQFhouxELFhVjouBALJRdioeUiLELLhVhouRALLRdioeVCLEosCAstF2Kh5UIstFyIhZYLsdByEZZIy4VYaLkQCy0XYqHlQixKLAgLLRdioeVCLLRciIWWC7HQchGWRMuFWGi5EAstF2Kh5UIsSiwICy0XYqHlQiy0XIjlLVtublgshAUs0RuVedeyjsm5FbdaY+Lz/U8vaTT8wzT1JM25hc5zTzN7Qwqel2rt3SvFwxiDH69TEY2XG/3cYnQ4Ct7PiNTfh9ecWmfNRRfupFi9pY4utlCdQyvOeWT2IxZ9r1hM+tWYbY4FTGG1HjmN/+/wlfKqy1Hzu2VujXmdfRy1USz/ERaPbWRS8LJQncpoPTprOH6UbvEDOtnbnygyYObUV+mqVXA4teZ+h4yBrvF4tW6hGabSLm+VcrLbaVvXLPI1i/Bjgour5M9XlS1+4kFLm3z1+usWP6+qq1ZBGrlvVpmZnBxO3Mf9/js="
330
- },
331
- {
332
- "name": "compute_note_hash_and_nullifier",
333
- "function_type": "Unconstrained",
334
- "is_internal": false,
335
- "abi": {
336
- "parameters": [
337
- {
338
- "name": "contract_address",
339
- "type": {
340
- "kind": "struct",
341
- "path": "authwit::aztec::protocol_types::address::AztecAddress",
342
- "fields": [{ "name": "inner", "type": { "kind": "field" } }]
343
- },
344
- "visibility": "private"
345
- },
346
- { "name": "nonce", "type": { "kind": "field" }, "visibility": "private" },
347
- { "name": "storage_slot", "type": { "kind": "field" }, "visibility": "private" },
348
- {
349
- "name": "serialized_note",
350
- "type": { "kind": "array", "length": 5, "type": { "kind": "field" } },
351
- "visibility": "private"
352
- }
353
- ],
354
- "param_witnesses": {
355
- "contract_address": [{ "start": 0, "end": 1 }],
356
- "nonce": [{ "start": 1, "end": 2 }],
357
- "serialized_note": [{ "start": 3, "end": 8 }],
358
- "storage_slot": [{ "start": 2, "end": 3 }]
359
- },
360
- "return_type": {
361
- "abi_type": { "kind": "array", "length": 4, "type": { "kind": "field" } },
362
- "visibility": "public"
363
- },
364
- "return_witnesses": [8, 9, 10, 11]
365
- },
366
- "bytecode": "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",
367
- "debug_symbols": "7d3djuTYca7he+ljYYPxH0u3srEPhG0bMGDIhqUzQfduCu7M6oGoyZ4Si3yZi2eDAbMYwdX5Mciqh/zLt//4z///hz//+3/+8U/ffv+Xb8v/kfj2+//7l29/+q8//PFv/+NPf/7Df//52+9dR//u27/+8V/W/zSJv/7u27/9+3/867ffS/tf/9/v/vax/NzH6nMf6899bGx9bPn+meUXH/jd322n5fr4+et/uz63z97YXKoeGy8fP1r7f0vRhVOKcEpRTinGKcU5pQSnlOSUUpxSmlMKJ22Nk7bGSVvjpK1x0tY4aWuctDVO2honbY2TtsZJW+ekrXPS1jlp65y0dU7aOidtnZO2zklb56Stc9I2OGkbnLQNTtoGJ22Dk7bBSdvgpG1w0jY4aRuctE1O2iYnbZOTtslJ2+SkbXLSNjlpm5y0TU7aJidti5O2xUnb4qRtcdK2OGlbnLQtTtoWJ22Lk7bFSdvmpG1z0rY5aductG1O2jYnbZuTts1J2+akbXPSdnDSdnDSdnDSdnDSdnDSdnDSdnDSdnDSdnDSdnDSVhZO3MrCyVtZOIErCydxZeFEriyczJWFE7qycFJXFk7sygLKXQHlroByV0C5K6DcFVDuCih3BZS7AspdAeUuyJcJCJgJSJgJiJgJyJgJCJkJSJkJiJkJyJkJCJoJSJoJiJoJyJoJCJsJSJsJiJsJyJsJCJwJSJwJiJwJyJwJCJ0JSJ0JiJ0JyJ0JCJ4JSJ4JiJ4JyJ4JCJ8JSJ8JiJ8JyJ8JCKAJSKAJiKAJyKAJCKEJSKEJiKEJyKEJCKIJSKIJiKIJyKIJCKMJSKMJiKMJyKMJCKQJSKQJiKQJyKQJCKUJSKUJiKUJyKUJCKYJSKYJiKYJyKYJCKcJSKcJiKcJyKcJCKgJSKgJiKgJyKgJCKkJSKkJiKkJyKkJCKoJSKoJiKoJyKoJCKsJSKsJiKsJyKspyKspyKspyKspyKvpwsldBXk1BXk1BXk1BXk1BXk1BXk1BXk1BXk1BXk1BXk1BXk1BXk1BXk1BXk1Jb0PjfRCNNQb0UC5S3onGumlaKS3opFei0Z6LxrpxWggr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr6Ygr2Ygr2Ygr2Ygr2Ygr2YLJ3cN5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUM5NUc5NUc5NUc5NUc5NV84eSug7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7yag7xagLxagLxagLxagLxaLJzcDZBXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXC5BXS5BXS5BXS5BXS5BXy4WTuwnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagnyagXyagXyagXyagXyarVwcrdAXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1AXq1BXq1BXq1BXq1BXq0XTu42yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKs1yKsNkFcbIK82QF5tgLzaWDi5O0BebYC82gB5tQHyagPk1QbIqw2QVxsgrzZAXm2AvNoAebUB8moD5NUGyKsNkFcbIK82QF5tgLzaAHm1AfJqA+TVBsirDZBXGyCvNkBebYC82gB5tQHyagPk1QbIqw2QVxsgrzZAXm2AvNoAebUB8moD5NUGyKsNkFcbIK82QF5tgLzaAHm1AfJqA+TVBsirDZBXGyCvNkBebYC82gB5tQHyagPk1QbIqw2QVxsgrzZAXm2AvNoAebUB8moD5NXGP+3VMj5qqfHP1VKgWhpUy+DU8k97tT1rEVAtCqrFQLU4qJYA1QLK3QLlboFyt0C526DcbVDuNih3G5S7DcrdBuVug3K3QbnboNxtUO4OUO4OUO4OUO4OUO4OUO4OUO4OUO4OUO4OUO4OTu7KsnCCdy2Gk7xrMZzoXYvhZO9aDCd812I46bsWw4nftRhO/q7FcAJ4LYaUwEJKYCElsJASWEgJLKQEFlICCymBhZTAQkpgISWwkhJYSQmspARWUgIrKYGVlMBKSmAlJbCSElhJCWykBDZSAhspgY2UwEZKYCMlsJES2EgJbKQENlICOymBnZTATkpgJyWwkxLYSQnspAR2UgI7KYGdlMBBSuAgJXCQEjhICRykBA5SAgcpgYOUwEFK4CAlcJISOEkJnKQETlICJymBk5TAIPK2FkNKYBB6W4shJTCIva3FkBIYBN/WYkgJDKJvazGkBAbht7UYUgKD+NtaDCmBQQBuLYaUwCACtxZDSmAQgluLISUwiMGtxZASGATh1mJICQyicGsxpAQGYbi1GFICgzjcWgwpgUEgbi2GlMAgErcWA0pgIZk4IZk4IZk4IZm49XfJpGJACSwkEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckEyckE6ckE6ckE6ckE6ckE6cLKIGVZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKUZOKMZOKMZOKMZOKMZOJsASWwkUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyckUyck0yck0yck0yck0ycL6AEdpKJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJc5KJC5KJC5KJC5KJC5KJiwWUwEEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUEycUkycUkycUkycUkycbmAEjhJJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJi5JJq5IJq5IJq5IJq5IJq4WUAIXycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQVycQV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"
571
+ "bytecode": "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",
572
+ "debug_symbols": "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L0PSc2+5gORlSHruLReRvAxJz73lQpKXIem5t1xM8jIkPfeWC0pehqTn3nJRycuQ9NxbLix5GZKee8vFJX99ObLckOQCk5ch6bm3XGTyMiQ995YLTV6GpOfecrHJy5D03FsuOHkZkp57y0UnL0PSc2+58ORlSHruLRefvAxJz73lApSXIem5t1yE8jIkPfeWC1FehqTn3nIxysuQ9NxbLkh5GZKee8tFKS9D0nNvuTDlZUh67i0Xp7wMSc+95QKVlyHpubdcpPIyJD33lgtVXoak595yscrLkPTcWy5YeRmSnnvLRSsvQ9Jzb7lw5WVIeu4tF6+8DEnPveUClpch6bm3XMTyMiQ995YLWV6GpOfecjHLy5D03FsuaPnr707rDUnPvfWylqaXtTS9rKXpZS1NL2t5+Vd5vSHJubfpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylqaXtTS9rKXpZS1NL2tpellL08taml7W0vSylq6XtXS9rKXrZS1dL2vph5x7u17W0vWylq6XtXS9rKXrZS1dL2vpellL18taul7W0vWylq6XtXS9rKXrZS1dL2vpellL18taul7W0vWylq6XtXS9rKXrZS1dL2vpellL18taul7W0vWylq6XtXS9rKXrZS1dL2vpellL18taul7W0vWylq6XtXS9rKXrZS1dL2vpellL18taul7W0vWylq6XtXS9rKXrZS1dL2vpellL18taul7W0vWylq6XtXS9rKXrZS1dL2vpellL18taul7W0vWylq6XtXS9rKXrZS1dL2vpellL18taul7W0vWylq6XtXS9rKXrZS1dL2vpellL18taul7W0vWy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"
368
573
  },
369
574
  {
370
575
  "name": "is_valid_public",
@@ -429,18 +634,127 @@
429
634
  }
430
635
  },
431
636
  {
432
- "name": "block_header",
637
+ "name": "historical_header",
433
638
  "type": {
434
639
  "kind": "struct",
435
- "path": "authwit::aztec::protocol_types::abis::block_header::BlockHeader",
640
+ "path": "authwit::aztec::protocol_types::header::Header",
436
641
  "fields": [
437
- { "name": "note_hash_tree_root", "type": { "kind": "field" } },
438
- { "name": "nullifier_tree_root", "type": { "kind": "field" } },
439
- { "name": "contract_tree_root", "type": { "kind": "field" } },
440
- { "name": "l1_to_l2_message_tree_root", "type": { "kind": "field" } },
441
- { "name": "archive_root", "type": { "kind": "field" } },
442
- { "name": "public_data_tree_root", "type": { "kind": "field" } },
443
- { "name": "global_variables_hash", "type": { "kind": "field" } }
642
+ {
643
+ "name": "last_archive",
644
+ "type": {
645
+ "kind": "struct",
646
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
647
+ "fields": [
648
+ { "name": "root", "type": { "kind": "field" } },
649
+ {
650
+ "name": "next_available_leaf_index",
651
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
652
+ }
653
+ ]
654
+ }
655
+ },
656
+ { "name": "body_hash", "type": { "kind": "array", "length": 2, "type": { "kind": "field" } } },
657
+ {
658
+ "name": "state",
659
+ "type": {
660
+ "kind": "struct",
661
+ "path": "authwit::aztec::protocol_types::state_reference::StateReference",
662
+ "fields": [
663
+ {
664
+ "name": "l1_to_l2_message_tree",
665
+ "type": {
666
+ "kind": "struct",
667
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
668
+ "fields": [
669
+ { "name": "root", "type": { "kind": "field" } },
670
+ {
671
+ "name": "next_available_leaf_index",
672
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
673
+ }
674
+ ]
675
+ }
676
+ },
677
+ {
678
+ "name": "partial",
679
+ "type": {
680
+ "kind": "struct",
681
+ "path": "authwit::aztec::protocol_types::partial_state_reference::PartialStateReference",
682
+ "fields": [
683
+ {
684
+ "name": "note_hash_tree",
685
+ "type": {
686
+ "kind": "struct",
687
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
688
+ "fields": [
689
+ { "name": "root", "type": { "kind": "field" } },
690
+ {
691
+ "name": "next_available_leaf_index",
692
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
693
+ }
694
+ ]
695
+ }
696
+ },
697
+ {
698
+ "name": "nullifier_tree",
699
+ "type": {
700
+ "kind": "struct",
701
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
702
+ "fields": [
703
+ { "name": "root", "type": { "kind": "field" } },
704
+ {
705
+ "name": "next_available_leaf_index",
706
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
707
+ }
708
+ ]
709
+ }
710
+ },
711
+ {
712
+ "name": "contract_tree",
713
+ "type": {
714
+ "kind": "struct",
715
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
716
+ "fields": [
717
+ { "name": "root", "type": { "kind": "field" } },
718
+ {
719
+ "name": "next_available_leaf_index",
720
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
721
+ }
722
+ ]
723
+ }
724
+ },
725
+ {
726
+ "name": "public_data_tree",
727
+ "type": {
728
+ "kind": "struct",
729
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
730
+ "fields": [
731
+ { "name": "root", "type": { "kind": "field" } },
732
+ {
733
+ "name": "next_available_leaf_index",
734
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
735
+ }
736
+ ]
737
+ }
738
+ }
739
+ ]
740
+ }
741
+ }
742
+ ]
743
+ }
744
+ },
745
+ {
746
+ "name": "global_variables",
747
+ "type": {
748
+ "kind": "struct",
749
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables",
750
+ "fields": [
751
+ { "name": "chain_id", "type": { "kind": "field" } },
752
+ { "name": "version", "type": { "kind": "field" } },
753
+ { "name": "block_number", "type": { "kind": "field" } },
754
+ { "name": "timestamp", "type": { "kind": "field" } }
755
+ ]
756
+ }
757
+ }
444
758
  ]
445
759
  }
446
760
  },
@@ -463,7 +777,7 @@
463
777
  },
464
778
  { "name": "message_hash", "type": { "kind": "field" }, "visibility": "private" }
465
779
  ],
466
- "param_witnesses": { "inputs": [{ "start": 0, "end": 19 }], "message_hash": [{ "start": 19, "end": 20 }] },
780
+ "param_witnesses": { "inputs": [{ "start": 0, "end": 30 }], "message_hash": [{ "start": 30, "end": 31 }] },
467
781
  "return_type": {
468
782
  "abi_type": {
469
783
  "kind": "struct",
@@ -592,18 +906,127 @@
592
906
  },
593
907
  { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } },
594
908
  {
595
- "name": "block_header",
909
+ "name": "historical_header",
596
910
  "type": {
597
911
  "kind": "struct",
598
- "path": "authwit::aztec::protocol_types::abis::block_header::BlockHeader",
912
+ "path": "authwit::aztec::protocol_types::header::Header",
599
913
  "fields": [
600
- { "name": "note_hash_tree_root", "type": { "kind": "field" } },
601
- { "name": "nullifier_tree_root", "type": { "kind": "field" } },
602
- { "name": "contract_tree_root", "type": { "kind": "field" } },
603
- { "name": "l1_to_l2_message_tree_root", "type": { "kind": "field" } },
604
- { "name": "archive_root", "type": { "kind": "field" } },
605
- { "name": "public_data_tree_root", "type": { "kind": "field" } },
606
- { "name": "global_variables_hash", "type": { "kind": "field" } }
914
+ {
915
+ "name": "last_archive",
916
+ "type": {
917
+ "kind": "struct",
918
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
919
+ "fields": [
920
+ { "name": "root", "type": { "kind": "field" } },
921
+ {
922
+ "name": "next_available_leaf_index",
923
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
924
+ }
925
+ ]
926
+ }
927
+ },
928
+ { "name": "body_hash", "type": { "kind": "array", "length": 2, "type": { "kind": "field" } } },
929
+ {
930
+ "name": "state",
931
+ "type": {
932
+ "kind": "struct",
933
+ "path": "authwit::aztec::protocol_types::state_reference::StateReference",
934
+ "fields": [
935
+ {
936
+ "name": "l1_to_l2_message_tree",
937
+ "type": {
938
+ "kind": "struct",
939
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
940
+ "fields": [
941
+ { "name": "root", "type": { "kind": "field" } },
942
+ {
943
+ "name": "next_available_leaf_index",
944
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
945
+ }
946
+ ]
947
+ }
948
+ },
949
+ {
950
+ "name": "partial",
951
+ "type": {
952
+ "kind": "struct",
953
+ "path": "authwit::aztec::protocol_types::partial_state_reference::PartialStateReference",
954
+ "fields": [
955
+ {
956
+ "name": "note_hash_tree",
957
+ "type": {
958
+ "kind": "struct",
959
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
960
+ "fields": [
961
+ { "name": "root", "type": { "kind": "field" } },
962
+ {
963
+ "name": "next_available_leaf_index",
964
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
965
+ }
966
+ ]
967
+ }
968
+ },
969
+ {
970
+ "name": "nullifier_tree",
971
+ "type": {
972
+ "kind": "struct",
973
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
974
+ "fields": [
975
+ { "name": "root", "type": { "kind": "field" } },
976
+ {
977
+ "name": "next_available_leaf_index",
978
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
979
+ }
980
+ ]
981
+ }
982
+ },
983
+ {
984
+ "name": "contract_tree",
985
+ "type": {
986
+ "kind": "struct",
987
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
988
+ "fields": [
989
+ { "name": "root", "type": { "kind": "field" } },
990
+ {
991
+ "name": "next_available_leaf_index",
992
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
993
+ }
994
+ ]
995
+ }
996
+ },
997
+ {
998
+ "name": "public_data_tree",
999
+ "type": {
1000
+ "kind": "struct",
1001
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1002
+ "fields": [
1003
+ { "name": "root", "type": { "kind": "field" } },
1004
+ {
1005
+ "name": "next_available_leaf_index",
1006
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1007
+ }
1008
+ ]
1009
+ }
1010
+ }
1011
+ ]
1012
+ }
1013
+ }
1014
+ ]
1015
+ }
1016
+ },
1017
+ {
1018
+ "name": "global_variables",
1019
+ "type": {
1020
+ "kind": "struct",
1021
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables",
1022
+ "fields": [
1023
+ { "name": "chain_id", "type": { "kind": "field" } },
1024
+ { "name": "version", "type": { "kind": "field" } },
1025
+ { "name": "block_number", "type": { "kind": "field" } },
1026
+ { "name": "timestamp", "type": { "kind": "field" } }
1027
+ ]
1028
+ }
1029
+ }
607
1030
  ]
608
1031
  }
609
1032
  },
@@ -620,21 +1043,22 @@
620
1043
  "visibility": "public"
621
1044
  },
622
1045
  "return_witnesses": [
623
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
624
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
625
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
626
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
627
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
628
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
629
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
630
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209
1046
+ 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,
1047
+ 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,
1048
+ 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,
1049
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1050
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1051
+ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
1052
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1053
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
1054
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231
631
1055
  ]
632
1056
  },
633
- "bytecode": "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",
634
- "debug_symbols": "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mZy4ZHLiismJKyYnrpicuGJy4upBNIGLyYkrJieumJy4YnLiismJKyYnrpicuGJy4orJiSsmJ66YnLhicuKKyYkrJieumJy4YnLiismJKyYnrpicuGJy4orJiSsmJ66YnLhicuKKyYkrJieumJy4YnLiismJKyYnrpicuGJy4orJiSsmJ66YnLhicuKKyYkrJieumJy4YnLiismJKyYnrpicuGJy4orJiSsmJ66YnLhicuKKyYkrJieumJy4YnLiismJKyYnrpicuGJy4orJiSsmJ66YnLhicuKKyYkrJieumJy4YnLiismJKyYnrpicuGJy4orJiSsmJ66YnLhicuKKyYkrJieumJy4YnLiismJKyYnrpicuGJy4orJiSsmJ66YnLhicuKKyYkrJieumJy4YnLiismJKyYnrpicuGJy4orJiSsmJ66YnLhmcuKayYlrJieumZy4fhBN4GZy4prJiWsmJ66ZnLhmcuKayYlrJieumZy4ZnLimsmJayYnrpmcuGZy4prJiWsmJ66ZnLhmcuKayYlrJieumZy4ZnLimsmJayYnrpmcuGZy4prJiWsmJ66ZnLhmcuKayYlrJieumZy4ZnLimsmJayYnrpmcuGZy4prJiWsmJ66ZnLhmcuKayYlrJieumZy4ZnLimsmJayYnrpmcuGZy4prJiWsmJ66ZnLhmcuKayYlrJieumZy4ZnLimsmJayYnrpmcuGZy4prJiWsmJ66ZnLhmcuKayYlrJieumZy4ZnLimsmJayYnrpmcuGZy4prJiWsmJ66ZnLhmcuKayYlrJieumZy4ZnLimsmJayYnrpmcuGZy4prJiWsmJ66ZnLhmcuKayYlrJieumZy4ZnLimsmJayYnbpicuGFy4obJiRsmJ24eRBN4mJy4YXLihsmJGyYnbpicuGFy4obJiRsmJ26YnLhhcuKGyYkbJidumJy4YXLihsmJGyYnbpicuGFy4obJiRsmJ26YnLhhcuKGyYkbJidumJy4YXLihsmJGyYnbpicuGFy4obJiRsmJ26YnLhhcuKGyYkbJidumJy4YXLihsmJGyYnbpicuGFy4obJiRsmJ26YnLhhcuKGyYkbJidumJy4YXLihsmJGyYnbpicuGFy4obJiRsmJ26YnLhhcuKGyYkbJidumJy4YXLihsmJGyYnbpicuGFy4obJiRsmJ26YnLhh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Y2vVG1ur3tha9cbWqje2Vr2xteqNrVVvbK16Y2vVG1ur3tha9cbWqje2Vr2xteqNrVVvbK16Y2vVG1ur3tha9cbWqje2Vr2xteqNrVVvbK16Y2vVG1ur3tha9cbWqje2Vr2xteqNrVVvbK16Y2vVG1ur3tha9cbWqje2Vr2xteqNrVVvbK16Y2vVG1ur3tha9cbWqje2Vr2xteqNrVVvbK16Y2vVG1ur3tha9cbWqje2Vr2xteqNrVVvbK16Y2vVG1ur3tha9cbWqje27mcaWxX2/gB/+9x/+AD+uHp7tYV/5wHO3/7e3Hx9bX74d+Zx8/bJZo+4rx/9mPcnMPkncPknCPknSPknKPknaPknGPknWPknOPUnMPmdbPI72eR3ssnvZJPfySa/k+3Td7I9cr6eKv/xM2y/neNsv/PB+37mza+vzXh/1PntPOr+dh71fjOP6j/854b73qP6+/Etvvkb8zzT37846g1zxH39u3L9fnzTPr5rHz+0j5/axy/t47f28Uf7+Kt9/JM+fmhv3dDeuqG9dUN764b21g3trRvaWze0t25ob93Q3rqpvXVTe+um9tZN7a2b2ls3tbduam/d1N66qb11U3vrlvbWLe2tW9pbt7S3bmlv3dLeuqW9dUt765b21i3trdvaW7e1t25rb93W3rqtvXVbe+u29tZt7a3b2lu3tbfuaG/d0d66o711R3vrjvbWHe2tO9pbd7S37mhv3dHeuqu9dVd766721l3trbvaW3e1t+5qb93V3rqrvXVXe+ue9tY97a172lv3tLfuaW/d0966p711T3vrnvbWPeWtG4+H8tZ9Hl956z6Pr7x1n8dX3rrP4ytv3efxlbfu8/jKW/d5fOWt+zy+8tZ9Hl9765r21jXtrWvaW9e0t+6PL2p97vG1t65pb13T3rqmvXVNe+tKt6mex9feutJtqufxtbeudJvqeXztrSvdpnoeX3vrSrepnsfX3rrSbarn8bW3rnSb6nl87a0r3aZ6Hl9760q3qZ7H19660m2q5/G1t650m+p5fO2tK92meh5fe+tKt6mex9feutJtqufxtbeudJvqeXztrSvdpnoeX3vrSrepnsfX3rrSbarn8bW3rnSb6nl87a0r3aZ6Hl9760q3qZ7H19660m2q5/G1t650m+p5fO2tK92meh5fe+tKt6mex9feutJtqufxtbeudJvqeXztrSvdpnoeX3vrSrepnsfX3rrSbarn8bW3rnSb6nl87a0r3aZ6Hp976+bj7c+NT7tvj//B586+fezf/n+/vLTs/Um5F/SPfFLuXf4jn5R77f9zT3r10ZNy/4TwI5+U+4eJH/ikP77S4t950vO3w99885wffbA9j/f2yWaPb/8mPub9CVb+CU78CezH51o+/QlM/glc/glC/glS/glK/gla/gnUd7I91HeyPeR3ssnvZJPfySa/k01+J//4sMv3nuD5Y8B8PVX+42fY99/3ne13Pnjfz7y53/4W8e1R67fzqP3bedT57Tzq/nYe9X4zj6oduDHtwI1pB25MO3Bj2oEb0w7cmHbgxrQDN6YduDHtwI1pB25MO3Bj2oEb0w7cmHbgxrQDN6YduDHtwI1pB25MO3Bj2oEb0w7cmHbgxrQDN6YduDHtwI1pB25MO3Bj2oEb0w7cmHbgxrQDN6YduDHtwI1pB25MO3Bj2oEb0w7cmHbgxrQDN6YduDHtwI1pB25MO3Bj2oEb0w7cmHbgxrQDN6YduDHtwI1pB25MO3Bj2oEb0w7cmHbgxrQDN6YduDHtwI1pB25MO3Bj2oEb0w7cmHbgxsgDN989vvbWJU/RfPf42luXPBrz3eNrb93V3rqnvXVPe+ue9tY97a172lv3tLfuaW/d0966p711T3rr+kN66/pDeuv6Q3rr+kN66/pDeuv6Q3rr+kN66/pDeuv6Q3rr+kN765r21jXtrWvaW9e0t+6Pb3R97vG1t65pb13T3rqmvXVNe+tqt6lcu03l2m0q125TuXabyrXbVK7dpnLtNpVrt6lcu03l2m0q125TuXabyrXbVK7dpnLtNpVrt6lcu03l2m0q125TuXabyrXbVK7dpnLtNpVrt6lcu03l2m0q125TuXabyrXbVK7dpnLtNpVrt6lcu03l2m0q125TuXabyrXbVK7dpnLtNpVrt6lcu03l2m0q125TuXabyrXbVK7dpnLtNpVrt6lcu03l2m0q125TuXabyrXbVK7dpnLtNpVrt6lcu03l2m0q125TuXabyrXbVK7dpnLtNpVrt6lcu03l2m0q125TuXabyrXbVK7dpnLtNpVrt6lcu03l2m0q125TuXabyrXbVK7dpnLtNlVot6mCvE2Vj8eX16bdt8f/4HNn3z72b/+/X15a9v6k3Av6Rz4p9y7/kU+a/w2f9OqjJ+X+CeFHPin3DxM/8Ek/rrS8ffzjO89YN19e2fb1tRXvn94v/fR56afvSz/9XvnpHwc8ftin20s/3V/66fHST8+XfvpLv6v+0u+qv/S76i/9rvpLv6vx0u9qvPS7Gi/9rsZLv6vx0u9qvPS7Gi/9rsZLv6vx0u9qvPS7mi/9ruZLv6v50u9qvvC7mvZfO7s/Hu8/iT/86+/h0j76gXlz3n+/l9/8kP+Y99ME1WmS6jRFdZqmOs184mm233/fZ/7haZbqNMd0mnpQncaoTuNUp/nEWXx+76fpD7/hlVSn+bx583zxvb/4mxX+7WmW6jTHdJp+UJ3GqE7jVKcJqtMk1WmK6jRNdRqqWdxUs7ipZvFQzeKhmsVDNYuHahYP1Sweqlk8VLN4qGbxUM3ioZrFSzWLl2oWL9UsXqpZvFSzeKlm8VLN4qWaxUs1i5dqFh/VLD6qWXxUs/ioZvFRzeKjmsVHNYuPahYf1Sw+pln8M38Y9a92GqZZ/DN/VPSvdhqmWfwzf5Dzr3Yapln8M3/M8q92GqZZ/DN/CPKvdhqqWWxUs9ioZrFRzWKjmsVGNYuNahYb1Sw2qllsVLPYqGaxU81ip5rFTjWLnWoWO9UsdqpZ7FSz2KlmsVPNYqeaxUE1i4NqFgfVLA6qWRxUszioZnFQzeKgmsVBNYuDahYn1SxOqlmcVLM4qWZxUs3ipJrFSTWLk2oWJ9UsTqpZXFSzuKhmcVHN4qKaxUU1i4tqFhfVLKby7pzKu3Mq786pvDun8u6cyrtzKu/Oqbw7p/LunMq7cyrvzqm8O6fy7pzKu3Mq786pvDun8u6cyrtzKu/Oqbw7p/LunMq7cyrvzqm8O6fy7pzKu3Mq786pvDun8u6cyrtzKu/Oqbw7p/LunMq7cyrvzqm8O6fy7pzKu3Mq786pvDun8u6cyruLT7W5+uuLv/mjPr49TVCd5hP/KX7+q7m3Fz//vdiHpxmq0yzVaY7pNJ9pLP2C03zeTxRr9TZv1tq+OY29n8apTvOJ8yYy316cD/tPN/X3r7bHzdtnmz2+/eNtvrnZlD59SZ++pU8/0qdfitN/Oc1nOlG/4DRGdRqnOg3HtH87Dcf0fjsNxzR+O80nTtfMeD9N5oenGarTLNVpjuk0n+lE/YLTGNVpnOo0QXWapDpNUZ2GahYH1SwOqlkcVLM4qWZxUs3ipJrFSTWLk2oWJ9UsTqpZnFSzOKlmcVLN4qKaxUU1i4tqFhfVLC6qWVxUs7ioZnFRzeLP9H7M3/5cSLeP/w3YZ3o/v+A0TnWaoDpNUp2mqE7Tv9JpPvxvIz7T+/kFp1mq0xzTaeZBdZrPnMX79b+NsA/31Gd6P7/gNJ84b7zeb8rnw3kzTXWaoTrNUp3mmP4p/ky35RechmreLNW8+Uy35RecJpm+U0s1i5dqFi/VLF6qWbzHdJp7UJ3GqE7jVKcJqtNQzeL71Fn8vf+e+qisgKOyAo7KCjgmKyAfTFZAPozqNE51mqA6TVKdhmkWJ5WhlVSGVlIZWkllaCWVoZVGNYuNahYb1Sw2qllsVLPYqGaxUc1io5rFRjWLnWoWO9UsdqpZ7FSz2KlmsVNNP6eafh9bOf545z7f/EdE1+/vsn/qXf5PvSv+qXflP/Wuwt7117/+Bw=="
1057
+ "bytecode": "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",
1058
+ "debug_symbols": "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4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4B6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R6u4R5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4B5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R5u4R7OLriIux8x/BHHHzn4I4E/kvgjhT/S+CODP4LfvuG3b/jtG377ht++4bdv+O0bfvuG377ht2/47Tt++47fvuO37/jtO377jt++47fv+O07fvuO3/7Bb//gt3/w2z/47R/89g9++we//YPf/sFv/+C3H/jtB377gd9+4Lcf+O0HfvuB337gtx/47Qd++4nffuK3n/jtJ377id9+4ref+O0nfvuJ337it1/47Rd++4XffuG3X/jtF377hd9+4bdf+O0XfvuN337jt9/47Td++43ffuO33/jtN377jd9+47c/+O0PfvuD3/7gtz/47Q9++4Pf/uC3P/jtD377i9/+4re/+O0vfvuL3/7it7/47S9++4vfPt71Gd71Gd71Gd71Gd713b/14o8k/kjhjzT+yOCP4LePd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Gd32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32Od32OdH1/+IfXpc+XV2bk22vj67vXU9+9n/ru89R33x95d5/Mx2vvf257e31f77z87lofL76+vvW5HsMgjefzhzGmYZxpmPO0YR6fEE//hHz6J9TTP6F/8BM23j6hrvnBH4phGmaJhtmLaRhjGsaZhjlMwwTTMMk0TDENw5TAy5TAS5TA5yJK4HMRJfC5iBL4XEQJfC6iBD4XUQKfiyiBz0WUwOciSuBzMSWwMSWwMSWwMSWwMSWwMSWwMSWwMSWwMSWwMSWwMSWwMyWwMyWwMyWwMyWwMyWwMyWwMyWwMyWwMyWwMyXwYUrgw5TAhymBD1MCH6YEPkwJfJgS+DAl8GFK4MOUwMGUwMGUwMGUwMGUwMGUwMGUwMGUwMGUwMGUwMGUwMmUwMmUwMmUwMmUwMmUwMmUwMmUwMmUwMmUwMmUwMWUwMWUwMWUwMWUwMWUwMWUwMWUwMWUwMWUwMWUwM2UwM2UwM2UwM2UwM2UwM2UwM2UwM2UwM2UwM2UwMOUwMOUwMOUwMOUwMOUwMOUwMOUwExM3GFi4g4TE3eYmLjDxMQdJibuMDFxh4mJO0xM3GFi4g4TE3eYmLjDxMQFExMXTExcMDFxwcTExUWUwMHExAUTExdMTFwwMXHBxMQFExMXTExcMDFxwcTEBRMTF0xMXDAxccHExAUTExdMTFwwMXHBxMQFExMXTExcMDFxwcTEBRMTF0xMXDAxccHExAUTExdMTFwwMXHBxMQFExMXTExcMDFxwcTEBRMTF0xMXDAxccHExAUTExdMTFwwMXHBxMQFExMXTExcMDFxwcTEBRMTF0xMXDAxccHExAUTExdMTFwwMXHBxMQFExMXTExcMDFxwcTEBRMTF0xMXDAxccHExAUTExdMTFwwMXHBxMQFExMXTExcMDFxwcTEBRMTF0xMXDAxccHExAUTExdMTFwwMXHBxMQFExMXTExcMDFxwcTEBRMTF0xMXDAxccHExAUTExdMTFwwMXHBxMQFExMXTExcMDFxwcTEBRMTF0xMXDIxccnExCUTE5dMTFxeRAmcTExcMjFxycTEJRMTl0xMXDIxccnExCUTE5dMTFwyMXHJxMQlExOXTExcMjFxycTEJRMTl0xMXDIxccnExCUTE5dMTFwyMXHJxMQlExOXTExcMjFxycTEJRMTl0xMXDIxccnExCUTE5dMTFwyMXHJxMQlExOXTExcMjFxycTEJRMTl0xMXDIxccnExCUTE5dMTFwyMXHJxMQlExOXTExcMjFxycTEJRMTl0xMXDIxccnExCUTE5dMTFwyMXHJxMQlExOXTExcMjFxycTEJRMTl0xMXDIxccnExCUTE5dMTFwyMXHJxMQlExOXTExcMjFxycTEJRMTl0xMXDIxccnExCUTE5dMTFwyMXHJxMQlExOXTExcMjFxycTEJRMTl0xMXDIxccnExCUTE5dMTFwyMXHJxMQVExNXTExcMTFxxcTE1UWUwMXExBUTE1dMTFwxMXHFxMQVExNXTExcMTFxxcTEFRMTV0xMXDExccXExBUTE1dMTFwxMXHFxMQVExNXTExcMTFxxcTEFRMTV0xMXDExccXExBUTE1dMTFwxMXHFxMQVExNXTExcMTFxxcTEFRMTV0xMXDExccXExBUTE1dMTFwxMXHFxMQVExNXTExcMTFxxcTEFRMTV0xMXDExccXExBUTE1dMTFwxMXHFxMQVExNXTExcMTFxxcTEFRMTV0xMXDExccXExBUTE1dMTFwxMXHFxMQVExNXTExcMTFxxcTEFRMTV0xMXDExccXExBUTE1dMTFwxMXHFxMQVExNXTExcMTFxxcTEFRMTV0xMXDExccXExBUTE1dMTFwxMXHFxMQVExNXTExcMTFxxcTEFRMTV0xMXDMxcc3ExDUTE9dMTFxfRAncTExcMzFxzcTENRMT10xMXDMxcc3ExDUTE9dMTFwzMXHNxMQ1ExPXTExcMzFxzcTENRMT10xMXDMxcc3ExDUTE9dMTFwzMXHNxMQ1ExPXTExcMzFxzcTENRMT10xMXDMxcc3ExDUTE9dMTFwzMXHNxMQ1ExPXTExcMzFxzcTENRMT10xMXDMxcc3ExDUTE9dMTFwzMXHNxMQ1ExPXTExcMzFxzcTENRMT10xMXDMxcc3ExDUTE9dMTFwzMXHNxMQ1ExPXTExcMzFxzcTENRMT10xMXDMxcc3ExDUTE9dMTFwz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"
635
1059
  },
636
1060
  {
637
- "name": "is_valid",
1061
+ "name": "constructor",
638
1062
  "function_type": "Secret",
639
1063
  "is_internal": false,
640
1064
  "abi": {
@@ -696,18 +1120,127 @@
696
1120
  }
697
1121
  },
698
1122
  {
699
- "name": "block_header",
1123
+ "name": "historical_header",
700
1124
  "type": {
701
1125
  "kind": "struct",
702
- "path": "authwit::aztec::protocol_types::abis::block_header::BlockHeader",
1126
+ "path": "authwit::aztec::protocol_types::header::Header",
703
1127
  "fields": [
704
- { "name": "note_hash_tree_root", "type": { "kind": "field" } },
705
- { "name": "nullifier_tree_root", "type": { "kind": "field" } },
706
- { "name": "contract_tree_root", "type": { "kind": "field" } },
707
- { "name": "l1_to_l2_message_tree_root", "type": { "kind": "field" } },
708
- { "name": "archive_root", "type": { "kind": "field" } },
709
- { "name": "public_data_tree_root", "type": { "kind": "field" } },
710
- { "name": "global_variables_hash", "type": { "kind": "field" } }
1128
+ {
1129
+ "name": "last_archive",
1130
+ "type": {
1131
+ "kind": "struct",
1132
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1133
+ "fields": [
1134
+ { "name": "root", "type": { "kind": "field" } },
1135
+ {
1136
+ "name": "next_available_leaf_index",
1137
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1138
+ }
1139
+ ]
1140
+ }
1141
+ },
1142
+ { "name": "body_hash", "type": { "kind": "array", "length": 2, "type": { "kind": "field" } } },
1143
+ {
1144
+ "name": "state",
1145
+ "type": {
1146
+ "kind": "struct",
1147
+ "path": "authwit::aztec::protocol_types::state_reference::StateReference",
1148
+ "fields": [
1149
+ {
1150
+ "name": "l1_to_l2_message_tree",
1151
+ "type": {
1152
+ "kind": "struct",
1153
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1154
+ "fields": [
1155
+ { "name": "root", "type": { "kind": "field" } },
1156
+ {
1157
+ "name": "next_available_leaf_index",
1158
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1159
+ }
1160
+ ]
1161
+ }
1162
+ },
1163
+ {
1164
+ "name": "partial",
1165
+ "type": {
1166
+ "kind": "struct",
1167
+ "path": "authwit::aztec::protocol_types::partial_state_reference::PartialStateReference",
1168
+ "fields": [
1169
+ {
1170
+ "name": "note_hash_tree",
1171
+ "type": {
1172
+ "kind": "struct",
1173
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1174
+ "fields": [
1175
+ { "name": "root", "type": { "kind": "field" } },
1176
+ {
1177
+ "name": "next_available_leaf_index",
1178
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1179
+ }
1180
+ ]
1181
+ }
1182
+ },
1183
+ {
1184
+ "name": "nullifier_tree",
1185
+ "type": {
1186
+ "kind": "struct",
1187
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1188
+ "fields": [
1189
+ { "name": "root", "type": { "kind": "field" } },
1190
+ {
1191
+ "name": "next_available_leaf_index",
1192
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1193
+ }
1194
+ ]
1195
+ }
1196
+ },
1197
+ {
1198
+ "name": "contract_tree",
1199
+ "type": {
1200
+ "kind": "struct",
1201
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1202
+ "fields": [
1203
+ { "name": "root", "type": { "kind": "field" } },
1204
+ {
1205
+ "name": "next_available_leaf_index",
1206
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1207
+ }
1208
+ ]
1209
+ }
1210
+ },
1211
+ {
1212
+ "name": "public_data_tree",
1213
+ "type": {
1214
+ "kind": "struct",
1215
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1216
+ "fields": [
1217
+ { "name": "root", "type": { "kind": "field" } },
1218
+ {
1219
+ "name": "next_available_leaf_index",
1220
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1221
+ }
1222
+ ]
1223
+ }
1224
+ }
1225
+ ]
1226
+ }
1227
+ }
1228
+ ]
1229
+ }
1230
+ },
1231
+ {
1232
+ "name": "global_variables",
1233
+ "type": {
1234
+ "kind": "struct",
1235
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables",
1236
+ "fields": [
1237
+ { "name": "chain_id", "type": { "kind": "field" } },
1238
+ { "name": "version", "type": { "kind": "field" } },
1239
+ { "name": "block_number", "type": { "kind": "field" } },
1240
+ { "name": "timestamp", "type": { "kind": "field" } }
1241
+ ]
1242
+ }
1243
+ }
711
1244
  ]
712
1245
  }
713
1246
  },
@@ -757,9 +1290,22 @@
757
1290
  },
758
1291
  "visibility": "private"
759
1292
  },
760
- { "name": "message_hash", "type": { "kind": "field" }, "visibility": "private" }
1293
+ {
1294
+ "name": "signing_pub_key_x",
1295
+ "type": { "kind": "array", "length": 32, "type": { "kind": "integer", "sign": "unsigned", "width": 8 } },
1296
+ "visibility": "public"
1297
+ },
1298
+ {
1299
+ "name": "signing_pub_key_y",
1300
+ "type": { "kind": "array", "length": 32, "type": { "kind": "integer", "sign": "unsigned", "width": 8 } },
1301
+ "visibility": "public"
1302
+ }
761
1303
  ],
762
- "param_witnesses": { "inputs": [{ "start": 0, "end": 23 }], "message_hash": [{ "start": 23, "end": 24 }] },
1304
+ "param_witnesses": {
1305
+ "inputs": [{ "start": 0, "end": 34 }],
1306
+ "signing_pub_key_x": [{ "start": 34, "end": 66 }],
1307
+ "signing_pub_key_y": [{ "start": 66, "end": 98 }]
1308
+ },
763
1309
  "return_type": {
764
1310
  "abi_type": {
765
1311
  "kind": "struct",
@@ -830,6 +1376,41 @@
830
1376
  }
831
1377
  }
832
1378
  },
1379
+ {
1380
+ "name": "nullifier_key_validation_requests",
1381
+ "type": {
1382
+ "kind": "array",
1383
+ "length": 1,
1384
+ "type": {
1385
+ "kind": "struct",
1386
+ "path": "authwit::aztec::protocol_types::abis::nullifier_key_validation_request::NullifierKeyValidationRequest",
1387
+ "fields": [
1388
+ {
1389
+ "name": "public_key",
1390
+ "type": {
1391
+ "kind": "struct",
1392
+ "path": "authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint",
1393
+ "fields": [
1394
+ { "name": "x", "type": { "kind": "field" } },
1395
+ { "name": "y", "type": { "kind": "field" } }
1396
+ ]
1397
+ }
1398
+ },
1399
+ {
1400
+ "name": "secret_key",
1401
+ "type": {
1402
+ "kind": "struct",
1403
+ "path": "authwit::aztec::protocol_types::grumpkin_private_key::GrumpkinPrivateKey",
1404
+ "fields": [
1405
+ { "name": "high", "type": { "kind": "field" } },
1406
+ { "name": "low", "type": { "kind": "field" } }
1407
+ ]
1408
+ }
1409
+ }
1410
+ ]
1411
+ }
1412
+ }
1413
+ },
833
1414
  {
834
1415
  "name": "new_commitments",
835
1416
  "type": {
@@ -879,18 +1460,127 @@
879
1460
  { "name": "encrypted_log_preimages_length", "type": { "kind": "field" } },
880
1461
  { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } },
881
1462
  {
882
- "name": "block_header",
1463
+ "name": "historical_header",
883
1464
  "type": {
884
1465
  "kind": "struct",
885
- "path": "authwit::aztec::protocol_types::abis::block_header::BlockHeader",
1466
+ "path": "authwit::aztec::protocol_types::header::Header",
886
1467
  "fields": [
887
- { "name": "note_hash_tree_root", "type": { "kind": "field" } },
888
- { "name": "nullifier_tree_root", "type": { "kind": "field" } },
889
- { "name": "contract_tree_root", "type": { "kind": "field" } },
890
- { "name": "l1_to_l2_message_tree_root", "type": { "kind": "field" } },
891
- { "name": "archive_root", "type": { "kind": "field" } },
892
- { "name": "public_data_tree_root", "type": { "kind": "field" } },
893
- { "name": "global_variables_hash", "type": { "kind": "field" } }
1468
+ {
1469
+ "name": "last_archive",
1470
+ "type": {
1471
+ "kind": "struct",
1472
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1473
+ "fields": [
1474
+ { "name": "root", "type": { "kind": "field" } },
1475
+ {
1476
+ "name": "next_available_leaf_index",
1477
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1478
+ }
1479
+ ]
1480
+ }
1481
+ },
1482
+ { "name": "body_hash", "type": { "kind": "array", "length": 2, "type": { "kind": "field" } } },
1483
+ {
1484
+ "name": "state",
1485
+ "type": {
1486
+ "kind": "struct",
1487
+ "path": "authwit::aztec::protocol_types::state_reference::StateReference",
1488
+ "fields": [
1489
+ {
1490
+ "name": "l1_to_l2_message_tree",
1491
+ "type": {
1492
+ "kind": "struct",
1493
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1494
+ "fields": [
1495
+ { "name": "root", "type": { "kind": "field" } },
1496
+ {
1497
+ "name": "next_available_leaf_index",
1498
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1499
+ }
1500
+ ]
1501
+ }
1502
+ },
1503
+ {
1504
+ "name": "partial",
1505
+ "type": {
1506
+ "kind": "struct",
1507
+ "path": "authwit::aztec::protocol_types::partial_state_reference::PartialStateReference",
1508
+ "fields": [
1509
+ {
1510
+ "name": "note_hash_tree",
1511
+ "type": {
1512
+ "kind": "struct",
1513
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1514
+ "fields": [
1515
+ { "name": "root", "type": { "kind": "field" } },
1516
+ {
1517
+ "name": "next_available_leaf_index",
1518
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1519
+ }
1520
+ ]
1521
+ }
1522
+ },
1523
+ {
1524
+ "name": "nullifier_tree",
1525
+ "type": {
1526
+ "kind": "struct",
1527
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1528
+ "fields": [
1529
+ { "name": "root", "type": { "kind": "field" } },
1530
+ {
1531
+ "name": "next_available_leaf_index",
1532
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1533
+ }
1534
+ ]
1535
+ }
1536
+ },
1537
+ {
1538
+ "name": "contract_tree",
1539
+ "type": {
1540
+ "kind": "struct",
1541
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1542
+ "fields": [
1543
+ { "name": "root", "type": { "kind": "field" } },
1544
+ {
1545
+ "name": "next_available_leaf_index",
1546
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1547
+ }
1548
+ ]
1549
+ }
1550
+ },
1551
+ {
1552
+ "name": "public_data_tree",
1553
+ "type": {
1554
+ "kind": "struct",
1555
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1556
+ "fields": [
1557
+ { "name": "root", "type": { "kind": "field" } },
1558
+ {
1559
+ "name": "next_available_leaf_index",
1560
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1561
+ }
1562
+ ]
1563
+ }
1564
+ }
1565
+ ]
1566
+ }
1567
+ }
1568
+ ]
1569
+ }
1570
+ },
1571
+ {
1572
+ "name": "global_variables",
1573
+ "type": {
1574
+ "kind": "struct",
1575
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables",
1576
+ "fields": [
1577
+ { "name": "chain_id", "type": { "kind": "field" } },
1578
+ { "name": "version", "type": { "kind": "field" } },
1579
+ { "name": "block_number", "type": { "kind": "field" } },
1580
+ { "name": "timestamp", "type": { "kind": "field" } }
1581
+ ]
1582
+ }
1583
+ }
894
1584
  ]
895
1585
  }
896
1586
  },
@@ -932,21 +1622,20 @@
932
1622
  "visibility": "public"
933
1623
  },
934
1624
  "return_witnesses": [
935
- 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182,
936
- 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200,
937
- 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218,
938
- 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
939
- 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254,
940
- 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272,
941
- 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290,
942
- 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
943
- 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326,
944
- 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344,
945
- 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353
1625
+ 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1626
+ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
1627
+ 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
1628
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1629
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
1630
+ 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
1631
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
1632
+ 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
1633
+ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1634
+ 315, 316, 317, 318, 319, 320
946
1635
  ]
947
1636
  },
948
- "bytecode": "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",
949
- "debug_symbols": "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ufbTktRs+2lJar79tCQ1435akppz//rgQb0lqXn305LUzPtpSXruLReJfFqSnnvLhSKflqTn3nKxyKcl6bm3XDDyaUl67i0XjXxakp57y4Ujn5ak595y8cinJem5t1xA8mlJeu4tF5F8WpKee8uFJJ+WpOfecjHJpyXpubdcUPJpSXruLReVfFqSnnvLhSWflqTn3nJxyV8fRC63JLnA5NOS9NxbLjL5tCQ995YLTT4tSc+95WKTT0vSc2+54OTTkvTcWy46+bQkPfeWC08+LUnPveXik09L0nNvuQDl05L03FsuQvm0JD33lgtRPi1Jz73lYpRPS9Jzb7kg5dOS9NxbLkr5649u6i1Jz73l0pR2ycUpn5ak595ygcqnJem5t1yk8mlJeu4tF6p8WpKee8vFKp+WpOfecsHKpyXpubdctPJpSXruLReufFqSnnvLxSuflqTn3nIBy6cl6bm3XMTyaUl67i0Xsnxakp57y8Usn5ak595yQctff+Ndb0l67q2XtTS9rKXpZS1NL2tpelnLp/8qr7ckOfc2vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL0spaml7U0vayl6WUtTS9raXpZS9PLWppe1tL1spaul7V0vayl62Ut/ZJzb9fLWrpe1tL1spaul7V0vayl62UtXS9r6XpZS9fLWrpe1tL1spaul7V0vayl62UtXS9r6XpZS9fLWrpe1tL1spaul7V0vayl62UtXS9r6XpZS9fLWrpe1tL1spaul7V0vayl62UtXS9r6XpZS9fLWrpe1tL1spaul7V0vayl62UtXS9r6XpZS9fLWrpe1tL1spaul7V0vayl62Ut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+0aH+vAO48M7zA/vsD68w4+eGP9dti5WZqzMWdkbIOSFoUde8c60u7/Qrqf/1vLyYlv13CQ7mlRHk9HRZHY0WR1NdkOTNx6we+cm1tHEO5p0TPzumPjdMfG7Y+J3x8TvjonfDRNv13W1dLGWLt7SJVq6ZEuXaukyWrrMli6rpUvL7FvL7FvL7FvL7FvL7FvL7FvL7FvL7FvL7FvL7FvL7HvL7HvL7HvL7HvL7HvL7HvL7HvL7HvL7HvL7HvL7EfL7EfL7EfL7EfL7EfL7EfL7EfL7EfL7EfL7EfL7GfL7GfL7GfL7GfL7GfL7GfL7GfL7GfL7GfL7GfL7FfL7FfL7FfL7FfL7FfL7FfL7FfL7FfL7FfL7FfL7I+W2R8tsz9aZn+0zP5omf3RMvujZfZHy+yPltkfLbM/W2Z/tsz+bJn92TL7s2X2Z8vsz5bZny2zP1tmf7bM/mqZ/dUy+6tl9lfL7K+W2V8ts79aZn+1zP5qmf3VMvu7ZfZ3y+zvltnfLbO/W2Z/t8z+bpn93TL7u2X2W+71Wcu9Pmu512ct9/qs5V7fE+pt6VItXUZLl9nSZbV0aZn9lnt91nKvz1ru9VnLvT5ruddnLff6rOVen7Xc67OWe33Wcq/PWu71Wcu9Pmu512ct9/qs5V6f3eVe37CXLt88A+vbLqOly2zpslq67I4ud7nX934Xa+niLV2ipUu2dGmZ/WiZ/WiZ/WiZ/WiZ/WyZ/WyZ/WyZ/WyZ/WyZ/WyZ/WyZ/WyZ/WyZ/WyZ/WqZ/WqZ/WqZ/WqZ/WqZ/WqZ/WqZ/WqZ/WqZ/WqZ/dEy+6Nl9kfL7I+W2R8tsz9aZn+0zP5omf3RMvujZfZny+zPltmfLbM/W2Z/tsz+bJn92TL7s2X2Z8vsz5bZXy2zv1pmf7XM/mqZ/dUy+6tl9lfL7K+W2V8ts79aZn+3zP5umf3dMvu7ZfZ3y+zvltnfLbO/W2Z/t8z+7ph9v66WLtbSxVu6REuXbOlSLV1GS5fZ0mW1dGmZfWuZfWuZfWuZfWuZfWuZfWuZfWuZfWuZfWuZfWuZfW+ZfW+ZfW+ZfW+ZfW+Z/ZZ7fd5yr89b7vV5y70+b7nX5y33+rzlXp+33Ovzlnt93nKvz1vu9XnLvT5vudfnLff6vOVen7fc6/OWe33ecq/PW+71ecu9Pm+51+ct9/q85V6ft9zr85Z7fd5yr89b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"
1637
+ "bytecode": "H4sIAAAAAAAA/+2dB1hVRxbH59FRIRpjqibE3r2XjhVEbEgXEREV5GEwKAZRY+y995beey+mJ7tJNluT3c32vptks71le8/uOTo3jscnAu88ZL6T+33/73gez3nz+7/bZt7cmeM+pfwg3DCEgcJBCerUa7hl6ugEt7kRUEZEgHKTnNTkZH9aot9NcqucxIzq9BQnOaU6Nd1Nd1PSU2oS05OS/OnJ6WkZ1RlpToabnOR3a1Mykmp1wRF8dXRCwR0JZUSGgDuyg3NHQRlRIeCOYuT29vtovd97eSzJ40h+Acm7kbw7yXuQvDcoxsj7kLwvyfuRvD/JB5B8IMkHkXwwyYeQfCjJh5F8OMlHkNwhuUvyRJInkTyZ5CkkTyV5GsnTSZ5B8pEkH0Xy0SQfQ/KxJB9H8kySZ5F8PMmzST6B5Dkkn0jySSSfTPIpJJ9K8lySTyN5HsnzSV5A8kKSF5G8mOQlJJ9O8lKSzyB5Gclnkryc5LNIXkHy2SSvJPkcks8l+TySVxk5xgR1cusN+kidPP4x9tWxn479dRyg40AdB+k4WMchOg7VcZiOw3UcoaOjo6tjoo5JOibrmKJjqo5pOqbrmKHjSB1H6ThaxzE6jtVxnI6ZOmYZ9a0O4Mt4/fdsHSfomKPjRB0n6ThZxyk6TtUxV8dpOubpmK9jgY6FOhbpWKxjiY7TdSzVcYaOZTrO1LFcx1k6Vug4W8dKHefoOFfHeTpWGb7MV6dv3NfRGsV7HcXvr6sur1pzzNexpp0j+ucPsX+1fP65nn9eHWs1B97rLCAcYYTDCW5zoxk9uYbZE2TFMhOIB+FneuA6QWy9ab2DKK0Po59ZPt57/Gb8c4Kh7qsC1LONpfVj9G98+/rntJW6vzpLPdtQ2gBG/7Lb3z+nLdQDVTP1bGVpgxj9m3B+/HNaSz1YnaOerShtCKN/OefPP6c11ENVC+rZwtKGMfo38fz657SUerhqYT1bUNoIRv8mnX//nBZRq1bU8xyluYz+Te4Y/p3Aau6PiaqV9WymtCRG/6Z0HP+c5qiTVRvqeZbSUhj9m9qx/HPORp2q2ljPAKWlMfqX2/H8cwJRp6sg6klKy2D0b1rH9M+h1CNVkPU0ShvF6F9ex/XPMalHK4Z66tLGMPqX37H9czzqsYqpnlDaOEb/Cjq+f7i5mYxlmX1OwfpXaIl/jP1Ebjajf0WW+MfYz+HmMPpXbIl/jO10dxKjfyWW+MfYznSnMPo33RL/GNtJbi6jf6WW+Md4n+/mMfo3wxL/GO9T3QJG/8os8Y/xPsstYvRvpiX+Md4nuCWM/pVb4h/jdc4tZfRvliX+MZ6n3TJG/yos8Y/xPOOWM/o32xL/GI8Tt4LRv8p28i/YetYxfheM+4xb2X77X1Djr8YrvvFX2Yzf6ypLxl9NUHzjr3IY/VttyfiriYpv/NUkRv/WWDL+arLiG381hdG/tZaMv5qq+MZf5TL6t86S8VfTVAvq2cLS8hj9W2/J+Kt81cJ6tqC0Akb/Nlgy/qpQtaKe5yitiNG/jZaMvypWraxnM6WVMPq3yZLxV9NVG+p5ltJKGf3bbMn4qxmqjfUMUFoZo39bLBl/NVMFUU9SWjmjf1stGX81SwVZT6O0Ckb/tlky/mq2YqinLq2S0b/tloy/mqOY6gmlzWX0b4cl/afzGMtaxdh/utMS/xj7idw1jP7tssQ/xn4Odx2jf7st8Y+xne5uYPRvjyX+MbYz3U2M/u21xD/GdpK7hdG/fZb4x3if725j9G+/Jf4x3qe6Oxj9O2CJf4z3We4uRv8OWuIf432Cu4fRv0OW+Md4nXP3Mfp32BL/GM/T7gFG/45Y4h/jecY9xOjfUUv8YzxO3COM/h2zZPzVQsbvgnGfcTn98+YIi9Tl4Zgzcy69her0OeR8OuJ2rTo1x16Yfs2bY+xa4331+rsJV2ffMpm88Rks3uZj/gzGcXlOqOqYZUEdF1pQxyoL6uhToTmfctezXvGet7xtkTo5NzJuOMcyPc/gaxGECedAjGTmi9Xl4hZmfI7i/ZyUQPNfO0FusUadwwN4GRHAy0jjtUjCi3mc8XdFfInX741i/g58Rv28ciNI3fB61U3/e3FDU13tyuxGf1WTvya/oclv7lhRxBATwGe8bl5wTFOiSTmmydFGND/z41pzuGGWyX00L1KhOeuEMdfTnD002DvCxYp3T0VWLDNBndyZztgRVMe+WviMOnoHQwNoCeg6deooM3d8bwvBmdEJ9ZnRi3iQRxtsivzdO7sxX2GSAl3d6D6TafzbPCtH8NbFxbNoL13WAn9T4bLq+rr5uf6VWYtrCqsam+qq6rNqahr9S5cG2knCA1Q+zDCUnnnNs6l5KaKXWdOgdjnDeu0fc+/Hds8SHa/TEdd2aCR1oGe6YM9OjEe228hXloPe0DaZUvbcB3PvM6H0oCFEHnDXc4nivQp90ub/pM3PVUdpbX7zAu1dk5aCmtTJNUJwM9t4yngtivCZF2rzgh6j/21e0L07J7N91onZJxvb32YTMtzwxnvN88u8A/X+T4w687uJDfDddDI+qxt5n1Jn3snGMH8vPqMuXrnRhMFc+8O/qK4pZ/H8xpVLoJ0+rWGBeUMXY7DQ+uNm3jGbfQPe+33q9H4LpfPOvMyJ5j6vjM9WxAdv62zUJRTHRRfeMk+c6+KM+nusXQwe7+8xBlscM5vP+EyvXC+PC93nnuCPPwd/fIB6xLcjf7xRty6knrHG3zsZr4URDvO85L2/3bqxuLuHzLKCbYAtU/w3DqFg9jEyL7eEOYyReYUlzOGMzNdbwhzByLzSEuZIRuYbLGGOYmReZQkz56Jqqy1h9jMyr7GEuYaRea1A5nUCmdcLZN4gkHmjQOZNApk3C2TeIpB5q0DmbQKZtwtk3iGQeadA5l0CmXcLZN4jkHmvQOZ9Apn3C2Q+IJD5oEDmQwKZDwtkPiKQ+ahA5mMCmW8UyHyTQOabBTLfIpD5VoHMtwlkvl0g8x0Cme8UyHyXQOa7BTLfI5D5XoHM9wlkvl8g8wMCmR8UyPyQQOaHBTI/IpD5UYHMjwlkflwg8xMCmZ8UyPyUQOanBTI/I5D5uEDmZwUyPyeQ+XmBzC8IZH5RIPNLAplfFsj8ikDmVwUyf0og86cFMr8mkPl1gcxvCGT+jEDmNwUyf9YS5npG5s9Zwsy5jMDnLWHm3Le/IJD5iwKZvySQ+S2BzG8LZP6yQOavCGT+qkDmdwQyf00g89cFMn9DIPM3BTJ/SyDztwUyf0cg83cFMn9PIPP3BTL/QCDzDwUy/0gg848FMv9EIPO7ApnfE8j8vkDmnwpk/kAg888sYV7AyPxzgd/zLyxh5lzv5pcCv+dfCWT+tUDm3whk/q1A5t8JZP69QOY/CGT+UCDzHwUy/0kg858FMv9FIPNfBTL/TSDz3wUy/0Mg8z8FMv9LIPO/BTL/RyDzfwUyfySQ+X8CmZVPHrNPIHOYQOZwgcwRApkjBTJHCWSOFsgcI5A5ViBzJ4HMnQUydxHIHCeQOV4g8wUCmbsKZO4mkPlCgczdBTJfJJC5h0DmiwUyXyKQ+VKBzJcJZL5cIPMVApl7CmTuJZD5SoHMV1nCvJiROUHg93y1QObeApn7CGTuK5C5n0Dm/pYwxzAyD7CEOZaReaAlzJ0YmQdZwtyZkXmwJcxdGJmHWMIcx8g81BLmeEbmYZYwX8DIPNwS5q6MzCMsYe7GyOxYwnwhI7NrCXN3RuZES5gvYmROsoS5ByNzsiXMFzMyp1jCfAkjc6olzJcyMqdZwnwZI3O6JcyXMzJnWMJ8BSPzSEuYezIyj7KEuRcj82hLmK9kZB5jCfNVjMxjLWFOYGQeZwnz1YzMmYzMvQ1mn+YOB0WAIkFRIJybFH+TwD567LPGPlzs08Q+Puzzwj4g7BPBPgJsM2MbEttU2MbAe268B8V7MrxHwWs2XsPwnI7nODzm8RhIAJkeYb36gPqC+oH6gwaABoIGgQaDhoCGgoaBhoNGoB8gF5SIPoOSQSmgVFAaKB2UARoJGgUaDRoDGgsapz8/CzQelA2aAMoBTQRNAk0GTQFNBeWCpoHyQPmgAlAhqAhUDCoBTQeVgmaAykAzQeWgWaAK0GxQJWgOaC5oHqgK9Lb2YRloOWgF6HrQStANoFWg1aA1oLWgdaD1oA2gjaBNoM2gLaCtoG2g7aAdoJ2gXaDdoD2gvaB9oP2gA6CDoEOgw6AjoKOgY6AbQTeBbgbdAroVdBvodtAdoDtBd4HuBt0Duhd0H+h+0AOgB0EPgR4GPQJ6FPQY6HHQE6AnQU+BngY9AzoOehb0HOh50AugF0EvgV4GvQJ6FYTr3uM68K+BXge9AcJ1pN8E4TrDuO4urkOL67LiOqW4budb2mNc5xDX/cN18N4B4TppuG4YrqOF60rhOku47hCuw4Pr0uA6LbhuCa7jgeta4DoPuO4BrgPwLug90PsgnEf8AxDOM43zLuM8xDgvL85Ti/O24jymOK8nznOJ8z7iPIgfgnCePJw3DudRw3nFcJ4tnHcK52HCeYlwnh6ctwbnccF5TXCeD5z3AueBwAMY5wnA5+bxOXJ8rhqfM8bnbvE5VHwuE59TxOf28Dk2fK4Ln3PC537wORh8LgSfk8DnBnAcPY4rx3HWOO4Yx+HiuFQcp4njFnEcH45rw3FeOO4JxwHhuBgcJ4LjJnAcAf6ujr8z4++u+Dsk/i6Hv1Ph7zb4Owb262M/N/b7Yj8o9gtiPxn2G2E/CvYrYDsb253YDsN2Cd6n430r3sfhfQ1e5/G6d+I64Dt13satWMeeOlY1NfkXLWlKaGpIqKqpSVhR13RNQsNyf2NtfQMeXif295a+//+xi6v4/TkBAA==",
1638
+ "debug_symbols": "7ZzRahsxEEX/ZZ9N0EgzmpF/peQhtCkEQlJqvxn/e+3U0rqx8FLv4NbJfQqBGeXu2ZF2D8TeDM+vXx/WT68vq2G5GVSG5ZfNsPrx8LL/dbV++LkelmExPL582/3cLobvT8+Pw5IsbxcndVRKLY2BYqvm1CmOibkWc6Bx6WC9pUNROZQThVT+qL9fDJpvNrleLzmr1WJJNju53Wzy0ktOSlS7NMtE/qhU/0ZU4TE/94opt5mJTOeLJ+NbuO345BF/TGRhIr5RrNNjJLkVa3iLE/+vOMkhjo03t+Q0Gaem0XEbqnRKU4jpUJuCjTtcuxs8chuDmO18cSpSAaZiRxvc9KIRY0CcD1EAcT7EDIjzISogzodogDgfYgHE2RBLAMT5EAkQ50OMgDgfIozFASID4nyIMBYHiDAWB4gwFgeIMBYHiDCW+RApQFk8KMJZPChCWjwowlo8KDIoOlCEt3hQhLh4UIS5eFCEunhQhLs4UCS4iwdFuIsHRbiLB0W4iwdFBkUHinAXD4pwFw+KcBcPinAXD4pwFweKEe7iQRHu4kER7uJBEe7iQZFB0YEi3MWDItzFgyLcxYMi3MWDItzFgWKCu3hQhLt4UIS7eFCEu3hQZFB0oAh38aAId/GgCHfxoAh38aAId3GgyHAXD4pwFw+KcBcPinAXD4r8YSiOV5qinC+WVC9PlCfWnUZ4bXEpmuvKgdMxw7c4+V/GsZM4136VpiBjnlLOj5hqmwRVOSoOv8PbLYe/9osjkZZ2kJGdD88idXOzWJw4yGIJpeVIMlEtoW1vGTPvcO6xSPisWJTqF9Sq6DGWzp42bWdeGq+Polx0RAp9WuZamVsIJ6MYPxKW9haTiHiiOmVpSx99u2w8PFDv+h8IkFKnMtMIU6R18UVd3ec3m7QzZBxoS4ej9a77WEu5nt5M+f3d3jXZJU3lkqb+Z6Qmu+ivuyTe9f9LmXOdfC72/hbvu+yiri4NaTcrH71UUqDt/Xb7Cw=="
950
1639
  },
951
1640
  {
952
1641
  "name": "entrypoint",
@@ -1011,18 +1700,127 @@
1011
1700
  }
1012
1701
  },
1013
1702
  {
1014
- "name": "block_header",
1703
+ "name": "historical_header",
1015
1704
  "type": {
1016
1705
  "kind": "struct",
1017
- "path": "authwit::aztec::protocol_types::abis::block_header::BlockHeader",
1706
+ "path": "authwit::aztec::protocol_types::header::Header",
1018
1707
  "fields": [
1019
- { "name": "note_hash_tree_root", "type": { "kind": "field" } },
1020
- { "name": "nullifier_tree_root", "type": { "kind": "field" } },
1021
- { "name": "contract_tree_root", "type": { "kind": "field" } },
1022
- { "name": "l1_to_l2_message_tree_root", "type": { "kind": "field" } },
1023
- { "name": "archive_root", "type": { "kind": "field" } },
1024
- { "name": "public_data_tree_root", "type": { "kind": "field" } },
1025
- { "name": "global_variables_hash", "type": { "kind": "field" } }
1708
+ {
1709
+ "name": "last_archive",
1710
+ "type": {
1711
+ "kind": "struct",
1712
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1713
+ "fields": [
1714
+ { "name": "root", "type": { "kind": "field" } },
1715
+ {
1716
+ "name": "next_available_leaf_index",
1717
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1718
+ }
1719
+ ]
1720
+ }
1721
+ },
1722
+ { "name": "body_hash", "type": { "kind": "array", "length": 2, "type": { "kind": "field" } } },
1723
+ {
1724
+ "name": "state",
1725
+ "type": {
1726
+ "kind": "struct",
1727
+ "path": "authwit::aztec::protocol_types::state_reference::StateReference",
1728
+ "fields": [
1729
+ {
1730
+ "name": "l1_to_l2_message_tree",
1731
+ "type": {
1732
+ "kind": "struct",
1733
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1734
+ "fields": [
1735
+ { "name": "root", "type": { "kind": "field" } },
1736
+ {
1737
+ "name": "next_available_leaf_index",
1738
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1739
+ }
1740
+ ]
1741
+ }
1742
+ },
1743
+ {
1744
+ "name": "partial",
1745
+ "type": {
1746
+ "kind": "struct",
1747
+ "path": "authwit::aztec::protocol_types::partial_state_reference::PartialStateReference",
1748
+ "fields": [
1749
+ {
1750
+ "name": "note_hash_tree",
1751
+ "type": {
1752
+ "kind": "struct",
1753
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1754
+ "fields": [
1755
+ { "name": "root", "type": { "kind": "field" } },
1756
+ {
1757
+ "name": "next_available_leaf_index",
1758
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1759
+ }
1760
+ ]
1761
+ }
1762
+ },
1763
+ {
1764
+ "name": "nullifier_tree",
1765
+ "type": {
1766
+ "kind": "struct",
1767
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1768
+ "fields": [
1769
+ { "name": "root", "type": { "kind": "field" } },
1770
+ {
1771
+ "name": "next_available_leaf_index",
1772
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1773
+ }
1774
+ ]
1775
+ }
1776
+ },
1777
+ {
1778
+ "name": "contract_tree",
1779
+ "type": {
1780
+ "kind": "struct",
1781
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1782
+ "fields": [
1783
+ { "name": "root", "type": { "kind": "field" } },
1784
+ {
1785
+ "name": "next_available_leaf_index",
1786
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1787
+ }
1788
+ ]
1789
+ }
1790
+ },
1791
+ {
1792
+ "name": "public_data_tree",
1793
+ "type": {
1794
+ "kind": "struct",
1795
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
1796
+ "fields": [
1797
+ { "name": "root", "type": { "kind": "field" } },
1798
+ {
1799
+ "name": "next_available_leaf_index",
1800
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
1801
+ }
1802
+ ]
1803
+ }
1804
+ }
1805
+ ]
1806
+ }
1807
+ }
1808
+ ]
1809
+ }
1810
+ },
1811
+ {
1812
+ "name": "global_variables",
1813
+ "type": {
1814
+ "kind": "struct",
1815
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables",
1816
+ "fields": [
1817
+ { "name": "chain_id", "type": { "kind": "field" } },
1818
+ { "name": "version", "type": { "kind": "field" } },
1819
+ { "name": "block_number", "type": { "kind": "field" } },
1820
+ { "name": "timestamp", "type": { "kind": "field" } }
1821
+ ]
1822
+ }
1823
+ }
1026
1824
  ]
1027
1825
  }
1028
1826
  },
@@ -1117,7 +1915,7 @@
1117
1915
  "visibility": "public"
1118
1916
  }
1119
1917
  ],
1120
- "param_witnesses": { "inputs": [{ "start": 0, "end": 23 }], "payload": [{ "start": 23, "end": 40 }] },
1918
+ "param_witnesses": { "inputs": [{ "start": 0, "end": 34 }], "payload": [{ "start": 34, "end": 51 }] },
1121
1919
  "return_type": {
1122
1920
  "abi_type": {
1123
1921
  "kind": "struct",
@@ -1188,6 +1986,41 @@
1188
1986
  }
1189
1987
  }
1190
1988
  },
1989
+ {
1990
+ "name": "nullifier_key_validation_requests",
1991
+ "type": {
1992
+ "kind": "array",
1993
+ "length": 1,
1994
+ "type": {
1995
+ "kind": "struct",
1996
+ "path": "authwit::aztec::protocol_types::abis::nullifier_key_validation_request::NullifierKeyValidationRequest",
1997
+ "fields": [
1998
+ {
1999
+ "name": "public_key",
2000
+ "type": {
2001
+ "kind": "struct",
2002
+ "path": "authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint",
2003
+ "fields": [
2004
+ { "name": "x", "type": { "kind": "field" } },
2005
+ { "name": "y", "type": { "kind": "field" } }
2006
+ ]
2007
+ }
2008
+ },
2009
+ {
2010
+ "name": "secret_key",
2011
+ "type": {
2012
+ "kind": "struct",
2013
+ "path": "authwit::aztec::protocol_types::grumpkin_private_key::GrumpkinPrivateKey",
2014
+ "fields": [
2015
+ { "name": "high", "type": { "kind": "field" } },
2016
+ { "name": "low", "type": { "kind": "field" } }
2017
+ ]
2018
+ }
2019
+ }
2020
+ ]
2021
+ }
2022
+ }
2023
+ },
1191
2024
  {
1192
2025
  "name": "new_commitments",
1193
2026
  "type": {
@@ -1237,18 +2070,127 @@
1237
2070
  { "name": "encrypted_log_preimages_length", "type": { "kind": "field" } },
1238
2071
  { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } },
1239
2072
  {
1240
- "name": "block_header",
2073
+ "name": "historical_header",
1241
2074
  "type": {
1242
2075
  "kind": "struct",
1243
- "path": "authwit::aztec::protocol_types::abis::block_header::BlockHeader",
2076
+ "path": "authwit::aztec::protocol_types::header::Header",
1244
2077
  "fields": [
1245
- { "name": "note_hash_tree_root", "type": { "kind": "field" } },
1246
- { "name": "nullifier_tree_root", "type": { "kind": "field" } },
1247
- { "name": "contract_tree_root", "type": { "kind": "field" } },
1248
- { "name": "l1_to_l2_message_tree_root", "type": { "kind": "field" } },
1249
- { "name": "archive_root", "type": { "kind": "field" } },
1250
- { "name": "public_data_tree_root", "type": { "kind": "field" } },
1251
- { "name": "global_variables_hash", "type": { "kind": "field" } }
2078
+ {
2079
+ "name": "last_archive",
2080
+ "type": {
2081
+ "kind": "struct",
2082
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2083
+ "fields": [
2084
+ { "name": "root", "type": { "kind": "field" } },
2085
+ {
2086
+ "name": "next_available_leaf_index",
2087
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2088
+ }
2089
+ ]
2090
+ }
2091
+ },
2092
+ { "name": "body_hash", "type": { "kind": "array", "length": 2, "type": { "kind": "field" } } },
2093
+ {
2094
+ "name": "state",
2095
+ "type": {
2096
+ "kind": "struct",
2097
+ "path": "authwit::aztec::protocol_types::state_reference::StateReference",
2098
+ "fields": [
2099
+ {
2100
+ "name": "l1_to_l2_message_tree",
2101
+ "type": {
2102
+ "kind": "struct",
2103
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2104
+ "fields": [
2105
+ { "name": "root", "type": { "kind": "field" } },
2106
+ {
2107
+ "name": "next_available_leaf_index",
2108
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2109
+ }
2110
+ ]
2111
+ }
2112
+ },
2113
+ {
2114
+ "name": "partial",
2115
+ "type": {
2116
+ "kind": "struct",
2117
+ "path": "authwit::aztec::protocol_types::partial_state_reference::PartialStateReference",
2118
+ "fields": [
2119
+ {
2120
+ "name": "note_hash_tree",
2121
+ "type": {
2122
+ "kind": "struct",
2123
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2124
+ "fields": [
2125
+ { "name": "root", "type": { "kind": "field" } },
2126
+ {
2127
+ "name": "next_available_leaf_index",
2128
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2129
+ }
2130
+ ]
2131
+ }
2132
+ },
2133
+ {
2134
+ "name": "nullifier_tree",
2135
+ "type": {
2136
+ "kind": "struct",
2137
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2138
+ "fields": [
2139
+ { "name": "root", "type": { "kind": "field" } },
2140
+ {
2141
+ "name": "next_available_leaf_index",
2142
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2143
+ }
2144
+ ]
2145
+ }
2146
+ },
2147
+ {
2148
+ "name": "contract_tree",
2149
+ "type": {
2150
+ "kind": "struct",
2151
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2152
+ "fields": [
2153
+ { "name": "root", "type": { "kind": "field" } },
2154
+ {
2155
+ "name": "next_available_leaf_index",
2156
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2157
+ }
2158
+ ]
2159
+ }
2160
+ },
2161
+ {
2162
+ "name": "public_data_tree",
2163
+ "type": {
2164
+ "kind": "struct",
2165
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2166
+ "fields": [
2167
+ { "name": "root", "type": { "kind": "field" } },
2168
+ {
2169
+ "name": "next_available_leaf_index",
2170
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2171
+ }
2172
+ ]
2173
+ }
2174
+ }
2175
+ ]
2176
+ }
2177
+ }
2178
+ ]
2179
+ }
2180
+ },
2181
+ {
2182
+ "name": "global_variables",
2183
+ "type": {
2184
+ "kind": "struct",
2185
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables",
2186
+ "fields": [
2187
+ { "name": "chain_id", "type": { "kind": "field" } },
2188
+ { "name": "version", "type": { "kind": "field" } },
2189
+ { "name": "block_number", "type": { "kind": "field" } },
2190
+ { "name": "timestamp", "type": { "kind": "field" } }
2191
+ ]
2192
+ }
2193
+ }
1252
2194
  ]
1253
2195
  }
1254
2196
  },
@@ -1290,21 +2232,22 @@
1290
2232
  "visibility": "public"
1291
2233
  },
1292
2234
  "return_witnesses": [
1293
- 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050,
1294
- 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068,
1295
- 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086,
1296
- 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104,
1297
- 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122,
1298
- 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140,
1299
- 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158,
1300
- 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176,
1301
- 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194,
1302
- 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212,
1303
- 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221
2235
+ 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265,
2236
+ 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283,
2237
+ 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301,
2238
+ 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319,
2239
+ 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337,
2240
+ 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355,
2241
+ 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373,
2242
+ 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391,
2243
+ 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409,
2244
+ 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427,
2245
+ 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445,
2246
+ 4446, 4447, 4448, 4449, 4450, 4451
1304
2247
  ]
1305
2248
  },
1306
- "bytecode": "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",
1307
- "debug_symbols": "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"
2249
+ "bytecode": "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",
2250
+ "debug_symbols": "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nYNMdOcgE905yER3DjLRnYNMdOcgE905yER3DjLRnYNMdOcgE905yER3DjLRnYNMdOcgE905yER3DjLRnYNMdOcgE905yER3DjLRnYNMdOcgE905yER3DjLRnYNMdOcgE905yER3DjLRnYNMdOcgE905yER3DjLRnYNMdOcgE905yER3DjLRnYNMdOcgE905SKM7B2l05yCN7hyk0Z2DtI1tzTa6c5BGdw7S6M5BGt05SKM7B2l05yCN7hyk0Z2DNLpzkEZ3DtLozkEa3TlIozsHaXTnII3uHKTRnYM0unOQRncO0ujOQRrdOUijOwdpdOcgje4cpNGdgzS6c5BGdw7S6M5BGt05SKM7B2l05yCN7hyk0Z2DNLpzkEZ3DtLozkEa3TlIozsHaXTnII3uHKTRnYM0unOQRncO0ujOQRrdOUijOwdpdOcgje4cpNGdgzS6c5BGdw7S6M5BGt05SKM7B2l05yCN7hyk0Z2DNLpzkEZ3DtLozkEa3TlIozsHaXTnII3uHKTRnYM0unOQRncO0ujOQRrdOUijOwdpdOcgje4cpNGdgzS6c5BGdw7S6M5BGt05SKM7B2l05yCN7hyk0Z2DNLpzkEZ3DtLozkEa3TlIozsHaXTnII3uHKTRnYM0unOQRncO0ujOQRrdOUijOwdpdOcgje4cZKY7B5npzkFmunOQme4cZN7Y1uxMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIDPdOchMdw4y052DzHTnIAvdOchCdw6y0J2DLHTnIMvG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nf3d6OzvRmd/Nzr7u9HZ343O/m509nejs78bnf3d6OzvRmd/Nzr7u9HZ343O/m509nejs78bnf3d6OzvRmd/Nzr7u9HZ343O/m509nejs78bnf3d6OzvRmd/Nzr7u9HZ343O/m509nejs78bnf3d6OzvRmd/Nzr7u9HZ343O/m509nejs78bnf3d6OzvRmd/Nzr7u9HZ343O/m509nejs78bnf3d6OzvRmd/Nzr7u9HZ343O/m509nejs78bnf3d6OzvRmd/Nzr7u9HZ343O/m509nejs78bnf3d6OzvRmd/Nzr7u9HZ343O/m509nejs78bnf3d6OzvRmd/Nzr7u9HZ343O/m509nejs78bnf3d6OzvRmd/N3bvSVbnUVZnfzc5+7vJ2d9Nzv5ucvZ3k7O/m5z93eTs7yZnfzcF79Fn53xx9neTs7+bnP3d5OzvJmd/Nzn7u8nZ303O/m5y9ndT9J6Vd84XZ383Ofu7ydnfTc7+bnL2d5Ozv5u8v6zg/WkF728ruH9cwTlfvD+v4P19Be8PLHh/YcH7EwvO/m5y9neTs7+bnP3dZN5f43DOF2d/Nzn7u8nZ303O/m5y9neTs7+bnP3d5OzvJmd/Nzn7u8nZ303O/m5y9neTs7+bnP3d5OzvJmd/Nzn7u8nZ303O/m4q3t/7cc4XZ383Ofu7ydnfTc7+bnL2d5Ozv5uc/d3k7O8mZ383Ofu7ydnfTc7+bnL2d5Ozv5uc/d3k7O8mZ383Ofu7ydnfTc7+bnL2d5Ozv5uc/d3k7O8mZ383Ofu7ydnfTc7+bnL2d5Ozv5uc/d3k7O8mZ3/XnP1dc/Z3zdnfNWd/15z9XXP2d83Z3zVnf9ec/V1z9nfN2d81Z3/XnP1dc/Z3zdnfNWd/15z9XXP2d83Z3zVnf9ec/V1z9nfN2d81Z3/XnP1dc/Z3zdnfNWd/15z9XXP2d83Z3zVnf9ec/V1z9nfN2d81Z3/XnP1dc/Z3zdnfNe9v6Hp/RNf7K7ren9F1/46uc754f0nX+1O63t/S9f6YrrO/a87+rjn7u+bs75qzv2vO/q45+7vm7O+as79rzv6uOfu75uzvmrO/a87+rjn7u+bs75qzv2vO/q45+7vm7O+as79rzv6uOfu75uzvmrO/a87+rjn7u+bs75qzv2vO/q45+7vm7O+as79rzv6uOfu75uzvmrO/a87+rjn7u+bs75qzv2vO/q45+7vm7O+as79rzv6uOfu75uzvmrO/a87+rjn7u9nZ383O/m529nezs7+bnf3d7OzvZmd/Nzv7u9nZ383O/m529nezs7+bnf3d7OzvZmd/Nzv7u9nZ383O/m529nezs7+bnf3d7OzvZmd/Nzv7u9nZ383O/m529nezs7+bnf3d7OzvZmd/Nzv7u9nZ383O/m529nezs7+bnf3d7OzvZmd/Nzv7u9nZ383O/m529nezs7+bnf3d7OzvZmd/Nzv7u9nZ383ep6V5H5fmfV6a94Fp3iemuR+Z5pwv3oemeZ+a5n1smrO/m5393ezs72Znfzc7+7vZ2d/Nzv5udvZ3s7O/m5393ezs72Znfzc7+7vZ2d/Nzv5udvZ3s7O/m5393ezs72Znfzc7+7vZ2d/Nzv5udvZ3s7O/m5393ezs72Znfzc7+7vZ2d/Nzv5udvZ3s7O/m5393ezs7+Zf6e+Wo+uy87rivK46r2vO67rruvIr/d3D64Lzuui8LjmvM+d12XldcV5Xndc153XO+RKc8yU450twzpfgnC/BOV+Cc74E53wJzvkSnPMlOOdLdM6X6Jwv0TlfonO+ROd8ic75Ep3zJTrnS3TOl+icL8k5X5JzviTnfEnO+ZKc8yU550tyzpfknC/JOV+Sc76Yc76Yc76Yc76Yc76Yc76Yc76Yc76Yc76Yc76Yc75k53zJzvmSnfMlO+dLds6X7Jwv2TlfsnO+ZOd8yc75UpzzpTjnS3HOl+KcL8U5X4pzvhTnfCnO+fIL/d2Sn6/728uLb2Py47WlPl6aHrfof/wWv9A1/u1bhD9+i/7VW9yvi87rkvM6c16XndcV53XVeV1zXtdd19Vtc14XnNdF53XJeZ05r8vO64rzuuq8rjmvc86X4Jwvxz2maNv247p404zHdWm/LjqvS87rzHlddl5XnNdV53XNeV33XXfcY/qF65zzJTrnS3TOl+icL9E5X6JzvkTnfInO+RKd8yU550tyzpfknC/JOV+Sc74k53xJzvmSnPMlOedLcs4Xc84Xc84Xc84Xc84Xc84Xc84Xc84Xc84Xc84Xc86X7Jwv2TlfsnO+ZOd8yc75kp3zJTvnS3bOl+ycL9k5X4pzvhTnfCnO+VKc86U450txzpfinC/FOV+Kc74U53ypzvlSnfOlOudLdc6X6pwv1TlfqnO+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"
1308
2251
  },
1309
2252
  {
1310
2253
  "name": "set_is_valid_storage",
@@ -1369,18 +2312,127 @@
1369
2312
  }
1370
2313
  },
1371
2314
  {
1372
- "name": "block_header",
2315
+ "name": "historical_header",
1373
2316
  "type": {
1374
2317
  "kind": "struct",
1375
- "path": "authwit::aztec::protocol_types::abis::block_header::BlockHeader",
2318
+ "path": "authwit::aztec::protocol_types::header::Header",
1376
2319
  "fields": [
1377
- { "name": "note_hash_tree_root", "type": { "kind": "field" } },
1378
- { "name": "nullifier_tree_root", "type": { "kind": "field" } },
1379
- { "name": "contract_tree_root", "type": { "kind": "field" } },
1380
- { "name": "l1_to_l2_message_tree_root", "type": { "kind": "field" } },
1381
- { "name": "archive_root", "type": { "kind": "field" } },
1382
- { "name": "public_data_tree_root", "type": { "kind": "field" } },
1383
- { "name": "global_variables_hash", "type": { "kind": "field" } }
2320
+ {
2321
+ "name": "last_archive",
2322
+ "type": {
2323
+ "kind": "struct",
2324
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2325
+ "fields": [
2326
+ { "name": "root", "type": { "kind": "field" } },
2327
+ {
2328
+ "name": "next_available_leaf_index",
2329
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2330
+ }
2331
+ ]
2332
+ }
2333
+ },
2334
+ { "name": "body_hash", "type": { "kind": "array", "length": 2, "type": { "kind": "field" } } },
2335
+ {
2336
+ "name": "state",
2337
+ "type": {
2338
+ "kind": "struct",
2339
+ "path": "authwit::aztec::protocol_types::state_reference::StateReference",
2340
+ "fields": [
2341
+ {
2342
+ "name": "l1_to_l2_message_tree",
2343
+ "type": {
2344
+ "kind": "struct",
2345
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2346
+ "fields": [
2347
+ { "name": "root", "type": { "kind": "field" } },
2348
+ {
2349
+ "name": "next_available_leaf_index",
2350
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2351
+ }
2352
+ ]
2353
+ }
2354
+ },
2355
+ {
2356
+ "name": "partial",
2357
+ "type": {
2358
+ "kind": "struct",
2359
+ "path": "authwit::aztec::protocol_types::partial_state_reference::PartialStateReference",
2360
+ "fields": [
2361
+ {
2362
+ "name": "note_hash_tree",
2363
+ "type": {
2364
+ "kind": "struct",
2365
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2366
+ "fields": [
2367
+ { "name": "root", "type": { "kind": "field" } },
2368
+ {
2369
+ "name": "next_available_leaf_index",
2370
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2371
+ }
2372
+ ]
2373
+ }
2374
+ },
2375
+ {
2376
+ "name": "nullifier_tree",
2377
+ "type": {
2378
+ "kind": "struct",
2379
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2380
+ "fields": [
2381
+ { "name": "root", "type": { "kind": "field" } },
2382
+ {
2383
+ "name": "next_available_leaf_index",
2384
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2385
+ }
2386
+ ]
2387
+ }
2388
+ },
2389
+ {
2390
+ "name": "contract_tree",
2391
+ "type": {
2392
+ "kind": "struct",
2393
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2394
+ "fields": [
2395
+ { "name": "root", "type": { "kind": "field" } },
2396
+ {
2397
+ "name": "next_available_leaf_index",
2398
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2399
+ }
2400
+ ]
2401
+ }
2402
+ },
2403
+ {
2404
+ "name": "public_data_tree",
2405
+ "type": {
2406
+ "kind": "struct",
2407
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2408
+ "fields": [
2409
+ { "name": "root", "type": { "kind": "field" } },
2410
+ {
2411
+ "name": "next_available_leaf_index",
2412
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2413
+ }
2414
+ ]
2415
+ }
2416
+ }
2417
+ ]
2418
+ }
2419
+ }
2420
+ ]
2421
+ }
2422
+ },
2423
+ {
2424
+ "name": "global_variables",
2425
+ "type": {
2426
+ "kind": "struct",
2427
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables",
2428
+ "fields": [
2429
+ { "name": "chain_id", "type": { "kind": "field" } },
2430
+ { "name": "version", "type": { "kind": "field" } },
2431
+ { "name": "block_number", "type": { "kind": "field" } },
2432
+ { "name": "timestamp", "type": { "kind": "field" } }
2433
+ ]
2434
+ }
2435
+ }
1384
2436
  ]
1385
2437
  }
1386
2438
  },
@@ -1405,9 +2457,9 @@
1405
2457
  { "name": "value", "type": { "kind": "boolean" }, "visibility": "private" }
1406
2458
  ],
1407
2459
  "param_witnesses": {
1408
- "inputs": [{ "start": 0, "end": 19 }],
1409
- "message_hash": [{ "start": 19, "end": 20 }],
1410
- "value": [{ "start": 20, "end": 21 }]
2460
+ "inputs": [{ "start": 0, "end": 30 }],
2461
+ "message_hash": [{ "start": 30, "end": 31 }],
2462
+ "value": [{ "start": 31, "end": 32 }]
1411
2463
  },
1412
2464
  "return_type": {
1413
2465
  "abi_type": {
@@ -1537,18 +2589,127 @@
1537
2589
  },
1538
2590
  { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } },
1539
2591
  {
1540
- "name": "block_header",
2592
+ "name": "historical_header",
1541
2593
  "type": {
1542
2594
  "kind": "struct",
1543
- "path": "authwit::aztec::protocol_types::abis::block_header::BlockHeader",
2595
+ "path": "authwit::aztec::protocol_types::header::Header",
1544
2596
  "fields": [
1545
- { "name": "note_hash_tree_root", "type": { "kind": "field" } },
1546
- { "name": "nullifier_tree_root", "type": { "kind": "field" } },
1547
- { "name": "contract_tree_root", "type": { "kind": "field" } },
1548
- { "name": "l1_to_l2_message_tree_root", "type": { "kind": "field" } },
1549
- { "name": "archive_root", "type": { "kind": "field" } },
1550
- { "name": "public_data_tree_root", "type": { "kind": "field" } },
1551
- { "name": "global_variables_hash", "type": { "kind": "field" } }
2597
+ {
2598
+ "name": "last_archive",
2599
+ "type": {
2600
+ "kind": "struct",
2601
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2602
+ "fields": [
2603
+ { "name": "root", "type": { "kind": "field" } },
2604
+ {
2605
+ "name": "next_available_leaf_index",
2606
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2607
+ }
2608
+ ]
2609
+ }
2610
+ },
2611
+ { "name": "body_hash", "type": { "kind": "array", "length": 2, "type": { "kind": "field" } } },
2612
+ {
2613
+ "name": "state",
2614
+ "type": {
2615
+ "kind": "struct",
2616
+ "path": "authwit::aztec::protocol_types::state_reference::StateReference",
2617
+ "fields": [
2618
+ {
2619
+ "name": "l1_to_l2_message_tree",
2620
+ "type": {
2621
+ "kind": "struct",
2622
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2623
+ "fields": [
2624
+ { "name": "root", "type": { "kind": "field" } },
2625
+ {
2626
+ "name": "next_available_leaf_index",
2627
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2628
+ }
2629
+ ]
2630
+ }
2631
+ },
2632
+ {
2633
+ "name": "partial",
2634
+ "type": {
2635
+ "kind": "struct",
2636
+ "path": "authwit::aztec::protocol_types::partial_state_reference::PartialStateReference",
2637
+ "fields": [
2638
+ {
2639
+ "name": "note_hash_tree",
2640
+ "type": {
2641
+ "kind": "struct",
2642
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2643
+ "fields": [
2644
+ { "name": "root", "type": { "kind": "field" } },
2645
+ {
2646
+ "name": "next_available_leaf_index",
2647
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2648
+ }
2649
+ ]
2650
+ }
2651
+ },
2652
+ {
2653
+ "name": "nullifier_tree",
2654
+ "type": {
2655
+ "kind": "struct",
2656
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2657
+ "fields": [
2658
+ { "name": "root", "type": { "kind": "field" } },
2659
+ {
2660
+ "name": "next_available_leaf_index",
2661
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2662
+ }
2663
+ ]
2664
+ }
2665
+ },
2666
+ {
2667
+ "name": "contract_tree",
2668
+ "type": {
2669
+ "kind": "struct",
2670
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2671
+ "fields": [
2672
+ { "name": "root", "type": { "kind": "field" } },
2673
+ {
2674
+ "name": "next_available_leaf_index",
2675
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2676
+ }
2677
+ ]
2678
+ }
2679
+ },
2680
+ {
2681
+ "name": "public_data_tree",
2682
+ "type": {
2683
+ "kind": "struct",
2684
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot",
2685
+ "fields": [
2686
+ { "name": "root", "type": { "kind": "field" } },
2687
+ {
2688
+ "name": "next_available_leaf_index",
2689
+ "type": { "kind": "integer", "sign": "unsigned", "width": 32 }
2690
+ }
2691
+ ]
2692
+ }
2693
+ }
2694
+ ]
2695
+ }
2696
+ }
2697
+ ]
2698
+ }
2699
+ },
2700
+ {
2701
+ "name": "global_variables",
2702
+ "type": {
2703
+ "kind": "struct",
2704
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables",
2705
+ "fields": [
2706
+ { "name": "chain_id", "type": { "kind": "field" } },
2707
+ { "name": "version", "type": { "kind": "field" } },
2708
+ { "name": "block_number", "type": { "kind": "field" } },
2709
+ { "name": "timestamp", "type": { "kind": "field" } }
2710
+ ]
2711
+ }
2712
+ }
1552
2713
  ]
1553
2714
  }
1554
2715
  },
@@ -1565,183 +2726,230 @@
1565
2726
  "visibility": "public"
1566
2727
  },
1567
2728
  "return_witnesses": [
1568
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1569
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1570
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1571
- 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1572
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1573
- 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1574
- 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
1575
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210
2729
+ 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,
2730
+ 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,
2731
+ 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,
2732
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2733
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2734
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2735
+ 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2736
+ 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
2737
+ 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232
1576
2738
  ]
1577
2739
  },
1578
- "bytecode": "H4sIAAAAAAAA/+2dCZwVxbXG751hay6bIPsyFxj2xZkBxd1BRRBBVBQURdkHFBiEYREVFBQEQUAQBPd93zfcjRqNGo36kpfkJS/rS/KSF/OSl9Us+k71rSMfRTm5Faucvszp3+/zdp/urvrXV6fq9u3uwQ9TqVQ6lVuKSW1T+y68v1J/ln2xpdxjWWUhOdMFwllUIJzFBcLZoEA4GxYIZ6MC4WxcIJxNCoQzKhDOpgXCmSkQzmYFwtm8QDhbFAhnywLhbFUgnAcUCGfrAuFsUyCcB3rk7ASc/Nuunf5srz876M+O+pPP6aw/u+jPrrqtDfR2N1IJKUvqrvexMT1IPUmlpF6k3qQ+pL6kfqT+pAGkgaRBpMGkg/T56gdiBWkIaSjpYNIhpGGkQ0mHkQ4nHUE6knQU6WjSMdq34aRjSceRjieNIJ1AGkkaRTqRNJp0EmkMaSzpZNI40imkU3Vbsrotp5HGk04nnUGaQJpIOpN0FmkS6WzSOaTJpHNJ55GmkKaSppGmk2aQZpJmkapIs0lzSOeTLiDNJc0jzSdVkxaQLjQ8X0haRKohLTY4l5CWkpaRLiItJ11MuoR0KWkFaSXpMtLlpFWk1aQrSFeS1pDWkq4irSOtJ11N2kDaSLqGtIm0mbSFdC1pK2kb6brU3v2/nbSDdD1pJ2kX6QbSjaSbSDeTbiHdSrqNdDvpDtKdpLtId5PuId1Luo90P+kB0oOkh0gPkx4hPUp6jPQ46QnSk6SnSE+TniHtJj1Leo70POkF0oukl0gvk14hfYX0Kuk10uukr+q2FOm2vEF604h9jfSWXn9bf76jP7+uP9/Vn+/pz2/oz/f15wf680PS2Fa5dXXNbN6DUTEes2mI8fgtghiP5WKI8bhuADEe4w0hxuO9EcR47DeGWFe93gRi3WCdP0v0elOIZfV6BmLd9XoziPXQ680h1lOvt4BYqV5vCbFeer0VxHrr9QMg1kevt4ZYX73eBmL99PqB+pP9UUul/iz7gosq0/P3SJli59xoC+3h3GgHMc6N9hDj3OgAMW57R4hxbnSCGOdGZ4hxbnSBGOdGV4hxbmBOcW6UQIxzIwsxzo3uEOPc6AExzo2eEOPcKIUY50YviHFu9IYY50YfiLHnfSHGnnNOKY9HwX5ecEzj/VmO8X4c08VQJsd4P45p3o9jmvfjmMb9/Mn7cUzzfhzTvB/HL+/Hscr9iuOSz8ExyP2KeczlYM5yv2J+ctmYi9yvmItcH+Yi9yvmIjNgLnK/ZiHGXJiLPJYwF5kV57dGwFupP8u+2FKO8z4vaWO7Etbx+6CrX5Yh+N2SDwv2CfdFO+Ar8ctXkQGvSqCe7p7rwe/EfHzoDiw9/LLE92l7+i0zvhwsBf6s/uR6MrC/LbSt1HPb0lAnl8vbyJcva7c6ZlUsXQxOvEbqkgA+juH8V2rh6+WXryKd2rsfK2G7F/BxrAeweM7/ishgUUtt47snsPTxylJehtfG+bD0AZbeXllyc01fv2XG19D9PJepyugPnrB/zJ6B/f3Ar/6e/UpDnVwubyOfsAqrsAqrsAqrsAqrsNZvVvydg/cw+bjSBPBxrDew+P5tgPfjuGx1b3Q31On3fkp5Gf5OVuVngYHrKoZjSlru4XpBx5qm9v1tjc9MSo3y/fHn+o/r4XJ5Owt83Ba8N+X5PlnM0sNg2X/rrZju/55meZm61473iEqMdmT1J96n5pjKybehvUm5N433aYuAz/P96vJ/9X413qcrBj7P96vL8b54PnwlwMfn4bMi3+PoX73PnYHzGgKf5/t05fjMOR8+vCeM9w/50/M9zXLX+4i2+5yNgc/vvcUcX28Hvj7Ax+c1AT7P9/HK8ZonH75+wIfPb5lvQAC+/g58A4CPz2sKfIMC8A104BsEfANhnfkOCsA32IHvIGDi85oBX3kAvrJU/nzlwMfnNQe+IQH4Khz4hgAfn9cC+A4OwDfUge9g4OPzWgLfsAB8hzjwDQM+Pq8V8B0WgO9QB77DgI/POwD4jgjAd7gD3xHAx+e1Br6jAvAd6cB3FPDxeW2A75gAfEc78B0DfHwevt82PABfpQPfcODjOH7/HheA71gHvuOAj8/rAHwj/PLFz5GPd+AbASyj/LIMVSwnOLCMApaRflni58gn+i0zfo482nOZqoyTwBP2j9kzsH80+HWSZ7/SUCeXy9vIJ6z1m1WxHG9wRnDc8Qng49jIgCyRwaKW2uY6Gx/25Vi/fPH3whgHvrHAcopXliHxPfaTHVhOAZZxXlly3wun+i0znsNPA35uK9eTgf3Y56d5blsa6uRyeRv5hFVYhVVYhVVYhVVYhVVYhVVYhVVYhVVYhVVYhVVYhVVYhVVYhVVYhVVYhVVYhdU/q2IZY3BGcNyYBPBxbFxAlshgUUtt74nY+LAvT/fLF79TM96B73RgmeiVpSJ+p+YMB5aJwDLBK0vunZoz/ZYZv1NzFvBzW7meDOzHPj/Lc9vSUCeXy9vIJ6zCKqzCKqzCKqzCKqzCKqzCKqzCKqzCKqzCKqzCWiisimW8wRnBceMTwMexCQFZIoNFLbXdZ7fxYV+e7ZcvfiYxyYHvbGA51y9L/O8/nOPAci6wTPbLEj+TOM9vmfEziSnAz23lejKwH/t8iue2paFOLpe3p0BcWOs3q2KZZHBGcNykBPBxbHJAlshgUUtt89IUCx/25TS/fPEcPtWBbxqwzPTKknuuPN2BZSawzPDKkpvDZ/ktM57Dq4Cf28r1ZGA/9nmV57aloU4ul7erwtUbt3/2P2n/bAvH7C+x/ciXL+voAmIVX8VX8VV8FV/FV/FVfBVfxVfxVXwVX8VX8VV8FV/FV/E1f1bFMtXgjOC4qQng49iMgCyRwaKW2u7d2/gw7873yxc/55jjwHc+sMzzypL7N6kvcGCZByxzvbLknnPM91tmfJ+/Gvi5rVxPBvZjn1d7blsa6uRyeRv59kfWqgJilRwIwyo5IKySA8IqOSCskgPCKjkgrJIDwio5IKySA8IqOSCskgPCKjkgrJIDwio5IKySA8Ja1zmgWOYYnBEcNycBfBybG5AlMljUUtt7IjY+zLsL/fLF79QscOC7EFhqArAsdGCpAZZFflnid2oW+y0zfqdmCfBzW7meDOzHPl/iuW1pqJPL5W3kKxRWxbLA4IzguAUJ4OPYooAskcGiltrGj40P+3KZX754fC914FsGLBcHYLnIgeViYFnulyWeay7xW2Y811wK/NxWricD+7HPL/XctjTUyeXyNvIVCqtiWWpwRnDc0gTwcWx5QJbIYFFLbePHxod9uTIA3woHvpXAt8LCd3kAvssc+C4HPj6vKfCtDsC3yoFvNfCtgnXmuzIA3xUOfFcCE5/XDPjWBuBb48C3Fvj4vObAty4A31UOfOuAj89rAXxXB+Bb78B3NfDxeS2Bb2MAvg0OfBuBj89rBXybAvBd48C3Cfj4PJz/tgTg2+zAtwX4Nlv4tgbgu9aBbyvwXWvhuy4A3zYHvuuAb5uFb0cAvu0OfDuAj8/De1g7A/Bd78C3E1h2+WUpywDLLqjnxgBtviGVf5u5/gych3w3B+C7yYHvZuC7ycJ3awC+Wxz4bgU+Pg9z+vYAfLc58N0OfHwezgl3BuC7w4HvTuC7w8J3dwC+uxz47ga+uyx89wbgu8eB717gu8fCd38Avvsc+O4HvvssfA8G4HvAge9B4HvAwvdwAL6HHPgeBr6HLHyPBuB7xIHvUeB7xML3eAC+xxz4Hge+xyx8Twbge8KB70nge8LC93QAvqcc+J4GvqcsfLsD8D3jwLcb+J6x8D0XgO9ZB77ngO9ZC98LAfied+B7Afiet/C9FIDvRQe+l4DvRQvfKwH4XnbgewX4+Dy8/ns1AN9XHPheBT4+D/173S9f/MzlNQe+14HlTb8s8f9r4KsOLG8Cyxt+WeLnP1/zW2b8/Oct4Oe2cj0Z2I99/pbntqWhTi6Xt5FPWOs3q2J5zeCM4LjXEsDHsTcCskQGi1pqm5dsfNiX7/jli+fwtx343gGW97yyDI3/DZ6vO7C8ByzvemXJzeHf8FtmPIe/D/zcVq4nA/uxz9/33LY01Mnl8jby5ctaVUCs4qv4Kr6Kr+Kr+Cq+iq/iq/gqvoqv4qv4Kr6Kr+Kr+Cq+iq/iq/gqvoqv4qv4Kr6Kr+Kr+Cq+iq/iq/gqvoqv4qv4Kr6Kr+Jr/qyK5W2DM4Lj3k4AH8feDcgSGSxqSRvblbBu48O8+9AvX/xO+AcOfB8Cy7e8slTE74T/mwPLt4Dlm15Zcu+E/7vfMstUGd8Gfm4r15OB/djn3/bctjTUyeXyNvLly1pVQKziq/gqvoqv4qv4Kr6Kr+Kr+Cq+iq/iq/gqvoqv4qv4Kr7un74qlg8MzgiO+yABfBz7ZkCWyGBRS2332W18mHff9csXP5P4jgPfd4Hl+15ZhsTPJP7DgeX7wPI9ryy5ZxL/6bfM+JnED4Cf28r1ZGA/9vkPPLctDXVyubyNfPsja1UBsUoOhGGVHBBWyQFhlRwQVskBYZUcEFbJAWGVHBBWyQFhlRwQVskBYZUcEFbJAWGVHBBWyQFhrescUCzfMTgjOO47CeDj2PcCskQGi1pqe0/Exod59yO/fPE7NT904PsRsPzUL0v8/+/7sQPLT4HlJ35Z4ndq/stvmfE7NT8Dfm4r15OB/djnP/PctjTUyeXyNvIJa/1mVSw/NDgjOO6HCeDj2E8CskQGi1pqm5dsfNiXv/DLF8/hP3fg+wWw/MovSzyH/7cDy6+A5Zd+WeI5/H/8lhnP4b8Gfm4r15OB/djnv/bctjTUyeXyNvIJa/1mVSw/NzgjOO7nCeDj2C8DskQGi1pqm5dsfNiXv/HLF8/hHznw/QZYfheA5X8dWH4HLL/1yxLP4f/nt8x4Dv898HNbuZ4M7Mc+/73ntqWhTi6Xt5GvUFgVy0cGZwTHfZQAPo79NiBLZLCopbbxY+PDvvxjAL4/OPD9Efj+YOH7cwC+Pznw/Rn4/mTh+zgA318c+D4Gvr9Y+P4WgO+vDnx/A76/Wvj+EYDv7w58/wC+v1v4Pg3A94kD36fA94mFL532z2cC1cbH9WfgQOQrDsBX5MBXDHxFFr6GAfgaOPA1BL4GFr7GAfgaOfA1Br5GFr4oAF8TB74I+Pg8fD6RCcDX1IEvA3x83i7gax6Ar5kDX3Pga2bhaxmAr4UDX0vga2HhOyAAXysHvgOAr5Ul/9oE4GvtwNcG+Fpbxm/bAHwHOvC1Bb4DLXztA/C1c+BrD3ztLHwdA/B1cODrCHwdLHydA/B1cuDrDHydLHxdA/B1ceDrCnxdLHwlAfi6OfCVAF83C1/3AHxZB77uwJe18PUMwNfDga8n8PWw8PUKwFfqwNcL+EotfH0C8PV24OsDfL0tfP0C8PV14OsHfH0tfAMC8PV34BsAfP0tfIMC8A104BsEfAMtfAcF4BvswHcQ8A228JUH4Ctz4CsHvjLL9d+QAHwVDnxDgK/C4t/Bfvni+/tDHfi4fsVyqF+W+HnxIQ4shwLLMM/9pso8zG+Z8bOGw6FB3NbDoM8Pt/T54Z7bloY6uVzeRj5hrd+sioXnBuaM4Lih6brn49iwgCyRwaKW2uYlGx/25ZEB5vAjHPiOBK+O8coyNP630I5yYDkGWI4OMIdXBpjDh0ODuK2V0OfDLX0+PMD4qDTGB28jX76sVQXEKr6Kr+Kr+Cq+iq/iq/gqvoqv4qv4Kr6Kr+Kr+Cq+iq/iq/gqvoqv4qv4Kr6Kr+Kr+Cq+iq/iq/gqvoqv4qv4Kr6Kr+Kr+Cq+5s+qWPhdY+aM4DjeV5d8HDs6IEtksKjF2Pysrs/jw7w7zi9f/E74sQ58x4FXJ3hlqYjfCT/egeUEYBnhud9UmSP9lhm/Ez4KGsRtHQl9PsrS56MCjI+RxvjgbeTLl7WqgFjFV/FVfBVfxVfxVXwVX8VX8VV8FV/FV/FVfBVfxVfxVXzdP31VLHyvmzkjOI731SUfx0YEZIkMFrUYm3vdZ7fxYd6N9ssXP5M40YFvNHg11ivLkPiZxEkOLGOBZYznflNlnuy3zPiZxDhoELf1ZOjzcZY+HxdgfJxsjA/eRr79kbVKfK33rJIDwio5IKySA8IqOSCskgPCKjkgrJIDwio5IKySA8IqOSCskgPCKjkgrJIDwio5IKx1nQOKhd/VYM4IjuN9dcnHsTEBWSKDRS3G5md1fR4f5t2pfvnid2pOceA7Fbw63S9L/P/vO82B5XRgGe+531SZZ/gtM36nZgI0iNt6BvT5BEufTwgwPs4wxgdvI5+w1m9WxcJzw2kwh/Nxp6Trno9j4wOyRAaLWmqbl2x82JdnBpjDJzrwnQlenR1gDj/LgeVsYJkUYA4/J8AcPhkaxG09B/p8sqXPJwcYH+cY44O3kU9Y6zerYuG54SyYw/m4iem65+PYpIAskcGiltrmJRsf9uV5Aebwcx34zgOvpgVgmeLAMg1YpgaYw6cHmMNnQIO4rdOhz2dY+nxGgPEx3RgfvI18hcKqWDiHp8Bcw8edm657Po5NDcgSGSxqqW382PiwL2cF4JvpwDcL+GZa+GYH4Kty4JsNfFUWvvMD8M1x4Dsf+OZY+OYG4LvAgW8u8F1g4ZsfgG+eA9984Jtn4VsQgK/agW8B8FVb+BYG4LvQgW8h8F1o4Vsc4PphkQPfYpiLawJcPyzxW2aZKnOpZ89UGcvAJPZvCfQd718Kfi0L8D26xPge5W3ky5e1bapuWQPUW9EslbuuWWTUxc9ckOkivd4A4jz21OZyHWuot/n4XfqYYjimOpP7bK7r53i71J62XhpgrrnYYSxfCr5fEmAsr/A8llUZK6FB3NYVkMu8fzm0bWWAXF5h5DJvrwQWXopSe1hWBGDBpRLWV1hYWiaIpVmCWKIEsTRKEEtxglhwTNc1y5IEsbRKJYeluf5MAkvTBLE0ThBLgwSxdEwQS4cEsbRPEEuLBLFkEsTSJEEsDRPEkq5jlii17++eCPYvgeP4ev1iiF2m1y+BWJGlDr42Wgkxnlsvg9+KI1rtWzZ6FOL3CdZTCdtcV1NguCzwb6V8WBomiKVJglgyCWJpkSCW9gli6ZAglo4JYmmQIJbGCWJpmiCW5gliaZUgFr5GSALL8gSxFCeojxoliCVKEEuzBLG0TBBLkYXlcr8sQ/E3BS/G5l6/WS4HFt+/lVSZq/yWGT9PXe25TFXGFWAS+8fsGdi/Gvy6IkAerUrv3U+8jXzCWr9ZVb1Xeq03928Ur3KYN64M6IEqc02AMb4WGsRtXQP9u9bSv2sD9O8ao395G/mEVViFVViFVViFVViFVViFVViFVViFVViFVViFVViFVViFVViFVViFVViFVViF1T+rqvcqr/VWxO9cYL1qMTY/qysF9YfwQJW5zm+Z8TsX66FB3NZ10L/rLf27PkD/rjP6l7eRT1iFVViFVViFVViFVViFVViFVViFVViFVViFVViFtVBYVb1X+603/vtirFctxuZe96yvDuiBKnOD3zLje9YboUHc1g3Qvxst/bsxQP9uMPqXt5FPWOs3q6r3Gq/15p5LbXAY49cE9ECVuSnAGN8MDeK2boL+3Wzp380B+neT0b+8vTlcvXH7t/yT9m+xcGz5EtuPfPmyri4gVvFVfBVfxVfxVXwVX8VX8VV8FV/FV/FVfBVfxVfxVXwVX/NnVfVe67Xe3L+JifWqxdjc6z74tQE9UGVu9VtmfB94GzSI27oV+nebJRe3BejfrUb/8jby7Y+sm8XXes8qOSCskgPCKjkgrJIDwio5IKySA8IqOSCskgPCKjkgrJIDwio5IKySA8IqOSCskgPCWtc5oOq9zm+9FZFRr1qMzc/qSkH9ITxQZW73W2b8zsUOaBC3dTv07w5LLu4I0L/bjf7lbeQrFFZV7/UBcnG7Qy5eH9ADVebOALm4CxrEbd0J/bvL0r+7AvTvTqN/eRv5CoU1glhRak+M9xdD7AYdawCxG3WsIcRugjZx7GYdawyxW3SsCcRuBS7+vE3HOkDsdh1bCcffoddXQOxOvb4KYnfp9SsgdrdeXwOxe/T6Wojdq9fXQew+vb4eYvfr9Q0Qe0Cvb4TYg3p9E8Qe0utbIPaw8d2qYo8Y33Eq9qgx76nYY8b8o2KPG/mnYk/o9aapPbEnIWc59pSONYPY0zrWHGLP6FgLiO3WsZYQe1bHWkHsOQsf5+dOiHF+Yj5zft4AMc7PGyHG+XkTxDg/b4YY5+ctEOP8xHxl326DGPt2O8TYtzsgxr7dCTH27S6IsW93Q4x9uwdiB+jYvRBrrWP3QayNjt0PsQN17AGItdWxByHWTsceglh7HXsYYjxuH4FYRx17FGKddOwxiHXWscch1kXHnoBYVx17EmLddOwpiJXo2NMQy+rYMxDrrmO7IdZDx56FWE8dew7mt0ZwbKX+LPtiSznWxUva2K6Eda6/EbTFE0tZBli6Qz0lXuupKFPty+qyivQ651cJ1NvVT73lvKLq7WL4xxxcVzEc018Pyub6+C5efSirSEO9jTQL83QBHj5msOZR8+AHLfduh08uHBO81JaTmCue+oxRynAc58OCfvrN29z1r+ccKFNldvZcpiqjE3iS1Z/MnoH9ncGvTp79wvHG5fI28gmrsAqrsAqrsAqrsAqrsAqrsAqrsAqrsAqrsAqrsBYKq2LpYXDi860eCeDjGD5v8X1vG58Hctnq2cXL8Owi67XO3LMlfB6RBQauqxiO+Rieqbym15vCfu4rfMaI/ef3eUeu/7geLpe3ua6m0BbsP9/PO/A5HZe7/9ZbMd3/GKgoU+8E4HNnc9xxn+KzV47hcz7V55x3pfoTn42VBvMlv/7AMZOFGK/3BD6/HpeHeIZWrsroBP3AbeN6imH/92EO+UHLPX1jzhdq/0eW/bykje1KWMfn1r39tjWeM/tA+ZVQB9bb12+95VhvWovr4HgxrP+aX5KB49TC/jKzyrteluNwvcQ4JwP7ewVuc2/gqIRtrkvlyY8hpz6C70vf3zfYXvSlPfjC+7Pgi+/xpnwxr++YoTOwlBqceF2Fc2CvAHyfd13VC/g41hX4uB04n+wG1qxX1r2vgcz3a7JQr6fvib3er8H3L7oDB9eF77N8Cu/XmNc9WTi3I5T5ZbwTZH434ztBDVrtYf6y3gliHts7QU00j8qp4Xr9865fuxqxAPzlyM/ldjX48bqgaziWvLwM9RuM5yz1fipycF3FcEwbI6c8f7/H73PhHJ9K1X6t0Ru86ePZmwDfqfH7Tv2A3/zuz8D+ttC2fp7bhtcvXC5vI1++rN0SwNrXworX/J2N4xRrf6+sFfH1/QCvZeauewbqstTcmdXrXE8x7O8Dc2w/vR5Bm7tDOYda9vNS25jrD/4N9tvW+DvuICi/EurAesv81luO9fL1PdfB8WJYH8YvvMNxamF/mVnl3SDLcbje1zgnA/sHBW7zYOCohG2uS+XJQMgpzpkQ4xzbi750BF94P15n9zCOV/nM4wGvH3yPyzTUw+Xy9gDg41g/8HQ4+JgNwNUduLKpfe8r4v1OnBPwfmfDAFwNUnv7xdtcl6q3sed68W9veKltfmsMLI08s6i/4+G/vVlUU71watXMiQvn1MxMA1dDg7EI2IpgX7FxXOPUvu3yBt42tbd5RRqggQbmjlMN5D9EyujGqotF9YdEKrdU3qs/DFJ/CKT+8OdAKPcl/anqUn/Yo34Iqj/cUYmqLkbVoFcXw+oCVV1wqC/3bCqXwGqgqxt36oe1+vJXF4bqglBNCmrgqS8PNSjVYFSTiJro1GSuJjo181SQhpCGkg4mHUIaRjqUdBjpcNIRpCNJR5GOJh2j/R1OOpZ0HOl40gjSCaSRpFGkE0mjSSeRxpDGkk4mjSOdQjqVdBppPOl00hmkCaSJpDNJZ5Emkc4mnUOaTDqXdB5pCmkqaRppOmkGaSZpFqmKNJs0h3Q+6QLSXNI80nxSNWkB6ULSQtIiUg1pMWkJaSlpGeki0nLSxaRLSJeSVpBWki4jXU5aRVpNuoJ0JWkNaS3pKtI60nrS1aQNpI2ka0ibSJtJW0jXkraStpGuI20n7SBdT9pJ2kW6gXQj6SbSzaRbSLeSbiPdTrqDdCfpLtLdpHtI95LuI91PeoD0IOkh0sOkR0iPkh4jPU56gvQk6SnS06RnUrmbH8+SniM9T3qB9GIql6svk14hfYX0Kuk10uukr5LeIL1J+hrpLdLbpHdIXye9S3qP9A3S+6QPSB+m9h34apmv/3rvSL09PjdpZBfNra7JlmXn03+nzp1bvXTmjMFZ3LcoO2/xoprsopqpC2uysxZWz8uWD8Zy++mJnif/qTU1M+ctqMnWVNOJc2vmLJh7UXbpnJrZ2eolMxfOogrw5E++yMnF+quvy74nT50x4/PPa63P4z8XPHH+jJnLstWLa7LVs7LTqhfPn7Ho/wEd95co+swCAA==",
1579
- "debug_symbols": "5Z3Njq5JeWXvpcal1hsRz19wK60eoG63ZMnCrYYZ4t79IVfmKYs8rtrYmbW2GBkd5ZdEEuQOvGCt8+cf/uVf//fv//TP//qHP/7wuz//8PyP3j/87n/++Yc//r/f/+Gvf/DHP/3+///ph989P/7wT3/4P6//+5cff/i///wv//TD79bEX/7Xj3/9wFE/EOoHUv1AqR9o9QOjfuD++g/8+Ddft7rqpy9dfeP9q2P9+3ef51O/+/rU774/9bufT/3u8anfPT/1u9enfvf+1O8+n/rdP/V39X7q7+r91N/V+6m/q/dTf1fvp/6u3k/9Xb2f+rt6P/V39X7q7+r91N/V9Tyf++3X5377/bnf/r/0+7qfJ3/60v3s/vm3/+gscd7PEt/Osp5+O0yQDpOkwxTpME06zJAOc0GHWQ/pMIt0mE06DGmBF2mBF2mBF2mBF2mBF2mBF2mBN2mBN2mBN2mBN2mBN2mBN2mBN2mBN2mBN2mBN2mBD2mBD2mBD2mBD2mBD2mBD2mBD2mBD2mBD2mBD2mBg7TAQVrgIC1wkBY4SAscpAUO0gIHaYGDtMBBWuAkLXCSFjhJC5ykBU7SAidpgZO0wEla4CQtcJIWuEgLXKQFLtICF2mBi7TARVrgIi1wkRa4SAtcpAVu0gI3aYGbtMBNWuAmLXCTFrhJC9ykBW7SAjdpgYe0wPOVv9r37fuuWeujwyTpMF/3b+Ad79f0+ocfXtMFHeY+pMMs0mE26TBf9x8h5kUZfvrief2/1T87zNv/uv4G6TD5hdfU8/bFeeY/XJP21T8dvXyP3tCjr+f22/de6zn3o8OP8+Gv7+H3oyrc+znyJ0L+RMqfKPkTLX9i5E9c9ROKTPHTJ5b8CfnOl3znS77zJd/5ku98yXe+5Dtf8p1v+c63fOdbvvMt3/mW73zLd77lO9/ynW/5zrd850e+8yPf+ZHv/Mh3fuQ7P/KdH/nOj3znR77zI995yHce8p2HfOch33nIdx7ynYd85yHfech3HvKdp3znKd95ynee8p2nfOcp33nKd57ynad85ynfecl3XvKdl3znJd95yXde8p2XfOcl33nJd17ynbd85y3fuZzb2nJva8vBrS0Xt7ac3Npyc2vL0a3d8p2PfOcj3/nIdz7ynY985yPf+ch3PvKdj3znI9/5le/8ynd+5Tu/8p1f+c6vfOdXvvMr3/mV7/yqd36eR/7Ekj+x5U8c+RMhfyLlT5T8iZY/MfIn5DuXOdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROdyROVzIHC5kDhcyhwuZw4XM4ULmcCFzuJA5XMgcLmQOFzKHC5nDhczhQuZwIXO4kDlcyBwuZA4XMocLmcOFzOFC5nAhc7iQOVzIHC5kDhcyhwuZw4XM4ULmcCFzuJA5XMgcLmQOFzKHC5nDhczhQuZwIXO4kDlcyBwuZA4XMocLmcOFzOFC5nAhc7iQOVzIHC5kDhcyhwuZw4XM4ULmcCFzuJA5XMgcLmQOFzKHC5nDhczhQuZwIXO4kDlcyBwuZA4XMocLmcOFzOFC5nAhc7iQOVzIHC5kDhcyhwuZw4XM4ULmcCFzuJA5XMgcLmQOFzKHC5nDhczhQuZwIXO4kDlcyBwuZA4XMocLmcOFzOFC5nAhc7iQOVzIHC5kDhcyhwuZw6XM4VLmcClzuJQ5XMocLmUOlzKHS5nDpczhUuZwKXO4lDlcyhwuZQ6XModLmcOlzOFS5nApc7iUOVzKHC5lDpcyh0uZw6XM4VLmcClzuJQ5XMocLmUOlzKHS5nDpczhUuZwKXO4lDlcyhwuZQ6XModLmcOlzOFS5nApc7iUOVzKHC5lDpcyh0uZw6XM4VLmcClzuJQ5XMocLmUOlzKHS5nDpczhUuZwKXO4lDlcyhwuZQ6XModLmcOlzOFS5nApc7iUOVzKHC5lDpcyh0uZw6XM4VLmcClzuJQ5XMocLmUOlzKHS5nDpczhUuZwKXO4lDlcyhwuZQ6XModLmcOlzOFS5nApc7iUOVzKHC5lDpcyh0uZw6XM4VLmcClzuJQ5XMkcrmQOVzKHK5nDlczhSuZwJXO4kjlc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"
2740
+ "bytecode": "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",
2741
+ "debug_symbols": "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Su7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hSu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hWu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hRu7hrtzDXbmHu3IPd+Ue7so93JV7uCv3cFfu4a7cw125h7tyD3flHu7KPdyVe7gr93BX7uGu3MNduYe7cg935R7uyj3clXu4K/dwV+7hrtzDXbmHu3IPd+Ue7so93JV7uCv3cFfu4a7cw125h7tyD3flHu7KPdyVe7gr93BX7uGu3MNduYe7cg935R7uyj3clXu4K/dwV+7hrtzDXbmHu3IPd+Ue7so93JV7uCv3cFfu4a7cw125h7tyD3flHu7KPdyVe7gr93BX7uGu3MNduYe7cg935R7uyj3clXu4K/dwV+7hrtzDXbmHu3IPd+Ue7so93JV7uCv3cFfu4a7cw125h7tyD3flHu7KPdyVe7gr93BX7uGu3MNduYe7cg935R7uyj3clXu4K/dwV+7hrtzDXbmHu3IPd+Uebr3kIu55ZOmPhP7I1h85+iOpP1L6I60/Mvoj+vaXvv2lb3/p21/69pe+/aVvf+nbX/r2l779pW8/9O2Hvv3Qtx/69kPffujbD337oW8/9O2Hvv2tb3/r29/69re+/a1vf+vb3/r2t779rW9/69s/+vaPvv2jb//o2z/69o++/aNv/+jbP/r2j7791Lef+vZT337q2099+6lvP/Xtp7791Lef+vZL337p2y99+6Vvv/Ttl7790rdf+vZL337p2299+61vv/Xtt7791rff+vZb337r2299+61vf/Ttj7790bc/+vZH3/7o2x99+6Nvf/Ttj779q2//6tu/+vavvv2rb//q27/69q++/atvX+/6lt71Lb3rW3rXt/Su7/lTr/5I6o+U/kjrj4z+iL59vetbete39K5v6V3f0ru+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+ld39K7vqV3fUvv+pbe9S2961t61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xd61xdK1/eX//S6jPn2yjz5/trz/d33p777+dR3z0999/o97/4Ml2+vfX7d6/31/frg5U+h/fbi1/e33q/3YZo0zJCGuaBhlP5XHObtE9anf0J8+ifsT/+E8zs/4Z73T6jX/M4vRZKGKdIwTRpmSMNczjD79SINs0jDBGmYTRoGlMD7BUrg/QIl8H6BEni/QAm8X6QEXqQEXqQEXqQEXqQEXqQEXqQEXqQEXqQEXqQEXqQEDlICBymBg5TAQUrgICVwkBI4SAkcpAQOUgIHKYE3KYE3KYE3KYE3KYE3KYE3KYE3KYE3KYE3KYE3KYEPKYEPKYEPKYEPKYEPKYEPKYEPKYEPKYEPKYEPKYGTlMBJSuAkJXCSEjhJCZykBE5SAicpgZOUwElK4CIlcJESuEgJXKQELlICFymBi5TARUrgIiVwkRK4SQncpARuUgI3KYGblMBNSuAmJXCTErhJCdykBB5SAg8pgYeUwENK4CEl8JASeEgJPKQEHlICDymBLymBLymBLymBLymBSUzcJjFxm8TEbRITt0lM3CYxcYfExB0SE3dITNwhMXHnBUrgQ2LiDomJOyQm7pCYuENi4g6JiTskJu6QmLhDYuIOiYk7JCbukJi4Q2LiDomJOyQm7pCYuENi4g6JiTskJu6QmLhDYuIOiYk7JCbukJi4Q2LiDomJOyQm7pCYuENi4g6JiTskJu6QmLhDYuIOiYk7JCbukJi4Q2LiDomJOyQm7pCYuENi4g6JiTskJu6QmLhDYuIOiYk7JCbukJi4Q2LiDomJOyQm7pCYuENi4g6JiTskJu6QmLhDYuIOiYk7JCbukJi4Q2LiDomJOyQm7pCYuENi4g6JiTskJu6QmLhDYuIOiYk7JCbukJi4Q2LiDomJOyQm7pCYuENi4g6JiTskJu6QmLhDYuIOiYk7JCbukJi4Q2LiDomJOyQm7pCYuENi4g6J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"
2742
+ },
2743
+ {
2744
+ "name": "compute_note_hash_and_nullifier",
2745
+ "function_type": "Unconstrained",
2746
+ "is_internal": false,
2747
+ "abi": {
2748
+ "parameters": [
2749
+ {
2750
+ "name": "contract_address",
2751
+ "type": {
2752
+ "kind": "struct",
2753
+ "path": "authwit::aztec::protocol_types::address::AztecAddress",
2754
+ "fields": [{ "name": "inner", "type": { "kind": "field" } }]
2755
+ },
2756
+ "visibility": "private"
2757
+ },
2758
+ { "name": "nonce", "type": { "kind": "field" }, "visibility": "private" },
2759
+ { "name": "storage_slot", "type": { "kind": "field" }, "visibility": "private" },
2760
+ {
2761
+ "name": "serialized_note",
2762
+ "type": { "kind": "array", "length": 5, "type": { "kind": "field" } },
2763
+ "visibility": "private"
2764
+ }
2765
+ ],
2766
+ "param_witnesses": {
2767
+ "contract_address": [{ "start": 0, "end": 1 }],
2768
+ "nonce": [{ "start": 1, "end": 2 }],
2769
+ "serialized_note": [{ "start": 3, "end": 8 }],
2770
+ "storage_slot": [{ "start": 2, "end": 3 }]
2771
+ },
2772
+ "return_type": {
2773
+ "abi_type": { "kind": "array", "length": 4, "type": { "kind": "field" } },
2774
+ "visibility": "public"
2775
+ },
2776
+ "return_witnesses": [8, 9, 10, 11]
2777
+ },
2778
+ "bytecode": "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",
2779
+ "debug_symbols": "7d3dzuO6lebxe9nHwUBcn1y5lcEcNGZ6gAYa3YPpnAW591aA2K6NKGXXG73SXyKPUqjY5UWu7Uck7Z/859/+/T//97/86d/+8z/+67c//vm35X80/+2P//PPv/3X//uX//jrX/zXn/7l///ptz8uf/jtX//j/6z/+5c//PZ//+3f//W3P7Yef/nD3z1OepT/7bHSc6nn43PZeHjLfDx4ef3Tuvzlf/3hr6UEp5TklNI5pRSmFFk4pTROKcIpRTmlGKcUTtoKJ22Fk7bCSVvhpK1y0lY5aauctFVO2ionbZWTtspJW+WkrXLSVjlpa5y0NU7aGidtjZO2xklb46StcdLWOGlrnLQ1Tto6J22dk7bOSVvnpK1z0tY5aeuctHVO2jonbZ2TtsFJ2+CkbXDSNjhpG5y0DU7aBidtg5O2wUnb4KRtctI2OWmbnLRNTtomJ22Tk7bJSdvkpG1y0jY5ads5ads5ads5ads5ads5ads5ads5ads5ads5ads5aVuctC1O2hYnbYuTtsVJ2+KkbXHStjhpW5y0LU7atoUTt23h5G1bOIHbFk7itoUTuW0BGYcFhBwWkHJYQMxhAeVuA+VuA+VuA+VuA+VuA+UuyZaRcBlJl5F4GciXNRAwayBh1kDErIGMWQMhswZSZg3EzBrImTUQNGsgadZA1KyBrFkDYbMG0mYNxM0ayJs1EDhrIHHWQOSsgcxZA6GzBlJnDcTOGsidNRA8ayB51kD0rIHsWQPhswbSZw3EzxrInzUQQGsggdZABK2BDFoDIbQGUmgNxNAayKE1EERrIInWQBStgSxaA2G0BtJoDcTRGsijNRBIayCR1kAkrYFMWgOhtAZSaQ3E0hrIpTUQTGsgmdZANK2BbFoD4bQG0mkNxNMayKc1EFBrIKHWQEStgYxaAyG1BlJqDcTUGsipNRBUayCp1kBUrYGsWgNhtQbSag3E1RrIqwnIqwnIqwnIqwnIq8nCyV0BeTUBeTUBeTUBeTUBeTUBeTUBeTUBeTUBeTUBeTUBeTUBeTUBeTUBeTUh/R4a6QfRUL+IBspd0m+ikX4UjfSraKSfRSP9Lhrph9FAXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1AXk1BXk1BXk1BXk1BXk0XTu4qyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKspyKsZyKsZyKsZyKsZyKvZwsldA3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1A3k1B3k1B3k1B3k1B3k1Xzi56yCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCv5iCvFiCvFiCvFiCvFiCvFgsndwPk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1QLk1RLk1RLk1RLk1RLk1XLh5G6CvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFqCvFoHebUO8mod5NU6yKv1hZO7HeTVOsirdZBX6yCv1kFerYO8Wgd5tQ7yah3k1TrIq3WQV+sgr9ZBXq2DvFoHebUO8mod5NU6yKt1kFfrIK/WQV6tg7xaB3m1DvJqHeTVOsirdZBX6yCv1kFerYO8Wgd5tQ7yah3k1TrIq3WQV+sgr9ZBXq2DvFoHebUO8mod5NU6yKt1kFfrIK/WQV6tg7xaB3m1DvJqHeTVOsirdZBX6yCv1kFerYO8Wgd5tQ7yah3k1TrIq3WQV+sgr9ZBXq2DvFoHebUO8mod5NU6yKt1kFfrIK/WQV6tg7xaB3m1DvJqHeTVOsirdZBX6yCv1kFerYO8Wgd5tQ7yah3k1TrIq3WQV+sgr9ZBXq2DvFoHebUO8mod5NU6yKt1kFfrIK/WQV6tg7xaB3m1Anm1Anm1Anm1Anm1Wji5WyCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCvViCv1hYQWFuL4STvWgwnetdiONm7FsMJ37UYTvquxXDidy2Gk79rMZwAXoshJTCIrq3FkBIYhNfWYkgJDOJrazGkBAYBtrUYUgKDCNtaDCmBQYhtLYaUwCDGthZDSmAQZFuLISUwiLKtxZASGITZ1mJICQzibGsxpAQGgba1GFICg0jbWgwpgUGobS2GlMAg1rYWQ0pgEGxbiyElMIi2rcWQEhiE29ZiSAkM4m1rMaQEBgG3tRhSAoOI21oMKYFByG0thpTAIOa2FkNKYBB0W4shJTCIuq3FkBIYhN3WYkgJDOJuazGkBAaBt7UYUgKDyNtaDCmBQehtLYaUwCD2thZDSmAQfFuLISUwiL6txZAS+J/Fb6nyKsbinywmScV0UjEFKuafBXD7FtNIxQipGCUVY6RinFQMKYE7KYE7KYE7KYGLlMBFSuAiJXCRErhICVykBC5SAhcpgYuUwAVK4LaAErgtoARuCyiB2wJK4PWzZFIxoARuCyiB2wJK4LaAErgtpARupARupARupARupARupARupARupARupARupARupAQWUgILKYGFlMBCSmAhJbCQElhICSykBBZSAgspgZWUwEpKYCUlsJISWEkJrKQEVlICKymBlZTASkpgIyWwkRLYSAlspAQ2UgIbKYGNlMBGSmAjJbCREthJCeykBHZSAjspgZ2UwE5KYCclsJMS2EkJ7KQEDlICBymBg5TAQUrgICVwkBI4SAkcpAQOUgIHKYGTlMBJSuAkJXCSEjhJCZykBCaZuEYycY1k4hrJxDWSiWskE9dIJq6RTFwjmbhGMnGNZOIaycQ1kolrJBPXSCaukUxcI5m4RjJxjWTiGsnENZKJayQT10gmrpFMnJBMnJBMnJBMnJBMnCygBBaSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiROSiVOSiVOSiVOSiVOSidMFlMBKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFKMnFGMnFGMnFGMnFGMnG2gBLYSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSCbOSSbOSSbOSSbOSSbOF1ACO8nEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEOcnEBcnEBcnEBcnEBcnExQJK4CCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCCZuCSZuCSZuCSZuCSZuFxACZwkE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE5ckE9dJJq6TTFwnmbhOMnF9ASVwJ5m4TjJxnWTiOsnEdZKJ6yQT10kmrpNMXCeZuE4ycZ1k4jrJxHWSieskE9dJJq6TTFwnmbhOMnGdZOI6ycR1konrJBPXSSauk0xcJ5m4TjJxnWTiOsnEdZKJ6yQT10kmrpNMXCeZuE4ycZ1k4jrJxHWSieskE9dJJq6TTFwnmbhOMnGdZOI6ycR1konrJBPXSSauk0xcJ5m4TjJxnWTiOsnEdZKJ6yQT10kmrpNMXCeZuE4ycZ1k4jrJxHWSieskE9dJJq6TTFwnmbhOMnGdZOI6ycR1konrJBPXSSauk0xcJ5m4TjJxnWTiOsnEdZKJ6yQT10kmrpNMXCeZuE4ycZ1k4jrJxHWSieskE9dJJq6TTFwnmbhOMnGdZOI6ycR1konrJBPXSSauSCauSCauSCauSCauFlACF8nEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcnEFcjErX/HSeD17zgJvP4dJ4HXv+Mk8Pp3nARe/46TwOvfcRJ4/TtOAq9/x0ng9e9ICQwycWsxpAQGmbi1GFICg0zcWgwpgUEmbi2GlMAgE7cWQ0pgkIlbiyElMMjErcWQEhhk4tZiSAkMMnFrMaQEBpm4tRhSAoNM3FoMKYFBJm4thpTAIBO3FkNKYJCJW4shJTDIxK3FkBIYZOLWYkgJDDJxazGkBAaZuLUYUgKDTNxaDCmBQSZuLYaUwCATtxZDSmCQiVuLISUwyMStxZASGGTi1mJICQwycWsxpAQGmbi1GFICg0zcWgwpgUEmbi2GlMAgE7cWQ0pgkIlbiyElMMjErcWQEhhk4tZiSAkMMnFrMaQEBpm4tRhSAoNM3FoMKYFBJm4thpTAIBO3FkNKYJCJW4shJTDIxK3FkBIYZOLWYkgJDDJxazGkBAaZuLUYUgKDTNxaDCmBQSZuLYaUwCATtxYDSuBGMnGNZOIaycQ1kolrCyiBG8nENZKJayQT10gmrpFMXCOZuEYycY1k4hrJxDWSiWskE9dIJq6RTFwjmbhGMnGNZOIaycQ1kolrJBPXSCaukUxc2zZxJv3xGiZVvyvp8cT86hP7V59YX3zituEylf54onbZfGL76hNl+4n1LNXK3jTa1lX449HrGvjV5ter6CGvYju8yhKvV2nLj6+y8eBwezw4SrdKcl5JwSspeSV1XkmFK8kWXkmNV5LwSlJeSbz0Nl56Gy+9jZfexktv46W389LbeentvPR2Xno7L72dl97OS2/npbfz0tt56R289A5eegcvvYOX3sFL7+Cld/DSO47OpbY8Klo/uXw+NPqjoFxoBR39bmvPM9f1HHirIKMV5LSCglZQ0gr63hXS41XqiFfpuySGx+tV2s8nV8UekbH+0X/4p/NZUwPWJMCaFFiTAWtyYE0BrCmBNXVgTcWrqYA5XsAcL2COFzDHC5jjBczxAuZ4AXO8gDlevByXhZfjsvByXBZejsvCy3FZeDkuCy/HZeHluCy8HJeFl+OyAHO8AXO8AXO8AXO8AXO8AXO8AXO8AXO8AXO8AXO8AXNcgDkuwBwXYI4LMMcFmOMCzHEB5rgAc1yAOS7AHFdgjiswxxWY4wrMcQXmuAJzXIE5rsAcV2COKzDHDZjjBsxxA+a4AXPcgDluwBw3YI4bMMcNmOMGzHEH5rgDc9yBOe7AHHdgjjswxx2Y4w7McQfmuANzPIA5HsAcD2COBzDHA5jjAczxAOZ4AHM8gDkewBxPYI4nMMcTmOMJzPEE5ngCczyBOZ7AHE9gjicwx4GeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4CeU4GeU4GeU4GeU4GeUxdejivQcyrQcyrQcyrQcyrQcyrQcyrQcyrQcyrQcyrQcyrQcyrQcyrQcyrQcyrQcyrQcyrQc+oJnjPrWVNfNmtSYE0GrMmBNQWwpgTW1IE1Fa+mEzzn+5oasCZgjiswxxWY4wrMcQXmuAJzXIE5rsAcN2COGzDHDZjjBsxxA+a4AXPcgDluwBw3YI4bMMcdmOMOzHEH5rgDc9yBOe7AHHdgjjswxx2Y4w7M8QDmeABzPIA5HsAcD2COBzDHA5jjAczxAOZ4AHM8gTmewBxPYI4nMMcTmOMJzPEE5ngCczyBOZ7AHO/AHO/AHO/AHO/AHO/AHO/AHO/AHO/AHO/AHO/AHC9gjhcwxwuY4wXM8QLmeAFzvIA5XsAcL2COFy/HbeHluC28HLeFl+O28HLcFl6O28LLcVt4OW4LL8dt4eW4LcAcb8Acb8Acb8Acb8Acb8Acb8Acb8Acb8Acb8Acb8AcF2COCzDHgZ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TgJ7TjvecuvijJhXdrMmANTmwpgDWlMCaOrCm4tV0vOf8sSat39X0949uS3sU0hb7sZCtB6+fijwevL55f3zwY7RtqNHKUKPVoUZrQ43WhxptDDXaHGq0fajR1kij7UOtpfpQa6k+1FqqD7WWOt6unzraodZSfai1VB9qLdWHWkv1odZSNdRaqoZaS9VQa6kaai11/P0jTh3tUGupGmotVUOtpWqotVSNtJbyZaS1lC8jraV8GWkt5ctIaylfbKjRjrSW8mWktZQvI62lfBlpLeXLUGupNtRaqg21lmpDraXaUGup4++j9JPRPmoirXgeNR2f5p7PmnyzpuPvxfNBTce/e1KeNaVu1mTAmhxYUwBrSmBNh69jrS2PmtZE36ypeDUdf4+ZD2pqwJoEWJMCazJgTX5mTb9b/x2wWjz+7jWnjjaHGm0farQ10mhtGWq0bajRylCj1aFGa0ONdqi1lA21lrKh1lI21FrKhlpL+VBrKR9qLeVDraV8qLXU8XdEO3W0Q62lfKi1lA+1lvKh1lI+1FoqhlpLxVBrqRhqLRVDraWOvyvhqaMdai0VQ62lYqi1VAy1loqh1lI51Foqh1pL5VBrqRxqLXX8HStPHe1Qa6kcai2VQ62lcqi1VJ67ltr87mVfgDU1YE0CrEmBNRmwJgfWFMCaElhTB9YEzPEC5vjxd56zxZ41LbFZkwBrUmBNBqzJgTUFsKYE1tSBNRWupjj+flof1MTL8Vh4OR4LL8dj4eV4LLwcj4WX47HwcjwWXo7HAszxBszxBszxBszxBszxBszxBszxBszxBszxBszxBsxxAea4AHNcgDkuwBwXYI4ffx8li/6sqW/XFMCaElhTB9ZUvJpOuI/S+5oasCY5sSZf5Hc1ffcn8nHCHZrOHK0NNVofarQx1GhzqNH2oUZbI43WlqFG24Ya7VBrKRtqLXXCXaXOHO1Qaykbai1lQ62lbKi1lA21lvKh1lI+1FrKh1pL+VBrqRPuKnXmaIdaS/lQaykfai3lQ62lfKi1VAy1loqh1lIx1FoqhlpLnXBXqTNHO9RaKoZaS8VQa6kYai0VQ62lcqi1VA61lsqh1lI51FrqhLtK/ePRPmoirXgeNR2e5i7Pew+4bNZ0/H1tPqjp8HeP6/M3mV03v+95/P1aPqjJgTUFsKYE1nT4OtZTnzVV26ypeDUdf7+WD2pqwJoEWJMCazJgTX5iTbHksavF4+8Ec+poc6jR9qFGWwONNpdlqNG2oUYrQ41WhxqtDTXakdZSuYy0lsplpLVULiOtpXIZai3VhlpLtaHWUm2otVQbai11/N3FTh3tUGupNtRaqg21lmpDraXaUGspGWotJUOtpWSotZQMtZY6/g5/p452qLWUDLWWkqHWUjLUWkqGWkvpUGspHWotpUOtpXSotdTxd6w8dbRDraV0qLWUDrWW0qHWUnrqWqptffcybQHW1IA1CbAmBdZkwJocWFMAa0pgTR1YEzDHHZjjx995ziMfNXnUZk0CrEmBNRmwJgfWFMCaElhTB9ZUvJqOv5/WBzUBczyAOR7AHA9gjgcwxwOY4wHM8QDmeABzPIE5nsAcT2COJzDHE5jjCczxBOZ4AnM8gTmewBzvwBzvwBzvwBzvwBzvwBzvwBzvwBzvwBzvwBzvwBwvYI4XMMcLmOMFzPHj76MU+awpyjdrcmBNAawpgTV1YE2Fq6kffxeeD2r63hx/vIoc8ip6yKvYIa/ih7xKHPIqecir9ENepY54lW++x8TjVQ5577dD3vvtkPd+O+S93w5577dD3vvtkPd+O+S93w5578sh73055L0vh7z35ZD3vhzy3pdD3vtyyHtfDnnvyyHvfTnkvb+L4Wstn6/ib3cIr4ri+dCqZ0GNVpDQClJaQXZwQab9+WBry+92mb/26McI/PIjiMuPIC8/gn75EdTVR2DL5UfQLj8CufwI9PIjuPw12S5/TbbLX5Pt8tdku/w12S5/TfbvvSY/XqUd8ipyyKvoIa+yxzVC9Lk5FK+f/5eV/WH+1zOU50P7cyO5C1nbtaCgFZS0gvrBBWm9fjmzur1Jp6by+KfXP+ZmOtXVR7CLgjt3BO3yI5DLj0DhI/DXCHx7BHb5EfjlRxCXH0HCR/C8Iq9/rM0R0K/J70dAvya/HUHSr8nvR0C/Jr8fATxN7XW/NGu2OQJ4mn4wAvg7OaweIwjf/K+ow9/JH4wA/k7+YATw1fUHI4Cvrj8YgV1+BPDrwQcjgF8PfhxB9M0RwFfXUe0xglza5gjgq+sPRkC/Jr8dQdGvye9HQL8mvx8B/Zr8fgT0a/IPI9j+ZG0XV3nuCOjX5PcjOP6a7PYaQX83gqXSH0Noi/6wrlj6cwx5gzH0G4yhLj+GWpYbjKHdYAxygzHoDcZgNxiD32AM179O13L963Qt179O13KD63S7wXW63eA63W5wnW43uE7vIu3PHsMNrtPtBtfpdoPrdLvBdbrd4DotN7hOyw2u03KD67Tc4Dq9y10x5IVW1OTnY3B9HAF72s8f+tkA/OoDiKsPIK8+gH71AdTFB7DLfVNOHUC7+gDk6gPQqw/g6ldivfqVWK9+JdarX4n16lfiXW75ovl6tPafV5X6GGzWHgPY5Y4vpw6gXX0AcvUB6NUHYFcfgF99AHH1AeTVB9CvPoCrX4n96ldiv/qV2K9+JfarX4l3uafOqQPY40psz9exdb/y86rWD+n+9tj66///zw8grj6AvPoA+tUHUBcfwC53BDp1AO3qA5CrD0CvPgC7+gCufiWOq1+J4+pX4rj6lTiufiXOq1+J83uvxI9XkUNeRQ95FTvkVfyQV4lDXiUPeZV+yKvUEa/Sl0Ne5ZD3fj/kvd8Pee/3Q977/ZD3fj/kvd8Pee/3Q977/ZD3/i43P4nn93ItSn++Tnh/i/fa5XYme9ckwJoUWJMdXVOrZ02iv78J6689+jECv/wI4vIjyMuPoKNHIKr6t0eLLf7m0fG8O2rU619+3re/drnTyDUGq8uyjDTYNtJg2deuXxusLvWQVdqa/t3Sbx0u+0K3+3DvlMgq7fFolWxbw71TJr8fbrtTKn8w3Dvl8gfDlTsNN/rjVF3T33zN5icPfsyNzrn5h3Nzqyv6znNzq8v/znPD3kF/49ys/8TzN21q2Zwb9t783Lm51Rpz57m51YJ037mRW61ef2luSu05N/WGK37wHYN1Lm+1ND55Loddd3/DXA67Tv+GubQ5l5/MpS/PC4/r5oVn2E3A3hM57o5h54kcd3ux80SOuxf5tYmMRx0tZNnj4jTuRufcide5izpp4ueW66SJn/uz/Se+2fNfbrFsXFl17uTOmHWbs37CrM8N4hmzPneT+8+62PN6KvHuRhjPr4p1eT309VUxnbtUeIPm7hfeoLlLZjfI5m763Ab94o/LqjwPBFU2TMLa0blNv1tH5/7/bh2dZwt366jNjt6so/NM5Fod9VdHfbuj87zlbh2dBzR36+g80blbR+cR0LU6+jwxWv9YWx31eWZ0t47OM6O7dXSeGd2to/PM6G4dnbuXS3XU2qMx6x9ts6Nz93KzjsZcGV2qo2H1rMM3UzfmyuhuHZ0ro7t11GZHb9bR+Wna3To6P027W0fnfvRuHZ370ct29Id/+seOzk/TrtXRao9/Ope21dGcn6bdraPzzOhuHZ1nRnfr6DwzultHbXb0Zh2dZ0aX7ejW70atHZ1nRnfr6DwzultH55nR2R19Tt7a0f6uo5/cQSrnqdHtetrnudH9ejpPju7X03l2dL+eztOj+/XUZk9v19N5gnS/ns4zpPv1dJ4i3a+n8xzpfj2d50i362nNc6T79XSeI92vp/Mc6X49nedI9+upzZ7erqfzHOl+PZ3nSPfr6TxHul9P5znS/Xo6z5Hu1tO2zHOk+/V0niPdr6fzHOl+PZ3nSPfrqc2e3q6n8xzpfj2d50jf0NPXvKv4zx/s+iBNnu8q/qih8xDpZg2dJ0g3a+g8PrpXQ9s8O7pZQ+fB0c0aOk+NbtbQeWR0s4babOi9GjoPi27W0HlSdLOGzpOimzV0nhTdrKHzpOheDZV5UnSzhs6Too8aGpLPhvY3n3KmPh6btUuP5uEPv0fzPIffI5s9wvdonrrwezQPUvg9mmcj/B7N4w5+j+YJBr5HOg8l+D2a5wz8Hs1zBn6P5jkDv0c2e4Tv0Txn4PdonjPwezTwOUM9HiyLv/mMr9rjsfXX//+fn/aBjw7OnPaBTwNOnHYbeIN/5rQPvGc/c9oH3oafOe0D76zPnHab037GtA+8/z1z2gfe0p457XOXesq0z13qKdM+d6lnTLvPXeop0z53qadM+9ylnjLt83Orjz4T+cZb2EV/1Fzd3oxw3Wc9i7ZYfvfoR0fnp1x36+j87u3dOjq/qXu3js7v9d6sozG/BXy3js7vDF+ro5avjrbNjs5vGN+to/P7yHfrqM2O3qyj88zobh2dZ0Z36+g8M7psR3N79zLPjO7W0XlmdLOO5jwzulZH63H3u+aLbnZ0nhldq6M9Xh21zY7OM6O7dXSeGV2qo27POtxqs6M2O3qzjs4zo7t1dJ4Z3a2j88zoWh3V18rIt/ej88zobh2dZ0Y362ifZ0Z36+g8M7pbR+eZ0d06Os+MrtvRzd1Lt9nRm3V0nhndraPzzOhaHe3Ls6M/FP1jR+eZ0bU6+iLBXpufePd5ZnS3js4zo5t1tOaZ0aU6Gsvzn47mmx2dZ0Z36+g8M7pbR+eZ0d06arOjN+vorfajSz1OVLS13xXyGO6tNmvvh3urncy74cpyq2X+++Heag0s7fFolWxvMvODW7XJcqsF5f7Tc6vV2f7TY3N6fjY9t/qs6Zemx5fXxzZqW7l8q09tdp6bW603d56bWy1Od56bW61kf21ufmUz+Ul2t1stk0+ey3HX4PvP5bgL9v3nctzV/S/NZbPnsV6LZePC02xO5D4TOfCOYd+JHHh7se9EDrwX+a4PKLI/Pp/o8npor+ecD7zHOW3O597p8DmXucc6fs7nXuy3kz9wVnme46xV/+7RjybNTd4FmjR3jxdoks0m8Zs0d70XaNLcUZ/eJH81ybebNHfrF2jS3N5foEnzPIDfJJ0HCKc36XnesP6xNps0Txwu0KR54nCBJs0Thws0yWaT+E2aS/Czm2TtMdfrH22zSXMJzm+SzYXD2U0Kq2cdm7dIEpsLhws0yWaT+E2aH1VcoEnzo4oLNGl+VHGBJs190gWaNPdJpCb98E//0CSfH1Wc3qTXDzPm0jabND+quECT5onDBZo0Txwu0CSbTeI3aZ44XKBJ88SB1KS2bDZpnjhcoEnzxOECTZonDt/QpOd8rE3q75r0yf0tYp45XKJN89ThEm2a5w6XaNM8ebhEm2y26QptmqcPl2jTPH+4RJvmCcQl2jTPIC7RpnkKcYU25TyFuESb5inEJdo0TyEu0aZ5CnGJNtls0xXaNE8hLtGmeQpxiTbNU4hLtGmeQlyiTfMU4gpt6vMU4hJtmqcQl2jTPIW4RJvmKcQl2mSzTVdo0zyFuESb5inEJdo0TyE+a9NrKlX85w92fXxz39Pe/Lsf9WgeQfB7NM8f8D2qefjA79E8eeD3aB478Hs0zxz4PbLZI3yP5mkDv0fzqIHfo3nOwO/RPGfg92ieM9B7pMs8Z+D3aJ4z8Hs07jlDSD571N/91rw+Hpu1y7SPe3Rw6rTbnPYzpn3cDf6p0z7unv3UaR93G37qtI+7sz512sfdLJ857W3c/e+p0z7ulvbUaZ+71FOmfe5ST5l2m9N+xrTPXeop0z53qadM+9ylnjHtMr/X99vZv/T9nL1msXXTf5X5xb4LNMlmk/hNml/tu0CT5nf7LtCk+eW+CzRpfrvv9CZZvprUNps0v97Hb5LO7/ddoEnzC34XaNI8cbhAk+aJwwWaZLNJoCbl5hJc54nDBZo0Txwu0KR54nB6k16/T+yLbjZpnjic3qQerybZZpPmiQO/STZPHM5uktuzDrfabNI8cbhAk+aJwwWaNE8cLtAkm006u0n6Wjj45j7J5onDBZo0Txwu0KR54nCBJs0Thws0aZ448Jvk88QB1aTNJbjPE4cLNGmeOFygSfPE4fQm9eXZpJLNJtls0tlNeikyr80P/XyeOFygSfPE4QJNmicOZzcpluc/Hc03mzRPHC7QpHniwG9SzBOHCzRpnjhcoEl2oyZJ5qNs6cvv5v0x3DvtOD4Y7p3W7h8M906r4A+Ge6v15CLPgF36u8z85BY1cauV3O7Tk7daQ+0/Pbdavew/Pbf6pOKXpqfZ8/YJLbZyOW/1AcHOc2Nzbv7h3NzqOHznubnVKfQvzc2v7A+zP7aHXV4P7fWcxludE583jeOuvHedxnFX6HtOYx93Jf+NZ2cqzy+CrCd+f9k4O+vjbhHOnfdx9x7nzvu4+5pz593mvJ8y7+Pux75z3v01774973Ovd868z83hOfM+d5PnzPvcfn7HvD93q+sfN79AX3O/es68z/3qOfM+96vnzPvcr54z73Md+Q3zbu0xfesfN+/8VXMdeca82zKvq98w72H1+KdjE2LaMq+r58z7vK6eM+825/2UeZ/nwOfM+zwHPmfe5/r9nHmf6/dvnvcf/ukf532eA3/HvL/u+Z7L1u+QWJvnwOfM+9yvnjPvc796zrzP/eo5825z3k+Z97lf/eZ5b8vmvM/96jnzPver58z73K9+Nu/PIa7z3t/N+wf6dp2HOfPnzLzMPetZMz93rWfN/Ny3njXzc+d61szbnPmTZn7uXs+a+bl/PWvm5w72rJmfe9izZn7uYU+aeZ172LNmfu5hz5r5uYc9a+bnHvasmbc58yfN/NzDnjXzcw971szPPexZMz/3sGfN/NzDnjTzNvewZ8383MOeNfNzD3vWzM897Fkzb3PmT5r5uYc9a+YH3sO+ZkfFf/5g18cXVD3tzb/70bQPvIE9c9oH3r2eOe0Db11PnHYfeN965rQPvGk9c9oH3rGeOe0Db1fPnHab037GtA+8UT1z2ucu9ZRpn7vUU6Z97lJPmfa5Sz1j2mPuUk+Zdvi63aQ/pz3e3UCg2mO85a95fP5q4foPjDRY+Bp138HCV4b7Dha+Htt3sPBV0L6Dha89dh1swq/4+w4Wfhq872DhZ7D7DnakFVTaSIMdaQWVI62gcqQVVI60gsqRVlB9pBUU/afv9x3sSCso+o+87ztYG2mwI62g6L8hvu9gR1pB0X8te9/BjrSCov8u9L6DHWkFRf8F5H0HO9IKqmykwY60gqqRVlD0n6zed7AjraBqoBWULwOtoJz+s9v7DnagFZTTf2B638HaSIMdaAXl9N8v3newA62gnP5LvfsOdqQVFP03afcd7EgrKPqvr+472JFWUPTfGd13sCOtoOi/qLnvYEdaQdF/O3LfwY60gqL/QuK+gx1pBUX/HcB9BzvSCor+a3f7DnakFRT9N932HexIKyj6L5ftO9iRVlD03+fad7AjraDov0K172BHWkHRf2tp38GOtIKi/6LQvoMdaQVF/92cfQc70gqK/usw+w52pBUU/TdQ9h3sSCso+i997DvYkVZQ9N+z2HewI62g6L/dsO9gR1pB0X+nYN/BjrSCot+Tf9/BjrSCot9/ft/BjrSCot9rfd/BjrSCot9XfN/BjrSCot9De9/BjrSCipFWUCPdk9xHuie5j3RPch/pnuQ+0j3JfaR7kvtI9yT3ke5J7iPdk9xHuie5j3RPch/pnuQ+0j3JfaR7kvtI9yT3ke5J7iPdk9xHuie5j3RPch/pnuQ+0j3JfaR7kvtI9yT3ke5J7iPdk9xHuie5j3RPch/pnuQ+0j3JnX5Pctd4DDZ8efPoT35e2Ok3Jv+GEdtwI4YvqL5hxPBV1TeMGL60+oYRw9dX3zBi+CJr9xEH/d7l3zBi+HLrG0Y82por6Lcy/4YR23AjHm3NFfQ7m3/DiEdbcwX9HuffMOLh1lz0u51/w4iHW3PR73Kiqs9DvcXfPFoXeTxal778vJAm9pwdif7zB2vF43BRq787XGz2nJBm8fs+PeYdniZ3nXf6vV9uO+/wZL3tvMP31Ledd/jO/rbzbnPev2HeLV/z3jbnHX7Kcdt5h5+13Hbe4Sc+t533uV89Z97nfvWUeaffaev6856b60j6Tb9uO+9zv3rOvM/96nfMe7XHP+2Lbs67zXn/hnnv8Zp325z3uV89Z97nfvUb5t1Nn/NutTnvc796zrzP/eo58z73q6fMO/2+hhedd31dV31z/U6/xeJt533uV8+Z97lfPWfebc77KfM+96vnzPvcr373vG+vI+d+9Zx5n/vVc+Z97le/Y9778pz3kq15p99F9qLz/oIHXpufe9BvaHvbeZ/71XPmfe5Xv2HeY3n+09F8c95tzvsp8z73q+fM+9yvnjPvc796yrzvcg9jeW7PTH7Ynh0jVna5MfG5I5DLj0AvPwK7/Aj88iMI+Ajeftt8l9vynjuCfvkR1NVHUPRr8vsR0K/J70dAvya//UZ60a/J70dAvya/HwH9mvz2+/VFvya//cZ00a/J70cAvya//1Zjwa/Jb0eQC/ya/MEI4NfkD0YAvya//TZMLvBr8gcjgF+TPxgB/Jr8wQjg1+QPRgC/Jn8wAvo1+d03ZnKhX5PfjqDRr8nvR0C/Jr/7/k82+jX53TcLstGvye9HQL8mvx8B/Jr89nO0bPBr8gcjgF+TPxgB/Jr8wQjg1+T3I5A9rgeLP0fQWnszApfHNWr94+Y1ShRYkwFrcmBNAawpD6/pedKs7ts1dWBNxatJF2BNDViTAGs6PsftlQW+uXJVA9bkwJoCWFMCa+rAmopXky3AmhqwJgHWdHyOqz9r0tisyYA1ObCmANaUwJo6sKbi1eQLsKYGrEmANQFz3IE57sAcd2COOzDHHZjjDszxAOZ4AHM8gDkewBwPYI4HMMcDmOMBzPEA5ngAczyBOZ7AHE9gjicwxxOY4wnM8QTmeAJzPIE53g/PJ/XnZ2W6/c3CLsCaFFiTAWtyYE2H55N2e9bUt2tKYE0dWFPxaqoFWFMD1nR8jucrC2rTPpQCazJgTQ6sKYA1JbCmDqypcDX1ZQHW1IA1nZDj8qwpdbMmBdZkwJocWFMAa0pgTR1YU/FqaguwpgasCZjjDZjjDZjjDZjjDZjjDZjjDZjjDZjjAsxxAea4AHNcgDkuwBwXYI4LMMcFmOMCzHEB5rgCc1yBOa7AHFdgjiswxxWY4wrMcQXm+D7+7nnzibWmdz+TsDxvH95eFUV/FtRoBQmtIKUVZLSC/OiCnr8q0qxvFRS0gpJWUKcVVLCCfKEVdHhSy+OxTWqrIKEVpLSCjFaQ0woKWkFJK6jTCipYQbHQCqIlddCSOmhJHbSkDlpSBy2pg5bUQUvqoCV10pI6aUmdtKROWlInLamTltRJS+qkJXXSkjppSd1pSd1pSd1pSd1pSd1pSd1pSd1pSf0PyFvW357l7fWL370ez/oHKO3ds9qXniVfepZ+6Vn2pWf5l561+Z+C16NfsWw+K7/0rP6lZ9UXnlXb0OXts9qXniVfetbmfxvRHu/BkLb1LPvSs/xLz4ovPSu/9Kz+pWfVV561/eX5eH6IHn3zWe1Lz5IvPUu/9Cz70rP8S8+KLz1r+7+N/nyn1NY7ZfvLxG+fVV951vYXct8+q33pWfKlZ+mvPesvf/lv"
1580
2780
  }
1581
2781
  ],
1582
2782
  "events": [],
1583
2783
  "file_map": {
1584
- "16": {
2784
+ "18": {
1585
2785
  "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",
1586
2786
  "path": "std/field.nr"
1587
2787
  },
1588
- "28": {
2788
+ "30": {
1589
2789
  "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",
1590
2790
  "path": "std/option.nr"
1591
2791
  },
1592
- "40": {
2792
+ "42": {
1593
2793
  "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",
1594
2794
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/log.nr"
1595
2795
  },
1596
- "41": {
1597
- "source": "use dep::protocol_types::{\n abis::{\n block_header::BlockHeader,\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};\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 block_header: BlockHeader,\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 block_header: BlockHeader,\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",
2796
+ "43": {
2797
+ "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",
1598
2798
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/abi.nr"
1599
2799
  },
1600
- "42": {
1601
- "source": "use dep::std::option::Option;\nuse dep::protocol_types::{\n address::AztecAddress,\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::singleton::compute_singleton_initialization_nullifier;\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 compute_initialization_nullifier: fn (Field, Option<AztecAddress>, Option<&mut PrivateContext>) -> Field,\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 ImmutableSingleton {\n context: context.private,\n storage_slot,\n note_interface,\n compute_initialization_nullifier: compute_singleton_initialization_nullifier,\n }\n }\n // docs:end:new\n\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self, owner: Option<AztecAddress>) -> bool {\n let compute_initialization_nullifier = self.compute_initialization_nullifier;\n let nullifier = compute_initialization_nullifier(self.storage_slot, owner, Option::none());\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 owner: Option<AztecAddress>,\n broadcast: bool,\n ) {\n let context = self.context.unwrap();\n\n // Nullify the storage slot.\n let compute_initialization_nullifier = self.compute_initialization_nullifier;\n let nullifier = compute_initialization_nullifier(self.storage_slot, owner, self.context);\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",
2800
+ "44": {
2801
+ "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",
1602
2802
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/state_vars/immutable_singleton.nr"
1603
2803
  },
1604
- "43": {
2804
+ "45": {
1605
2805
  "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",
1606
2806
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/state_vars/public_state.nr"
1607
2807
  },
1608
- "44": {
2808
+ "46": {
1609
2809
  "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",
1610
2810
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/state_vars/map.nr"
1611
2811
  },
1612
- "45": {
1613
- "source": "use dep::std::option::Option;\n\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, PublicContext, Context};\nuse crate::note::{\n lifecycle::{create_note, destroy_note},\n note_getter::{get_note, view_notes},\n note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions,\n};\nuse crate::oracle::{\n nullifier_key::get_nullifier_secret_key,\n notes::check_nullifier_exists,\n};\n\npub fn compute_singleton_initialization_nullifier(\n storage_slot: Field,\n owner: Option<AztecAddress>,\n context: Option<&mut PrivateContext>\n) -> Field {\n if owner.is_some() {\n let secret = if context.is_some() {\n context.unwrap_unchecked().request_nullifier_secret_key(owner.unwrap_unchecked())\n } else {\n get_nullifier_secret_key(owner.unwrap_unchecked())\n };\n pedersen_hash(\n [storage_slot, secret.low, secret.high],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER\n )\n } else {\n pedersen_hash([storage_slot], GENERATOR_INDEX__INITIALIZATION_NULLIFIER)\n }\n}\n\n// docs:start:struct\nstruct Singleton<Note, N> {\n context: Option<&mut PrivateContext>,\n storage_slot: Field,\n note_interface: NoteInterface<Note, N>,\n compute_initialization_nullifier: fn (Field, Option<AztecAddress>, Option<&mut PrivateContext>) -> Field,\n}\n// docs:end:struct\n\nimpl<Note, N> Singleton<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 Singleton {\n context: context.private,\n storage_slot,\n note_interface,\n compute_initialization_nullifier: compute_singleton_initialization_nullifier,\n }\n }\n // docs:end:new\n\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self, owner: Option<AztecAddress>) -> bool {\n let compute_initialization_nullifier = self.compute_initialization_nullifier;\n let nullifier = compute_initialization_nullifier(self.storage_slot, owner, Option::none());\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 owner: Option<AztecAddress>,\n broadcast: bool,\n ) {\n let context = self.context.unwrap();\n\n // Nullify the storage slot.\n let compute_initialization_nullifier = self.compute_initialization_nullifier;\n let nullifier = compute_initialization_nullifier(self.storage_slot, owner, self.context);\n context.push_new_nullifier(nullifier, 0);\n\n create_note(context, self.storage_slot, note, self.note_interface, broadcast);\n }\n // docs:end:initialize\n\n // docs:start:replace\n pub fn replace(\n self,\n new_note: &mut Note,\n broadcast: bool,\n ) {\n let context = self.context.unwrap();\n let prev_note = get_note(context, self.storage_slot, self.note_interface);\n\n // Nullify previous note.\n destroy_note(context, prev_note, self.note_interface);\n\n // Add replacement note.\n create_note(context, self.storage_slot, new_note, self.note_interface, broadcast);\n }\n // docs:end:replace\n\n // docs:start:get_note\n pub fn get_note(self, broadcast: bool) -> Note {\n let context = self.context.unwrap();\n let mut note = get_note(context, self.storage_slot, self.note_interface);\n\n // Nullify current note to make sure it's reading the latest note.\n destroy_note(context, note, self.note_interface);\n\n // Add the same note again.\n // Because a nonce is added to every note in the kernel, its nullifier will be different.\n create_note(context, self.storage_slot, &mut note, self.note_interface, broadcast);\n\n note\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",
1614
- "path": "/usr/src/yarn-project/aztec-nr/aztec/src/state_vars/singleton.nr"
1615
- },
1616
- "51": {
2812
+ "53": {
1617
2813
  "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",
1618
2814
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/types/type_serialization/bool_serialization.nr"
1619
2815
  },
1620
- "53": {
2816
+ "55": {
1621
2817
  "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",
1622
2818
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/types/vec.nr"
1623
2819
  },
1624
- "66": {
2820
+ "68": {
1625
2821
  "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",
1626
2822
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/utils.nr"
1627
2823
  },
1628
- "68": {
1629
- "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 get_block_header::get_block_header,\n nullifier_key::get_nullifier_key_pair,\n },\n types::vec::BoundedVec,\n utils::Reader,\n};\nuse dep::protocol_types::{\n abis::{\n block_header::BlockHeader,\n call_context::CallContext,\n function_data::FunctionData,\n function_selector::FunctionSelector,\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 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 hash::hash_args,\n grumpkin_point::GrumpkinPoint,\n};\nuse dep::std::{\n grumpkin_scalar::GrumpkinScalar,\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\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 block_header: BlockHeader,\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\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\n new_commitments: BoundedVec::new(SideEffect::empty()),\n new_nullifiers: BoundedVec::new(SideEffectLinkedToNoteHash::empty()),\n\n block_header: inputs.block_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 }\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 pub fn get_block_header(self, block_number: u32) -> BlockHeader {\n get_block_header(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 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 block_header: self.block_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) -> GrumpkinScalar {\n let key_pair = get_nullifier_key_pair(account);\n validate_nullifier_key_against_address(account, key_pair.public_key, key_pair.secret_key);\n // TODO: Add request to context.\n // self.context.push_nullifier_key_validation_request(public_key, secret_key);\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.block_header.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 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 block_header: BlockHeader{\n // Must match order in `private_circuit_public_inputs.hpp`\n note_hash_tree_root : reader.read(),\n nullifier_tree_root : reader.read(),\n contract_tree_root : reader.read(),\n l1_to_l2_message_tree_root : reader.read(),\n archive_root : reader.read(),\n public_data_tree_root: reader.read(),\n global_variables_hash: reader.read(),\n },\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 block_header: BlockHeader::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 block_header: BlockHeader,\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 block_header: inputs.block_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 block_header: self.inputs.block_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.block_header.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",
2824
+ "70": {
2825
+ "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",
1630
2826
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/context.nr"
1631
2827
  },
1632
- "73": {
1633
- "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_inner_note_hash,\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 let inner_note_hash = compute_inner_note_hash(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_inner_note_hash(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_inner_note_hash(note_interface, note);\n }\n assert(notify_nullified_note(nullifier, nullified_commitment) == 0);\n\n context.push_new_nullifier(nullifier, nullified_commitment)\n}\n",
2828
+ "75": {
2829
+ "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",
1634
2830
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/note/lifecycle.nr"
1635
2831
  },
1636
- "74": {
1637
- "source": "use dep::protocol_types::{\n constants::GENERATOR_INDEX__OUTER_NULLIFIER,\n hash::pedersen_hash,\n};\nuse crate::{\n context::PrivateContext,\n note::{\n note_hash::{compute_inner_hash, compute_siloed_hash, compute_unique_hash},\n note_header::NoteHeader,\n note_interface::NoteInterface,\n },\n utils::arr_copy_slice,\n};\n\npub fn 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\npub fn 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\npub fn 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",
1638
- "path": "/usr/src/yarn-project/aztec-nr/aztec/src/note/utils.nr"
1639
- },
1640
2832
  "76": {
1641
- "source": "use dep::protocol_types::{\n address::AztecAddress,\n constants::{\n GENERATOR_INDEX__UNIQUE_COMMITMENT,\n GENERATOR_INDEX__SILOED_COMMITMENT,\n },\n hash::pedersen_hash,\n};\n\npub fn 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\npub fn 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\npub fn 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",
1642
- "path": "/usr/src/yarn-project/aztec-nr/aztec/src/note/note_hash.nr"
2833
+ "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",
2834
+ "path": "/usr/src/yarn-project/aztec-nr/aztec/src/note/utils.nr"
1643
2835
  },
1644
- "79": {
1645
- "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},\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 assert(fields[select.field_index] == select.value, \"Mismatch return note field.\");\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 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, 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 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, 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 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], [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 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 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, sort_by, sort_order)\n}\n",
2836
+ "80": {
2837
+ "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",
1646
2838
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/note/note_getter.nr"
1647
2839
  },
1648
- "82": {
1649
- "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 _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 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 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 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 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",
2840
+ "83": {
2841
+ "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",
1650
2842
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/notes.nr"
1651
2843
  },
1652
- "83": {
2844
+ "84": {
1653
2845
  "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",
1654
2846
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr"
1655
2847
  },
1656
- "87": {
1657
- "source": "use dep::protocol_types::{\n address::AztecAddress,\n grumpkin_point::GrumpkinPoint,\n};\nuse dep::std::grumpkin_scalar::GrumpkinScalar;\n\nstruct KeyPair {\n public_key: GrumpkinPoint,\n secret_key: GrumpkinScalar,\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) -> KeyPair {\n let result = get_nullifier_key_pair_oracle(account);\n KeyPair {\n public_key: GrumpkinPoint { x: result[0], y: result[1] },\n secret_key: GrumpkinScalar { high: result[2], low: result[3] }\n }\n}\n\npub fn get_nullifier_key_pair(account: AztecAddress) -> KeyPair {\n get_nullifier_key_pair_internal(account)\n}\n\npub fn get_nullifier_secret_key(account: AztecAddress) -> GrumpkinScalar {\n get_nullifier_key_pair_internal(account).secret_key\n}\n",
2848
+ "89": {
2849
+ "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",
1658
2850
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/nullifier_key.nr"
1659
2851
  },
1660
- "89": {
2852
+ "91": {
1661
2853
  "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",
1662
2854
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/call_private_function.nr"
1663
2855
  },
1664
- "96": {
2856
+ "97": {
1665
2857
  "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",
1666
2858
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/storage.nr"
1667
2859
  },
1668
- "98": {
2860
+ "99": {
1669
2861
  "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",
1670
2862
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/get_public_key.nr"
1671
2863
  },
1672
- "100": {
2864
+ "101": {
1673
2865
  "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",
1674
2866
  "path": "/usr/src/yarn-project/aztec-nr/aztec/src/oracle/logs.nr"
1675
2867
  },
1676
- "101": {
1677
- "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;\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 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 = 26;\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 BLOCK_HEADER_LENGTH: Field = 7;\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\n// should change this constant as well as the offsets in private_call_stack_item.nr\nglobal PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH: Field = 189;\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 = 195;\nglobal PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH: Field = 87;\nglobal PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH: Field = 177;\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",
2868
+ "102": {
2869
+ "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",
1678
2870
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/constants.nr"
1679
2871
  },
2872
+ "103": {
2873
+ "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",
2874
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/partial_state_reference.nr"
2875
+ },
2876
+ "104": {
2877
+ "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",
2878
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/state_reference.nr"
2879
+ },
1680
2880
  "107": {
2881
+ "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",
2882
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/header.nr"
2883
+ },
2884
+ "108": {
1681
2885
  "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",
1682
2886
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/hash.nr"
1683
2887
  },
1684
- "123": {
2888
+ "125": {
1685
2889
  "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",
1686
2890
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/address.nr"
1687
2891
  },
1688
- "128": {
2892
+ "130": {
1689
2893
  "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",
1690
2894
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/contrakt/deployment_data.nr"
1691
2895
  },
1692
- "129": {
2896
+ "131": {
1693
2897
  "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",
1694
2898
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/contrakt/storage_update_request.nr"
1695
2899
  },
1696
- "130": {
2900
+ "132": {
1697
2901
  "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",
1698
2902
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/contrakt/storage_read.nr"
1699
2903
  },
1700
- "138": {
2904
+ "140": {
1701
2905
  "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",
1702
2906
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/call_stack_item.nr"
1703
2907
  },
1704
- "143": {
2908
+ "144": {
1705
2909
  "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",
1706
2910
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/side_effect.nr"
1707
2911
  },
1708
- "146": {
1709
- "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 block_header::BlockHeader,\n },\n address::AztecAddress,\n contrakt::{\n storage_read::StorageRead,\n storage_update_request::StorageUpdateRequest,\n },\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 block_header: BlockHeader,\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.block_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.block_header.serialize());\n fields.push(self.prover_address.to_field());\n fields.storage\n }\n}\n",
2912
+ "147": {
2913
+ "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",
1710
2914
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/public_circuit_public_inputs.nr"
1711
2915
  },
1712
- "148": {
1713
- "source": "use crate::{\n abis::{\n call_context::CallContext,\n block_header::BlockHeader,\n side_effect::{SideEffect, SideEffectLinkedToNoteHash},\n },\n contrakt::deployment_data::ContractDeploymentData,\n hash::{\n pedersen_hash,\n },\n utils::bounded_vec::BoundedVec,\n};\nuse crate::constants::{\n MAX_READ_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\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 block_header: BlockHeader,\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.block_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.block_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",
2916
+ "150": {
2917
+ "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",
1714
2918
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/private_circuit_public_inputs.nr"
1715
2919
  },
1716
- "151": {
2920
+ "153": {
1717
2921
  "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",
1718
2922
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/function_data.nr"
1719
2923
  },
1720
- "156": {
2924
+ "154": {
2925
+ "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",
2926
+ "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/append_only_tree_snapshot.nr"
2927
+ },
2928
+ "158": {
1721
2929
  "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",
1722
2930
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/call_context.nr"
1723
2931
  },
1724
- "162": {
2932
+ "164": {
1725
2933
  "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",
1726
2934
  "path": "/usr/src/yarn-project/noir-protocol-circuits/src/crates/types/src/abis/function_selector.nr"
1727
2935
  },
1728
- "184": {
1729
- "source": "mod ecdsa_public_key_note;\n\n// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\n// The signing key is stored in an immutable private note and should be different from the signing key.\ncontract EcdsaAccount {\n use dep::aztec::protocol_types::address::AztecAddress;\n use dep::std;\n use dep::std::option::Option;\n use dep::aztec::{\n abi::CallContext,\n context::{PrivateContext, PublicContext, Context},\n note::{\n note_header::NoteHeader,\n utils as note_utils,\n },\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::ecdsa_public_key_note::{\n EcdsaPublicKeyNote, EcdsaPublicKeyNoteInterface, ECDSA_PUBLIC_KEY_NOTE_LEN,\n };\n\n struct Storage {\n public_key: ImmutableSingleton<EcdsaPublicKeyNote, ECDSA_PUBLIC_KEY_NOTE_LEN>,\n }\n\n impl Storage {\n fn init(context: Context) -> Self {\n Storage {\n public_key: ImmutableSingleton::new(context, 1, EcdsaPublicKeyNoteInterface),\n }\n }\n }\n\n global ACCOUNT_ACTIONS_STORAGE_SLOT = 2;\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[aztec(private)]\n fn constructor(signing_pub_key_x: pub [u8; 32], signing_pub_key_y: pub [u8; 32]) {\n let this = context.this_address();\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\n storage.public_key.initialize(&mut pub_key_note, Option::none(), true);\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts\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_field: Field) -> pub bool {\n // Load public key from storage\n let storage = Storage::init(Context::private(context));\n let public_key = storage.public_key.get_note();\n\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(message_field);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let hashed_message: [u8; 32] = std::hash::sha256(message_field.to_be_bytes(32));\n let verification = std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message);\n assert(verification == true);\n\n true\n }\n\n // Computes note 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; ECDSA_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(EcdsaPublicKeyNoteInterface, note_header, serialized_note)\n }\n}\n",
2936
+ "186": {
2937
+ "source": "mod ecdsa_public_key_note;\n\n// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\n// The signing key is stored in an immutable private note and should be different from the signing key.\ncontract EcdsaAccount {\n use dep::aztec::protocol_types::address::AztecAddress;\n use dep::std;\n use dep::std::option::Option;\n use dep::aztec::{\n abi::CallContext,\n context::{PrivateContext, PublicContext, Context},\n note::{\n note_header::NoteHeader,\n utils as note_utils,\n },\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::ecdsa_public_key_note::{\n EcdsaPublicKeyNote, EcdsaPublicKeyNoteInterface, ECDSA_PUBLIC_KEY_NOTE_LEN,\n };\n\n struct Storage {\n public_key: ImmutableSingleton<EcdsaPublicKeyNote, ECDSA_PUBLIC_KEY_NOTE_LEN>,\n }\n\n impl Storage {\n fn init(context: Context) -> Self {\n Storage {\n public_key: ImmutableSingleton::new(context, 1, EcdsaPublicKeyNoteInterface),\n }\n }\n }\n\n global ACCOUNT_ACTIONS_STORAGE_SLOT = 2;\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[aztec(private)]\n fn constructor(signing_pub_key_x: pub [u8; 32], signing_pub_key_y: pub [u8; 32]) {\n let this = context.this_address();\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\n storage.public_key.initialize(&mut pub_key_note, true);\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts\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_field: Field) -> pub bool {\n // Load public key from storage\n let storage = Storage::init(Context::private(context));\n let public_key = storage.public_key.get_note();\n\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(message_field);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let hashed_message: [u8; 32] = std::hash::sha256(message_field.to_be_bytes(32));\n let verification = std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message);\n assert(verification == true);\n\n true\n }\n\n // Computes note 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; ECDSA_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(EcdsaPublicKeyNoteInterface, note_header, serialized_note)\n }\n}\n",
1730
2938
  "path": "/usr/src/yarn-project/noir-contracts/contracts/ecdsa_account_contract/src/main.nr"
1731
2939
  },
1732
- "185": {
1733
- "source": "use dep::aztec::protocol_types::address::AztecAddress;\nuse dep::aztec::{\n note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_unique_siloed_note_hash,\n },\n oracle::{\n nullifier_key::get_nullifier_secret_key,\n get_public_key::get_public_key,\n },\n log::emit_encrypted_log,\n hash::pedersen_hash,\n context::PrivateContext,\n};\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: Field = 5;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\nstruct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n owner: AztecAddress, // We store the owner address only to get the secret key to compute the nullifier\n header: NoteHeader,\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], owner: AztecAddress) -> Self {\n EcdsaPublicKeyNote {\n x,\n y,\n owner,\n header: NoteHeader::empty(),\n }\n }\n\n // serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = owner\n pub fn serialize(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n \n [x, last_x, y, last_y, self.owner.to_field()]\n }\n\n pub fn compute_nullifier(self, context: &mut PrivateContext) -> Field {\n let unique_siloed_note_hash = compute_unique_siloed_note_hash(EcdsaPublicKeyNoteInterface, 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_unique_siloed_note_hash(EcdsaPublicKeyNoteInterface, 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; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x = serialized_note[0].to_be_bytes(32);\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes(32)[31];\n\n let part_y = serialized_note[2].to_be_bytes(32);\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes(32)[31];\n\n EcdsaPublicKeyNote { x, y, owner: AztecAddress::from_field(serialized_note[4]), header: NoteHeader::empty() }\n}\n\nfn serialize(note: EcdsaPublicKeyNote) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n note.serialize()\n}\n\nfn compute_note_hash(note: EcdsaPublicKeyNote) -> Field {\n // TODO(#1205) Should use a non-zero generator index.\n pedersen_hash(note.serialize(), 0)\n}\n\nfn compute_nullifier(note: EcdsaPublicKeyNote, context: &mut PrivateContext) -> Field {\n note.compute_nullifier(context)\n}\n\nfn compute_nullifier_without_context(note: EcdsaPublicKeyNote) -> Field {\n note.compute_nullifier_without_context()\n}\n\nfn get_header(note: EcdsaPublicKeyNote) -> NoteHeader {\n note.header\n}\n\nfn set_header(note: &mut EcdsaPublicKeyNote, 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: EcdsaPublicKeyNote) {\n note.broadcast(context, slot);\n}\n\nglobal EcdsaPublicKeyNoteInterface = 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",
2940
+ "187": {
2941
+ "source": "use dep::aztec::protocol_types::address::AztecAddress;\nuse dep::aztec::{\n note::{\n note_header::NoteHeader,\n note_interface::NoteInterface,\n utils::compute_note_hash_for_read_or_nullify,\n },\n oracle::{\n nullifier_key::get_nullifier_secret_key,\n get_public_key::get_public_key,\n },\n log::emit_encrypted_log,\n hash::pedersen_hash,\n context::PrivateContext,\n};\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: Field = 5;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\nstruct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n owner: AztecAddress, // We store the owner address only to get the secret key to compute the nullifier\n header: NoteHeader,\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], owner: AztecAddress) -> Self {\n EcdsaPublicKeyNote {\n x,\n y,\n owner,\n header: NoteHeader::empty(),\n }\n }\n\n // serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = owner\n pub fn serialize(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n \n [x, last_x, y, last_y, self.owner.to_field()]\n }\n\n pub fn compute_nullifier(self, context: &mut PrivateContext) -> Field {\n let unique_siloed_note_hash = compute_note_hash_for_read_or_nullify(EcdsaPublicKeyNoteInterface, 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(EcdsaPublicKeyNoteInterface, 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; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x = serialized_note[0].to_be_bytes(32);\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes(32)[31];\n\n let part_y = serialized_note[2].to_be_bytes(32);\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes(32)[31];\n\n EcdsaPublicKeyNote { x, y, owner: AztecAddress::from_field(serialized_note[4]), header: NoteHeader::empty() }\n}\n\nfn serialize(note: EcdsaPublicKeyNote) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n note.serialize()\n}\n\nfn compute_note_hash(note: EcdsaPublicKeyNote) -> Field {\n // TODO(#1205) Should use a non-zero generator index.\n pedersen_hash(note.serialize(), 0)\n}\n\nfn compute_nullifier(note: EcdsaPublicKeyNote, context: &mut PrivateContext) -> Field {\n note.compute_nullifier(context)\n}\n\nfn compute_nullifier_without_context(note: EcdsaPublicKeyNote) -> Field {\n note.compute_nullifier_without_context()\n}\n\nfn get_header(note: EcdsaPublicKeyNote) -> NoteHeader {\n note.header\n}\n\nfn set_header(note: &mut EcdsaPublicKeyNote, 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: EcdsaPublicKeyNote) {\n note.broadcast(context, slot);\n}\n\nglobal EcdsaPublicKeyNoteInterface = 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",
1734
2942
  "path": "/usr/src/yarn-project/noir-contracts/contracts/ecdsa_account_contract/src/ecdsa_public_key_note.nr"
1735
2943
  },
1736
- "186": {
2944
+ "188": {
1737
2945
  "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",
1738
2946
  "path": "/usr/src/yarn-project/aztec-nr/authwit/src/entrypoint.nr"
1739
2947
  },
1740
- "187": {
2948
+ "189": {
1741
2949
  "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",
1742
2950
  "path": "/usr/src/yarn-project/aztec-nr/authwit/src/account.nr"
1743
2951
  },
1744
- "190": {
2952
+ "192": {
1745
2953
  "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",
1746
2954
  "path": "/usr/src/yarn-project/aztec-nr/authwit/src/auth_witness.nr"
1747
2955
  }