@aztec/accounts 0.71.0 → 0.72.1

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.
Files changed (45) hide show
  1. package/artifacts/EcdsaKAccount.json +492 -492
  2. package/artifacts/EcdsaRAccount.json +525 -525
  3. package/artifacts/SchnorrAccount.json +634 -634
  4. package/artifacts/SchnorrSingleKeyAccount.json +132 -132
  5. package/dest/defaults/account_contract.d.ts +1 -1
  6. package/dest/defaults/account_contract.d.ts.map +1 -1
  7. package/dest/ecdsa/ecdsa_k/account_contract.d.ts +1 -1
  8. package/dest/ecdsa/ecdsa_k/account_contract.d.ts.map +1 -1
  9. package/dest/ecdsa/ecdsa_k/account_contract.js +5 -5
  10. package/dest/ecdsa/ecdsa_k/index.d.ts +2 -1
  11. package/dest/ecdsa/ecdsa_k/index.d.ts.map +1 -1
  12. package/dest/ecdsa/ecdsa_k/index.js +3 -2
  13. package/dest/ecdsa/ssh_ecdsa_r/account_contract.d.ts +1 -1
  14. package/dest/ecdsa/ssh_ecdsa_r/account_contract.js +2 -2
  15. package/dest/ecdsa/ssh_ecdsa_r/index.d.ts +2 -1
  16. package/dest/ecdsa/ssh_ecdsa_r/index.d.ts.map +1 -1
  17. package/dest/ecdsa/ssh_ecdsa_r/index.js +3 -2
  18. package/dest/schnorr/account_contract.d.ts +1 -1
  19. package/dest/schnorr/account_contract.d.ts.map +1 -1
  20. package/dest/schnorr/account_contract.js +6 -6
  21. package/dest/schnorr/index.d.ts +2 -1
  22. package/dest/schnorr/index.d.ts.map +1 -1
  23. package/dest/schnorr/index.js +3 -2
  24. package/dest/single_key/account_contract.d.ts +1 -1
  25. package/dest/single_key/account_contract.d.ts.map +1 -1
  26. package/dest/single_key/account_contract.js +4 -4
  27. package/dest/single_key/index.d.ts +2 -1
  28. package/dest/single_key/index.d.ts.map +1 -1
  29. package/dest/single_key/index.js +3 -2
  30. package/dest/testing/configuration.d.ts.map +1 -1
  31. package/dest/testing/configuration.js +21 -13
  32. package/dest/testing/create_account.d.ts.map +1 -1
  33. package/dest/testing/create_account.js +6 -5
  34. package/package.json +8 -8
  35. package/src/defaults/account_contract.ts +1 -1
  36. package/src/ecdsa/ecdsa_k/account_contract.ts +4 -4
  37. package/src/ecdsa/ecdsa_k/index.ts +8 -2
  38. package/src/ecdsa/ssh_ecdsa_r/account_contract.ts +1 -1
  39. package/src/ecdsa/ssh_ecdsa_r/index.ts +8 -2
  40. package/src/schnorr/account_contract.ts +5 -5
  41. package/src/schnorr/index.ts +3 -2
  42. package/src/single_key/account_contract.ts +4 -4
  43. package/src/single_key/index.ts +3 -2
  44. package/src/testing/configuration.ts +44 -22
  45. package/src/testing/create_account.ts +5 -4
@@ -1,8 +1,167 @@
1
1
  {
2
2
  "transpiled": true,
3
- "noir_version": "1.0.0-beta.1+2d73c1d7bc5b1db7",
3
+ "noir_version": "1.0.0-beta.1+4ca7394b2efd7aef",
4
4
  "name": "EcdsaKAccount",
5
5
  "functions": [
6
+ {
7
+ "name": "process_log",
8
+ "is_unconstrained": true,
9
+ "custom_attributes": [],
10
+ "abi": {
11
+ "error_types": {
12
+ "16761564377371454734": {
13
+ "error_kind": "string",
14
+ "string": "Array index out of bounds"
15
+ },
16
+ "16954218183513903507": {
17
+ "error_kind": "string",
18
+ "string": "Attempted to read past end of BoundedVec"
19
+ },
20
+ "17843811134343075018": {
21
+ "error_kind": "string",
22
+ "string": "Stack too deep"
23
+ },
24
+ "2920182694213909827": {
25
+ "error_kind": "string",
26
+ "string": "attempt to subtract with overflow"
27
+ },
28
+ "5019202896831570965": {
29
+ "error_kind": "string",
30
+ "string": "attempt to add with overflow"
31
+ },
32
+ "6753155520859132764": {
33
+ "error_kind": "string",
34
+ "string": "Failed to deliver note"
35
+ },
36
+ "8270195893599566439": {
37
+ "error_kind": "string",
38
+ "string": "Invalid public keys hint for address"
39
+ },
40
+ "8861757336002045335": {
41
+ "error_kind": "fmtstring",
42
+ "item_types": [
43
+ {
44
+ "kind": "integer",
45
+ "sign": "unsigned",
46
+ "width": 32
47
+ },
48
+ {
49
+ "kind": "integer",
50
+ "sign": "unsigned",
51
+ "width": 32
52
+ },
53
+ {
54
+ "kind": "field"
55
+ }
56
+ ],
57
+ "length": 99
58
+ },
59
+ "9862881900111276825": {
60
+ "error_kind": "fmtstring",
61
+ "item_types": [
62
+ {
63
+ "kind": "field"
64
+ }
65
+ ],
66
+ "length": 35
67
+ }
68
+ },
69
+ "parameters": [
70
+ {
71
+ "name": "log_plaintext",
72
+ "type": {
73
+ "fields": [
74
+ {
75
+ "name": "storage",
76
+ "type": {
77
+ "kind": "array",
78
+ "length": 18,
79
+ "type": {
80
+ "kind": "field"
81
+ }
82
+ }
83
+ },
84
+ {
85
+ "name": "len",
86
+ "type": {
87
+ "kind": "integer",
88
+ "sign": "unsigned",
89
+ "width": 32
90
+ }
91
+ }
92
+ ],
93
+ "kind": "struct",
94
+ "path": "std::collections::bounded_vec::BoundedVec"
95
+ },
96
+ "visibility": "private"
97
+ },
98
+ {
99
+ "name": "tx_hash",
100
+ "type": {
101
+ "kind": "field"
102
+ },
103
+ "visibility": "private"
104
+ },
105
+ {
106
+ "name": "unique_note_hashes_in_tx",
107
+ "type": {
108
+ "fields": [
109
+ {
110
+ "name": "storage",
111
+ "type": {
112
+ "kind": "array",
113
+ "length": 64,
114
+ "type": {
115
+ "kind": "field"
116
+ }
117
+ }
118
+ },
119
+ {
120
+ "name": "len",
121
+ "type": {
122
+ "kind": "integer",
123
+ "sign": "unsigned",
124
+ "width": 32
125
+ }
126
+ }
127
+ ],
128
+ "kind": "struct",
129
+ "path": "std::collections::bounded_vec::BoundedVec"
130
+ },
131
+ "visibility": "private"
132
+ },
133
+ {
134
+ "name": "first_nullifier_in_tx",
135
+ "type": {
136
+ "kind": "field"
137
+ },
138
+ "visibility": "private"
139
+ },
140
+ {
141
+ "name": "recipient",
142
+ "type": {
143
+ "fields": [
144
+ {
145
+ "name": "inner",
146
+ "type": {
147
+ "kind": "field"
148
+ }
149
+ }
150
+ ],
151
+ "kind": "struct",
152
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
153
+ },
154
+ "visibility": "private"
155
+ }
156
+ ],
157
+ "return_type": null
158
+ },
159
+ "bytecode": "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",
160
+ "debug_symbols": "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",
161
+ "brillig_names": [
162
+ "process_log"
163
+ ]
164
+ },
6
165
  {
7
166
  "name": "compute_note_hash_and_optionally_a_nullifier",
8
167
  "is_unconstrained": true,
@@ -104,20 +263,46 @@
104
263
  }
105
264
  },
106
265
  "bytecode": "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",
107
- "debug_symbols": "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",
266
+ "debug_symbols": "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",
108
267
  "brillig_names": [
109
268
  "compute_note_hash_and_optionally_a_nullifier"
110
269
  ]
111
270
  },
112
271
  {
113
- "name": "constructor",
272
+ "name": "sync_notes",
273
+ "is_unconstrained": true,
274
+ "custom_attributes": [],
275
+ "abi": {
276
+ "error_types": {
277
+ "17843811134343075018": {
278
+ "error_kind": "string",
279
+ "string": "Stack too deep"
280
+ }
281
+ },
282
+ "parameters": [],
283
+ "return_type": null
284
+ },
285
+ "bytecode": "H4sIAAAAAAAA/9VTvQ6CMBBu+YmCMqiJbia+QREMjCbuvkMDMuqAixuPLjXX9FKbMLQ18Uuaa+Hy/ZSDEgUKNSIWkCQHqAnUAL0Px3WGM7NDnmi6LvlrVhaJIZ9D/x9+6sm/gOT3dP9sBjyXQfHjLFJ3Pq4UzYSvzPKb+cy8mci5+kHOEcdM08aghmehoYci3zvYZ4Y+iQVR/3Q0uM9V1YxJvRD4Y/LtHevHWv8WzqnmX9TIwmdX8bwreMdPvG3Lhq81foEA3dM/z8Ie9lOzgDMuiZqN/nVvro/nrScTECRvfuFT84YGAAA=",
286
+ "debug_symbols": "ndLRCoMgFAbgdznXXXTMcutVYoSVhSAaZoMRvfssYmujG705+Ivf8eZfoBPNPNRS92aCslpAmZY7abRPy5pAY6VScqjP15BuA3F/P41cb3Fy3DooSZYlIHTnTxS976USUBZkfSSAJFhkwYIGizxUkMs/ME1v7DCYItKPQkp3lsexIo6xOHaLYhleM2TFl93zX7b6+ORW8kaJo279rNtT+9xrFH9FHK1pRTdbsVXy1EY/K2QJIX6tX/0G",
287
+ "brillig_names": [
288
+ "sync_notes"
289
+ ]
290
+ },
291
+ {
292
+ "name": "verify_private_authwit",
114
293
  "is_unconstrained": false,
115
294
  "custom_attributes": [
116
295
  "private",
117
- "initializer"
296
+ "noinitcheck",
297
+ "view"
118
298
  ],
119
299
  "abi": {
120
300
  "error_types": {
301
+ "11091894166229312484": {
302
+ "error_kind": "fmtstring",
303
+ "item_types": [],
304
+ "length": 20
305
+ },
121
306
  "14514982005979867414": {
122
307
  "error_kind": "string",
123
308
  "string": "attempt to bit-shift with overflow"
@@ -126,44 +311,33 @@
126
311
  "error_kind": "string",
127
312
  "string": "Array index out of bounds"
128
313
  },
129
- "17618083556256589634": {
314
+ "1705275289401561847": {
130
315
  "error_kind": "string",
131
- "string": "Initialization hash does not match"
316
+ "string": "Mismatch note header storage slot."
132
317
  },
133
318
  "17843811134343075018": {
134
319
  "error_kind": "string",
135
320
  "string": "Stack too deep"
136
321
  },
137
- "2233873454491509486": {
138
- "error_kind": "string",
139
- "string": "Initializer address is not the contract deployer"
140
- },
141
- "2709101749560550278": {
322
+ "19458536156181958": {
142
323
  "error_kind": "string",
143
- "string": "Cannot serialize point at infinity as bytes."
324
+ "string": "Function verify_private_authwit can only be called statically"
144
325
  },
145
326
  "2920182694213909827": {
146
327
  "error_kind": "string",
147
328
  "string": "attempt to subtract with overflow"
148
329
  },
149
- "3151558035338938026": {
150
- "error_kind": "fmtstring",
151
- "item_types": [
152
- {
153
- "kind": "integer",
154
- "sign": "unsigned",
155
- "width": 32
156
- }
157
- ],
158
- "length": 75
330
+ "4939791462094160055": {
331
+ "error_kind": "string",
332
+ "string": "Message not authorized by account"
159
333
  },
160
334
  "5019202896831570965": {
161
335
  "error_kind": "string",
162
336
  "string": "attempt to add with overflow"
163
337
  },
164
- "6485997221020871071": {
338
+ "6869395374906889440": {
165
339
  "error_kind": "string",
166
- "string": "call to assert_max_bit_size"
340
+ "string": "Mismatch note header contract address."
167
341
  },
168
342
  "7233212735005103307": {
169
343
  "error_kind": "string",
@@ -653,28 +827,9 @@
653
827
  "visibility": "private"
654
828
  },
655
829
  {
656
- "name": "signing_pub_key_x",
657
- "type": {
658
- "kind": "array",
659
- "length": 32,
660
- "type": {
661
- "kind": "integer",
662
- "sign": "unsigned",
663
- "width": 8
664
- }
665
- },
666
- "visibility": "private"
667
- },
668
- {
669
- "name": "signing_pub_key_y",
830
+ "name": "inner_hash",
670
831
  "type": {
671
- "kind": "array",
672
- "length": 32,
673
- "type": {
674
- "kind": "integer",
675
- "sign": "unsigned",
676
- "width": 8
677
- }
832
+ "kind": "field"
678
833
  },
679
834
  "visibility": "private"
680
835
  }
@@ -1784,251 +1939,76 @@
1784
1939
  "visibility": "databus"
1785
1940
  }
1786
1941
  },
1787
- "bytecode": "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",
1788
- "debug_symbols": "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",
1942
+ "bytecode": "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",
1943
+ "debug_symbols": "7V3bjuQ2svyXeZ4HMm8k91cWxsL2+iwGGNgL23uAg4X//ajbU6qakUpyZ1WxI0t8WfSsFWIomExepMj674d//vTDf/71j08//88vv33429//++HzLz9+//unX36e/vXfD5le/7/f/v39zy///O3373/9/cPfsrX08cNPP/9z+rOk9MfHD//z6fNPH/5m9MfHxcVEVr5cTFTbfHFbvbhJ/XIxJ8rbF2cTPl09/a00X06W1m6eyU5Msuj56lLW7s7Gp5tLTl9d/d3HD5mHMleUkaHMFWV0KHNFGbtZGUmNvlwsmep8cWmvDZRHN1Df2MALpq1hWE+6Cl0IZavRMFMiTrp9ceZ8ujgz552LU26ni5PV7YurtdPFtbDtBE4Vmq+Wl2DZvDo3mlm3i6BcHx3nizm1862N1y5OxU5EKLV0cbm89A6l0TvAvZNH7wD3Dt3aO2XWkArzjuCl2Jxlm47e2esdHr0D3Dsyege4d9bX8G/hw1lPa3jOjXf45Cbzgv9iDb9+55TPC36V+eKsq1efJWexc1Blel2dkh3mScthnrQe5knbUZ6U02GeNB/mSekwT8qHeVI5zJMeZo3Eh1kj8WHWSHyYNRIfZo0kh1kjyWHWSHKYNZIcZo0kcpgnPcwaSQ6zRpLDrJHkMGskOcwaSQ+zRtLDrJH0MGskPcwaSeUwT3qYNZIeZo2kh1kj6WHWSHqYNZIdZo1kh1kj2WHWSHaYNZLJYZ70MGskO8wayQ6zRrLDrJHsMGukcpg1UjnMGqkcZo1UDrNGKnKYJz3MGqkcZo1UDrNGKodZI5XDrJHqYdZI9TBrpHqYNVI9zBqpymGe9DBrpHqYNVI9zBqpHmaNVA+zRmqHWSO1Z1oj2Xy1Zv3qSZdXZztXBSoXVuuTLs+0onqTLuVCl1YXujzR+ktVZ13ari4pz8UKEl/qUtfuXXl+xmrnWlnMunY1tZkJX9x7et4XyWVIfn/JJfGcFlW/lfyJVqQPlbzOIraLzOKK8idaGuNIvh3lT7RGf6Tk7byCapZvi/In2izgSL4d5U+0a3mo5OV0b0kX62FPlOf0RPsnHM03w3xqeWj+FzSXRHnWXPnGOH+iXSKO5jtxPnagfym3lHxSUfJFCbwrmhc7b57yWZH8Z4nkJEfVnHguokxCX2n+KsxhN4p7whx2O7cnTBklNu9aYjNomIjMHaPJdpI58bnPhfUr+V6Dqo6gGkF176BqI6hGUN05qHIaQTWC6m+Z66y15rIXVFnnPqevfgLhS1DlEVQjqO4dVE90tmPpdP7CxrYjY2sz69bK+d6lrbGm2s4ytuVvE+UnOq55Txmls4wis4xSvrrzK53e5x46n5STtrygY1h0ChadikWnQdGhhEUnY9EhLDqMRUew6GBlZcLKyoSVlQkrKxNWVmasrMxYWZmxsjJjZWXGysqMlZUZKyszVlZmrKzMWFlZsLKyYGVlwcrKgpWVBSsrC1ZWFqysLFhZWbCysmBlZcXKyoqVlRUrKytWVlasrKxYWVmxsrJiZWXFysqKlZUNKysbVlY2rKxsWFnZsLKyYWVlw8rKhpWVDSsrG1ZWLlhZuWBl5YKVlQtWVi5YWblgZeWClZULVlYuWFm5YGXlipWVK1ZWrlhZuWJl5YqVlStWVq5YWbliZeWKlZUrVlZuWFm5YWXlhpWVG1ZWblhZuWFl5YaVlRtWVm5YWblBZWVKUFmZElRWpgSVlSlBZWVKUFmZElRWpgSVlSlBZWVKUFmZElZWzlhZOWNl5YyVlTNWVs5YWRnL20dY3j7C8vYRlrePsLx9hOXtIyxvH2F5+wjL20dY3j7C8vYRlrePsLx9hOXtIyxvH2F5+wjL20dY3j7C8vYRlrePsLx9hOXtIyxvH2F5+wjL20dY3j7C8vYRlrePsLx9hOXtIyxvH2F5+wjL20dY3j7C8vYRlrePsLx9hOXtIyxvH2F5+wjL20dY3j7C8vYRlrePsLx9hOXtIyxvH2F5+wjL20dY3j7C8vYRlrePsLx9hOXtIyxvH2F5+wjL20dY3j7C8vYRlrePsLx9hOXtIyxvH2F5+wjL20dY3j7C8vYRlrePsLx9hOXtIyxvH2F5+wjL20dY3j7C8vYRlrePsLx9hOXtIyxvH2F5+wjL20dY3j7C8vYRlrePsLx9jOXtYyxvH2N5+xjL28cJKiszlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7G8vYxlrePsbx9jOXtYyxvH2N5+xjL28dY3j7B8vYJlrdPsLx9guXtkwSVlQXL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2B5+wTL2ydY3j7B8vYJlrdPsLx9guXtEyxvn2J5+xTL26dY3j7F8vZpgsrKiuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrdPsbx9iuXtUyxvn2J5+xTL26dY3j7F8vYplrfPsLx9huXtMyxvn2F5+yxBZWXD8vYZlrfPsLx9huXtMyxvn2F5+wzL22dY3j7D8vYZlrfPsLx9huXtMyxvn2F5+wzL22dY3j7D8vYZlrfPsLx9huXtMyxvn2F5+wzL22dY3j7D8vYZlrfPsLx9huXtMyxvn2F5+wzL22dY3j7D8vYZlrfPsLx9huXtMyxvn2F5+wzL22dY3j7D8vYZlrfPsLx9huXtMyxvn2F5+wzL22dY3j7D8vYZlrfPsLx9huXtMyxvn2F5+wzL22dY3j7D8vYZlrfPsLx9huXtMyxvn2F5+wzL22dY3j7D8vYZlrfPsLx9huXtMyxvn2F5+wzL22dY3j7D8vYZlrfPsLx9huXtMyxvn2F5+wzL22dY3j7D8vYZlrfPsLx9huXtMyxvn2F5+6y7t6/m08VUuW3fWWi+s1A53zm3lYtVkn25WIXk8uLXB6WjPCgf5UHlKA+qR3lQO8qDlqM8aD3Kg7ZjPGjp7oJ9twc9yMqopIOsjEo6yMqoJDnKgx5kZVTSQVZGJR1kZVTSQVZGJR1lZZSPsjLKR1kZ5aOsjPJRVkbdHf/v9qBHWRnlo6yM8lFWRvkoK6N8lJURHWVlREdZGdFRVkZ0lJVR96ob7/ag0CsjS3J6UKO04A692NnhDr1+2eEOvSQx1Zl7WXKHXmVsc2fohcMOd+i1wA536Ol9hzv0jL2dZ7oXWbkn98DzKmPPq9vxjj2vbnMPPK9y4HlVAs+rEnhelcDzqgSeV7uXybkn98DzqgTer0rg/aoEnlcl8LyqgedVDTyvauB5VbHn1W3u2PPqNnfseXWbe+D9qgaeVxV7Xt3mjj2vbnI37Hl1mzv2vLrNPfC8aoHn1e6lqu7JPfC8aoHnVQt8DmyB96sWeL9aAu9XS+B5tWDPq9vcA58Ddy82dk/ugc+BS+B5tQSeV0vgebUEnldr4Hm1Bj4HroH3qzXwfrV7ubh7cg88r9bA71dr4HPgGvgcuAY+B26B51XsSns73APPq9j18Ha4B55XsavW7XAPvF/Fri23wz3wfhW7AtzmvFqxi7rtcI97DlyxS6/tcI97DlxT3Hm1Ytc82+Eed16t2JXJdrjHnVcrdv2wbe7YJcF2uMfdr1bswl073APPq9jltXa4xz0HrthFsHa4xz0HrtilqnbyTOB5Fbug1A73wPMqdtmnHe5xz4ErdnGmHe6B96vg9Za2uQeeV8HrLW1zD3wODF5vaZt74HPgwPWWKni9pW3ugedV8HpL29wDz6uB6y3VwPWWauB6SzVwvaUKXm9pc14Fr7e0zT3wOXDgeks1cL2lCl5vaTvPBJ5XA9dbqoHrLdXA9ZZq4HpLNXC9pRq43lINXG+pgtdb2pxXwestbXMPfA4cuN5SDVxvqYLXW9rMM+D1lra5B55XA9dbqoHrLdXA9ZZq4HpLNXC9pRq43lIFr7e0Oa+C11va5h74HDhwvaUauN5SBa+3tJlnwOstbXMPPK8GrrdUA9dbqoHrLdXA9ZZq4HpLNXC9pQpeb2lzXgWvt7TNPfA5cOB6SzVwvaUKXm9pO88EnlcD11uqgest1cD1lmrgeks1cL2lGrjeUg1cb6mC11vanFfB6y1tc497DtwC11tqgestNfB6S1t5poHXW9rmHndebYHrLbXA9ZZa4HpLLXC9pRa43lILXG+pgddb2pxXwestbXOPew7cAtdbaoHrLTXwekvbeSbwvBq43lILXG+pBa631ALXW2qB6y21wPWWWuB6Sw283tLmvApeb2mbe9xz4Ba43lILXG+pgddb2swz4PWWtrkHnlcD11tqgesttcD1llrgekstcL2lFrjeUgOvt7Q5r4LXW9rmHvgcOHC9pRa43lIDr7e0mWfA6y1tcw88rwaut9QC11tqgesttcD1llrgekstcL2lBl5vaXNeBa+3tM098Dlw4HpLLXC9pQZeb2k7zwSeVwPXW2qB6y21wPWWWuB6Sy1wvaUWuN5SC1xvqYHXW9qcV8HrLW1zD3wOHLjeUgtcb6mB11vazDPg9Za2uQeeVwPXW2qB6y21wPWWWuB6Sy1wvaUWuN5SA6+3tDmvgtdb2uYe+Bw4cL2lFrjeUgOvt7SdZwLPq4HrLbXA9ZZa4HpLLXC9pRa43lILXG+pBa631MDrLW3Oq+D1lra5Bz4HDlxvqQWut5QTeMGlrUQzkY87s07k406tE/m4c+tEPu7kOpGPexo8kY+7bZ3Ix923TuTjblwn8pFnWPDSSzvk454JT+TjHgpP5OOeCk/kI8+w4PWXdshHnmEDV2CayEeeYQPXYMopcBGmiXzkPWzgMkwT+cgzLHghph3ycU+IJ/Jxj4gn8nHPiCfykWdY8GpM2+QDl2OayEeeYQMXZJrIRz4lDlySaSIfeQ8buCjTRD7yDAtelmmHfORT4sCFmSbykU+JwUszbWcb8NpMO+Qjz7CBqzNN5CPPsIHrM03kI+9hA1doyilwiaaJfOQZFrxI0w75yKfEgcs0TeQjnxKDF2rayTaRZ9jApZom8pFn2MDFmibykU+JA5drmshH3sMGLtg0kY88w4KXbNohH/mUOHDRpol85FNi8LJN29kGvG7TDvnIM2zgyk0T+cgzbODaTRP5yHvYwNWbJvKR97Dg9Zu2Z1jwAk475COfEgcu4TSRj3xKDF7EaTvbgFdx2iEfeYYNXMdpIh95hg1cySmnwKWcJvKR97CBizlN5CPPsODlnHbIRz4lDlzQaSIf+ZQYvKTTTrYJPMPmyDWdcuSaTjlyTaccuaZTTtgz7A75wHvYHLmmUwav6bQ5w2bwmk475AOfEufINZ1y5JpOGbym03a2Aa/ptEM+8gwbuaZTjlzTKUeu6ZQj13TKkWs65cg1nTJ4TaftGRa8ptMO+cCnxDlyTaccuaZTBq/ptJNtIu9hwWs67ZCPvIcFr+m0Qz7yDBu5plMGr+m0o3zkGRa8ptMO+cDvYXPkmk4ZvKbTTraJvIcFr+m0Qz7ye1jsmk6l5hP5UnlJfn2GrWUmX1uZUVTWyFdNJ/K16fbFj5Slnu5MLZftO+dzn2azesn5T1lkyLImiw5Z1mSxIcuaLGXIsiZLHbKsydKGLCuyXKkkdnhZ8pBlTRYasqzJcvsqV5LaaSE9bRW3L66tnbbJLeX6HBrK0PBmDbWzhpVPu79aNe9oKCXziYcUas8huQ3Je0teRqa4WcM6NLxZwzaGfmfJLQ3Je0ueR6a4WUMaGt6sYe89ltnp4mpPsk+1sce6XUMdGt6s4dg0dZe8DMl7Sz72WLdr2IaGt2pYxqapu+R5SN5b8rHHul3D8R7rdg1l7FNv1nDssW7X0IaGN2s4Nk3dJa9D8t6Sjz3WzRrWNDS8WcOxaeouOQ3Je0s+9li3ayhDw5s11LFPvVnDsce6XcPxNd/tGo5NU3fJx8d/vSVvY491u4bja77bNRybpu6S85C8t+QyMsXNGo73WLdraGOferOGY491u4bja77bNRybps6SUxof/3WXfOyxbtdwfM13u4Zj09RdchmS95Z87LFu13C8x7pdwzL2qTdrOPZYt2s4vua7WcM8Nk3dJR8f/3WXfOyxbtdwfM13u4Yyhn5vyUehwO6Sjz3W7RqO91i3a1jHPvVmDcce62YNaXzNd7uGY9PUXfLx8V93ycce63YNZWh4s4Zj09Rd8lEosLvkY491u4bjPdbtGraxT71VQx57rNs1HF/z3a7h2DR1l3x8/NddchmZ4mYNx9d8t2s4Nk3dJR+FArtLPvZYt2s43mPdrKGksU+9WcM77LFoflKhspMRm+TTb9A2KTuC51T4pPj0t8pzSE5D8t6S85C8t+QyJO8tuQ7Je0tuQ/LekpcheW/J65C8t+S37w91Onz4crEq81PIomnIsiZLHrKsyUJDljVZeMiyJosMWdZk0SHLmiw2ZFmTpQxZ1mSpQ5Y1WcYqd00Wu8MqV8upCTVJO7IU5fnWRdvujktp5p9Un+NNiOUhen/RaYjeX3SOJLrl5xBdwEV/xlM00yF6f9FtiN5f9DJE7y96HaL3F731Ft0sz6IXsp3LJybzJ5+5JXsK0UsCF721drqcEj2J6HmI3l90GqL3F52H6P1FlyF6f9F1iN5fdBui9xe9DNH7i959R9q4zKI3K8+hYhsq3q5i7b1nrKnNKtZpfD+HinfYBJryrGLdOzSqXOp8a8nPcWhUaah4BxV5qHgHFWWoeAcVdah4BxVtqHgHFctQ8Q4q1qHiHVRsQ8XbVWxpqHgHFbvvXTSdd4DKO2VOhGZhhC5shi87xyURSad36Sok2xdH6R8a/QPdPzz6B7p/ZPQPdP/o6B/o/rHRP9D9U0b/QPdPHf0D3T9t9A9w/3BKo3+g+2ecH2D3zzg/wO6fcX6A3T8y+ge6f8b5AXb/jPMD7P4Z5wfY/TPOD7D7Z5wfQPdPHucH2P0zzg+w+2ecH2D3zzg/wO4fGf0D3T/j/AC7f8b5AXb/jPMD7P4Z5wfY/TPOD6D7h8b5AXb/jPMD7P4Z5wfY/TPOD7D7R0b/QPfPOD/A7p9xfoDdP+P8ALt/xvkBdv+M8wPo/uFxfoDdP+P8ALt/xvkBdv+M8wPs/pHRP9D9M84PsPtnnB9g9884P8Dun3F+gN0/6+cHjyPfaL44lXZ551c+ku7Kh1K+5PNnE+tbPmvp1ERJabuJMsX1l4sLX4RkWYsEtjnELooGTtL/8d30rx9+/fT586d//ePzLz9+//unX37+7QWZXv5nfWtapJx+E6HIhdqZaDVW8qz2WQnNL0qsb63ueH9+8P3lwffXB9/fHnz/8uD71wffvz32/uup5o73f/D4lQePX3nw+JUHj1958PiVN4/fF1DxgKoH1BwgTR5Q9oDIA2IPSDwg9YA8EaGeiFBPRKgnIswTEeaJCPNEhHkiwjwRYZ6IME9EmCcizBMR5omI9R+aLUqnzdH0Z1mAsgdEHhB7QOIBqQdkHlDxgKoH1Byg6omI6omI6omI6omI9Z+AKWans4jpT1mA1AMyD6h4QNUDag7QenH+PVD2gMgDYg/IExHNExHNExHNExHtSkTMZ2ilseyskb+6WhfTRWsPbyKn1KGN3KEN6tAGd2hDbm9jOm0t82nr5dUif7ahHdqwDm2UDm3UDm20e7RxPuqv1L5qY3m12elQ+PJkO5f6yicnMD4ZjA/15jMdf88n4cq2iKDMcIwEjpHCMTI4RgWOUYVj1NAYUYJjlOEYweVsgsvZBJezCS5nE1zOJricTXA5m+ByNsPlbH5wzn5tgzq0wR3auEemrJrnNiwt29AObViHNsq92yjLNmqHNtrj25B7ZIVGcxuNl/0huUMb1KGNe4zzNn+6Zinxog29QxvGdPrizViWfa7SoQ3t0Ibdo416+ubSJNVlG6VDG7VDG+3ObWRdtGGpQxu5Qxt3yCUmMseu1LqzUrJySjxWL9ZJX07/jMH4CBgfBeNjYHwKGJ8Kxqdh8SkJjE8G4wOWnwtYfi5g+bmA5ecClp8LWH4u98jPmmc+qmWHT252unr683z6wax/MmpojGqCY5ThGBEcI4ZjJL0ZUZrvPf1Zl4wUjpHBMSpwjCoco4bGaP1D18fZih/7rGLzsxZbPms+0LPSgZ6VD/SscqBn1QM9qx3oWcuBnrUe6FnfYXWzyYhSgmOU4Rj139vkdHrfO/1JS0b91+05z6vkTHnJqD3RKJ7eDc3P2nTxrPmZdgR7z/pMO4K9Z32mHcHesz7TjmDvWeVAz/pMO4K9Z32mHcHes96+I3hX+jU2/RaaPvVf5F8wmtbUS0YZjhHBMeL+jPS8yLfltuMexps7M1I4RgbHqMAxqnCMGhojTnCMnmkrSDIfsFBJy2d9pq3g3rM+01Zw71nlQM/6TFvBvWd9pq3g3rM+08uhvWd9ppdDe8/afw2yw0gSHKMMx0j6M2oyM2rL11XSf73P+fRl8PTn8vxBnmkUs7b5WWtbPuszvQjbeVZ9phdhe8/6TLufvWd9pt3P3rM+0+5n71nlQM/6TLufvWc17NcTe/TB323t0Qd/t7VHv/+244KRpOW3RJbgGGU4RvQOjM6LfF1uO4zhGAkcI4VjZHCMChyjCseooTEqCY5RhmMEl7MLXM4ucDm7wOXsApezy4Nz9msbtUMb7fFtPLoGwGsbuUMb1KGNu+Snc9kKrbZs4x4Zp6S5jZL3q/aX0wG+WatLRgrHyOAYFThGFY5RQ2PU0mMZvbaRO7RBHdrgDm1Ihza0Qxv3yE97sVs6tFE7tNEe3gbfxVW610bu0AZ1aIM7tCEd2tAObViHNkqHNmqHNjqM89xhnOcO4zx3GOe5wzjPHcZ57jDOc4dxnjuM89xhnOcO45w6jHPqMM6pwzinDuOcOoxz6jDOqcM4pw7jnDqMc+owzrnDOOcO45w7jHPuMM65wzjnDuOcO4xz7jDOucM45w7jXDqMc+kwzqXDOJcO41w6jHPpMM6lwziXDuNcOoxz6TDOtcM41w7jXDuMc+0wzrXDONcO41w7jHPtMM61wzjXDuPcOoxz6zDOrcM4tw7j3DqMc+swzq3DOLcO49w6jHPrMM5Lh3FeOozz0mGclw7jvHQY56XDOC8dxnnpMM5Lh3FeOozz2mGc1w5j8K98v1e+auMVJS6UulDmQhUXqrpQzYP6K19araCyC0UulCs2mis2mis2mis2mis2mis2mic2JCUXKrtQ5EKxCyUulLpQ5kIVF6q6UK7YyK7YyK7YyK7YyK7YyK7YyK7YyK7YyK7YyK7YyK7YIFdskCs2yBUb5IoNcsUGuWKDXLFBrtggV2yQKzbYFRvsig12xQa7YoNdscGu2GBXbLArNtgVG+yKDXHFhrhiQ1yxIa7YEFdsiCs2xBUb4ooNccWGuGJDXbGhrthQV2yoKzbUFRvqig11xYa6YkNdsaGu2DBXbJgrNswVG+aKDXPFhrliw1yxYa7YMFdsmCs2iis2iis2iis2iis2iis2iis2iis2iis2iis2iis2qis2qis2qis2XOei4joXFde5qLjORcV1Liquc1FxnYuK61xU/sK5qPIf22flufLprDxXOZ+Va/6zCXp8E/z4JuTxTejjm7DHN1Ee30R9fBPt0U3oXzisvrmJ/Pgm6PFN8OObkMc3oY9vwh7fRHl8E/XxTTx+dOf+xd62q6drfodibzT/DhhzWjJqaIze4ffk9hhlOEbvUOxtvnpilJeMGI6RwDFSOEYGx6jAMapwjN4hZ2/+Boe+w+/J7THKcIwIjhHDMRI4RgrHyOAYof0mkHKFYwSXswUuZwtczn6H39/Kaf5FsJxoyegdfpOYZ40yL/e0YnCMChyjCsfoHX6TmOTMqCwYaYJjlOEYERwjhmMkcIwUjtE75OxcZka03NNqgWNU4Rg1NEbv8GNKe4wyHCOCY8RwjASOkcIxgsvZBpezDS5nr39IlFMup19/nP5u+lUr303/yi9Xr/uKJkCesXwBrSv8SjotBEqmy0sncusGpPvd3m6/PfPp9tK+vX25w+3pdHvjb29fH3v7dvvta5ujunxz+/WXqPe7fb759pVOA6DKt5Gz/nrzjbc/vUCtFz8p9OX2fPvty6lr61IcuePt2zfDavoHvaaG9V8Cn7OK5nPEmV4PiU1EfjOC3ozgNyPkbYjpH/xy4fpHwpbmOJz+PHfl9OfU1vonwtuY9Q+EdzDZgSEHhh0YcWDUgTEHpjgwjjiojjhojjhojjhojjhojjhojjhojjhY/z7WspxSomWTbzHFgakOTHs7Jq9/ZLoHyrug0hagK9K10yrKKJcFaP2ZpMwgaQvQupN/D5Q9IPKA1p+pyOndihWjb0HrE+QeKHtA5AGxB7Q+aMv5V+umHdECpB6QeUDFA6r7oPotaP3rC6s0gyovBuH6BxJ7IPGA1AMyD2hdvWpzGFVbJBZhD2j9wILqvBmntgStj9w27zOnP/Vb0Pqroz1Q9oDWD/PS/AumJdkiYK+8I9kBiQekHpB5QMUDqh5Qc4CuHLomSjOIFjniypkf0bwRJltMNVeO5XZAxTE0rhxu7YCaA3TF/7oDyh4QeUDsAYkHpB6QJ+8VT0QUT0QUT0TUv5D3FlFe2QMSD0g9oCt5r80jN+fF9HnFrDm9ZJ1BmhYg8oDYAxIPSK+A+AzKC5B5QMUDqh5QezuIrtgBd0DZA7rST+cz19zSArQ/P0lbgMwDKh5Q9YCaA3SljtwOKHtA5AFdmZ+Uri8J6EoNuc11BGX1gMwDKh5Q9YCaA7T+Snt6mZZOrwGmvxfZnNbfO+/D1l89iXKaYSqL8bu+gNuHNRdsfRG3D8s+GPlg7IOJD6Y+mF2BzRvtF9gix5fig1UfrLlgNflg+e2w6R/ycrFdeXlY+PxKvOi3g87IhWIXSlwodaHMhSouVHWhmgd1Jf0YpdMsOP1N3x6wXMk+eyhyodiFkiuosxXdSBYodaHWlTeWMqO4fJuvrgxp43Z+LknfrlqujOg9FLlQ7EJdUV6knVH2baqq6kKZC1VcqOpCNQ+qJRfqSmyI8RlVFi/LyIViF+pabFyMLylfja+VchLTCJwboekN087lel7RT38vXr40BeRkgJwKIKcKyKnhcbrycvu9SWVEUoRIit+FlPAFqcXLm3SnZC56JlUXJ4RJu7RiXVopXVqpXVppPVrJqUsruUsr1zJLvljU8RLGPpj4YOqDmQ9WfLDqgzUXjJIPln0wX5SQL0qufARtOtvbp79p8SqK1AczH6z4YNUF4yvdbemcDIwWryk5+2BXJLHzWaeZLBYEfCWUSz1vv8rKZzvJB8s+GPlg7IOJD6Y+mPlgxQe7Esp1rh4w/S2LFZq0a7BzcF36LlbnNSE9HWMJXSwac1u5eDqWnz/wF5LLi7+7+gXYexLKaIQIjRCjERI0QopGyNAIFTBCdi2oy/nEvpbll4dXhG15fsVibZmGr7zPsZbO2bslW8CaC3btjc4eLPtg5IOxDyY+mPpg5oNdifZGl1GyWNKV6oM1F+za26c92LUosfM2o9XF99jX3j/twdgHEx9MfTDzwYoPth4lJaUZVlJeZK4rr6H2YFfeQ+3Csg92LUraJWyxOL72KmoPJj6Y+mDmgxUfrPpg16LkfBBckn6bFK58j7kPyz4Y+WB8BcaXMF7AxAdTH8x8sOKDVR+suWD5WpSc11wlVVvAsg9GPhj7YNeixC5hf/G70H2Y+WDFB6s+WHPBKPlg19YlYmfY13bDlRN8bu38XVxKiy8Mr53Nvq0VSZnPrdDiu+RrR7l3bkW6tKJdWrEurZQurdQurbQerVw7Sn9rK3OBnunv5UeunO//LCutUJdWuEsr0qWVO419lXMri68oia1LK6VLK7VLK61HK5K6tJK7tEJdWrnT2C8Xo7Iu9kEi93+WlVa0SyvWpZXSpZU7jf12tkTlvMjJ0nq0oqlLK7lLK9SlFe7SinRpRbu0cp+xn/N5VGZaHFpouf+zrLRSu7TSerRiqUsr2fMmjox8MPbBxAdTH8x8sOKDVR+suWBX32nuwHxRUnxRUnxRUlxfgF2zrZqdv/G26R8LWPXBmgt27S3jHiz7YOSDsQ8mPpj6YOaD+aKk+qKkuqKEr7yH2LH385X3EHuw7LLAc2YfTHww9cHMBys+WPXBXIUSmJIP5rDAv8DIB2MfTHww9cEchRKmf+jLxetHITqfBOrFm9fM/NLe+rnGNkTeDtG3Q+yNkD+mf/7v979++v6Hzz/9NkFe/ut/fv7x90+//Pzln7//379P/+WHXz99/vzpX//496+//PjTP//z60//+PzLjy//7UP68j9/1+l1k2X67rX09d+15I9a83cv5pqXf1aa/lle/vkSwjatIizX848OvFxD5SPTXGycv/w/5XQLrh+F58rarwBJH6fF85cWzT4WO108vd36OL3jOLU3Hat/nI6j53IQr/eb3vCyyhe0tI/aZnSb0O2MbvUjpzSHzcv10ziVdLpe6kedbv7HJOr/Aw==",
1789
1944
  "brillig_names": [
1790
- "get_contract_instance_internal",
1945
+ "get_note_internal",
1791
1946
  "decompose_hint",
1792
- "lte_hint",
1793
- "notify_created_nullifier_oracle_wrapper",
1794
- "notify_created_note_oracle_wrapper",
1795
- "debug_log_oracle_wrapper",
1796
- "get_random_bytes",
1797
- "random",
1798
- "field_less_than",
1947
+ "get_auth_witness",
1799
1948
  "build_msg_block",
1800
1949
  "attach_len_to_msg_block",
1801
- "get_app_tag_as_sender",
1802
- "increment_app_tagging_secret_index_as_sender_wrapper",
1803
- "directive_integer_quotient",
1950
+ "store_in_execution_cache_oracle_wrapper",
1804
1951
  "directive_invert",
1952
+ "directive_integer_quotient",
1805
1953
  "directive_to_radix"
1806
1954
  ],
1807
- "verification_key": "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"
1955
+ "verification_key": "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"
1808
1956
  },
1809
1957
  {
1810
- "name": "process_log",
1811
- "is_unconstrained": true,
1812
- "custom_attributes": [],
1958
+ "name": "constructor",
1959
+ "is_unconstrained": false,
1960
+ "custom_attributes": [
1961
+ "private",
1962
+ "initializer"
1963
+ ],
1813
1964
  "abi": {
1814
1965
  "error_types": {
1966
+ "14514982005979867414": {
1967
+ "error_kind": "string",
1968
+ "string": "attempt to bit-shift with overflow"
1969
+ },
1815
1970
  "16761564377371454734": {
1816
1971
  "error_kind": "string",
1817
1972
  "string": "Array index out of bounds"
1818
1973
  },
1819
- "16954218183513903507": {
1974
+ "17618083556256589634": {
1820
1975
  "error_kind": "string",
1821
- "string": "Attempted to read past end of BoundedVec"
1976
+ "string": "Initialization hash does not match"
1822
1977
  },
1823
1978
  "17843811134343075018": {
1824
1979
  "error_kind": "string",
1825
1980
  "string": "Stack too deep"
1826
1981
  },
1827
- "2920182694213909827": {
1828
- "error_kind": "string",
1829
- "string": "attempt to subtract with overflow"
1830
- },
1831
- "5019202896831570965": {
1982
+ "2233873454491509486": {
1832
1983
  "error_kind": "string",
1833
- "string": "attempt to add with overflow"
1984
+ "string": "Initializer address is not the contract deployer"
1834
1985
  },
1835
- "6753155520859132764": {
1986
+ "2709101749560550278": {
1836
1987
  "error_kind": "string",
1837
- "string": "Failed to deliver note"
1988
+ "string": "Cannot serialize point at infinity as bytes."
1838
1989
  },
1839
- "8270195893599566439": {
1990
+ "2920182694213909827": {
1840
1991
  "error_kind": "string",
1841
- "string": "Invalid public keys hint for address"
1992
+ "string": "attempt to subtract with overflow"
1842
1993
  },
1843
- "8861757336002045335": {
1994
+ "3151558035338938026": {
1844
1995
  "error_kind": "fmtstring",
1845
1996
  "item_types": [
1846
1997
  {
1847
1998
  "kind": "integer",
1848
1999
  "sign": "unsigned",
1849
2000
  "width": 32
1850
- },
1851
- {
1852
- "kind": "integer",
1853
- "sign": "unsigned",
1854
- "width": 32
1855
- },
1856
- {
1857
- "kind": "field"
1858
- }
1859
- ],
1860
- "length": 99
1861
- },
1862
- "9862881900111276825": {
1863
- "error_kind": "fmtstring",
1864
- "item_types": [
1865
- {
1866
- "kind": "field"
1867
2001
  }
1868
2002
  ],
1869
- "length": 35
1870
- }
1871
- },
1872
- "parameters": [
1873
- {
1874
- "name": "log_plaintext",
1875
- "type": {
1876
- "fields": [
1877
- {
1878
- "name": "storage",
1879
- "type": {
1880
- "kind": "array",
1881
- "length": 18,
1882
- "type": {
1883
- "kind": "field"
1884
- }
1885
- }
1886
- },
1887
- {
1888
- "name": "len",
1889
- "type": {
1890
- "kind": "integer",
1891
- "sign": "unsigned",
1892
- "width": 32
1893
- }
1894
- }
1895
- ],
1896
- "kind": "struct",
1897
- "path": "std::collections::bounded_vec::BoundedVec"
1898
- },
1899
- "visibility": "private"
1900
- },
1901
- {
1902
- "name": "tx_hash",
1903
- "type": {
1904
- "kind": "field"
1905
- },
1906
- "visibility": "private"
1907
- },
1908
- {
1909
- "name": "unique_note_hashes_in_tx",
1910
- "type": {
1911
- "fields": [
1912
- {
1913
- "name": "storage",
1914
- "type": {
1915
- "kind": "array",
1916
- "length": 64,
1917
- "type": {
1918
- "kind": "field"
1919
- }
1920
- }
1921
- },
1922
- {
1923
- "name": "len",
1924
- "type": {
1925
- "kind": "integer",
1926
- "sign": "unsigned",
1927
- "width": 32
1928
- }
1929
- }
1930
- ],
1931
- "kind": "struct",
1932
- "path": "std::collections::bounded_vec::BoundedVec"
1933
- },
1934
- "visibility": "private"
1935
- },
1936
- {
1937
- "name": "first_nullifier_in_tx",
1938
- "type": {
1939
- "kind": "field"
1940
- },
1941
- "visibility": "private"
1942
- },
1943
- {
1944
- "name": "recipient",
1945
- "type": {
1946
- "fields": [
1947
- {
1948
- "name": "inner",
1949
- "type": {
1950
- "kind": "field"
1951
- }
1952
- }
1953
- ],
1954
- "kind": "struct",
1955
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
1956
- },
1957
- "visibility": "private"
1958
- }
1959
- ],
1960
- "return_type": null
1961
- },
1962
- "bytecode": "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",
1963
- "debug_symbols": "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",
1964
- "brillig_names": [
1965
- "process_log"
1966
- ]
1967
- },
1968
- {
1969
- "name": "sync_notes",
1970
- "is_unconstrained": true,
1971
- "custom_attributes": [],
1972
- "abi": {
1973
- "error_types": {
1974
- "17843811134343075018": {
1975
- "error_kind": "string",
1976
- "string": "Stack too deep"
1977
- }
1978
- },
1979
- "parameters": [],
1980
- "return_type": null
1981
- },
1982
- "bytecode": "H4sIAAAAAAAA/9VTvQ6CMBBu+YmCMqiJbia+QREMjCbuvkMDMuqAixuPLjXX9FKbMLQ18Uuaa+Hy/ZSDEgUKNSIWkCQHqAnUAL0Px3WGM7NDnmi6LvlrVhaJIZ9D/x9+6sm/gOT3dP9sBjyXQfHjLFJ3Pq4UzYSvzPKb+cy8mci5+kHOEcdM08aghmehoYci3zvYZ4Y+iQVR/3Q0uM9V1YxJvRD4Y/LtHevHWv8WzqnmX9TIwmdX8bwreMdPvG3Lhq81foEA3dM/z8Ie9lOzgDMuiZqN/nVvro/nrScTECRvfuFT84YGAAA=",
1983
- "debug_symbols": "ndLRCoMgFAbgdznXXXTMcutVYoSVhSAaZoMRvfssYmujG705+Ivf8eZfoBPNPNRS92aCslpAmZY7abRPy5pAY6VScqjP15BuA3F/P41cb3Fy3DooSZYlIHTnTxS976USUBZkfSSAJFhkwYIGizxUkMs/ME1v7DCYItKPQkp3lsexIo6xOHaLYhleM2TFl93zX7b6+ORW8kaJo279rNtT+9xrFH9FHK1pRTdbsVXy1EY/K2QJIX6tX/0G",
1984
- "brillig_names": [
1985
- "sync_notes"
1986
- ]
1987
- },
1988
- {
1989
- "name": "entrypoint",
1990
- "is_unconstrained": false,
1991
- "custom_attributes": [
1992
- "private"
1993
- ],
1994
- "abi": {
1995
- "error_types": {
1996
- "11091894166229312484": {
1997
- "error_kind": "fmtstring",
1998
- "item_types": [],
1999
- "length": 20
2000
- },
2001
- "14514982005979867414": {
2002
- "error_kind": "string",
2003
- "string": "attempt to bit-shift with overflow"
2004
- },
2005
- "16761564377371454734": {
2006
- "error_kind": "string",
2007
- "string": "Array index out of bounds"
2008
- },
2009
- "1705275289401561847": {
2010
- "error_kind": "string",
2011
- "string": "Mismatch note header storage slot."
2012
- },
2013
- "17843811134343075018": {
2014
- "error_kind": "string",
2015
- "string": "Stack too deep"
2016
- },
2017
- "2920182694213909827": {
2018
- "error_kind": "string",
2019
- "string": "attempt to subtract with overflow"
2003
+ "length": 75
2020
2004
  },
2021
2005
  "5019202896831570965": {
2022
2006
  "error_kind": "string",
2023
2007
  "string": "attempt to add with overflow"
2024
2008
  },
2025
- "5727012404371710682": {
2026
- "error_kind": "string",
2027
- "string": "push out of bounds"
2028
- },
2029
- "6869395374906889440": {
2009
+ "6485997221020871071": {
2030
2010
  "error_kind": "string",
2031
- "string": "Mismatch note header contract address."
2011
+ "string": "call to assert_max_bit_size"
2032
2012
  },
2033
2013
  "7233212735005103307": {
2034
2014
  "error_kind": "string",
@@ -2518,173 +2498,28 @@
2518
2498
  "visibility": "private"
2519
2499
  },
2520
2500
  {
2521
- "name": "app_payload",
2522
- "type": {
2523
- "fields": [
2524
- {
2525
- "name": "function_calls",
2526
- "type": {
2527
- "kind": "array",
2528
- "length": 4,
2529
- "type": {
2530
- "fields": [
2531
- {
2532
- "name": "args_hash",
2533
- "type": {
2534
- "kind": "field"
2535
- }
2536
- },
2537
- {
2538
- "name": "function_selector",
2539
- "type": {
2540
- "fields": [
2541
- {
2542
- "name": "inner",
2543
- "type": {
2544
- "kind": "integer",
2545
- "sign": "unsigned",
2546
- "width": 32
2547
- }
2548
- }
2549
- ],
2550
- "kind": "struct",
2551
- "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"
2552
- }
2553
- },
2554
- {
2555
- "name": "target_address",
2556
- "type": {
2557
- "fields": [
2558
- {
2559
- "name": "inner",
2560
- "type": {
2561
- "kind": "field"
2562
- }
2563
- }
2564
- ],
2565
- "kind": "struct",
2566
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
2567
- }
2568
- },
2569
- {
2570
- "name": "is_public",
2571
- "type": {
2572
- "kind": "boolean"
2573
- }
2574
- },
2575
- {
2576
- "name": "is_static",
2577
- "type": {
2578
- "kind": "boolean"
2579
- }
2580
- }
2581
- ],
2582
- "kind": "struct",
2583
- "path": "authwit::entrypoint::function_call::FunctionCall"
2584
- }
2585
- }
2586
- },
2587
- {
2588
- "name": "nonce",
2589
- "type": {
2590
- "kind": "field"
2591
- }
2592
- }
2593
- ],
2594
- "kind": "struct",
2595
- "path": "authwit::entrypoint::app::AppPayload"
2596
- },
2597
- "visibility": "private"
2598
- },
2599
- {
2600
- "name": "fee_payload",
2501
+ "name": "signing_pub_key_x",
2601
2502
  "type": {
2602
- "fields": [
2603
- {
2604
- "name": "function_calls",
2605
- "type": {
2606
- "kind": "array",
2607
- "length": 2,
2608
- "type": {
2609
- "fields": [
2610
- {
2611
- "name": "args_hash",
2612
- "type": {
2613
- "kind": "field"
2614
- }
2615
- },
2616
- {
2617
- "name": "function_selector",
2618
- "type": {
2619
- "fields": [
2620
- {
2621
- "name": "inner",
2622
- "type": {
2623
- "kind": "integer",
2624
- "sign": "unsigned",
2625
- "width": 32
2626
- }
2627
- }
2628
- ],
2629
- "kind": "struct",
2630
- "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"
2631
- }
2632
- },
2633
- {
2634
- "name": "target_address",
2635
- "type": {
2636
- "fields": [
2637
- {
2638
- "name": "inner",
2639
- "type": {
2640
- "kind": "field"
2641
- }
2642
- }
2643
- ],
2644
- "kind": "struct",
2645
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
2646
- }
2647
- },
2648
- {
2649
- "name": "is_public",
2650
- "type": {
2651
- "kind": "boolean"
2652
- }
2653
- },
2654
- {
2655
- "name": "is_static",
2656
- "type": {
2657
- "kind": "boolean"
2658
- }
2659
- }
2660
- ],
2661
- "kind": "struct",
2662
- "path": "authwit::entrypoint::function_call::FunctionCall"
2663
- }
2664
- }
2665
- },
2666
- {
2667
- "name": "nonce",
2668
- "type": {
2669
- "kind": "field"
2670
- }
2671
- },
2672
- {
2673
- "name": "is_fee_payer",
2674
- "type": {
2675
- "kind": "boolean"
2676
- }
2677
- }
2678
- ],
2679
- "kind": "struct",
2680
- "path": "authwit::entrypoint::fee::FeePayload"
2503
+ "kind": "array",
2504
+ "length": 32,
2505
+ "type": {
2506
+ "kind": "integer",
2507
+ "sign": "unsigned",
2508
+ "width": 8
2509
+ }
2681
2510
  },
2682
2511
  "visibility": "private"
2683
2512
  },
2684
2513
  {
2685
- "name": "cancellable",
2514
+ "name": "signing_pub_key_y",
2686
2515
  "type": {
2687
- "kind": "boolean"
2516
+ "kind": "array",
2517
+ "length": 32,
2518
+ "type": {
2519
+ "kind": "integer",
2520
+ "sign": "unsigned",
2521
+ "width": 8
2522
+ }
2688
2523
  },
2689
2524
  "visibility": "private"
2690
2525
  }
@@ -3794,32 +3629,33 @@
3794
3629
  "visibility": "databus"
3795
3630
  }
3796
3631
  },
3797
- "bytecode": "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V9t+2qZom6ptmrb9tR2g7UBt07XN0DZT20HaZmk7WNsh2g7Vdpi2w7Udoe1IbUdpm63taG1ztB2j7Vhtx2k7XttcbfO0naDtRG0naTtZ2ynaTtV2mrbTtZ2h7UxtZ2k7W9s52s7Vdp6287VdoO1CbRdpu1jbJdou1XaZtvnaLtd2hbYrtV2l7Wpt12i7Vtt12q7XdoO2G7XdpO1mbbdou1Xbbdpu13aHtju13aXtbm33aPuftnu13aftfm0PaHtQ20PaHtb2iLYF2h7V9pi2hdoe17ZI2xPantT2lLantT2jbbG2Z7Ut0factqXante2TNsL2pZre1HbS9pe1rZC2yvaXtX2mrbXtb2h7U1tb2l7W9s72t7V9p6297V9oO1DbR9p+1jbJ9o+1faZts+1faHtS21fafta2zfavtX2nbbvtf2g7UdtP2n7Wdsv2n7V9pu237X9oe1PbX9p+1ubEfQMbbW0ZWrL0patLUdbbW11tNXVlqutnrb62hpoa6itkbY8bY21NdHWVFszbc21tdC2ibaW2lppa61tU22baWujra22zbW107aFti21baVta23baNtWW3ttHbRtp217bR21ddLWWdsO2nbU5mlT2qLa8rUVaCvUVqStWFuJtlJtXbR11dZN207aumvbWVsPbT219dLWW1sfbX219dPWX9sAbQO17aJtkLbB2oZo21XbUG3DtO2mbbi23bWN0DZS2x7aRmnbU9tobWO07aVtrLa9tY3TNl7bBG1l2sq1VWir1FalrVrbPtomapukbbK2fbXtp22KtqnapmnbX9sB2g7UNl3bDG0ztR2kbZa2g7Udou1QbYdpO1zbEdqO1HaUttnajtY2R9sx2o7Vdpy247XN1TZP2wnaTtR2kraTtZn3y5t3t5v3opt3jpv3eZt3ZZv3UJt3PJv3J5t3E5v3/pp36pr31Zp3wZr3rJp3mJr3g5p3b5r3Ws7XZt7HaN51aN4jaN7RZ95/Z94tZ97bZt6JZt43Zt7lZd6TZd5BZd7vZN6dZN5LZN75Y96nY95VY94DY96xYt5fYt4NYt67Yd5pYd4XYd7FYN5zYN4hYJ7Pb559b54rv0CbeR66eda4eY63eUa2ef60ebazeW6yeSaxed6veZaueU6teQaseb6qeXapeS6oeeameZ6leVakeQ6jecaheX6geTafee6deaaceV6b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",
3798
- "debug_symbols": "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Pdaq7LFWZY+1KnusVdljrcoea1UOWKsyVm9fxOrti1i9fRGrty9i9fZFrN6+iNXbF7F6+yJWb1/E6u2LWL19Eau3L2L19kWs3r6I1dsXsXr7IlZvX8Tq7YtYvX0Rq7cvYvX2RazevojV2xexevsiVm9fxOrti1i9fRGrty9i9fZFrN6+iNXbF7F6+yJWb1/E6u2LWL19Eau3L2L19kWs3r6I1dsXsXr7IlZvX8Tq7YtYvX0Rq7cvYvX2RazevojV2xexevsiVm9fxOrti1i9fRGrty9i9fZFrN6+iNXbF7F6+yJWb1/E6u2LWL19Eau3L2L19kWs3r6I1dsXsXr7IlZvX8Tq7YtYvX0Rq7cvYvX2RazevojV2xexevsiVm9fxOrti1i9fRGrty9i9fZFrN6+iNXbJ1i9fYLV2ydYvX2C1dsnDmpVFqzePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN4+wertE6zePsHq7ROs3j7B6u0TrN6+hNXbl7B6+xJWb1/C6u1LDmpVTli9fQmrty9h9fYlrN6+hNXbl7B6+xJWb1/C6u1LWL19Cau3L2H19iWs3r6E1duXsHr7ElZvX8Lq7UtYvX0Jq7cvYfX2JazevoTV25ewevsSVm9fwurtS1i9fQmrty9h9fYlrN6+hNXbl7B6+xJWb1/C6u1LWL19Cau3L2H19iWs3r6E1duXsHr7ElZvX8Lq7UtYvX0Jq7cvYfX2JazevoTV25ewevsSVm9fwurtS1i9fQmrty9h9fYlrN6+hNXbl7B6+xJWb1/C6u1LWL19Cau3L2H19iWs3r6E1duXsHr7ElZvX8Lq7UtYvX0Jq7cvYfX2JazevoTV25ewevsSVm9fwurtS1i9fQmrty9h9fYlrN6+hNXbl7B6+xJWb1/C6u1LWL19Cau3L2H19iWs3r6E1duXsHr7ElZvX8Lq7UtYvX0Jq7cvYfX2JazevoTV25ewevsSVm9fxurty1i9fRmrty9j9fZlB7UqZ6zevozV25exevsyVm9fxurty1i9fRmrty9j9fZlrN6+jNXbl7F6+zJWb1/G6u3LWL19Gau3L2P19mWs3r6M1duXsXr7MlZvX8bq7ctYvX0Zq7cvY/X2ZazevozV25exevsyVm9fxurty1i9fRmrty9j9fZlrN6+jNXbl7F6+zJWb1/G6u3LWL19Gau3L2P19mWs3r6M1duXsXr7MlZvX8bq7ctYvX0Zq7cvY/X2ZazevozV25exevsyVm9fxurty1i9fRmrty9j9fZlrN6+jNXbl7F6+zJWb1/G6u3LWL19Gau3L2P19mWs3r6M1duXsXr7MlZvX8bq7ctYvX0Zq7cvY/X2ZazevozV25exevsyVm9fxurty1i9fRmrty9j9fZlrN6+jNXbl7F6+zJWb1/G6u3LWL19Gau3L2P19mWs3r6M1duXsXr7MlZvX8bq7ctYvX0Zq7dPsXr7FKu3T7F6+xSrt08d1KqsWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp1i9fYrV26dYvX2K1dunWL19itXbp917+4q/XBxKrMefLFvyPy6WoHG/2NcHFydx+cfFSYLcXvxNaGERWjmElu6djm8T6lmEBhahkUWosAhNLEIzi1ASMiqOhIyKYyEj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",
3632
+ "bytecode": "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",
3633
+ "debug_symbols": "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",
3799
3634
  "brillig_names": [
3800
- "get_note_internal",
3635
+ "get_contract_instance_internal",
3801
3636
  "decompose_hint",
3802
- "get_auth_witness",
3637
+ "lte_hint",
3638
+ "notify_created_nullifier_oracle_wrapper",
3639
+ "notify_created_note_oracle_wrapper",
3640
+ "debug_log_oracle_wrapper",
3641
+ "get_random_bytes",
3642
+ "random",
3643
+ "field_less_than",
3803
3644
  "build_msg_block",
3804
3645
  "attach_len_to_msg_block",
3805
- "enqueue_public_function_call_internal",
3806
- "call_private_function_internal",
3807
- "debug_log_oracle_wrapper",
3808
- "notify_set_min_revertible_side_effect_counter_oracle_wrapper",
3809
- "notify_created_nullifier_oracle_wrapper",
3810
- "directive_invert",
3646
+ "get_app_tag_as_sender",
3647
+ "increment_app_tagging_secret_index_as_sender_wrapper",
3811
3648
  "directive_integer_quotient",
3649
+ "directive_invert",
3812
3650
  "directive_to_radix"
3813
3651
  ],
3814
- "verification_key": "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"
3652
+ "verification_key": "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"
3815
3653
  },
3816
3654
  {
3817
- "name": "verify_private_authwit",
3655
+ "name": "entrypoint",
3818
3656
  "is_unconstrained": false,
3819
3657
  "custom_attributes": [
3820
- "private",
3821
- "noinitcheck",
3822
- "view"
3658
+ "private"
3823
3659
  ],
3824
3660
  "abi": {
3825
3661
  "error_types": {
@@ -3844,22 +3680,18 @@
3844
3680
  "error_kind": "string",
3845
3681
  "string": "Stack too deep"
3846
3682
  },
3847
- "19458536156181958": {
3848
- "error_kind": "string",
3849
- "string": "Function verify_private_authwit can only be called statically"
3850
- },
3851
3683
  "2920182694213909827": {
3852
3684
  "error_kind": "string",
3853
3685
  "string": "attempt to subtract with overflow"
3854
3686
  },
3855
- "4939791462094160055": {
3856
- "error_kind": "string",
3857
- "string": "Message not authorized by account"
3858
- },
3859
3687
  "5019202896831570965": {
3860
3688
  "error_kind": "string",
3861
3689
  "string": "attempt to add with overflow"
3862
3690
  },
3691
+ "5727012404371710682": {
3692
+ "error_kind": "string",
3693
+ "string": "push out of bounds"
3694
+ },
3863
3695
  "6869395374906889440": {
3864
3696
  "error_kind": "string",
3865
3697
  "string": "Mismatch note header contract address."
@@ -4352,9 +4184,173 @@
4352
4184
  "visibility": "private"
4353
4185
  },
4354
4186
  {
4355
- "name": "inner_hash",
4187
+ "name": "app_payload",
4356
4188
  "type": {
4357
- "kind": "field"
4189
+ "fields": [
4190
+ {
4191
+ "name": "function_calls",
4192
+ "type": {
4193
+ "kind": "array",
4194
+ "length": 4,
4195
+ "type": {
4196
+ "fields": [
4197
+ {
4198
+ "name": "args_hash",
4199
+ "type": {
4200
+ "kind": "field"
4201
+ }
4202
+ },
4203
+ {
4204
+ "name": "function_selector",
4205
+ "type": {
4206
+ "fields": [
4207
+ {
4208
+ "name": "inner",
4209
+ "type": {
4210
+ "kind": "integer",
4211
+ "sign": "unsigned",
4212
+ "width": 32
4213
+ }
4214
+ }
4215
+ ],
4216
+ "kind": "struct",
4217
+ "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"
4218
+ }
4219
+ },
4220
+ {
4221
+ "name": "target_address",
4222
+ "type": {
4223
+ "fields": [
4224
+ {
4225
+ "name": "inner",
4226
+ "type": {
4227
+ "kind": "field"
4228
+ }
4229
+ }
4230
+ ],
4231
+ "kind": "struct",
4232
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
4233
+ }
4234
+ },
4235
+ {
4236
+ "name": "is_public",
4237
+ "type": {
4238
+ "kind": "boolean"
4239
+ }
4240
+ },
4241
+ {
4242
+ "name": "is_static",
4243
+ "type": {
4244
+ "kind": "boolean"
4245
+ }
4246
+ }
4247
+ ],
4248
+ "kind": "struct",
4249
+ "path": "authwit::entrypoint::function_call::FunctionCall"
4250
+ }
4251
+ }
4252
+ },
4253
+ {
4254
+ "name": "nonce",
4255
+ "type": {
4256
+ "kind": "field"
4257
+ }
4258
+ }
4259
+ ],
4260
+ "kind": "struct",
4261
+ "path": "authwit::entrypoint::app::AppPayload"
4262
+ },
4263
+ "visibility": "private"
4264
+ },
4265
+ {
4266
+ "name": "fee_payload",
4267
+ "type": {
4268
+ "fields": [
4269
+ {
4270
+ "name": "function_calls",
4271
+ "type": {
4272
+ "kind": "array",
4273
+ "length": 2,
4274
+ "type": {
4275
+ "fields": [
4276
+ {
4277
+ "name": "args_hash",
4278
+ "type": {
4279
+ "kind": "field"
4280
+ }
4281
+ },
4282
+ {
4283
+ "name": "function_selector",
4284
+ "type": {
4285
+ "fields": [
4286
+ {
4287
+ "name": "inner",
4288
+ "type": {
4289
+ "kind": "integer",
4290
+ "sign": "unsigned",
4291
+ "width": 32
4292
+ }
4293
+ }
4294
+ ],
4295
+ "kind": "struct",
4296
+ "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"
4297
+ }
4298
+ },
4299
+ {
4300
+ "name": "target_address",
4301
+ "type": {
4302
+ "fields": [
4303
+ {
4304
+ "name": "inner",
4305
+ "type": {
4306
+ "kind": "field"
4307
+ }
4308
+ }
4309
+ ],
4310
+ "kind": "struct",
4311
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
4312
+ }
4313
+ },
4314
+ {
4315
+ "name": "is_public",
4316
+ "type": {
4317
+ "kind": "boolean"
4318
+ }
4319
+ },
4320
+ {
4321
+ "name": "is_static",
4322
+ "type": {
4323
+ "kind": "boolean"
4324
+ }
4325
+ }
4326
+ ],
4327
+ "kind": "struct",
4328
+ "path": "authwit::entrypoint::function_call::FunctionCall"
4329
+ }
4330
+ }
4331
+ },
4332
+ {
4333
+ "name": "nonce",
4334
+ "type": {
4335
+ "kind": "field"
4336
+ }
4337
+ },
4338
+ {
4339
+ "name": "is_fee_payer",
4340
+ "type": {
4341
+ "kind": "boolean"
4342
+ }
4343
+ }
4344
+ ],
4345
+ "kind": "struct",
4346
+ "path": "authwit::entrypoint::fee::FeePayload"
4347
+ },
4348
+ "visibility": "private"
4349
+ },
4350
+ {
4351
+ "name": "cancellable",
4352
+ "type": {
4353
+ "kind": "boolean"
4358
4354
  },
4359
4355
  "visibility": "private"
4360
4356
  }
@@ -5464,20 +5460,24 @@
5464
5460
  "visibility": "databus"
5465
5461
  }
5466
5462
  },
5467
- "bytecode": "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",
5468
- "debug_symbols": "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",
5463
+ "bytecode": "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V9t+2qZom6ptmrb9tR2g7UBt07XN0DZT20HaZmk7WNsh2g7Vdpi2w7Udoe1IbUdpm63taG1ztB2j7Vhtx2k7XttcbfO0naDtRG0naTtZ2ynaTtV2mrbTtZ2h7UxtZ2k7W9s52s7Vdp6287VdoO1CbRdpu1jbJdou1XaZtvnaLtd2hbYrtV2l7Wpt12i7Vtt12q7XdoO2G7XdpO1mbbdou1Xbbdpu13aHtju13aXtbm33aPuftnu13aftfm0PaHtQ20PaHtb2iLYF2h7V9pi2hdoe17ZI2xPantT2lLantT2jbbG2Z7Ut0factqXante2TNsL2pZre1HbS9pe1rZC2yvaXtX2mrbXtb2h7U1tb2l7W9s72t7V9p6297V9oO1DbR9p+1jbJ9o+1faZts+1faHtS21fafta2zfavtX2nbbvtf2g7UdtP2n7Wdsv2n7V9pu237X9oe1PbX9p+1ubEfQMbbW0ZWrL0patLUdbbW11tNXVlqutnrb62hpoa6itkbY8bY21NdHWVFszbc21tdC2ibaW2lppa61tU22baWujra22zbW107aFti21baVta23baNtWW3ttHbRtp217bR21ddLWWdsO2nbU5mlT2qLa8rUVaCvUVqStWFuJtlJtXbR11dZN207aumvbWVsPbT219dLWW1sfbX219dPWX9sAbQO17aJtkLbB2oZo21XbUG3DtO2mbbi23bWN0DZS2x7aRmnbU9tobWO07aVtrLa9tY3TNl7bBG1l2sq1VWir1FalrVrbPtomapukbbK2fbXtp22KtqnapmnbX9sB2g7UNl3bDG0ztR2kbZa2g7Udou1QbYdpO1zbEdqO1HaUttnajtY2R9sx2o7Vdpy247XN1TZP2wnaTtR2kraTtZn3y5t3t5v3opt3jpv3eZt3ZZv3UJt3PJv3J5t3E5v3/pp36pr31Zp3wZr3rJp3mJr3g5p3b5r3Ws7XZt7HaN51aN4jaN7RZ95/Z94tZ97bZt6JZt43Zt7lZd6TZd5BZd7vZN6dZN5LZN75Y96nY95VY94DY96xYt5fYt4NYt67Yd5pYd4XYd7FYN5zYN4hYJ7Pb559b54rv0CbeR66eda4eY63eUa2ef60ebazeW6yeSaxed6veZaueU6teQaseb6qeXapeS6oeeameZ6leVakeQ6jecaheX6geTafee6deaaceV6b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",
5464
+ "debug_symbols": "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sHr7ElZvX8Lq7UtYvX0Jq7cvYfX2JazevoTV25ewevsSVm9fwurtS1i9fQmrty9h9fYlrN6+hNXbl7B6+xJWb1/C6u1LWL19Cau3L2H19iWs3r6E1duXsHr7ElZvX8Lq7UtYvX0Jq7cvYfX2JazevoTV25ewevsSVm9fwurtS1i9fQmrty9j9fZlrN6+jNXbl7F6+7KDWpUzVm9fxurty1i9fRmrty9j9fZlrN6+jNXbl7F6+zJWb1/G6u3LWL19Gau3L2P19mWs3r6M1duXsXr7MlZvX8bq7ctYvX0Zq7cvY/X2ZazevozV25exevsyVm9fxurty1i9fRmrty9j9fZlrN6+jNXbl7F6+zJWb1/G6u3LWL19Gau3L2P19mWs3r6M1duXsXr7MlZvX8bq7ctYvX0Zq7cvY/X2ZazevozV25exevsyVm9fxurty1i9fRmrty9j9fZlrN6+jNXbl7F6+zJWb1/G6u3LWL19Gau3L2P19mWs3r6M1duXsXr7MlZvX8bq7ctYvX0Zq7cvY/X2ZazevozV25exevsyVm9fxurty1i9fRmrty9j9fZlrN6+jNXbl7F6+zJWb1/G6u3LWL19Gau3L2P19mWs3r6M1duXsXr7MlZvX8bq7ctYvX0Zq7cvY/X2ZazevozV26dYvX2K1dunWL19itXbpw5qVVas3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u1TrN4+xertU6zePsXq7VOs3j7F6u3T7r19RS4X+xLq8SfHLfkfF0evYb9Y6oOLU3T5x8Up+nh78TehhUVo5RBaunc6vk2osAj1LEIDi9DIIjSxCM0s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",
5469
5465
  "brillig_names": [
5470
5466
  "get_note_internal",
5471
5467
  "decompose_hint",
5472
5468
  "get_auth_witness",
5473
5469
  "build_msg_block",
5474
5470
  "attach_len_to_msg_block",
5475
- "store_in_execution_cache_oracle_wrapper",
5471
+ "enqueue_public_function_call_internal",
5472
+ "call_private_function_internal",
5473
+ "debug_log_oracle_wrapper",
5474
+ "notify_set_min_revertible_side_effect_counter_oracle_wrapper",
5475
+ "notify_created_nullifier_oracle_wrapper",
5476
5476
  "directive_invert",
5477
5477
  "directive_integer_quotient",
5478
5478
  "directive_to_radix"
5479
5479
  ],
5480
- "verification_key": "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"
5480
+ "verification_key": "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"
5481
5481
  }
5482
5482
  ],
5483
5483
  "outputs": {
@@ -5652,6 +5652,33 @@
5652
5652
  "kind": "struct",
5653
5653
  "path": "EcdsaKAccount::constructor_abi"
5654
5654
  },
5655
+ {
5656
+ "fields": [
5657
+ {
5658
+ "name": "parameters",
5659
+ "type": {
5660
+ "fields": [
5661
+ {
5662
+ "name": "inner_hash",
5663
+ "type": {
5664
+ "kind": "field"
5665
+ }
5666
+ }
5667
+ ],
5668
+ "kind": "struct",
5669
+ "path": "EcdsaKAccount::verify_private_authwit_parameters"
5670
+ }
5671
+ },
5672
+ {
5673
+ "name": "return_type",
5674
+ "type": {
5675
+ "kind": "field"
5676
+ }
5677
+ }
5678
+ ],
5679
+ "kind": "struct",
5680
+ "path": "EcdsaKAccount::verify_private_authwit_abi"
5681
+ },
5655
5682
  {
5656
5683
  "fields": [
5657
5684
  {
@@ -5834,33 +5861,6 @@
5834
5861
  ],
5835
5862
  "kind": "struct",
5836
5863
  "path": "EcdsaKAccount::entrypoint_abi"
5837
- },
5838
- {
5839
- "fields": [
5840
- {
5841
- "name": "parameters",
5842
- "type": {
5843
- "fields": [
5844
- {
5845
- "name": "inner_hash",
5846
- "type": {
5847
- "kind": "field"
5848
- }
5849
- }
5850
- ],
5851
- "kind": "struct",
5852
- "path": "EcdsaKAccount::verify_private_authwit_parameters"
5853
- }
5854
- },
5855
- {
5856
- "name": "return_type",
5857
- "type": {
5858
- "kind": "field"
5859
- }
5860
- }
5861
- ],
5862
- "kind": "struct",
5863
- "path": "EcdsaKAccount::verify_private_authwit_abi"
5864
5864
  }
5865
5865
  ]
5866
5866
  }
@@ -5876,7 +5876,7 @@
5876
5876
  },
5877
5877
  "108": {
5878
5878
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/macros/functions/initialization_utils.nr",
5879
- "source": "use dep::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::GENERATOR_INDEX__CONSTRUCTOR, hash::poseidon2_hash_with_separator,\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext},\n oracle::get_contract_instance::{\n get_contract_instance, get_contract_instance_deployer_avm,\n get_contract_instance_initialization_hash_avm,\n },\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier =\n compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier =\n compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let deployer = get_contract_instance_deployer_avm(address).unwrap();\n let initialization_hash = get_contract_instance_initialization_hash_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (deployer.is_zero()) | (deployer == context.msg_sender()),\n \"Initializer address is not the contract deployer\",\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()),\n \"Initializer address is not the contract deployer\",\n );\n}\n\nfn compute_initialization_hash(init_selector: FunctionSelector, init_args_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR,\n )\n}\n"
5879
+ "source": "use dep::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::GENERATOR_INDEX__CONSTRUCTOR, hash::poseidon2_hash_with_separator,\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext},\n oracle::get_contract_instance::{\n get_contract_instance, get_contract_instance_deployer_avm,\n get_contract_instance_initialization_hash_avm,\n },\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier =\n compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier =\n compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let deployer = get_contract_instance_deployer_avm(address).unwrap();\n let initialization_hash = get_contract_instance_initialization_hash_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (deployer.is_zero()) | (deployer == context.msg_sender()),\n \"Initializer address is not the contract deployer\",\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()),\n \"Initializer address is not the contract deployer\",\n );\n}\n\n/// This function is not only used in macros but it's also used by external people to check that an instance has been\n/// initialized with the correct constructor arguments. Don't hide this unless you implement factory functionality.\npub fn compute_initialization_hash(\n init_selector: FunctionSelector,\n init_args_hash: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR,\n )\n}\n"
5880
5880
  },
5881
5881
  "117": {
5882
5882
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/note/discovery/mod.nr",
@@ -5912,7 +5912,7 @@
5912
5912
  },
5913
5913
  "133": {
5914
5914
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/oracle/execution_cache.nr",
5915
- "source": "/// Stores values represented as slice in execution cache to be later obtained by its hash.\npub fn store(values: [Field]) {\n /// Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n /// to call. When loading the values, however, the caller must check that the values are indeed the preimage.\n unsafe { store_in_execution_cache_oracle_wrapper(values) };\n}\n\n/// Stores values represented as array in execution cache to be later obtained by its hash.\npub fn store_array<let N: u32>(values: [Field; N]) {\n /// Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n /// to call. When loading the values, however, the caller must check that the values are indeed the preimage.\n unsafe { store_array_in_execution_cache_oracle_wrapper(values) };\n}\n\npub unconstrained fn store_in_execution_cache_oracle_wrapper(values: [Field]) {\n let _ = store_in_execution_cache_oracle(values);\n}\n\npub unconstrained fn store_array_in_execution_cache_oracle_wrapper<let N: u32>(values: [Field; N]) {\n let _ = store_array_in_execution_cache_oracle(values);\n}\n\npub unconstrained fn load<let N: u32>(hash: Field) -> [Field; N] {\n load_from_execution_cache_oracle(hash)\n}\n\n#[oracle(storeInExecutionCache)]\nunconstrained fn store_in_execution_cache_oracle(_values: [Field]) -> Field {}\n\n#[oracle(storeArrayInExecutionCache)]\nunconstrained fn store_array_in_execution_cache_oracle<let N: u32>(_args: [Field; N]) -> Field {}\n\n#[oracle(loadFromExecutionCache)]\nunconstrained fn load_from_execution_cache_oracle<let N: u32>(_hash: Field) -> [Field; N] {}\n"
5915
+ "source": "/// Stores values represented as slice in execution cache to be later obtained by its hash.\npub fn store(values: [Field]) {\n /// Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n /// to call. When loading the values, however, the caller must check that the values are indeed the preimage.\n unsafe { store_in_execution_cache_oracle_wrapper(values) };\n}\n\npub unconstrained fn store_in_execution_cache_oracle_wrapper(values: [Field]) {\n let _ = store_in_execution_cache_oracle(values);\n}\n\npub unconstrained fn load<let N: u32>(hash: Field) -> [Field; N] {\n load_from_execution_cache_oracle(hash)\n}\n\n#[oracle(storeInExecutionCache)]\nunconstrained fn store_in_execution_cache_oracle(_values: [Field]) -> Field {}\n\n#[oracle(loadFromExecutionCache)]\nunconstrained fn load_from_execution_cache_oracle<let N: u32>(_hash: Field) -> [Field; N] {}\n"
5916
5916
  },
5917
5917
  "134": {
5918
5918
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr",
@@ -5940,7 +5940,7 @@
5940
5940
  },
5941
5941
  "152": {
5942
5942
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr",
5943
- "source": "use dep::protocol_types::{\n constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Serialize},\n};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note,\n note_emission::NoteEmission,\n note_getter::{get_note, view_notes},\n note_interface::{NoteInterface, NullifiableNote},\n note_viewer_options::NoteViewerOptions,\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\npub struct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context, let N: u32> Storage<T, N> for PrivateImmutable<T, Context>\nwhere\n T: Serialize<N> + Deserialize<N>,\n{\n fn get_storage_slot(self) -> Field {\n self.storage_slot\n }\n}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor.\n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<let N: u32>(self, note: &mut Note) -> NoteEmission<Note>\n where\n Note: NoteInterface<N> + NullifiableNote,\n {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<let N: u32>(self) -> Note\n where\n Note: NoteInterface<N> + NullifiableNote,\n {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n pub unconstrained fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n pub unconstrained fn view_note<let N: u32>(self) -> Note\n where\n Note: NoteInterface<N> + NullifiableNote,\n {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"
5943
+ "source": "use dep::protocol_types::{\n constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER, hash::poseidon2_hash_with_separator,\n traits::Packable,\n};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note,\n note_emission::NoteEmission,\n note_getter::{get_note, view_notes},\n note_interface::{NoteInterface, NullifiableNote},\n note_viewer_options::NoteViewerOptions,\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\npub struct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context, let N: u32> Storage<T, N> for PrivateImmutable<T, Context>\nwhere\n T: Packable<N>,\n{\n fn get_storage_slot(self) -> Field {\n self.storage_slot\n }\n}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor.\n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<let N: u32>(self, note: &mut Note) -> NoteEmission<Note>\n where\n Note: NoteInterface<N> + NullifiableNote,\n {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<let N: u32>(self) -> Note\n where\n Note: NoteInterface<N> + NullifiableNote,\n {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n pub unconstrained fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n pub unconstrained fn view_note<let N: u32>(self) -> Note\n where\n Note: NoteInterface<N> + NullifiableNote,\n {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"
5944
5944
  },
5945
5945
  "17": {
5946
5946
  "path": "std/embedded_curve_ops.nr",
@@ -5970,39 +5970,39 @@
5970
5970
  "path": "std/hash/mod.nr",
5971
5971
  "source": "pub mod poseidon;\npub mod poseidon2;\npub mod keccak;\npub mod sha256;\npub mod sha512;\n\nuse crate::default::Default;\nuse crate::embedded_curve_ops::{\n EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_array_return,\n};\nuse crate::meta::derive_via;\nuse crate::uint128::U128;\n\n// Kept for backwards compatibility\npub use sha256::{digest, sha256, sha256_compression, sha256_var};\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n#[inline_always]\npub fn pedersen_commitment_with_separator<let N: u32>(\n input: [Field; N],\n separator: u32,\n) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n#[no_predicates]\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: [EmbeddedCurveScalar; N + 1] = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N + 1];\n let mut generators: [EmbeddedCurvePoint; N + 1] =\n [EmbeddedCurvePoint::point_at_infinity(); N + 1];\n let domain_generators: [EmbeddedCurvePoint; N] =\n derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n\n for i in 0..N {\n scalars[i] = from_field_unsafe(input[i]);\n generators[i] = domain_generators[i];\n }\n scalars[N] = EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field };\n\n let length_generator: [EmbeddedCurvePoint; 1] =\n derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n generators[N] = length_generator[0];\n multi_scalar_mul_array_return(generators, scalars)[0]\n}\n\n#[field(bn254)]\n#[inline_always]\npub fn derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n// Same as from_field but:\n// does not assert the limbs are 128 bits\n// does not assert the decomposition does not overflow the EmbeddedCurveScalar\nfn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n /// Safety: xlo and xhi decomposition is checked below\n let (xlo, xhi) = unsafe { crate::field::bn254::decompose_hint(scalar) };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n// Generic hashing support.\n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\npub trait Hash {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: StructDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(\n s,\n name,\n signature,\n for_each_field,\n quote {},\n |fields| fields,\n )\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\npub trait Hasher {\n fn finish(self) -> Field;\n\n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\npub trait BuildHasher<H>\nwhere\n H: Hasher,\n{\n fn build_hasher(self) -> H;\n}\n\npub struct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n fn build_hasher(_self: Self) -> H {\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n fn default() -> Self {\n BuildHasherDefault {}\n }\n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H)\n where\n H: Hasher,\n {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B)\nwhere\n A: Hash,\n B: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1),\n 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f,\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1),\n EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false,\n },\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2),\n 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2),\n EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3),\n 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3),\n EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4),\n 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4),\n EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5),\n 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5),\n EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6),\n 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6),\n EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false,\n },\n );\n}\n"
5972
5972
  },
5973
- "235": {
5973
+ "236": {
5974
5974
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr",
5975
5975
  "source": "use crate::{point::Point, traits::{Deserialize, Empty, Serialize}};\npub use crate::constants::KEY_VALIDATION_REQUEST_LENGTH;\n\npub struct KeyValidationRequest {\n pub pk_m: Point,\n pub sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m)) & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest { pk_m: Point::empty(), sk_app: 0 }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [self.pk_m.x, self.pk_m.y, self.pk_m.is_infinite as Field, self.sk_app]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x: fields[0], y: fields[1], is_infinite: fields[2] as bool },\n sk_app: fields[3],\n }\n }\n}\n"
5976
5976
  },
5977
- "242": {
5977
+ "243": {
5978
5978
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
5979
- "source": "use crate::{\n abis::function_selector::FunctionSelector,\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{\n AZTEC_ADDRESS_LENGTH, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n MAX_FIELD_VALUE,\n },\n contract_class_id::ContractClassId,\n hash::{poseidon2_hash_with_separator, private_functions_root_from_siblings},\n merkle_tree::membership::MembershipWitness,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, ToPoint, TpkM},\n traits::{Deserialize, Empty, FromField, Serialize, ToField},\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse ec::{pow, sqrt};\nuse std::{\n embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n ops::Add,\n};\n\n// Aztec address\npub struct AztecAddress {\n pub inner: Field,\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn to_address_point(self) -> AddressPoint {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // TODO (#8970): Handle cases where we cannot recover a point from an address\n let mut y = sqrt(y_squared);\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secrect can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_private_function(\n function_selector: FunctionSelector,\n function_vk_hash: Field,\n function_leaf_membership_witness: MembershipWitness<FUNCTION_TREE_HEIGHT>,\n contract_class_artifact_hash: Field,\n contract_class_public_bytecode_commitment: Field,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let private_functions_root = private_functions_root_from_siblings(\n function_selector,\n function_vk_hash,\n function_leaf_membership_witness.leaf_index,\n function_leaf_membership_witness.sibling_path,\n );\n\n let contract_class_id = ContractClassId::compute(\n contract_class_artifact_hash,\n private_functions_root,\n contract_class_public_bytecode_commitment,\n );\n\n // Compute contract address using the preimage which includes the class_id.\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_address)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn compute_preaddress_from_partial_and_pub_keys() {\n let pre_address = poseidon2_hash_with_separator([1, 2], GENERATOR_INDEX__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(pre_address == expected_computed_preaddress_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"
5979
+ "source": "use crate::{\n abis::function_selector::FunctionSelector,\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{\n AZTEC_ADDRESS_LENGTH, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n MAX_FIELD_VALUE,\n },\n contract_class_id::ContractClassId,\n hash::{poseidon2_hash_with_separator, private_functions_root_from_siblings},\n merkle_tree::membership::MembershipWitness,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, ToPoint, TpkM},\n traits::{Deserialize, Empty, FromField, Packable, Serialize, ToField},\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse ec::{pow, sqrt};\nuse std::{\n embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n ops::Add,\n};\n\n// Aztec address\npub struct AztecAddress {\n pub inner: Field,\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\n/// We implement the Packable trait for AztecAddress because it can be stored in contract's storage (and there\n/// the implementation of Packable is required).\nimpl Packable<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn pack(self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n self.serialize()\n }\n\n fn unpack(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n Self::deserialize(fields)\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn to_address_point(self) -> AddressPoint {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // TODO (#8970): Handle cases where we cannot recover a point from an address\n let mut y = sqrt(y_squared);\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secrect can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_private_function(\n function_selector: FunctionSelector,\n function_vk_hash: Field,\n function_leaf_membership_witness: MembershipWitness<FUNCTION_TREE_HEIGHT>,\n contract_class_artifact_hash: Field,\n contract_class_public_bytecode_commitment: Field,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let private_functions_root = private_functions_root_from_siblings(\n function_selector,\n function_vk_hash,\n function_leaf_membership_witness.leaf_index,\n function_leaf_membership_witness.sibling_path,\n );\n\n let contract_class_id = ContractClassId::compute(\n contract_class_artifact_hash,\n private_functions_root,\n contract_class_public_bytecode_commitment,\n );\n\n // Compute contract address using the preimage which includes the class_id.\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_address)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn compute_preaddress_from_partial_and_pub_keys() {\n let pre_address = poseidon2_hash_with_separator([1, 2], GENERATOR_INDEX__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(pre_address == expected_computed_preaddress_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"
5980
5980
  },
5981
- "245": {
5981
+ "246": {
5982
5982
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr",
5983
5983
  "source": "use crate::{\n address::{aztec_address::AztecAddress, salted_initialization_hash::SaltedInitializationHash},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Serialize, ToField},\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n pub inner: Field,\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress,\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer),\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n ) -> Self {\n PartialAddress::from_field(poseidon2_hash_with_separator(\n [contract_class_id.to_field(), salted_initialization_hash.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
5984
5984
  },
5985
- "247": {
5985
+ "248": {
5986
5986
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr",
5987
5987
  "source": "use crate::{\n address::aztec_address::AztecAddress, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField,\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n pub inner: Field,\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(poseidon2_hash_with_separator(\n [salt, initialization_hash, deployer.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
5988
5988
  },
5989
- "252": {
5989
+ "253": {
5990
5990
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr",
5991
5991
  "source": "use crate::{\n address::{aztec_address::AztecAddress, partial_address::PartialAddress},\n constants::CONTRACT_INSTANCE_LENGTH,\n contract_class_id::ContractClassId,\n public_keys::PublicKeys,\n traits::{Deserialize, FromField, Hash, Serialize, ToField},\n};\n\npub struct ContractInstance {\n pub salt: Field,\n pub deployer: AztecAddress,\n pub contract_class_id: ContractClassId,\n pub initialization_hash: Field,\n pub public_keys: PublicKeys,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys.eq(other.public_keys)\n & self.initialization_hash.eq(other.initialization_hash)\n & self.contract_class_id.eq(other.contract_class_id)\n & self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n let public_keys_serialized = self.public_keys.serialize();\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n public_keys_serialized[0],\n public_keys_serialized[1],\n public_keys_serialized[2],\n public_keys_serialized[3],\n public_keys_serialized[4],\n public_keys_serialized[5],\n public_keys_serialized[6],\n public_keys_serialized[7],\n public_keys_serialized[8],\n public_keys_serialized[9],\n public_keys_serialized[10],\n public_keys_serialized[11],\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys: PublicKeys::deserialize([\n serialized[4],\n serialized[5],\n serialized[6],\n serialized[7],\n serialized[8],\n serialized[9],\n serialized[10],\n serialized[11],\n serialized[12],\n serialized[13],\n serialized[14],\n serialized[15],\n ]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n pub fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer,\n ),\n )\n }\n}\n"
5992
5992
  },
5993
- "258": {
5993
+ "259": {
5994
5994
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
5995
5995
  "source": "/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n /// Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n /// to call.\n unsafe { debug_log_oracle_wrapper(msg, args) };\n}\n\npub unconstrained fn debug_log_oracle_wrapper<let M: u32, let N: u32>(\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"
5996
5996
  },
5997
- "259": {
5998
- "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
5999
- "source": "use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n log_hash::{LogHash, ScopedLogHash},\n note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n private_log::{PrivateLog, PrivateLogData},\n side_effect::{OrderedValue, scoped::Scoped},\n },\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n },\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n poseidon2::Poseidon2Sponge,\n traits::{FromField, Hash, is_empty, ToField},\n utils::field::field_from_bytes_32_trunc,\n};\nuse super::{constants::TWO_POW_64, utils::{arrays::array_concat, field::field_from_bytes}};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n let nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(nonce, siloed_note_hash)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.value())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<PrivateLogData>) -> PrivateLog {\n if private_log.contract_address.is_zero() {\n private_log.inner.log\n } else {\n let mut fields = private_log.inner.log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog { fields }\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: [u8; 160] = std::mem::zeroed();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..5 {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes[32 * i + j] = item_bytes[j];\n }\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\npub fn compute_tx_logs_hash<let N: u32>(logs: [LogHash; N]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; N * 32];\n for offset in 0..N {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = array_concat([separator.to_field()], inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n// Performs a fixed length hash with a subarray of the given input.\n// Useful for SpongeBlob in which we aborb M things and want to check it vs a hash of M elts of an N-len array.\n// Using stdlib poseidon, this will always absorb an extra 1 as a 'variable' hash, and not match spongeblob.squeeze()\n// or any ts implementation. Also checks that any remaining elts not hashed are empty.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, false);\n sponge.squeeze()\n}\n\n// NB the below is the same as std::hash::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, true);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// The below fn reduces gates of a conditional poseidon2 hash by approx 3x (thank you ~* Giant Brain Dev @IlyasRidhuan *~ for the idea)\n// Why? Because when we call stdlib poseidon, we call absorb for each item. When absorbing is conditional, it seems the compiler does not know\n// what cache_size will be when calling absorb, so it assigns the permutation gates for /each i/ rather than /every 3rd i/, which is actually required.\n// The below code forces the compiler to:\n// - absorb normally up to 2 times to set cache_size to 1\n// - absorb in chunks of 3 to ensure perm. only happens every 3rd absorb\n// - absorb normally up to 2 times to add any remaining values to the hash\n// In fixed len hashes, the compiler is able to tell that it will only need to perform the permutation every 3 absorbs.\n// NB: it also replaces unnecessary range checks (i < thing) with a bit check (&= i != thing), which alone reduces the gates of a var. hash by half.\n\n#[no_predicates]\nfn poseidon2_absorb_chunks<let N: u32>(\n input: [Field; N],\n in_len: u32,\n variable: bool,\n) -> Poseidon2Sponge {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n // Even though shift is always 1 here, if we input in_len = 0 we get an underflow\n // since we cannot isolate computation branches. The below is just to avoid that.\n let shift = if in_len == 0 { 0 } else { 1 };\n if in_len != 0 {\n // cache_size = 0, init absorb\n sponge.cache[0] = input[0];\n sponge.cache_size = 1;\n // shift = num elts already added to make cache_size 1 = 1 for a fresh sponge\n // M = max_chunks = (N - 1 - (N - 1) % 3) / 3: (must be written as a fn of N to compile)\n // max_remainder = (N - 1) % 3;\n // max_chunks = (N - 1 - max_remainder) / 3;\n sponge = poseidon2_absorb_chunks_loop::<N, (N - 1 - (N - 1) % 3) / 3>(\n sponge,\n input,\n in_len,\n variable,\n shift,\n );\n }\n sponge\n}\n\n// NB: If it's not required to check that the non-absorbed elts of 'input' are 0s, set skip_0_check=true\n#[no_predicates]\npub fn poseidon2_absorb_chunks_existing_sponge<let N: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n skip_0_check: bool,\n) -> Poseidon2Sponge {\n let mut sponge = in_sponge;\n // 'shift' is to account for already added inputs\n let mut shift = 0;\n // 'stop' is to avoid an underflow when inputting in_len = 0\n let mut stop = false;\n for i in 0..3 {\n if shift == in_len {\n stop = true;\n }\n if (sponge.cache_size != 1) & (!stop) {\n sponge.absorb(input[i]);\n shift += 1;\n }\n }\n sponge = if stop {\n sponge\n } else {\n // max_chunks = (N - (N % 3)) / 3;\n poseidon2_absorb_chunks_loop::<N, (N - (N % 3)) / 3>(\n sponge,\n input,\n in_len,\n skip_0_check,\n shift,\n )\n };\n sponge\n}\n\n// The below is the loop to absorb elts into a poseidon sponge in chunks of 3\n// shift - the num of elts already absorbed to ensure the sponge's cache_size = 1\n// M - the max number of chunks required to absorb N things (must be comptime to compile)\n// NB: The 0 checks ('Found non-zero field...') are messy, but having a separate loop over N to check\n// for 0s costs 3N gates. Current approach is approx 2N gates.\n#[no_predicates]\nfn poseidon2_absorb_chunks_loop<let N: u32, let M: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n variable: bool,\n shift: u32,\n) -> Poseidon2Sponge {\n assert(in_len <= N, \"Given in_len to absorb is larger than the input array len\");\n // When we have an existing sponge, we may have a shift of 0, and the final 'k+2' below = N\n // The below avoids an overflow\n let skip_last = 3 * M == N;\n // Writing in_sponge: &mut does not compile\n let mut sponge = in_sponge;\n let mut should_add = true;\n // The num of things left over after absorbing in 3s\n let remainder = (in_len - shift) % 3;\n // The num of chunks of 3 to absorb (maximum M)\n let chunks = (in_len - shift - remainder) / 3;\n for i in 0..M {\n // Now we loop through cache size = 1 -> 3\n should_add &= i != chunks;\n // This is the index at the start of the chunk (for readability)\n let k = 3 * i + shift;\n if should_add {\n // cache_size = 1, 2 => just assign\n sponge.cache[1] = input[k];\n sponge.cache[2] = input[k + 1];\n // cache_size = 3 => duplex + perm\n for j in 0..3 {\n sponge.state[j] += sponge.cache[j];\n }\n sponge.state = std::hash::poseidon2_permutation(sponge.state, 4);\n sponge.cache[0] = input[k + 2];\n // cache_size is now 1 again, repeat loop\n } else if (!variable) & (i != chunks) {\n // if we are hashing a fixed len array which is a subarray, we check the remaining elts are 0\n // NB: we don't check at i == chunks, because that chunk contains elts to be absorbed or checked below\n let last_0 = if (i == M - 1) & (skip_last) {\n 0\n } else {\n input[k + 2]\n };\n let all_0 = (input[k] == 0) & (input[k + 1] == 0) & (last_0 == 0);\n assert(all_0, \"Found non-zero field after breakpoint\");\n }\n }\n // we have 'remainder' num of items left to absorb\n should_add = true;\n // below is to avoid overflows (i.e. if inlen is close to N)\n let mut should_check = !variable;\n for i in 0..3 {\n should_add &= i != remainder;\n should_check &= in_len - remainder + i != N;\n if should_add {\n // we want to absorb the final 'remainder' items\n sponge.absorb(input[in_len - remainder + i]);\n } else if should_check {\n assert(input[in_len - remainder + i] == 0, \"Found non-zero field after breakpoint\");\n }\n }\n sponge\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = std::hash::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = std::hash::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\n}\n\n#[test]\nfn existing_sponge_poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n // absorb 250 of the 501 things\n let empty_sponge = Poseidon2Sponge::new((in_len as Field) * TWO_POW_64);\n let first_sponge = poseidon2_absorb_chunks_existing_sponge(empty_sponge, input, 250, true);\n // now absorb the final 251 (since they are all 3s, im being lazy and not making a new array)\n let mut final_sponge = poseidon2_absorb_chunks_existing_sponge(first_sponge, input, 251, true);\n let fixed_len_hash = Poseidon2Sponge::hash(fixed_input, fixed_input.len());\n assert(final_sponge.squeeze() == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_empty_inputs() {\n let in_len = 0;\n let mut input: [Field; 4096] = [0; 4096];\n let mut contructed_empty_sponge = poseidon2_absorb_chunks(input, in_len, true);\n let mut first_sponge =\n poseidon2_absorb_chunks_existing_sponge(contructed_empty_sponge, input, in_len, true);\n assert(first_sponge.squeeze() == contructed_empty_sponge.squeeze());\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
6000
- },
6001
5997
  "26": {
6002
5998
  "path": "std/hash/poseidon2.nr",
6003
5999
  "source": "use crate::default::Default;\nuse crate::hash::Hasher;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field; 3],\n state: [Field; 4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2::hash_internal(input, message_size, message_size != N)\n }\n\n pub fn new(iv: Field) -> Poseidon2 {\n let mut result =\n Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher {\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv: Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"
6004
6000
  },
6005
6001
  "260": {
6002
+ "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
6003
+ "source": "use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n log_hash::{LogHash, ScopedLogHash},\n note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n private_log::{PrivateLog, PrivateLogData},\n side_effect::{OrderedValue, scoped::Scoped},\n },\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n },\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n poseidon2::Poseidon2Sponge,\n traits::{FromField, Hash, is_empty, ToField},\n utils::field::field_from_bytes_32_trunc,\n};\nuse super::{constants::TWO_POW_64, utils::{arrays::array_concat, field::field_from_bytes}};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n let nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(nonce, siloed_note_hash)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.value())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<PrivateLogData>) -> PrivateLog {\n if private_log.contract_address.is_zero() {\n private_log.inner.log\n } else {\n let mut fields = private_log.inner.log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog { fields }\n }\n}\n\nfn compute_siloed_contract_class_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_contract_class_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_contract_class_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: [u8; 160] = std::mem::zeroed();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..5 {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes[32 * i + j] = item_bytes[j];\n }\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\npub fn compute_tx_logs_hash<let N: u32>(logs: [LogHash; N]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; N * 32];\n for offset in 0..N {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = array_concat([separator.to_field()], inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n// Performs a fixed length hash with a subarray of the given input.\n// Useful for SpongeBlob in which we aborb M things and want to check it vs a hash of M elts of an N-len array.\n// Using stdlib poseidon, this will always absorb an extra 1 as a 'variable' hash, and not match spongeblob.squeeze()\n// or any ts implementation. Also checks that any remaining elts not hashed are empty.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, false);\n sponge.squeeze()\n}\n\n// NB the below is the same as std::hash::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, true);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// The below fn reduces gates of a conditional poseidon2 hash by approx 3x (thank you ~* Giant Brain Dev @IlyasRidhuan *~ for the idea)\n// Why? Because when we call stdlib poseidon, we call absorb for each item. When absorbing is conditional, it seems the compiler does not know\n// what cache_size will be when calling absorb, so it assigns the permutation gates for /each i/ rather than /every 3rd i/, which is actually required.\n// The below code forces the compiler to:\n// - absorb normally up to 2 times to set cache_size to 1\n// - absorb in chunks of 3 to ensure perm. only happens every 3rd absorb\n// - absorb normally up to 2 times to add any remaining values to the hash\n// In fixed len hashes, the compiler is able to tell that it will only need to perform the permutation every 3 absorbs.\n// NB: it also replaces unnecessary range checks (i < thing) with a bit check (&= i != thing), which alone reduces the gates of a var. hash by half.\n\n#[no_predicates]\nfn poseidon2_absorb_chunks<let N: u32>(\n input: [Field; N],\n in_len: u32,\n variable: bool,\n) -> Poseidon2Sponge {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n // Even though shift is always 1 here, if we input in_len = 0 we get an underflow\n // since we cannot isolate computation branches. The below is just to avoid that.\n let shift = if in_len == 0 { 0 } else { 1 };\n if in_len != 0 {\n // cache_size = 0, init absorb\n sponge.cache[0] = input[0];\n sponge.cache_size = 1;\n // shift = num elts already added to make cache_size 1 = 1 for a fresh sponge\n // M = max_chunks = (N - 1 - (N - 1) % 3) / 3: (must be written as a fn of N to compile)\n // max_remainder = (N - 1) % 3;\n // max_chunks = (N - 1 - max_remainder) / 3;\n sponge = poseidon2_absorb_chunks_loop::<N, (N - 1 - (N - 1) % 3) / 3>(\n sponge,\n input,\n in_len,\n variable,\n shift,\n );\n }\n sponge\n}\n\n// NB: If it's not required to check that the non-absorbed elts of 'input' are 0s, set skip_0_check=true\n#[no_predicates]\npub fn poseidon2_absorb_chunks_existing_sponge<let N: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n skip_0_check: bool,\n) -> Poseidon2Sponge {\n let mut sponge = in_sponge;\n // 'shift' is to account for already added inputs\n let mut shift = 0;\n // 'stop' is to avoid an underflow when inputting in_len = 0\n let mut stop = false;\n for i in 0..3 {\n if shift == in_len {\n stop = true;\n }\n if (sponge.cache_size != 1) & (!stop) {\n sponge.absorb(input[i]);\n shift += 1;\n }\n }\n sponge = if stop {\n sponge\n } else {\n // max_chunks = (N - (N % 3)) / 3;\n poseidon2_absorb_chunks_loop::<N, (N - (N % 3)) / 3>(\n sponge,\n input,\n in_len,\n skip_0_check,\n shift,\n )\n };\n sponge\n}\n\n// The below is the loop to absorb elts into a poseidon sponge in chunks of 3\n// shift - the num of elts already absorbed to ensure the sponge's cache_size = 1\n// M - the max number of chunks required to absorb N things (must be comptime to compile)\n// NB: The 0 checks ('Found non-zero field...') are messy, but having a separate loop over N to check\n// for 0s costs 3N gates. Current approach is approx 2N gates.\n#[no_predicates]\nfn poseidon2_absorb_chunks_loop<let N: u32, let M: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n variable: bool,\n shift: u32,\n) -> Poseidon2Sponge {\n assert(in_len <= N, \"Given in_len to absorb is larger than the input array len\");\n // When we have an existing sponge, we may have a shift of 0, and the final 'k+2' below = N\n // The below avoids an overflow\n let skip_last = 3 * M == N;\n // Writing in_sponge: &mut does not compile\n let mut sponge = in_sponge;\n let mut should_add = true;\n // The num of things left over after absorbing in 3s\n let remainder = (in_len - shift) % 3;\n // The num of chunks of 3 to absorb (maximum M)\n let chunks = (in_len - shift - remainder) / 3;\n for i in 0..M {\n // Now we loop through cache size = 1 -> 3\n should_add &= i != chunks;\n // This is the index at the start of the chunk (for readability)\n let k = 3 * i + shift;\n if should_add {\n // cache_size = 1, 2 => just assign\n sponge.cache[1] = input[k];\n sponge.cache[2] = input[k + 1];\n // cache_size = 3 => duplex + perm\n for j in 0..3 {\n sponge.state[j] += sponge.cache[j];\n }\n sponge.state = std::hash::poseidon2_permutation(sponge.state, 4);\n sponge.cache[0] = input[k + 2];\n // cache_size is now 1 again, repeat loop\n } else if (!variable) & (i != chunks) {\n // if we are hashing a fixed len array which is a subarray, we check the remaining elts are 0\n // NB: we don't check at i == chunks, because that chunk contains elts to be absorbed or checked below\n let last_0 = if (i == M - 1) & (skip_last) {\n 0\n } else {\n input[k + 2]\n };\n let all_0 = (input[k] == 0) & (input[k + 1] == 0) & (last_0 == 0);\n assert(all_0, \"Found non-zero field after breakpoint\");\n }\n }\n // we have 'remainder' num of items left to absorb\n should_add = true;\n // below is to avoid overflows (i.e. if inlen is close to N)\n let mut should_check = !variable;\n for i in 0..3 {\n should_add &= i != remainder;\n should_check &= in_len - remainder + i != N;\n if should_add {\n // we want to absorb the final 'remainder' items\n sponge.absorb(input[in_len - remainder + i]);\n } else if should_check {\n assert(input[in_len - remainder + i] == 0, \"Found non-zero field after breakpoint\");\n }\n }\n sponge\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = std::hash::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = std::hash::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\n}\n\n#[test]\nfn existing_sponge_poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n // absorb 250 of the 501 things\n let empty_sponge = Poseidon2Sponge::new((in_len as Field) * TWO_POW_64);\n let first_sponge = poseidon2_absorb_chunks_existing_sponge(empty_sponge, input, 250, true);\n // now absorb the final 251 (since they are all 3s, im being lazy and not making a new array)\n let mut final_sponge = poseidon2_absorb_chunks_existing_sponge(first_sponge, input, 251, true);\n let fixed_len_hash = Poseidon2Sponge::hash(fixed_input, fixed_input.len());\n assert(final_sponge.squeeze() == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_empty_inputs() {\n let in_len = 0;\n let mut input: [Field; 4096] = [0; 4096];\n let mut constructed_empty_sponge = poseidon2_absorb_chunks(input, in_len, true);\n let mut first_sponge =\n poseidon2_absorb_chunks_existing_sponge(constructed_empty_sponge, input, in_len, true);\n assert(first_sponge.squeeze() == constructed_empty_sponge.squeeze());\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
6004
+ },
6005
+ "261": {
6006
6006
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/indexed_tagging_secret.nr",
6007
6007
  "source": "use crate::traits::{Deserialize, Serialize, ToField};\nuse super::{address::aztec_address::AztecAddress, hash::poseidon2_hash};\nuse std::meta::derive;\n\npub global INDEXED_TAGGING_SECRET_LENGTH: u32 = 2;\n\n#[derive(Serialize, Deserialize)]\npub struct IndexedTaggingSecret {\n app_tagging_secret: Field,\n index: u32,\n}\n\nimpl IndexedTaggingSecret {\n pub fn compute_tag(self, recipient: AztecAddress) -> Field {\n poseidon2_hash(\n [self.app_tagging_secret, recipient.to_field(), self.index as Field],\n )\n }\n}\n"
6008
6008
  },
@@ -6010,31 +6010,31 @@
6010
6010
  "path": "std/hash/sha256.nr",
6011
6011
  "source": "use crate::runtime::is_unconstrained;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// A message block is up to 64 bytes taken from the input.\nglobal BLOCK_SIZE: u32 = 64;\n\n// The first index in the block where the 8 byte message size will be written.\nglobal MSG_SIZE_PTR: u32 = 56;\n\n// Size of the message block when packed as 4-byte integer array.\nglobal INT_BLOCK_SIZE: u32 = 16;\n\n// A `u32` integer consists of 4 bytes.\nglobal INT_SIZE: u32 = 4;\n\n// Index of the integer in the `INT_BLOCK` where the length is written.\nglobal INT_SIZE_PTR: u32 = MSG_SIZE_PTR / INT_SIZE;\n\n// Magic numbers for bit shifting.\n// Works with actual bit shifting as well as the compiler turns them into * and /\n// but circuit execution appears to be 10% faster this way.\nglobal TWO_POW_8: u32 = 256;\nglobal TWO_POW_16: u32 = TWO_POW_8 * 256;\nglobal TWO_POW_24: u32 = TWO_POW_16 * 256;\nglobal TWO_POW_32: u64 = TWO_POW_24 as u64 * 256;\n\n// Index of a byte in a 64 byte block; ie. 0..=63\ntype BLOCK_BYTE_PTR = u32;\n\n// The foreign function to compress blocks works on 16 pieces of 4-byte integers, instead of 64 bytes.\ntype INT_BLOCK = [u32; INT_BLOCK_SIZE];\n\n// A message block is a slice of the original message of a fixed size,\n// potentially padded with zeros, with neighbouring 4 bytes packed into integers.\ntype MSG_BLOCK = INT_BLOCK;\n\n// The hash is 32 bytes.\ntype HASH = [u8; 32];\n\n// The state accumulates the blocks.\n// Its overall size is the same as the `HASH`.\ntype STATE = [u32; 8];\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> HASH\n// docs:end:sha256\n{\n digest(input)\n}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: INT_BLOCK, _state: STATE) -> STATE {}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> HASH {\n sha256_var(msg, N as u64)\n}\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> HASH {\n let message_size = message_size as u32;\n let num_blocks = N / BLOCK_SIZE;\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n // Intermediate hash, starting with the canonical initial value\n let mut h: STATE = [\n 1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635,\n 1541459225,\n ];\n // Pointer into msg_block on a 64 byte scale\n let mut msg_byte_ptr = 0;\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n /// Safety: the msg_block is checked below in verify_msg_block\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if (msg_start < message_size) & (msg_byte_ptr == BLOCK_SIZE) {\n h = sha256_compression(msg_block, h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n /// Safety: the msg_block is checked below in verify_msg_block\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n verify_msg_block_padding(msg_block, msg_byte_ptr);\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n // If we had modulo == 0 then it means the last block was full,\n // and we can reset the pointer to zero to overwrite it.\n if msg_byte_ptr == BLOCK_SIZE {\n msg_byte_ptr = 0;\n }\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n // Here we rely on the fact that everything beyond the available input is set to 0.\n msg_block = update_block_item(\n msg_block,\n msg_byte_ptr,\n |msg_item| set_item_byte_then_zeros(msg_item, msg_byte_ptr, 1 << 7),\n );\n msg_byte_ptr = msg_byte_ptr + 1;\n let last_block = msg_block;\n\n // If we don't have room to write the size, compress the block and reset it.\n if msg_byte_ptr > MSG_SIZE_PTR {\n h = sha256_compression(msg_block, h);\n // `attach_len_to_msg_block` will zero out everything after the `msg_byte_ptr`.\n msg_byte_ptr = 0;\n }\n\n /// Safety: the msg_len is checked below in verify_msg_len\n msg_block = unsafe { attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size) };\n\n if !is_unconstrained() {\n verify_msg_len(msg_block, last_block, msg_byte_ptr, message_size);\n }\n\n hash_final_block(msg_block, h)\n}\n\n// Take `BLOCK_SIZE` number of bytes from `msg` starting at `msg_start`.\n// Returns the block and the length that has been copied rather than padded with zeros.\nunconstrained fn build_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_start: u32,\n) -> (MSG_BLOCK, BLOCK_BYTE_PTR) {\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if msg_start + BLOCK_SIZE > message_size {\n if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else {\n message_size - msg_start\n }\n } else {\n BLOCK_SIZE\n };\n\n // Figure out the number of items in the int array that we have to pack.\n // e.g. if the input is [0,1,2,3,4,5] then we need to pack it as 2 items: [0123, 4500]\n let mut int_input = block_input / INT_SIZE;\n if block_input % INT_SIZE != 0 {\n int_input = int_input + 1;\n };\n\n for i in 0..int_input {\n let mut msg_item: u32 = 0;\n // Always construct the integer as 4 bytes, even if it means going beyond the input.\n for j in 0..INT_SIZE {\n let k = i * INT_SIZE + j;\n let msg_byte = if k < block_input {\n msg[msg_start + k]\n } else {\n 0\n };\n msg_item = lshift8(msg_item, 1) + msg_byte as u32;\n }\n msg_block[i] = msg_item;\n }\n\n // Returning the index as if it was a 64 byte array.\n // We have to project it down to 16 items and bit shifting to get a byte back if we need it.\n (msg_block, block_input)\n}\n\n// Verify the block we are compressing was appropriately constructed by `build_msg_block`\n// and matches the input data. Returns the index of the first unset item.\n// If `message_size` is less than `msg_start` then this is called with the old non-empty block;\n// in that case we can skip verification, ie. no need to check that everything is zero.\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_block: MSG_BLOCK,\n msg_start: u32,\n) -> BLOCK_BYTE_PTR {\n let mut msg_byte_ptr = 0;\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n // We might have to go beyond the input to pad the fields.\n if msg_end % INT_SIZE != 0 {\n msg_end = msg_end + INT_SIZE - msg_end % INT_SIZE;\n }\n\n // Reconstructed packed item.\n let mut msg_item: u32 = 0;\n\n // Inclusive at the end so that we can compare the last item.\n let mut i: u32 = 0;\n for k in msg_start..=msg_end {\n if k % INT_SIZE == 0 {\n // If we consumed some input we can compare against the block.\n if (msg_start < message_size) & (k > msg_start) {\n assert_eq(msg_block[i], msg_item as u32);\n i = i + 1;\n msg_item = 0;\n }\n }\n // Shift the accumulator\n msg_item = lshift8(msg_item, 1);\n // If we have input to consume, add it at the rightmost position.\n if k < message_size & k < msg_end {\n msg_item = msg_item + msg[k] as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\n// Verify the block we are compressing was appropriately padded with zeros by `build_msg_block`.\n// This is only relevant for the last, potentially partially filled block.\nfn verify_msg_block_padding(msg_block: MSG_BLOCK, msg_byte_ptr: BLOCK_BYTE_PTR) {\n // Check all the way to the end of the block.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_BLOCK_SIZE);\n}\n\n// Verify that a region of ints in the message block are (partially) zeroed,\n// up to an (exclusive) maximum which can either be the end of the block\n// or just where the size is to be written.\nfn verify_msg_block_zeros(\n msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n max_int_byte_ptr: u32,\n) {\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n // First integer which is supposed to be (partially) zero.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n let zeros = INT_SIZE - modulo;\n let mask = if zeros == 3 {\n TWO_POW_24\n } else if zeros == 2 {\n TWO_POW_16\n } else {\n TWO_POW_8\n };\n assert_eq(msg_block[int_byte_ptr] % mask, zero);\n int_byte_ptr = int_byte_ptr + 1;\n }\n\n // Check the rest of the items.\n for i in 0..max_int_byte_ptr {\n if i >= int_byte_ptr {\n assert_eq(msg_block[i], zero);\n }\n }\n}\n\n// Verify that up to the byte pointer the two blocks are equal.\n// At the byte pointer the new block can be partially zeroed.\nfn verify_msg_block_equals_last(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n) {\n // msg_byte_ptr is the position at which they are no longer have to be the same.\n // First integer which is supposed to be (partially) zero contains that pointer.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Reconstruct the partially zero item from the last block.\n let last_field = last_block[int_byte_ptr];\n let mut msg_item: u32 = 0;\n // Reset to where they are still equal.\n msg_byte_ptr = msg_byte_ptr - modulo;\n for i in 0..INT_SIZE {\n msg_item = lshift8(msg_item, 1);\n if i < modulo {\n msg_item = msg_item + get_item_byte(last_field, msg_byte_ptr) as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n assert_eq(msg_block[int_byte_ptr], msg_item);\n }\n\n for i in 0..INT_SIZE_PTR {\n if i < int_byte_ptr {\n assert_eq(msg_block[i], last_block[i]);\n }\n }\n}\n\n// Apply a function on the block item which the pointer indicates.\nfn update_block_item<Env>(\n mut msg_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n f: fn[Env](u32) -> u32,\n) -> MSG_BLOCK {\n let i = msg_byte_ptr / INT_SIZE;\n msg_block[i] = f(msg_block[i]);\n msg_block\n}\n\n// Set the rightmost `zeros` number of bytes to 0.\nfn set_item_zeros(item: u32, zeros: u8) -> u32 {\n lshift8(rshift8(item, zeros), zeros)\n}\n\n// Replace one byte in the item with a value, and set everything after it to zero.\nfn set_item_byte_then_zeros(msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR, msg_byte: u8) -> u32 {\n let zeros = INT_SIZE - msg_byte_ptr % INT_SIZE;\n let zeroed_item = set_item_zeros(msg_item, zeros as u8);\n let new_item = byte_into_item(msg_byte, msg_byte_ptr);\n zeroed_item + new_item\n}\n\n// Get a byte of a message item according to its overall position in the `BLOCK_SIZE` space.\nfn get_item_byte(mut msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR) -> u8 {\n // How many times do we have to shift to the right to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n msg_item = rshift8(msg_item, shifts as u8);\n // At this point the byte we want is in the rightmost position.\n msg_item as u8\n}\n\n// Project a byte into a position in a field based on the overall block pointer.\n// For example putting 1 into pointer 5 would be 100, because overall we would\n// have [____, 0100] with indexes [0123,4567].\nfn byte_into_item(msg_byte: u8, msg_byte_ptr: BLOCK_BYTE_PTR) -> u32 {\n let mut msg_item = msg_byte as u32;\n // How many times do we have to shift to the left to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n lshift8(msg_item, shifts as u8)\n}\n\n// Construct a field out of 4 bytes.\nfn make_item(b0: u8, b1: u8, b2: u8, b3: u8) -> u32 {\n let mut item = b0 as u32;\n item = lshift8(item, 1) + b1 as u32;\n item = lshift8(item, 1) + b2 as u32;\n item = lshift8(item, 1) + b3 as u32;\n item\n}\n\n// Shift by 8 bits to the left between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise multiplies by 256.\nfn lshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n if item == 0 {\n 0\n } else {\n // Brillig wouldn't shift 0<<4 without overflow.\n item << (8 * shifts)\n }\n } else {\n // We can do a for loop up to INT_SIZE or an if-else.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item * TWO_POW_8\n } else if shifts == 2 {\n item * TWO_POW_16\n } else if shifts == 3 {\n item * TWO_POW_24\n } else {\n // Doesn't make sense, but it's most likely called on 0 anyway.\n 0\n }\n }\n}\n\n// Shift by 8 bits to the right between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise divides by 256.\nfn rshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n item >> (8 * shifts)\n } else {\n // Division wouldn't work on `Field`.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item / TWO_POW_8\n } else if shifts == 2 {\n item / TWO_POW_16\n } else if shifts == 3 {\n item / TWO_POW_24\n } else {\n 0\n }\n }\n}\n\n// Zero out all bytes between the end of the message and where the length is appended,\n// then write the length into the last 8 bytes of the block.\nunconstrained fn attach_len_to_msg_block(\n mut msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) -> MSG_BLOCK {\n // We assume that `msg_byte_ptr` is less than 57 because if not then it is reset to zero before calling this function.\n // In any case, fill blocks up with zeros until the last 64 bits (i.e. until msg_byte_ptr = 56).\n // There can be one item which has to be partially zeroed.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Index of the block in which we find the item we need to partially zero.\n let i = msg_byte_ptr / INT_SIZE;\n let zeros = INT_SIZE - modulo;\n msg_block[i] = set_item_zeros(msg_block[i], zeros as u8);\n msg_byte_ptr = msg_byte_ptr + zeros;\n }\n\n // The rest can be zeroed without bit shifting anything.\n for i in (msg_byte_ptr / INT_SIZE)..INT_SIZE_PTR {\n msg_block[i] = 0;\n }\n\n // Set the last two 4 byte ints as the first/second half of the 8 bytes of the length.\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for i in 0..=1 {\n let shift = i * 4;\n msg_block[INT_SIZE_PTR + i] = make_item(\n len_bytes[shift],\n len_bytes[shift + 1],\n len_bytes[shift + 2],\n len_bytes[shift + 3],\n );\n }\n msg_block\n}\n\n// Verify that the message length was correctly written by `attach_len_to_msg_block`,\n// and that everything between the byte pointer and the size pointer was zeroed,\n// and that everything before the byte pointer was untouched.\nfn verify_msg_len(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) {\n // Check zeros up to the size pointer.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_SIZE_PTR);\n\n // Check that up to the pointer we match the last block.\n verify_msg_block_equals_last(msg_block, last_block, msg_byte_ptr);\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let mut reconstructed_len: u64 = 0;\n for i in INT_SIZE_PTR..INT_BLOCK_SIZE {\n reconstructed_len = reconstructed_len * TWO_POW_32;\n reconstructed_len = reconstructed_len + msg_block[i] as u64;\n }\n let len = 8 * message_size as u64;\n assert_eq(reconstructed_len, len);\n}\n\n// Perform the final compression, then transform the `STATE` into `HASH`.\nfn hash_final_block(msg_block: MSG_BLOCK, mut state: STATE) -> HASH {\n let mut out_h: HASH = [0; 32]; // Digest as sequence of bytes\n // Hash final padded block\n state = sha256_compression(msg_block, state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[j] as Field).to_be_bytes();\n for k in 0..4 {\n out_h[4 * j + k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\nmod tests {\n use super::{\n attach_len_to_msg_block, build_msg_block, byte_into_item, get_item_byte, make_item,\n set_item_byte_then_zeros, set_item_zeros,\n };\n use super::INT_BLOCK;\n use super::sha256_var;\n\n #[test]\n fn smoke_test() {\n let input = [0xbd];\n let result = [\n 0x68, 0x32, 0x57, 0x20, 0xaa, 0xbd, 0x7c, 0x82, 0xf3, 0x0f, 0x55, 0x4b, 0x31, 0x3d,\n 0x05, 0x70, 0xc9, 0x5a, 0xcc, 0xbb, 0x7d, 0xc4, 0xb5, 0xaa, 0xe1, 0x12, 0x04, 0xc0,\n 0x8f, 0xfe, 0x73, 0x2b,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116,\n ];\n let result = [\n 91, 122, 146, 93, 52, 109, 133, 148, 171, 61, 156, 70, 189, 238, 153, 7, 222, 184, 94,\n 24, 65, 114, 192, 244, 207, 199, 87, 232, 192, 224, 171, 207,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_multiple_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115,\n 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49,\n 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46,\n 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115,\n 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97,\n 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45,\n 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55,\n 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32,\n 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32,\n 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64,\n 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103,\n 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115,\n 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101,\n 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109,\n 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56,\n 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48,\n 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75,\n 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67,\n 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101,\n 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99,\n ];\n let result = [\n 116, 90, 151, 31, 78, 22, 138, 180, 211, 189, 69, 76, 227, 200, 155, 29, 59, 123, 154,\n 60, 47, 153, 203, 129, 157, 251, 48, 2, 79, 11, 65, 47,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_under_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59,\n ];\n let result = [\n 143, 140, 76, 173, 222, 123, 102, 68, 70, 149, 207, 43, 39, 61, 34, 79, 216, 252, 213,\n 165, 74, 16, 110, 74, 29, 64, 138, 167, 30, 1, 9, 119,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_not_block_multiple() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115,\n 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49,\n 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46,\n 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115,\n 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97,\n 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45,\n 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55,\n 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32,\n 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32,\n 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64,\n 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103,\n 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115,\n 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101,\n 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109,\n 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56,\n 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48,\n 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75,\n 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67,\n 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101,\n 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99, 116, 58, 77, 101, 115, 115, 97,\n 103, 101, 45, 73, 100, 58, 68, 97, 116, 101, 58, 116, 111, 59, 32, 98, 61,\n ];\n let result = [\n 112, 144, 73, 182, 208, 98, 9, 238, 54, 229, 61, 145, 222, 17, 72, 62, 148, 222, 186,\n 55, 192, 82, 220, 35, 66, 47, 193, 200, 22, 38, 26, 186,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_with_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17,\n 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12,\n 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48,\n 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6,\n 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2,\n 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89,\n 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2,\n 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75,\n 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1,\n 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189,\n 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4,\n 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45,\n 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4,\n 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188,\n 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212,\n 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53,\n ];\n let message_size = 297;\n assert_eq(sha256_var(input, message_size), result);\n }\n\n #[test]\n fn msg_big_no_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17,\n 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12,\n 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48,\n 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6,\n 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2,\n 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89,\n 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2,\n 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75,\n 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1,\n 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189,\n 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4,\n 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45,\n 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4,\n 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188,\n 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38,\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212,\n 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn same_msg_len_variable_padding() {\n let input = [\n 29, 81, 165, 84, 243, 114, 101, 37, 242, 146, 127, 99, 69, 145, 39, 72, 213, 39, 253,\n 179, 218, 37, 217, 201, 172, 93, 198, 50, 249, 70, 15, 30, 162, 112, 187, 40, 140, 9,\n 236, 53, 32, 44, 38, 163, 113, 254, 192, 197, 44, 89, 71, 130, 169, 242, 17, 211, 214,\n 72, 19, 178, 186, 168, 147, 127, 99, 101, 252, 227, 8, 147, 150, 85, 97, 158, 17, 107,\n 218, 244, 82, 113, 247, 91, 208, 214, 60, 244, 87, 137, 173, 201, 130, 18, 66, 56, 198,\n 149, 207, 189, 175, 120, 123, 224, 177, 167, 251, 159, 143, 110, 68, 183, 189, 70, 126,\n 32, 35, 164, 44, 30, 44, 12, 65, 18, 62, 239, 242, 2, 248, 104, 2, 178, 64, 28, 126, 36,\n 137, 24, 14, 116, 91, 98, 90, 159, 218, 102, 45, 11, 110, 223, 245, 184, 52, 99, 59,\n 245, 136, 175, 3, 72, 164, 146, 145, 116, 22, 66, 24, 49, 193, 121, 3, 60, 37, 41, 97,\n 3, 190, 66, 195, 225, 63, 46, 3, 118, 4, 208, 15, 1, 40, 254, 235, 151, 123, 70, 180,\n 170, 44, 172, 90, 4, 254, 53, 239, 116, 246, 67, 56, 129, 61, 22, 169, 213, 65, 27, 216,\n 116, 162, 239, 214, 207, 126, 177, 20, 100, 25, 48, 143, 84, 215, 70, 197, 53, 65, 70,\n 86, 172, 61, 62, 9, 212, 167, 169, 133, 41, 126, 213, 196, 33, 192, 238, 0, 63, 246,\n 215, 58, 128, 110, 101, 92, 3, 170, 214, 130, 149, 52, 81, 125, 118, 233, 3, 118, 193,\n 104, 207, 120, 115, 77, 253, 191, 122, 0, 107, 164, 207, 113, 81, 169, 36, 201, 228, 74,\n 134, 131, 218, 178, 35, 30, 216, 101, 2, 103, 174, 87, 95, 50, 50, 215, 157, 5, 210,\n 188, 54, 211, 78, 45, 199, 96, 121, 241, 241, 176, 226, 194, 134, 130, 89, 217, 210,\n 186, 32, 140, 39, 91, 103, 212, 26, 87, 32, 72, 144, 228, 230, 117, 99, 188, 50, 15, 69,\n 79, 179, 50, 12, 106, 86, 218, 101, 73, 142, 243, 29, 250, 122, 228, 233, 29, 255, 22,\n 121, 114, 125, 103, 41, 250, 241, 179, 126, 158, 198, 116, 209, 65, 94, 98, 228, 175,\n 169, 96, 3, 9, 233, 133, 214, 55, 161, 164, 103, 80, 85, 24, 186, 64, 167, 92, 131, 53,\n 101, 202, 47, 25, 104, 118, 155, 14, 12, 12, 25, 116, 45, 221, 249, 28, 246, 212, 200,\n 157, 167, 169, 56, 197, 181, 4, 245, 146, 1, 140, 234, 191, 212, 228, 125, 87, 81, 86,\n 119, 30, 63, 129, 143, 32, 96,\n ];\n\n // Prepare inputs of different lengths\n let mut input_511 = [0; 511];\n let mut input_512 = [0; 512]; // Next block\n let mut input_575 = [0; 575];\n let mut input_576 = [0; 576]; // Next block\n for i in 0..input.len() {\n input_511[i] = input[i];\n input_512[i] = input[i];\n input_575[i] = input[i];\n input_576[i] = input[i];\n }\n\n // Compute hashes of all inputs (with same message length)\n let fixed_length_hash = super::sha256(input);\n let var_full_length_hash = sha256_var(input, input.len() as u64);\n let var_length_hash_511 = sha256_var(input_511, input.len() as u64);\n let var_length_hash_512 = sha256_var(input_512, input.len() as u64);\n let var_length_hash_575 = sha256_var(input_575, input.len() as u64);\n let var_length_hash_576 = sha256_var(input_576, input.len() as u64);\n\n // All of the above should have produced the same hash\n assert_eq(var_full_length_hash, fixed_length_hash);\n assert_eq(var_length_hash_511, fixed_length_hash);\n assert_eq(var_length_hash_512, fixed_length_hash);\n assert_eq(var_length_hash_575, fixed_length_hash);\n assert_eq(var_length_hash_576, fixed_length_hash);\n }\n\n #[test]\n fn test_get_item_byte() {\n let fld = make_item(10, 20, 30, 40);\n assert_eq(fld, 0x0a141e28);\n assert_eq(get_item_byte(fld, 0), 10);\n assert_eq(get_item_byte(fld, 4), 10);\n assert_eq(get_item_byte(fld, 6), 30);\n }\n\n #[test]\n fn test_byte_into_item() {\n let fld = make_item(0, 20, 0, 0);\n assert_eq(byte_into_item(20, 1), fld);\n assert_eq(byte_into_item(20, 5), fld);\n }\n\n #[test]\n fn test_set_item_zeros() {\n let fld0 = make_item(10, 20, 30, 40);\n let fld1 = make_item(10, 0, 0, 0);\n assert_eq(set_item_zeros(fld0, 3), fld1);\n assert_eq(set_item_zeros(fld0, 4), 0);\n assert_eq(set_item_zeros(0, 4), 0);\n }\n\n #[test]\n fn test_set_item_byte_then_zeros() {\n let fld0 = make_item(10, 20, 30, 40);\n let fld1 = make_item(10, 50, 0, 0);\n assert_eq(set_item_byte_then_zeros(fld0, 1, 50), fld1);\n }\n\n #[test]\n fn test_build_msg_block_start_0() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48,\n ];\n assert_eq(input.len(), 22);\n\n /// Safety: testing context\n let (msg_block, msg_byte_ptr) = unsafe { build_msg_block(input, input.len(), 0) };\n assert_eq(msg_byte_ptr, input.len());\n assert_eq(msg_block[0], make_item(input[0], input[1], input[2], input[3]));\n assert_eq(msg_block[1], make_item(input[4], input[5], input[6], input[7]));\n assert_eq(msg_block[5], make_item(input[20], input[21], 0, 0));\n assert_eq(msg_block[6], 0);\n }\n\n #[test]\n fn test_build_msg_block_start_1() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116,\n ];\n assert_eq(input.len(), 68);\n /// Safety: test context\n let (msg_block, msg_byte_ptr) = unsafe { build_msg_block(input, input.len(), 64) };\n assert_eq(msg_byte_ptr, 4);\n assert_eq(msg_block[0], make_item(input[64], input[65], input[66], input[67]));\n assert_eq(msg_block[1], 0);\n }\n\n #[test]\n fn test_attach_len_to_msg_block() {\n let input: INT_BLOCK = [\n 2152555847, 1397309779, 1936618851, 1262052426, 1936876331, 1985297723, 543702374,\n 1919905082, 1131376244, 1701737517, 1417244773, 978151789, 1697470053, 1920166255,\n 1849316213, 1651139939,\n ];\n /// Safety: testing context\n let msg_block = unsafe { attach_len_to_msg_block(input, 1, 448) };\n assert_eq(msg_block[0], ((1 << 7) as u32) * 256 * 256 * 256);\n assert_eq(msg_block[1], 0);\n assert_eq(msg_block[15], 3584);\n }\n}\n"
6012
6012
  },
6013
- "275": {
6013
+ "276": {
6014
6014
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/point.nr",
6015
- "source": "pub use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{hash::poseidon2_hash, traits::{Deserialize, Empty, Hash, Serialize}};\n\npub global POINT_LENGTH: u32 = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point { x: 0, y: 0, is_infinite: false }\n }\n}\n\nimpl Deserialize<POINT_LENGTH> for Point {\n fn deserialize(serialized: [Field; POINT_LENGTH]) -> Point {\n Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool }\n }\n}\n"
6015
+ "source": "pub use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{hash::poseidon2_hash, traits::{Deserialize, Empty, Hash, Packable, Serialize}};\n\npub global POINT_LENGTH: u32 = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point { x: 0, y: 0, is_infinite: false }\n }\n}\n\nimpl Deserialize<POINT_LENGTH> for Point {\n fn deserialize(serialized: [Field; POINT_LENGTH]) -> Point {\n Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool }\n }\n}\n// TODO(#11356): use compact representation here.\nimpl Packable<POINT_LENGTH> for Point {\n fn pack(self) -> [Field; POINT_LENGTH] {\n self.serialize()\n }\n\n fn unpack(packed: [Field; POINT_LENGTH]) -> Self {\n Self::deserialize(packed)\n }\n}\n"
6016
6016
  },
6017
- "276": {
6017
+ "277": {
6018
6018
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
6019
6019
  "source": "use crate::constants::TWO_POW_64;\n\n// NB: This is a clone of noir/noir-repo/noir_stdlib/src/hash/poseidon2.nr\n// It exists as we sometimes need to perform custom absorption, but the stdlib version\n// has a private absorb() method (it's also designed to just be a hasher)\n// Can be removed when standalone noir poseidon lib exists: See noir#6679\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2Sponge {\n pub cache: [Field; 3],\n pub state: [Field; 4],\n pub cache_size: u32,\n pub squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2Sponge {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2Sponge::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2Sponge {\n let mut result =\n Poseidon2Sponge { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = std::hash::poseidon2_permutation(self.state, 4);\n }\n\n pub fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n pub fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n"
6020
6020
  },
6021
- "285": {
6021
+ "286": {
6022
6022
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr",
6023
6023
  "source": "use crate::{\n address::public_keys_hash::PublicKeysHash,\n constants::{\n DEFAULT_IVPK_M_X, DEFAULT_IVPK_M_Y, DEFAULT_NPK_M_X, DEFAULT_NPK_M_Y, DEFAULT_OVPK_M_X,\n DEFAULT_OVPK_M_Y, DEFAULT_TPK_M_X, DEFAULT_TPK_M_Y, GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n },\n hash::poseidon2_hash_with_separator,\n point::POINT_LENGTH,\n traits::{Deserialize, Hash, Serialize},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse std::default::Default;\n\npub global PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n pub npk_m: NpkM,\n pub ivpk_m: IvpkM,\n pub ovpk_m: OvpkM,\n pub tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n pub inner: Point,\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for TpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nimpl Default for PublicKeys {\n fn default() -> Self {\n PublicKeys {\n npk_m: NpkM {\n inner: Point { x: DEFAULT_NPK_M_X, y: DEFAULT_NPK_M_Y, is_infinite: false },\n },\n ivpk_m: IvpkM {\n inner: Point { x: DEFAULT_IVPK_M_X, y: DEFAULT_IVPK_M_Y, is_infinite: false },\n },\n ovpk_m: OvpkM {\n inner: Point { x: DEFAULT_OVPK_M_X, y: DEFAULT_OVPK_M_Y, is_infinite: false },\n },\n tpk_m: TpkM {\n inner: Point { x: DEFAULT_TPK_M_X, y: DEFAULT_TPK_M_Y, is_infinite: false },\n },\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field,\n ))\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field,\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: serialized[0],\n y: serialized[1],\n is_infinite: serialized[2] as bool,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: serialized[3],\n y: serialized[4],\n is_infinite: serialized[5] as bool,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: serialized[6],\n y: serialized[7],\n is_infinite: serialized[8] as bool,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: serialized[9],\n y: serialized[10],\n is_infinite: serialized[11] as bool,\n },\n },\n }\n }\n}\n\npub struct AddressPoint {\n pub inner: Point,\n}\n\nimpl ToPoint for AddressPoint {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash =\n 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n let test_data_default_hash = 0x1d3bf1fb93ae0e9cda83b203dd91c3bfb492a9aecf30ec90e1057eced0f0e62d;\n\n assert(actual.to_field() == test_data_default_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"
6024
6024
  },
6025
- "321": {
6025
+ "323": {
6026
6026
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays.nr",
6027
6027
  "source": "pub mod assert_array_appended;\npub mod assert_array_prepended;\npub mod assert_combined_array;\npub mod assert_combined_transformed_array;\npub mod assert_exposed_sorted_transformed_value_array;\npub mod assert_sorted_array;\npub mod assert_sorted_transformed_value_array;\npub mod assert_split_sorted_transformed_value_arrays;\npub mod assert_split_transformed_value_arrays;\npub mod get_sorted_result;\npub mod get_sorted_tuple;\npub mod sort_by;\npub mod sort_by_counter;\n\n// Re-exports.\npub use assert_array_appended::{\n assert_array_appended, assert_array_appended_and_scoped, assert_array_appended_reversed,\n assert_array_appended_scoped,\n};\npub use assert_array_prepended::assert_array_prepended;\npub use assert_combined_array::{assert_combined_array, combine_arrays};\npub use assert_combined_transformed_array::{\n assert_combined_transformed_array, combine_and_transform_arrays,\n};\npub use assert_exposed_sorted_transformed_value_array::{\n assert_exposed_sorted_transformed_value_array,\n get_order_hints::{get_order_hints_asc, get_order_hints_desc, OrderHint},\n};\npub use assert_sorted_array::assert_sorted_array;\npub use assert_sorted_transformed_value_array::{\n assert_sorted_transformed_value_array, assert_sorted_transformed_value_array_capped_size,\n};\npub use assert_split_sorted_transformed_value_arrays::{\n assert_split_sorted_transformed_value_arrays_asc,\n assert_split_sorted_transformed_value_arrays_desc,\n get_split_order_hints::{get_split_order_hints_asc, get_split_order_hints_desc, SplitOrderHints},\n};\npub use assert_split_transformed_value_arrays::assert_split_transformed_value_arrays;\npub use get_sorted_result::{get_sorted_result, SortedResult};\npub use sort_by_counter::{sort_by_counter_asc, sort_by_counter_desc};\n\nuse crate::traits::{Empty, is_empty};\n\npub fn subarray<let SRC_LEN: u32, let DST_LEN: u32>(\n src: [Field; SRC_LEN],\n offset: u32,\n) -> [Field; DST_LEN] {\n assert(offset + DST_LEN <= SRC_LEN, \"offset too large\");\n\n let mut dst: [Field; DST_LEN] = std::mem::zeroed();\n for i in 0..DST_LEN {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\n// Helper function to convert a validated array to BoundedVec.\n// Important: Only use it for validated arrays: validate_array(array) should be true.\npub unconstrained fn array_to_bounded_vec<T, let N: u32>(array: [T; N]) -> BoundedVec<T, N>\nwhere\n T: Empty + Eq,\n{\n let len = array_length(array);\n BoundedVec::from_parts_unchecked(array, len)\n}\n\n// Helper function to find the index of the first element in an array that satisfies a given predicate. If the element\n// is not found, the function returns N as the index.\npub unconstrained fn find_index_hint<T, let N: u32, Env>(\n array: [T; N],\n find: fn[Env](T) -> bool,\n) -> u32 {\n let mut index = N;\n for i in 0..N {\n // We check `index == N` to ensure that we only update the index if we haven't found a match yet.\n if (index == N) & find(array[i]) {\n index = i;\n }\n }\n index\n}\n\n// Routine which validates that all zero values of an array form a contiguous region at the end, i.e.,\n// of the form: [*,*,*...,0,0,0,0] where any * is non-zero. Note that a full array of non-zero values is\n// valid.\npub fn validate_array<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let mut seen_empty = false;\n let mut length = 0;\n for i in 0..N {\n if is_empty(array[i]) {\n seen_empty = true;\n } else {\n assert(seen_empty == false, \"invalid array\");\n length += 1;\n }\n }\n length\n}\n\n// Helper function to count the number of non-empty elements in a validated array.\n// Important: Only use it for validated arrays where validate_array(array) returns true,\n// which ensures that:\n// 1. All elements before the first empty element are non-empty\n// 2. All elements after and including the first empty element are empty\n// 3. The array forms a contiguous sequence of non-empty elements followed by empty elements\npub fn array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n // We get the length by checking the index of the first empty element.\n\n /// Safety: This is safe because we have validated the array (see function doc above) and the emptiness\n /// of the element and non-emptiness of the previous element is checked below.\n let length = unsafe { find_index_hint(array, |elem: T| is_empty(elem)) };\n if length != 0 {\n assert(!is_empty(array[length - 1]));\n }\n if length != N {\n assert(is_empty(array[length]));\n }\n length\n}\n\npub fn array_concat<T, let N: u32, let M: u32>(array1: [T; N], array2: [T; M]) -> [T; N + M] {\n let mut result = [array1[0]; N + M];\n for i in 1..N {\n result[i] = array1[i];\n }\n for i in 0..M {\n result[i + N] = array2[i];\n }\n result\n}\n\npub fn array_merge<T, let N: u32>(array1: [T; N], array2: [T; N]) -> [T; N]\nwhere\n T: Empty + Eq,\n{\n let mut result: [T; N] = [T::empty(); N];\n let mut i = 0;\n for elem in array1 {\n if !is_empty(elem) {\n result[i] = elem;\n i += 1;\n }\n }\n for elem in array2 {\n if !is_empty(elem) {\n result[i] = elem;\n i += 1;\n }\n }\n result\n}\n\n// Helper fn to create a subarray from a given array\npub fn array_splice<T, let N: u32, let M: u32>(array: [T; N], offset: u32) -> [T; M]\nwhere\n T: Empty,\n{\n assert(M + offset <= N, \"Subarray length larger than array length\");\n let mut result: [T; M] = [T::empty(); M];\n for i in 0..M {\n result[i] = array[offset + i];\n }\n result\n}\n\npub fn check_permutation<T, let N: u32>(\n original_array: [T; N],\n permuted_array: [T; N],\n original_indexes: [u32; N],\n)\nwhere\n T: Eq + Empty,\n{\n let mut seen_value = [false; N];\n for i in 0..N {\n let index = original_indexes[i];\n let original_value = original_array[index];\n assert(permuted_array[i].eq(original_value), \"Invalid index\");\n assert(!seen_value[index], \"Duplicated index\");\n seen_value[index] = true;\n }\n}\n\n#[test]\nfn smoke_validate_array() {\n let valid_array: [Field; 0] = [];\n assert(validate_array(valid_array) == 0);\n\n let valid_array = [0];\n assert(validate_array(valid_array) == 0);\n\n let valid_array = [3];\n assert(validate_array(valid_array) == 1);\n\n let valid_array = [1, 2, 3];\n assert(validate_array(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0];\n assert(validate_array(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0, 0];\n assert(validate_array(valid_array) == 3);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case0() {\n let invalid_array = [0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case1() {\n let invalid_array = [1, 0, 0, 1, 0];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case2() {\n let invalid_array = [0, 0, 0, 0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test]\nfn test_empty_array_length() {\n assert_eq(array_length([0]), 0);\n assert_eq(array_length([0, 0, 0]), 0);\n}\n\n#[test]\nfn test_array_length() {\n assert_eq(array_length([123]), 1);\n assert_eq(array_length([123, 0, 0]), 1);\n assert_eq(array_length([123, 456]), 2);\n assert_eq(array_length([123, 456, 0]), 2);\n}\n\n#[test]\nfn test_array_length_invalid_arrays() {\n // Result can be misleading (but correct) for invalid arrays.\n assert_eq(array_length([0, 0, 123]), 0);\n assert_eq(array_length([0, 123, 0]), 0);\n assert_eq(array_length([0, 123, 456]), 0);\n assert_eq(array_length([123, 0, 456]), 1);\n}\n\n#[test]\nunconstrained fn find_index_greater_than_min() {\n let values = [10, 20, 30, 40];\n let min = 22;\n let index = find_index_hint(values, |v: Field| min.lt(v));\n assert_eq(index, 2);\n}\n\n#[test]\nunconstrained fn find_index_not_found() {\n let values = [10, 20, 30, 40];\n let min = 100;\n let index = find_index_hint(values, |v: Field| min.lt(v));\n assert_eq(index, 4);\n}\n\n#[test]\nfn test_array_concat() {\n let array0 = [1, 2, 3];\n let array1 = [4, 5];\n let concatenated = array_concat(array0, array1);\n assert_eq(concatenated, [1, 2, 3, 4, 5]);\n}\n\n#[test]\nfn check_permutation_basic_test() {\n let original_array = [1, 2, 3];\n let permuted_array = [3, 1, 2];\n let indexes = [2, 0, 1];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Duplicated index\")]\nfn check_permutation_duplicated_index() {\n let original_array = [0, 1, 0];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 0];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Invalid index\")]\nfn check_permutation_invalid_index() {\n let original_array = [0, 1, 2];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 2];\n check_permutation(original_array, permuted_array, indexes);\n}\n"
6028
6028
  },
6029
- "324": {
6029
+ "326": {
6030
6030
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr",
6031
6031
  "source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; K];\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"
6032
6032
  },
6033
- "329": {
6033
+ "331": {
6034
6034
  "path": "/root/nargo/github.com/noir-lang/ec/v0.1.2/src/lib.nr",
6035
6035
  "source": "// Elliptic curve implementation\n// Overview\n// ========\n// The following three elliptic curve representations are admissible:\npub mod tecurve; // Twisted Edwards curves\npub mod swcurve; // Elliptic curves in Short Weierstrass form\npub mod montcurve; // Montgomery curves\npub mod consts; // Commonly used curve presets\n//\n// Note that Twisted Edwards and Montgomery curves are (birationally) equivalent, so that\n// they may be freely converted between one another, whereas Short Weierstrass curves are\n// more general. Diagramatically:\n//\n// tecurve == montcurve `subset` swcurve\n//\n// Each module is further divided into two submodules, 'affine' and 'curvegroup', depending\n// on the preferred coordinate representation. Affine coordinates are none other than the usual\n// two-dimensional Cartesian coordinates used in the definitions of these curves, whereas\n// 'CurveGroup' coordinates (terminology borrowed from Arkworks, whose conventions we try\n// to follow) are special coordinate systems with respect to which the group operations may be\n// implemented more efficiently, usually by means of an appropriate choice of projective coordinates.\n//\n// In each of these submodules, there is a Point struct and a Curve struct, the former\n// representing a point in the coordinate system and the latter a curve configuration.\n//\n// Points\n// ======\n// Points may be instantiated using the associated function `new`, which takes coordinates\n// as its arguments. For instance,\n//\n// `let p = swcurve::Point::new(1,1);`\n//\n// The additive identity may be constructed by a call to the associated function `zero` of no\n// arguments:\n//\n// `let zero = swcurve::Point::zero();`\n//\n// Points may be tested for equality by calling the method `eq`:\n//\n// `let pred = p.eq(zero);`\n//\n// There is also the method `is_zero` to explicitly check whether a point is the additive identity:\n//\n// `constrain pred == p.is_zero();`\n//\n// Points may be negated by calling the `negate` method and converted to CurveGroup (or affine)\n// coordinates by calling the `into_group` (resp. `into_affine`) method on them. Finally,\n// Points may be freely mapped between their respective Twisted Edwards and Montgomery\n// representations by calling the `into_montcurve` or `into_tecurve` methods. For mappings\n// between Twisted Edwards/Montgomery curves and Short Weierstrass curves, see the Curve section\n// below, as the underlying mappings are those of curves rather than ambient spaces.\n// As a rule, Points in affine (or CurveGroup) coordinates are mapped to Points in affine\n// (resp. CurveGroup) coordinates.\n//\n// Curves\n// ======\n// A curve configuration (Curve) is completely determined by the Field coefficients of its defining\n// equation (a and b in the case of swcurve, a and d in the case of tecurve, and j and k in\n// the case of montcurve) together with a generator (`gen`) in the corresponding coordinate system.\n// For example, the Baby Jubjub curve configuration as defined in ERC-2494 may be instantiated as a Twisted\n// Edwards curve in affine coordinates as follows:\n//\n// `let bjj_affine = tecurve::Curve::new(168700, 168696, tecurve::Point::new(995203441582195749578291179787384436505546430278305826713579947235728471134,5472060717959818805561601436314318772137091100104008585924551046643952123905));`\n//\n// The `contains` method may be used to check whether a Point lies on a given curve:\n//\n// `constrain bjj_affine.contains(tecurve::Point::zero());`\n//\n// The elliptic curve group's addition operation is exposed as the `add` method, e.g.\n//\n// `let p = bjj_affine.add(bjj_affine.gen, bjj_affine.gen);`\n//\n// subtraction as the `subtract` method, e.g.\n//\n// `constrain tecurve::Point::zero().eq(bjj_affine.subtract(bjj_affine.gen, bjj_affine.gen));`\n//\n// scalar multiplication as the `mul` method, where the scalar is assumed to be a Field* element, e.g.\n//\n// `constrain tecurve::Point::zero().eq(bjj_affine.mul(2, tecurve::Point::zero());`\n//\n// There is a scalar multiplication method (`bit_mul`) provided where the scalar input is expected to be\n// an array of bits (little-endian convention), as well as a multi-scalar multiplication method** (`msm`)\n// which takes an array of Field elements and an array of elliptic curve points as arguments, both assumed\n// to be of the same length.\n//\n// Curve configurations may be converted between different coordinate representations by calling the `into_group`\n// and `into_affine` methods on them, e.g.\n//\n// `let bjj_curvegroup = bjj_affine.into_group();`\n//\n// Curve configurations may also be converted between different curve representations by calling the `into_swcurve`,\n// `into_montcurve` and `into_tecurve` methods subject to the relation between the curve representations mentioned\n// above. Note that it is possible to map Points from a Twisted Edwards/Montgomery curve to the corresponding\n// Short Weierstrass representation and back, and the methods to do so are exposed as `map_into_swcurve` and\n// `map_from_swcurve`, which each take one argument, the point to be mapped.\n//\n// Curve maps\n// ==========\n// There are a few different ways of mapping Field elements to elliptic curves. Here we provide the simplified\n// Shallue-van de Woestijne-Ulas and Elligator 2 methods, the former being applicable to all curve types\n// provided above subject to the constraint that the coefficients of the corresponding Short Weierstrass curve satisfies\n// a*b != 0 and the latter being applicable to Montgomery and Twisted Edwards curves subject to the constraint that\n// the coefficients of the corresponding Montgomery curve satisfy j*k != 0 and (j^2 - 4)/k^2 is non-square.\n//\n// The simplified Shallue-van de Woestijne-Ulas method is exposed as the method `swu_map` on the Curve configuration and\n// depends on two parameters, a Field element z != -1 for which g(x) - z is irreducible over Field and g(b/(z*a)) is\n// square, where g(x) = x^3 + a*x + b is the right-hand side of the defining equation of the corresponding Short\n// Weierstrass curve, and a Field element u to be mapped onto the curve. For example, in the case of bjj_affine above,\n// it may be determined using the scripts provided at <https://github.com/cfrg/draft-irtf-cfrg-hash-to-curve> that z = 5.\n//\n// The Elligator 2 method is exposed as the method `elligator2_map` on the Curve configurations of Montgomery and\n// Twisted Edwards curves. Like the simplified SWU method above, it depends on a certain non-square element of Field,\n// but this element need not satisfy any further conditions, so it is included as the (Field-dependent) constant\n//`ZETA` below. Thus, the `elligator2_map` method depends only on one parameter, the Field element to be mapped onto\n// the curve.\n//\n// For details on all of the above in the context of hashing to elliptic curves, see <https://datatracker.ietf.org/doc/id/draft-irtf-cfrg-hash-to-curve-06.html>.\n//\n//\n// *TODO: Replace Field with Bigint.\n// **TODO: Support arrays of structs to make this work.\n// Field-dependent constant ZETA = a non-square element of Field\n// Required for Elligator 2 map\n// TODO: Replace with built-in constant.\nglobal ZETA: Field = 5;\n// Field-dependent constants for Tonelli-Shanks algorithm (see sqrt function below)\n// TODO: Possibly make this built-in.\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n// Higher-order version of scalar multiplication\n// TODO: Make this work so that the submodules' bit_mul may be defined in terms of it.\n//fn bit_mul<T,N>(add: fn(T,T) -> T, e: T, bits: [u1; N], p: T) -> T {\n// let mut out = e;\n// let n = bits.len();\n//\n// for i in 0..n {\n// out = add(\n// add(out, out),\n// if(bits[n - i - 1] == 0) {e} else {p});\n// }\n//\n// out\n//}\n// TODO: Make this built-in.\npub fn safe_inverse(x: Field) -> Field {\n if x == 0 {\n 0\n } else {\n 1 / x\n }\n}\n// Boolean indicating whether Field element is a square, i.e. whether there exists a y in Field s.t. x = y*y.\npub fn is_square(x: Field) -> bool {\n let v = pow(x, 0 - 1 / 2);\n\n v * (v - 1) == 0\n}\n// Power function of two Field arguments of arbitrary size.\n// Adapted from std::field::pow_32.\npub fn pow(x: Field, y: Field) -> Field {\n let mut r = 1 as Field;\n let b: [u1; 254] = y.to_le_bits();\n\n for i in 0..254 {\n r *= r;\n r *= (b[254 - 1 - i] as Field) * x + (1 - b[254 - 1 - i] as Field);\n }\n\n r\n}\n// Tonelli-Shanks algorithm for computing the square root of a Field element.\n// Requires C1 = max{c: 2^c divides (p-1)}, where p is the order of Field\n// as well as C3 = (C2 - 1)/2, where C2 = (p-1)/(2^c1),\n// and C5 = ZETA^C2, where ZETA is a non-square element of Field.\n// These are pre-computed above as globals.\npub fn sqrt(x: Field) -> Field {\n let mut z = pow(x, C3);\n let mut t = z * z * x;\n z *= x;\n let mut b = t;\n let mut c = C5;\n\n for i in 0..(C1 - 1) {\n for _j in 1..(C1 - i - 1) {\n b *= b;\n }\n\n z *= if b == 1 { 1 } else { c };\n\n c *= c;\n\n t *= if b == 1 { 1 } else { c };\n\n b = t;\n }\n\n z\n}\n\nmod tests {\n use crate::montcurve::affine::Point as MGaffine;\n use crate::montcurve::curvegroup::Point as MG;\n use crate::swcurve::affine::Point as SWGaffine;\n use crate::swcurve::curvegroup::Point as SWG;\n use crate::tecurve::affine::Curve as AffineCurve;\n use crate::tecurve::affine::Point as Gaffine;\n use crate::tecurve::curvegroup::Point as G;\n\n #[test]\n fn smoke_test() {\n // Tests may be checked against https://github.com/cfrg/draft-irtf-cfrg-hash-to-curve/tree/main/poc\n // Define Baby Jubjub (ERC-2494) parameters in affine representation\n let bjj_affine = AffineCurve::new(\n 168700,\n 168696,\n Gaffine::new(\n 995203441582195749578291179787384436505546430278305826713579947235728471134,\n 5472060717959818805561601436314318772137091100104008585924551046643952123905,\n ),\n );\n // Test addition\n let p1_affine = Gaffine::new(\n 17777552123799933955779906779655732241715742912184938656739573121738514868268,\n 2626589144620713026669568689430873010625803728049924121243784502389097019475,\n );\n let p2_affine = Gaffine::new(\n 16540640123574156134436876038791482806971768689494387082833631921987005038935,\n 20819045374670962167435360035096875258406992893633759881276124905556507972311,\n );\n\n let p3_affine = bjj_affine.add(p1_affine, p2_affine);\n assert(p3_affine.eq(Gaffine::new(\n 7916061937171219682591368294088513039687205273691143098332585753343424131937,\n 14035240266687799601661095864649209771790948434046947201833777492504781204499,\n )));\n // Test scalar multiplication\n let p4_affine = bjj_affine.mul(2, p1_affine);\n assert(p4_affine.eq(Gaffine::new(\n 6890855772600357754907169075114257697580319025794532037257385534741338397365,\n 4338620300185947561074059802482547481416142213883829469920100239455078257889,\n )));\n assert(p4_affine.eq(bjj_affine.bit_mul([0, 1], p1_affine)));\n // Test subtraction\n let p5_affine = bjj_affine.subtract(p3_affine, p3_affine);\n assert(p5_affine.eq(Gaffine::zero()));\n // Check that these points are on the curve\n assert(\n bjj_affine.contains(bjj_affine.gen)\n & bjj_affine.contains(p1_affine)\n & bjj_affine.contains(p2_affine)\n & bjj_affine.contains(p3_affine)\n & bjj_affine.contains(p4_affine)\n & bjj_affine.contains(p5_affine),\n );\n // Test CurveGroup equivalents\n let bjj = bjj_affine.into_group(); // Baby Jubjub\n let p1 = p1_affine.into_group();\n let p2 = p2_affine.into_group();\n let p3 = p3_affine.into_group();\n let p4 = p4_affine.into_group();\n let p5 = p5_affine.into_group();\n // Test addition\n assert(p3.eq(bjj.add(p1, p2)));\n // Test scalar multiplication\n assert(p4.eq(bjj.mul(2, p1)));\n assert(p4.eq(bjj.bit_mul([0, 1], p1)));\n // Test subtraction\n assert(G::zero().eq(bjj.subtract(p3, p3)));\n assert(p5.eq(G::zero()));\n // Check that these points are on the curve\n assert(\n bjj.contains(bjj.gen)\n & bjj.contains(p1)\n & bjj.contains(p2)\n & bjj.contains(p3)\n & bjj.contains(p4)\n & bjj.contains(p5),\n );\n // Test SWCurve equivalents of the above\n // First the affine representation\n let bjj_swcurve_affine = bjj_affine.into_swcurve();\n\n let p1_swcurve_affine = bjj_affine.map_into_swcurve(p1_affine);\n let p2_swcurve_affine = bjj_affine.map_into_swcurve(p2_affine);\n let p3_swcurve_affine = bjj_affine.map_into_swcurve(p3_affine);\n let p4_swcurve_affine = bjj_affine.map_into_swcurve(p4_affine);\n let p5_swcurve_affine = bjj_affine.map_into_swcurve(p5_affine);\n // Addition\n assert(p3_swcurve_affine.eq(bjj_swcurve_affine.add(p1_swcurve_affine, p2_swcurve_affine)));\n // Doubling\n assert(p4_swcurve_affine.eq(bjj_swcurve_affine.mul(2, p1_swcurve_affine)));\n assert(p4_swcurve_affine.eq(bjj_swcurve_affine.bit_mul([0, 1], p1_swcurve_affine)));\n // Subtraction\n assert(SWGaffine::zero().eq(bjj_swcurve_affine.subtract(\n p3_swcurve_affine,\n p3_swcurve_affine,\n )));\n assert(p5_swcurve_affine.eq(SWGaffine::zero()));\n // Check that these points are on the curve\n assert(\n bjj_swcurve_affine.contains(bjj_swcurve_affine.gen)\n & bjj_swcurve_affine.contains(p1_swcurve_affine)\n & bjj_swcurve_affine.contains(p2_swcurve_affine)\n & bjj_swcurve_affine.contains(p3_swcurve_affine)\n & bjj_swcurve_affine.contains(p4_swcurve_affine)\n & bjj_swcurve_affine.contains(p5_swcurve_affine),\n );\n // Then the CurveGroup representation\n let bjj_swcurve = bjj.into_swcurve();\n\n let p1_swcurve = bjj.map_into_swcurve(p1);\n let p2_swcurve = bjj.map_into_swcurve(p2);\n let p3_swcurve = bjj.map_into_swcurve(p3);\n let p4_swcurve = bjj.map_into_swcurve(p4);\n let p5_swcurve = bjj.map_into_swcurve(p5);\n // Addition\n assert(p3_swcurve.eq(bjj_swcurve.add(p1_swcurve, p2_swcurve)));\n // Doubling\n assert(p4_swcurve.eq(bjj_swcurve.mul(2, p1_swcurve)));\n assert(p4_swcurve.eq(bjj_swcurve.bit_mul([0, 1], p1_swcurve)));\n // Subtraction\n assert(SWG::zero().eq(bjj_swcurve.subtract(p3_swcurve, p3_swcurve)));\n assert(p5_swcurve.eq(SWG::zero()));\n // Check that these points are on the curve\n assert(\n bjj_swcurve.contains(bjj_swcurve.gen)\n & bjj_swcurve.contains(p1_swcurve)\n & bjj_swcurve.contains(p2_swcurve)\n & bjj_swcurve.contains(p3_swcurve)\n & bjj_swcurve.contains(p4_swcurve)\n & bjj_swcurve.contains(p5_swcurve),\n );\n // Test MontCurve conversions\n // First the affine representation\n let bjj_montcurve_affine = bjj_affine.into_montcurve();\n\n let p1_montcurve_affine = p1_affine.into_montcurve();\n let p2_montcurve_affine = p2_affine.into_montcurve();\n let p3_montcurve_affine = p3_affine.into_montcurve();\n let p4_montcurve_affine = p4_affine.into_montcurve();\n let p5_montcurve_affine = p5_affine.into_montcurve();\n // Addition\n assert(p3_montcurve_affine.eq(bjj_montcurve_affine.add(\n p1_montcurve_affine,\n p2_montcurve_affine,\n )));\n // Doubling\n assert(p4_montcurve_affine.eq(bjj_montcurve_affine.mul(2, p1_montcurve_affine)));\n assert(p4_montcurve_affine.eq(bjj_montcurve_affine.bit_mul([0, 1], p1_montcurve_affine)));\n // Subtraction\n assert(MGaffine::zero().eq(bjj_montcurve_affine.subtract(\n p3_montcurve_affine,\n p3_montcurve_affine,\n )));\n assert(p5_montcurve_affine.eq(MGaffine::zero()));\n // Check that these points are on the curve\n assert(\n bjj_montcurve_affine.contains(bjj_montcurve_affine.gen)\n & bjj_montcurve_affine.contains(p1_montcurve_affine)\n & bjj_montcurve_affine.contains(p2_montcurve_affine)\n & bjj_montcurve_affine.contains(p3_montcurve_affine)\n & bjj_montcurve_affine.contains(p4_montcurve_affine)\n & bjj_montcurve_affine.contains(p5_montcurve_affine),\n );\n // Then the CurveGroup representation\n let bjj_montcurve = bjj.into_montcurve();\n\n let p1_montcurve = p1_montcurve_affine.into_group();\n let p2_montcurve = p2_montcurve_affine.into_group();\n let p3_montcurve = p3_montcurve_affine.into_group();\n let p4_montcurve = p4_montcurve_affine.into_group();\n let p5_montcurve = p5_montcurve_affine.into_group();\n // Addition\n assert(p3_montcurve.eq(bjj_montcurve.add(p1_montcurve, p2_montcurve)));\n // Doubling\n assert(p4_montcurve.eq(bjj_montcurve.mul(2, p1_montcurve)));\n assert(p4_montcurve.eq(bjj_montcurve.bit_mul([0, 1], p1_montcurve)));\n // Subtraction\n assert(MG::zero().eq(bjj_montcurve.subtract(p3_montcurve, p3_montcurve)));\n assert(p5_montcurve.eq(MG::zero()));\n // Check that these points are on the curve\n assert(\n bjj_montcurve.contains(bjj_montcurve.gen)\n & bjj_montcurve.contains(p1_montcurve)\n & bjj_montcurve.contains(p2_montcurve)\n & bjj_montcurve.contains(p3_montcurve)\n & bjj_montcurve.contains(p4_montcurve)\n & bjj_montcurve.contains(p5_montcurve),\n );\n // Elligator 2 map-to-curve\n let ell2_pt_map = bjj_affine.elligator2_map(27);\n\n assert(ell2_pt_map.eq(MGaffine::new(\n 7972459279704486422145701269802978968072470631857513331988813812334797879121,\n 8142420778878030219043334189293412482212146646099536952861607542822144507872,\n )\n .into_tecurve()));\n // SWU map-to-curve\n let swu_pt_map = bjj_affine.swu_map(5, 27);\n\n assert(swu_pt_map.eq(bjj_affine.map_from_swcurve(SWGaffine::new(\n 2162719247815120009132293839392097468339661471129795280520343931405114293888,\n 5341392251743377373758788728206293080122949448990104760111875914082289313973,\n ))));\n }\n\n}\n"
6036
6036
  },
6037
- "333": {
6037
+ "335": {
6038
6038
  "path": "/build-volume/noir-projects/noir-contracts/contracts/ecdsa_public_key_note/src/lib.nr",
6039
6039
  "source": "use dep::aztec::prelude::{NoteHeader, NoteInterface, NullifiableNote, PrivateContext};\n\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::{get_nsk_app, get_public_keys},\n protocol_types::{address::AztecAddress, constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator},\n macros::notes::note_custom_interface, generators::Ga1 as Gx_1, generators::Ga2 as Gx_2,\n generators::Ga3 as Gy_1, generators::Ga4 as Gy_2, generators::Ga5 as G_owner, generators::G_slot\n};\n\nuse std::hash::from_field_unsafe;\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: u32 = 5;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[note_custom_interface]\npub struct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n owner: AztecAddress,\n}\n\nimpl NoteInterface<ECDSA_PUBLIC_KEY_NOTE_LEN> for EcdsaPublicKeyNote {\n // Cannot use the automatic serialization since x and y don't fit. Serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = owner\n fn serialize_content(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n\n [x, last_x, y, last_y, self.owner.to_field()]\n }\n\n // Cannot use the automatic deserialization for the aforementioned reasons\n fn deserialize_content(serialized_note: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x:[u8; 32] = serialized_note[0].to_be_bytes();\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes::<32>()[31];\n\n let part_y:[u8; 32] = serialized_note[2].to_be_bytes();\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes::<32>()[31];\n\n EcdsaPublicKeyNote { x, y, owner: AztecAddress::from_field(serialized_note[4]), header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64] = [0; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64];\n\n let storage_slot_bytes: [u8; 32] = storage_slot.to_be_bytes();\n let note_type_id_bytes: [u8; 32] = EcdsaPublicKeyNote::get_note_type_id().to_be_bytes();\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes: [u8; 32] = serialized_note[i].to_be_bytes();\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n\n fn get_note_type_id() -> Field {\n // randomly chosen note type id --> has to fit within 7 bits\n 76\n }\n\n fn get_header(self) -> NoteHeader {\n self.header\n }\n\n fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n\n fn compute_note_hash(self) -> Field {\n let serialized = self.serialize_content();\n std::embedded_curve_ops::multi_scalar_mul(\n [Gx_1, Gx_2, Gy_1, Gy_2, G_owner, G_slot],\n [\n from_field_unsafe(serialized[0]),\n from_field_unsafe(serialized[1]),\n from_field_unsafe(serialized[2]),\n from_field_unsafe(serialized[3]),\n from_field_unsafe(serialized[4]),\n from_field_unsafe(self.get_header().storage_slot)\n ]\n ).x\n }\n}\n\nimpl NullifiableNote for EcdsaPublicKeyNote {\n\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let owner_npk_m_hash = get_public_keys(self.owner).npk_m.hash();\n let secret = context.request_nsk_app(owner_npk_m_hash);\n poseidon2_hash_with_separator(\n [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n\n unconstrained fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let owner_npk_m_hash = get_public_keys(self.owner).npk_m.hash();\n let secret = get_nsk_app(owner_npk_m_hash);\n poseidon2_hash_with_separator(\n [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], owner: AztecAddress) -> Self {\n EcdsaPublicKeyNote { x, y, owner, header: NoteHeader::empty() }\n }\n}\n"
6040
6040
  },
@@ -6080,11 +6080,11 @@
6080
6080
  },
6081
6081
  "79": {
6082
6082
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/context/private_context.nr",
6083
- "source": "use dep::protocol_types::debug_log::debug_log_format;\n\nuse crate::{\n context::{inputs::PrivateContextInputs, returns_hash::ReturnsHash},\n hash::{ArgsHasher, hash_args_array},\n keys::constants::{NULLIFIER_INDEX, NUM_KEY_TYPES, OUTGOING_INDEX, sk_generators},\n messaging::process_l1_to_l2_message,\n oracle::{\n block_header::get_block_header_at,\n call_private_function::call_private_function_internal,\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal,\n },\n execution_cache,\n key_validation_request::get_key_validation_request,\n notes::{notify_created_nullifier, notify_nullified_note},\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext,\n function_selector::FunctionSelector,\n log::Log,\n log_hash::LogHash,\n max_block_number::MaxBlockNumber,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_call_request::PrivateCallRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n private_log::PrivateLogData,\n public_call_request::PublicCallRequest,\n read_request::ReadRequest,\n side_effect::Counted,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n },\n address::{AztecAddress, EthAddress},\n block_header::BlockHeader,\n constants::{\n MAX_CONTRACT_CLASS_LOGS_PER_CALL, MAX_ENQUEUED_CALLS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NOTE_HASHES_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL,\n PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DISPATCH_SELECTOR,\n },\n messaging::l2_to_l1_message::L2ToL1Message,\n traits::Empty,\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n pub inputs: PrivateContextInputs,\n pub side_effect_counter: u32,\n\n pub min_revertible_side_effect_counter: u32,\n pub is_fee_payer: bool,\n\n pub args_hash: Field,\n pub return_hash: Field,\n\n pub max_block_number: MaxBlockNumber,\n\n pub note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n pub nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n pub note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n pub nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n pub private_call_requests: BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n pub public_call_requests: BoundedVec<Counted<PublicCallRequest>, MAX_ENQUEUED_CALLS_PER_CALL>,\n pub public_teardown_call_request: PublicCallRequest,\n pub l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n pub historical_header: BlockHeader,\n\n pub private_logs: BoundedVec<PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL>,\n pub contract_class_logs_hashes: BoundedVec<LogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n pub last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n\n pub fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.inputs.call_context.contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n pub fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n pub fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n\n // WARNING(https://github.com/AztecProtocol/aztec-packages/issues/10558): if you delete this debug_log_format line, some tests fail.\n debug_log_format(\n \"Context.note_hashes, after pushing new note hash: {0}\",\n self.note_hashes.storage().map(|nh: NoteHash| nh.value),\n );\n }\n\n pub fn push_nullifier(&mut self, nullifier: Field) {\n notify_created_nullifier(nullifier);\n self.nullifiers.push(\n Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() },\n );\n }\n\n pub fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n let nullifier_counter = self.next_counter();\n notify_nullified_note(nullifier, nullified_note_hash, nullifier_counter);\n self.nullifiers.push(\n Nullifier {\n value: nullifier,\n note_hash: nullified_note_hash,\n counter: nullifier_counter,\n },\n );\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n pub fn get_block_header(self) -> BlockHeader {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_block_header_at(self, block_number: u32) -> BlockHeader {\n get_block_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n execution_cache::store(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage(),\n nullifier_read_requests: self.nullifier_read_requests.storage(),\n key_validation_requests_and_generators: self\n .key_validation_requests_and_generators\n .storage(),\n note_hashes: self.note_hashes.storage(),\n nullifiers: self.nullifiers.storage(),\n private_call_requests: self.private_call_requests.storage(),\n public_call_requests: self.public_call_requests.storage(),\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage(),\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n private_logs: self.private_logs.storage(),\n contract_class_logs_hashes: self.contract_class_logs_hashes.storage(),\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context,\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\n \"Setting {0} as fee payer\",\n [self.this_address().to_field()],\n );\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number =\n MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request =\n self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale\n // Typically we'd validate keys by showing that they are the preimage of `pk_m_hash`, but that'd require\n // the oracle returning the master secret keys, which could cause malicious contracts to leak it or learn\n // about secrets from other contracts. We therefore silo secret keys, and rely on the private kernel to\n // validate that we siloed secret key corresponds to correct siloing of the master secret key that hashes\n // to `pk_m_hash`.\n\n /// Safety: Kernels verify that the key validation request is valid and below we verify that a request\n /// for the correct public key has been received.\n let request = unsafe { get_key_validation_request(pk_m_hash, key_index) };\n assert_eq(request.pk_m.hash(), pk_m_hash, \"Obtained invalid key validation request\");\n\n self.key_validation_requests_and_generators.push(\n KeyValidationRequestAndGenerator {\n request,\n sk_app_generator: sk_generators[key_index],\n },\n );\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(\n &mut self,\n content: Field,\n secret: Field,\n sender: EthAddress,\n leaf_index: Field,\n ) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret,\n leaf_index,\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n pub fn emit_private_log(&mut self, log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS]) {\n let counter = self.next_counter();\n let private_log = PrivateLogData { log: Log::new(log), note_hash_counter: 0, counter };\n self.private_logs.push(private_log);\n }\n\n pub fn emit_raw_note_log(\n &mut self,\n log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS],\n note_hash_counter: u32,\n ) {\n let counter = self.next_counter();\n let private_log = PrivateLogData { log: Log::new(log), note_hash_counter, counter };\n self.private_logs.push(private_log);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> ReturnsHash {\n let args_hash = hash_args_array(args);\n execution_cache::store_array(args);\n self.call_private_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> ReturnsHash {\n let args_hash = hash_args_array(args);\n execution_cache::store_array(args);\n self.call_private_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> ReturnsHash {\n self.call_private_function_with_args_hash(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> ReturnsHash {\n self.call_private_function_with_args_hash(contract_address, function_selector, 0, true)\n }\n\n pub fn call_private_function_with_args_hash(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> ReturnsHash {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n\n /// Safety: The oracle simulates the private call and returns the value of the side effects counter after\n /// execution of the call (which means that end_side_effect_counter - start_side_effect_counter is\n /// the number of side effects that took place), along with the hash of the return values. We validate these\n /// by requesting a private kernel iteration in which the return values are constrained to hash\n /// to `returns_hash` and the side effects counter to increment from start to end.\n let (end_side_effect_counter, returns_hash) = unsafe {\n call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n )\n };\n\n self.private_call_requests.push(\n PrivateCallRequest {\n call_context: CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n },\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter,\n },\n );\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n self.side_effect_counter = end_side_effect_counter + 1;\n ReturnsHash::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n execution_cache::store_array(args);\n self.call_public_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n execution_cache::store_array(args);\n self.call_public_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_args_hash(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_args_hash(contract_address, function_selector, 0, true)\n }\n\n pub fn call_public_function_with_args_hash(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n /// Safety: TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n /// WARNING: This is insecure and should be temporary!\n /// The oracle hashes the arguments and returns a new args_hash.\n /// new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n /// We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n /// b) this is only temporary.\n let args_hash = unsafe {\n enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n )\n };\n\n // Public calls are rerouted through the dispatch function.\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n let call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n\n self.public_call_requests.push(Counted::new(call_request, counter));\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n execution_cache::store_array(args);\n self.set_public_teardown_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn set_public_teardown_function_with_args_hash(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n /// Safety: TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n /// WARNING: This is insecure and should be temporary!\n /// The oracle hashes the arguments and returns a new args_hash.\n /// new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n /// We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n /// b) this is only temporary.\n let args_hash = unsafe {\n set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n )\n };\n\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n self.public_teardown_call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: BlockHeader::empty(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n}\n"
6083
+ "source": "use dep::protocol_types::debug_log::debug_log_format;\n\nuse crate::{\n context::{inputs::PrivateContextInputs, returns_hash::ReturnsHash},\n hash::{ArgsHasher, hash_args_array},\n keys::constants::{NULLIFIER_INDEX, NUM_KEY_TYPES, OUTGOING_INDEX, sk_generators},\n messaging::process_l1_to_l2_message,\n oracle::{\n block_header::get_block_header_at,\n call_private_function::call_private_function_internal,\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal,\n },\n execution_cache,\n key_validation_request::get_key_validation_request,\n notes::{notify_created_nullifier, notify_nullified_note},\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext,\n function_selector::FunctionSelector,\n log::Log,\n log_hash::LogHash,\n max_block_number::MaxBlockNumber,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_call_request::PrivateCallRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n private_log::PrivateLogData,\n public_call_request::PublicCallRequest,\n read_request::ReadRequest,\n side_effect::Counted,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n },\n address::{AztecAddress, EthAddress},\n block_header::BlockHeader,\n constants::{\n MAX_CONTRACT_CLASS_LOGS_PER_CALL, MAX_ENQUEUED_CALLS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NOTE_HASHES_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL,\n PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DISPATCH_SELECTOR,\n },\n messaging::l2_to_l1_message::L2ToL1Message,\n traits::Empty,\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n pub inputs: PrivateContextInputs,\n pub side_effect_counter: u32,\n\n pub min_revertible_side_effect_counter: u32,\n pub is_fee_payer: bool,\n\n pub args_hash: Field,\n pub return_hash: Field,\n\n pub max_block_number: MaxBlockNumber,\n\n pub note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n pub nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n pub note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n pub nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n pub private_call_requests: BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n pub public_call_requests: BoundedVec<Counted<PublicCallRequest>, MAX_ENQUEUED_CALLS_PER_CALL>,\n pub public_teardown_call_request: PublicCallRequest,\n pub l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n pub historical_header: BlockHeader,\n\n pub private_logs: BoundedVec<PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL>,\n pub contract_class_logs_hashes: BoundedVec<LogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n pub last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n\n pub fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.inputs.call_context.contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n pub fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n pub fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n\n // WARNING(https://github.com/AztecProtocol/aztec-packages/issues/10558): if you delete this debug_log_format line, some tests fail.\n debug_log_format(\n \"Context.note_hashes, after pushing new note hash: {0}\",\n self.note_hashes.storage().map(|nh: NoteHash| nh.value),\n );\n }\n\n pub fn push_nullifier(&mut self, nullifier: Field) {\n notify_created_nullifier(nullifier);\n self.nullifiers.push(\n Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() },\n );\n }\n\n pub fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n let nullifier_counter = self.next_counter();\n notify_nullified_note(nullifier, nullified_note_hash, nullifier_counter);\n self.nullifiers.push(\n Nullifier {\n value: nullifier,\n note_hash: nullified_note_hash,\n counter: nullifier_counter,\n },\n );\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n pub fn get_block_header(self) -> BlockHeader {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_block_header_at(self, block_number: u32) -> BlockHeader {\n get_block_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n execution_cache::store(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage(),\n nullifier_read_requests: self.nullifier_read_requests.storage(),\n key_validation_requests_and_generators: self\n .key_validation_requests_and_generators\n .storage(),\n note_hashes: self.note_hashes.storage(),\n nullifiers: self.nullifiers.storage(),\n private_call_requests: self.private_call_requests.storage(),\n public_call_requests: self.public_call_requests.storage(),\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage(),\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n private_logs: self.private_logs.storage(),\n contract_class_logs_hashes: self.contract_class_logs_hashes.storage(),\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context,\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\n \"Setting {0} as fee payer\",\n [self.this_address().to_field()],\n );\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number =\n MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request =\n self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale\n // Typically we'd validate keys by showing that they are the preimage of `pk_m_hash`, but that'd require\n // the oracle returning the master secret keys, which could cause malicious contracts to leak it or learn\n // about secrets from other contracts. We therefore silo secret keys, and rely on the private kernel to\n // validate that we siloed secret key corresponds to correct siloing of the master secret key that hashes\n // to `pk_m_hash`.\n\n /// Safety: Kernels verify that the key validation request is valid and below we verify that a request\n /// for the correct public key has been received.\n let request = unsafe { get_key_validation_request(pk_m_hash, key_index) };\n assert_eq(request.pk_m.hash(), pk_m_hash, \"Obtained invalid key validation request\");\n\n self.key_validation_requests_and_generators.push(\n KeyValidationRequestAndGenerator {\n request,\n sk_app_generator: sk_generators[key_index],\n },\n );\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(\n &mut self,\n content: Field,\n secret: Field,\n sender: EthAddress,\n leaf_index: Field,\n ) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret,\n leaf_index,\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n pub fn emit_private_log(&mut self, log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS]) {\n let counter = self.next_counter();\n let private_log = PrivateLogData { log: Log::new(log), note_hash_counter: 0, counter };\n self.private_logs.push(private_log);\n }\n\n pub fn emit_raw_note_log(\n &mut self,\n log: [Field; PRIVATE_LOG_SIZE_IN_FIELDS],\n note_hash_counter: u32,\n ) {\n let counter = self.next_counter();\n let private_log = PrivateLogData { log: Log::new(log), note_hash_counter, counter };\n self.private_logs.push(private_log);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> ReturnsHash {\n let args_hash = hash_args_array(args);\n execution_cache::store(args);\n self.call_private_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> ReturnsHash {\n let args_hash = hash_args_array(args);\n execution_cache::store(args);\n self.call_private_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> ReturnsHash {\n self.call_private_function_with_args_hash(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> ReturnsHash {\n self.call_private_function_with_args_hash(contract_address, function_selector, 0, true)\n }\n\n pub fn call_private_function_with_args_hash(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> ReturnsHash {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n\n /// Safety: The oracle simulates the private call and returns the value of the side effects counter after\n /// execution of the call (which means that end_side_effect_counter - start_side_effect_counter is\n /// the number of side effects that took place), along with the hash of the return values. We validate these\n /// by requesting a private kernel iteration in which the return values are constrained to hash\n /// to `returns_hash` and the side effects counter to increment from start to end.\n let (end_side_effect_counter, returns_hash) = unsafe {\n call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n )\n };\n\n self.private_call_requests.push(\n PrivateCallRequest {\n call_context: CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n },\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter,\n },\n );\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n self.side_effect_counter = end_side_effect_counter + 1;\n ReturnsHash::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n execution_cache::store(args);\n self.call_public_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n execution_cache::store(args);\n self.call_public_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_args_hash(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_args_hash(contract_address, function_selector, 0, true)\n }\n\n pub fn call_public_function_with_args_hash(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n /// Safety: TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n /// WARNING: This is insecure and should be temporary!\n /// The oracle hashes the arguments and returns a new args_hash.\n /// new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n /// We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n /// b) this is only temporary.\n let args_hash = unsafe {\n enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n )\n };\n\n // Public calls are rerouted through the dispatch function.\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n let call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n\n self.public_call_requests.push(Counted::new(call_request, counter));\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n execution_cache::store(args);\n self.set_public_teardown_function_with_args_hash(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn set_public_teardown_function_with_args_hash(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n /// Safety: TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n /// WARNING: This is insecure and should be temporary!\n /// The oracle hashes the arguments and returns a new args_hash.\n /// new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n /// We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n /// b) this is only temporary.\n let args_hash = unsafe {\n set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n )\n };\n\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n self.public_teardown_call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: BlockHeader::empty(),\n private_logs: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n}\n"
6084
6084
  },
6085
6085
  "82": {
6086
6086
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/context/unconstrained_context.nr",
6087
- "source": "use crate::oracle::{\n execution::{get_block_number, get_chain_id, get_contract_address, get_version},\n storage::storage_read,\n};\nuse dep::protocol_types::{address::AztecAddress, traits::Deserialize};\n\npub struct UnconstrainedContext {\n block_number: u32,\n contract_address: AztecAddress,\n version: Field,\n chain_id: Field,\n}\n\nimpl UnconstrainedContext {\n pub unconstrained fn new() -> Self {\n // We could call these oracles on the getters instead of at creation, which makes sense given that they might\n // not even be accessed. However any performance gains are minimal, and we'd rather fail early if a user\n // incorrectly attempts to create an UnconstrainedContext in an environment in which these oracles are not\n // available.\n let block_number = get_block_number();\n let contract_address = get_contract_address();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n pub unconstrained fn at(contract_address: AztecAddress) -> Self {\n let block_number = get_block_number();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n pub unconstrained fn at_historical(contract_address: AztecAddress, block_number: u32) -> Self {\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n pub fn block_number(self) -> u32 {\n self.block_number\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.contract_address\n }\n\n pub fn version(self) -> Field {\n self.version\n }\n\n pub fn chain_id(self) -> Field {\n self.chain_id\n }\n\n pub unconstrained fn raw_storage_read<let N: u32>(\n self: Self,\n storage_slot: Field,\n ) -> [Field; N] {\n storage_read(self.this_address(), storage_slot, self.block_number())\n }\n\n pub unconstrained fn storage_read<T, let N: u32>(self, storage_slot: Field) -> T\n where\n T: Deserialize<N>,\n {\n T::deserialize(self.raw_storage_read(storage_slot))\n }\n}\n"
6087
+ "source": "use crate::oracle::{\n execution::{get_block_number, get_chain_id, get_contract_address, get_version},\n storage::storage_read,\n};\nuse dep::protocol_types::{address::AztecAddress, traits::Packable};\n\npub struct UnconstrainedContext {\n block_number: u32,\n contract_address: AztecAddress,\n version: Field,\n chain_id: Field,\n}\n\nimpl UnconstrainedContext {\n pub unconstrained fn new() -> Self {\n // We could call these oracles on the getters instead of at creation, which makes sense given that they might\n // not even be accessed. However any performance gains are minimal, and we'd rather fail early if a user\n // incorrectly attempts to create an UnconstrainedContext in an environment in which these oracles are not\n // available.\n let block_number = get_block_number();\n let contract_address = get_contract_address();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n pub unconstrained fn at(contract_address: AztecAddress) -> Self {\n let block_number = get_block_number();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n pub unconstrained fn at_historical(contract_address: AztecAddress, block_number: u32) -> Self {\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n pub fn block_number(self) -> u32 {\n self.block_number\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.contract_address\n }\n\n pub fn version(self) -> Field {\n self.version\n }\n\n pub fn chain_id(self) -> Field {\n self.chain_id\n }\n\n pub unconstrained fn raw_storage_read<let N: u32>(\n self: Self,\n storage_slot: Field,\n ) -> [Field; N] {\n storage_read(self.this_address(), storage_slot, self.block_number())\n }\n\n pub unconstrained fn storage_read<T, let N: u32>(self, storage_slot: Field) -> T\n where\n T: Packable<N>,\n {\n T::unpack(self.raw_storage_read(storage_slot))\n }\n}\n"
6088
6088
  },
6089
6089
  "85": {
6090
6090
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr",
@@ -6096,11 +6096,11 @@
6096
6096
  },
6097
6097
  "88": {
6098
6098
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr",
6099
- "source": "use dep::protocol_types::{\n address::AztecAddress, constants::PRIVATE_LOG_SIZE_IN_FIELDS, hash::poseidon2_hash,\n point::Point, public_keys::AddressPoint, scalar::Scalar, utils::arrays::array_concat,\n};\nuse std::{\n aes128::aes128_encrypt, embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n hash::from_field_unsafe as fr_to_fq_unsafe,\n};\n\nuse crate::{\n encrypted_logs::header::EncryptedLogHeader,\n keys::secret_derivation::derive_aes_secret,\n oracle::{\n notes::{get_app_tag_as_sender, increment_app_tagging_secret_index_as_sender},\n random::random,\n },\n utils::{bytes::bytes_to_fields, point::point_to_bytes},\n};\n\n// 1 field is reserved for tag.\nglobal ENCRYPTED_PAYLOAD_SIZE_IN_BYTES: u32 = (PRIVATE_LOG_SIZE_IN_FIELDS - 1) * 31;\n\ncomptime global HEADER_SIZE: u32 = 48;\n\n// Bytes padded to the overhead, so that the size of the incoming body ciphertext will be a multiple of 16.\ncomptime global OVERHEAD_PADDING: u32 = 15;\n\npub comptime global OVERHEAD_SIZE: u32 = 32 /* eph_pk */\n + HEADER_SIZE /* incoming_header */\n + OVERHEAD_PADDING /* padding */;\n\nglobal PLAINTEXT_LENGTH_SIZE: u32 = 2;\n\n// This is enough for 8 fields of data.\n// 1 field for storage slot, 1 field for note/event type id, allowing 6 fields for custom values.\nglobal MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES: u32 =\n ENCRYPTED_PAYLOAD_SIZE_IN_BYTES - OVERHEAD_SIZE - PLAINTEXT_LENGTH_SIZE - 1 /* aes padding */;\n\n// Note: Might have to update PRIVATE_LOG_SIZE_IN_FIELDS in `constants.nr` if the above changes.\n// This value ideally should be set by the protocol, allowing users (or `aztec-nr`) to fit data within the defined size limits.\n// Currently, we adjust this value as the structure changes, then update `constants.nr` to match.\n// Once the structure is finalized with defined overhead and max note field sizes, this value will be fixed and should remain unaffected by further payload composition changes.\n\npub fn compute_private_log_payload<let P: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n sender: AztecAddress,\n plaintext: [u8; P],\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS] {\n assert(\n P < MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES,\n f\"plaintext for log must not exceed {MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES}\",\n );\n\n let extended_plaintext: [u8; MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES + PLAINTEXT_LENGTH_SIZE] =\n extend_private_log_plaintext(plaintext);\n let encrypted: [u8; ENCRYPTED_PAYLOAD_SIZE_IN_BYTES] =\n compute_encrypted_log(contract_address, recipient, extended_plaintext);\n\n /// Safety: We assume that the sender wants for the recipient to find the tagged note, and therefore that they\n /// will cooperate and use the correct tag. Usage of a bad tag will result in the recipient not being able to\n /// find the note automatically.\n let tag = unsafe { get_app_tag_as_sender(sender, recipient) };\n increment_app_tagging_secret_index_as_sender(sender, recipient);\n\n array_concat([tag], bytes_to_fields(encrypted))\n}\n\npub fn compute_partial_public_log_payload<let P: u32, let M: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n sender: AztecAddress,\n plaintext: [u8; P],\n) -> [u8; M] {\n let extended_plaintext: [u8; P + PLAINTEXT_LENGTH_SIZE] =\n extend_private_log_plaintext(plaintext);\n let encrypted: [u8; M - 32] =\n compute_encrypted_log(contract_address, recipient, extended_plaintext);\n\n /// Safety: We assume that the sender wants for the recipient to find the tagged note, and therefore that they\n /// will cooperate and use the correct tag. Usage of a bad tag will result in the recipient not being able to\n /// find the note automatically.\n let tag = unsafe { get_app_tag_as_sender(sender, recipient) };\n increment_app_tagging_secret_index_as_sender(sender, recipient);\n // Silo the tag with contract address.\n // This is done by the kernel circuit to the private logs, but since the partial log will be finalized and emitted\n // in public as unencrypted log, its tag is not siloed at the moment.\n // To avoid querying logs using two types of tags, we silo the tag manually here.\n // TODO(#10273) This should be done by the AVM when it's processing the raw logs instead of their hashes.\n let siloed_tag_bytes: [u8; 32] =\n poseidon2_hash([contract_address.to_field(), tag]).to_be_bytes();\n\n // Temporary hack so that the partial public log remains the same format.\n // It should return field array and make the tag the first field as compute_private_log_payload does.\n let mut log_bytes = [0; M];\n for i in 0..32 {\n log_bytes[i] = siloed_tag_bytes[i];\n }\n for i in 0..encrypted.len() {\n log_bytes[i + 32] = encrypted[i];\n }\n\n log_bytes\n}\n\nfn compute_encrypted_log<let P: u32, let M: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n plaintext: [u8; P],\n) -> [u8; M] {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] =\n header.compute_ciphertext(eph_sk, recipient.to_address_point());\n let incoming_body_ciphertext =\n compute_incoming_body_ciphertext(plaintext, eph_sk, recipient.to_address_point());\n\n let mut encrypted_bytes = [0; M];\n let mut offset = 0;\n\n // eph_pk\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[offset + i] = eph_pk_bytes[i];\n }\n offset += 32;\n\n // incoming_header\n for i in 0..HEADER_SIZE {\n encrypted_bytes[offset + i] = incoming_header_ciphertext[i];\n }\n offset += HEADER_SIZE;\n\n // Padding.\n offset += OVERHEAD_PADDING;\n\n // incoming_body\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - offset;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n // Nargo seems to struggle with realizing that `offset` is a constant at this point.\n // We then redefine it in terms of the assertion above to give nargo a hint.\n let offset = M - incoming_body_ciphertext.len();\n for i in 0..size {\n encrypted_bytes[offset + i] = incoming_body_ciphertext[i];\n }\n\n encrypted_bytes\n}\n\n// Prepend the plaintext length as the first byte, then copy the plaintext itself starting from the second byte.\n// Fill the remaining bytes with random values to reach a fixed length of N.\nfn extend_private_log_plaintext<let P: u32, let N: u32>(plaintext: [u8; P]) -> [u8; N] {\n /// Safety: A malicious sender could reveal the whole contents of the encrypted log so trusting it to set\n /// a random padding in plaintext is fine.\n let mut padded = unsafe { get_random_bytes() };\n padded[0] = (P >> 8) as u8;\n padded[1] = P as u8;\n for i in 0..P {\n padded[i + PLAINTEXT_LENGTH_SIZE] = plaintext[i];\n }\n padded\n}\n\nunconstrained fn get_random_bytes<let N: u32>() -> [u8; N] {\n let mut bytes = [0; N];\n let mut idx = 32;\n let mut randomness = [0; 32];\n for i in 0..N {\n if idx == 32 {\n randomness = random().to_be_bytes();\n idx = 1; // Skip the first byte as it's always 0.\n }\n bytes[i] = randomness[idx];\n idx += 1;\n }\n bytes\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n\n /// Safety: We use the randomness to preserve the privacy of both the sender and recipient via encryption, so\n /// a malicious sender could use non-random values to reveal the plaintext. But they already know it themselves\n /// anyway, and so the recipient already trusts them to not disclose this information. We can therefore assume\n /// that the sender will cooperate in the random value generation.\n let randomness = unsafe { random() };\n\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(randomness);\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\npub fn compute_incoming_body_ciphertext<let P: u32>(\n plaintext: [u8; P],\n eph_sk: Scalar,\n address_point: AddressPoint,\n) -> [u8; P + 16 - P % 16] {\n let full_key = derive_aes_secret(eph_sk, address_point.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(plaintext, iv, sym_key)\n}\n\nmod test {\n use crate::encrypted_logs::payload::{\n compute_incoming_body_ciphertext, compute_private_log_payload,\n MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES,\n };\n use dep::protocol_types::{address::AztecAddress, point::Point, scalar::Scalar};\n use protocol_types::public_keys::AddressPoint;\n use std::test::OracleMock;\n\n #[test]\n unconstrained fn test_encrypted_log_matches_typescript() {\n // All the values in this test were copied over from `encrypted_log_payload.test.ts`\n let contract_address = AztecAddress::from_field(\n 0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04,\n );\n\n let plaintext = [\n 0, 0, 0, 1, 48, 22, 64, 206, 234, 117, 131, 145, 178, 225, 97, 201, 44, 5, 19, 241, 41,\n 2, 15, 65, 37, 37, 106, 253, 174, 38, 70, 206, 49, 9, 159, 92, 16, 244, 140, 217, 239,\n 247, 174, 91, 32, 156, 85, 124, 112, 222, 46, 101, 126, 231, 145, 102, 134, 134, 118,\n 183, 135, 233, 65, 126, 25, 38, 14, 4, 15, 228, 107, 229, 131, 183, 31, 74, 181, 183,\n 12, 38, 87, 255, 29, 5, 204, 207, 29, 41, 42, 147, 105, 98, 141, 26, 25, 79, 148, 78,\n 101, 153, 0, 0, 16, 39,\n ];\n\n let randomness = 0x0101010101010101010101010101010101010101010101010101010101010101;\n let _ = OracleMock::mock(\"getRandomField\").returns(randomness).times(\n (MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES as u64 + 1 + 30) / 31,\n );\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk).times(1);\n\n let recipient = AztecAddress::from_field(\n 0x25afb798ea6d0b8c1618e50fdeafa463059415013d3b7c75d46abf5e242be70c,\n );\n\n let sender = AztecAddress::from_field(\n 0x25afb798ea6d0b8c1618e50fdeafa463059415013d3b7c75d46abf5e242be70c,\n );\n\n let _ = OracleMock::mock(\"getIndexedTaggingSecretAsSender\").returns([69420, 1337]);\n\n let _ = OracleMock::mock(\"incrementAppTaggingSecretIndexAsSender\").returns(());\n\n let payload = compute_private_log_payload(contract_address, recipient, sender, plaintext);\n\n // The following value was generated by `encrypted_log_payload.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let private_log_payload_from_typescript = [\n 0x0e9cffc3ddd746affb02410d8f0a823e89939785bcc8e88ee4f3cae05e737c36,\n 0x008d460c0e434d846ec1ea286e4090eb56376ff27bddc1aacae1d856549f701f,\n 0x00a70577790aeabcc2d81ec8d0c99e7f5d2bf2f1452025dc777a178404f851d9,\n 0x003de818923f85187871d99bdf95d695eff0a900000000000000000000000000,\n 0x000000a600a61f7d59eeaf52eb51bc0592ff981d9ba3ea8e6ea8ba9dc0cec8c7,\n 0x000b81e84556a77ce6c3ca47a527f99ffe7b2524bb885a23020b7295748ad19c,\n 0x001083618ad96298b76ee07eb1a56d19cc798710e9f5de96501bd59b3781c9c0,\n 0x002a6c95c5912f8936b1500d362afbf0922c85b1ada18db8b95162a6e9d06765,\n 0x005cdf669eb387f8e0492a95fdcdb39429d5340b4bebc250ba9bf62c2f49f549,\n 0x00f37beed75a668aa51967e0e57547e5a655157bcf381e22f30e25881548ec96,\n 0x0006a151b5fbfb2d14ee4b34bf4c1dbd71c7be15ad4c63474bb6f89970aeb3d9,\n 0x00489c8edbdff80a1a3a5c28370e534abc870a85ea4318326ea19222fb10df35,\n 0x008c765edada497db4284ae30507a2e03e983d23cfa0bd831577e857bbef9cf7,\n 0x0090c97cb5699cc8783a1b4276d929be2882e5b9b72829a4f8404f7e3c853d11,\n 0x00d6d5a000b80134891e95f81007ad35d3945eaeecbe137fff85d01d7eaf8f19,\n 0x00a15eb965c6a4bc97aa87fd3463c31c9d4e0d722a8ba870bcc50c9c7a8b48ad,\n 0x0063c861bdbe490d44c57382decbae663927909652f87ac18dcfd5b30649cce5,\n 0x00820f14caa725efe1fa3485ceac88499eadf0565c5b20998c05931bbf478e68,\n ];\n\n assert_eq(payload, private_log_payload_from_typescript);\n }\n\n #[test]\n fn test_incoming_body_ciphertext_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06,\n };\n let address_point = AddressPoint {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false,\n },\n };\n let plaintext = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,\n ];\n\n // `compute_incoming_body_ciphertext(...)` function then derives symmetric key from `eph_sk` and `address_point` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = compute_incoming_body_ciphertext(plaintext, eph_sk, address_point);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160,\n 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157,\n 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93,\n 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130,\n 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95,\n 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234,\n 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162,\n 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185,\n 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236,\n 23, 206, 229, 108,\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"
6099
+ "source": "use dep::protocol_types::{\n address::AztecAddress, constants::PRIVATE_LOG_SIZE_IN_FIELDS, hash::poseidon2_hash,\n point::Point, public_keys::AddressPoint, scalar::Scalar, utils::arrays::array_concat,\n};\nuse std::{\n aes128::aes128_encrypt, embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n hash::from_field_unsafe as fr_to_fq_unsafe,\n};\n\nuse crate::{\n encrypted_logs::header::EncryptedLogHeader,\n keys::secret_derivation::derive_aes_secret,\n oracle::{\n notes::{get_app_tag_as_sender, increment_app_tagging_secret_index_as_sender},\n random::random,\n },\n utils::{bytes::bytes_to_fields, point::point_to_bytes},\n};\n\n// 1 field is reserved for tag.\nglobal ENCRYPTED_PAYLOAD_SIZE_IN_BYTES: u32 = (PRIVATE_LOG_SIZE_IN_FIELDS - 1) * 31;\n\ncomptime global HEADER_SIZE: u32 = 48;\n\n// Bytes padded to the overhead, so that the size of the incoming body ciphertext will be a multiple of 16.\ncomptime global OVERHEAD_PADDING: u32 = 15;\n\npub comptime global OVERHEAD_SIZE: u32 = 32 /* eph_pk */\n + HEADER_SIZE /* incoming_header */\n + OVERHEAD_PADDING /* padding */;\n\nglobal PLAINTEXT_LENGTH_SIZE: u32 = 2;\n\n// This is enough for 8 fields of data.\n// 1 field for storage slot, 1 field for note/event type id, allowing 6 fields for custom values.\nglobal MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES: u32 =\n ENCRYPTED_PAYLOAD_SIZE_IN_BYTES - OVERHEAD_SIZE - PLAINTEXT_LENGTH_SIZE - 1 /* aes padding */;\n\n// Note: Might have to update PRIVATE_LOG_SIZE_IN_FIELDS in `constants.nr` if the above changes.\n// This value ideally should be set by the protocol, allowing users (or `aztec-nr`) to fit data within the defined size limits.\n// Currently, we adjust this value as the structure changes, then update `constants.nr` to match.\n// Once the structure is finalized with defined overhead and max note field sizes, this value will be fixed and should remain unaffected by further payload composition changes.\n\npub fn compute_private_log_payload<let P: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n sender: AztecAddress,\n plaintext: [u8; P],\n) -> [Field; PRIVATE_LOG_SIZE_IN_FIELDS] {\n assert(\n P < MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES,\n f\"plaintext for log must not exceed {MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES}\",\n );\n\n let extended_plaintext: [u8; MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES + PLAINTEXT_LENGTH_SIZE] =\n extend_private_log_plaintext(plaintext);\n let encrypted: [u8; ENCRYPTED_PAYLOAD_SIZE_IN_BYTES] =\n compute_encrypted_log(contract_address, recipient, extended_plaintext);\n\n /// Safety: We assume that the sender wants for the recipient to find the tagged note, and therefore that they\n /// will cooperate and use the correct tag. Usage of a bad tag will result in the recipient not being able to\n /// find the note automatically.\n let tag = unsafe { get_app_tag_as_sender(sender, recipient) };\n increment_app_tagging_secret_index_as_sender(sender, recipient);\n\n array_concat([tag], bytes_to_fields(encrypted))\n}\n\n// We return [Field; 1 + (M + 30) / 31], where M is the byte length of output of encryption because\n// each field (apart from the tag) contains 31 bytes so the length in fields is computed as ceil(setup_log_byte_length / 31)\n// --> we achieve rounding by adding 30 and then dividing without remainder, then add one for the 32 byte tag\npub fn compute_partial_public_log_payload<let P: u32, let M: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n sender: AztecAddress,\n plaintext: [u8; P],\n) -> [Field; 1 + (M + 30) / 31] {\n let extended_plaintext: [u8; P + PLAINTEXT_LENGTH_SIZE] =\n extend_private_log_plaintext(plaintext);\n let encrypted: [u8; M] = compute_encrypted_log(contract_address, recipient, extended_plaintext);\n\n /// Safety: We assume that the sender wants for the recipient to find the tagged note, and therefore that they\n /// will cooperate and use the correct tag. Usage of a bad tag will result in the recipient not being able to\n /// find the note automatically.\n let tag = unsafe { get_app_tag_as_sender(sender, recipient) };\n increment_app_tagging_secret_index_as_sender(sender, recipient);\n // Silo the tag with contract address.\n // This is done by the kernel circuit to the private logs, but since the partial log will be finalized and emitted\n // in public as unencrypted log, its tag is not siloed at the moment.\n // To avoid querying logs using two types of tags, we silo the tag manually here.\n let siloed_tag = poseidon2_hash([contract_address.to_field(), tag]);\n\n array_concat([siloed_tag], bytes_to_fields(encrypted))\n}\n\nfn compute_encrypted_log<let P: u32, let M: u32>(\n contract_address: AztecAddress,\n recipient: AztecAddress,\n plaintext: [u8; P],\n) -> [u8; M] {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; HEADER_SIZE] =\n header.compute_ciphertext(eph_sk, recipient.to_address_point());\n let incoming_body_ciphertext =\n compute_incoming_body_ciphertext(plaintext, eph_sk, recipient.to_address_point());\n\n let mut encrypted_bytes = [0; M];\n let mut offset = 0;\n\n // eph_pk\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[offset + i] = eph_pk_bytes[i];\n }\n offset += 32;\n\n // incoming_header\n for i in 0..HEADER_SIZE {\n encrypted_bytes[offset + i] = incoming_header_ciphertext[i];\n }\n offset += HEADER_SIZE;\n\n // Padding.\n offset += OVERHEAD_PADDING;\n\n // incoming_body\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - offset;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n // Nargo seems to struggle with realizing that `offset` is a constant at this point.\n // We then redefine it in terms of the assertion above to give nargo a hint.\n let offset = M - incoming_body_ciphertext.len();\n for i in 0..size {\n encrypted_bytes[offset + i] = incoming_body_ciphertext[i];\n }\n\n encrypted_bytes\n}\n\n// Prepend the plaintext length as the first byte, then copy the plaintext itself starting from the second byte.\n// Fill the remaining bytes with random values to reach a fixed length of N.\nfn extend_private_log_plaintext<let P: u32, let N: u32>(plaintext: [u8; P]) -> [u8; N] {\n /// Safety: A malicious sender could reveal the whole contents of the encrypted log so trusting it to set\n /// a random padding in plaintext is fine.\n let mut padded = unsafe { get_random_bytes() };\n padded[0] = (P >> 8) as u8;\n padded[1] = P as u8;\n for i in 0..P {\n padded[i + PLAINTEXT_LENGTH_SIZE] = plaintext[i];\n }\n padded\n}\n\nunconstrained fn get_random_bytes<let N: u32>() -> [u8; N] {\n let mut bytes = [0; N];\n let mut idx = 32;\n let mut randomness = [0; 32];\n for i in 0..N {\n if idx == 32 {\n randomness = random().to_be_bytes();\n idx = 1; // Skip the first byte as it's always 0.\n }\n bytes[i] = randomness[idx];\n idx += 1;\n }\n bytes\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n\n /// Safety: We use the randomness to preserve the privacy of both the sender and recipient via encryption, so\n /// a malicious sender could use non-random values to reveal the plaintext. But they already know it themselves\n /// anyway, and so the recipient already trusts them to not disclose this information. We can therefore assume\n /// that the sender will cooperate in the random value generation.\n let randomness = unsafe { random() };\n\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(randomness);\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\npub fn compute_incoming_body_ciphertext<let P: u32>(\n plaintext: [u8; P],\n eph_sk: Scalar,\n address_point: AddressPoint,\n) -> [u8; P + 16 - P % 16] {\n let full_key = derive_aes_secret(eph_sk, address_point.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(plaintext, iv, sym_key)\n}\n\nmod test {\n use crate::encrypted_logs::payload::{\n compute_incoming_body_ciphertext, compute_private_log_payload,\n MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES,\n };\n use dep::protocol_types::{address::AztecAddress, point::Point, scalar::Scalar};\n use protocol_types::public_keys::AddressPoint;\n use std::test::OracleMock;\n\n #[test]\n unconstrained fn test_encrypted_log_matches_typescript() {\n // All the values in this test were copied over from `encrypted_log_payload.test.ts`\n let contract_address = AztecAddress::from_field(\n 0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04,\n );\n\n let plaintext = [\n 0, 0, 0, 1, 48, 22, 64, 206, 234, 117, 131, 145, 178, 225, 97, 201, 44, 5, 19, 241, 41,\n 2, 15, 65, 37, 37, 106, 253, 174, 38, 70, 206, 49, 9, 159, 92, 16, 244, 140, 217, 239,\n 247, 174, 91, 32, 156, 85, 124, 112, 222, 46, 101, 126, 231, 145, 102, 134, 134, 118,\n 183, 135, 233, 65, 126, 25, 38, 14, 4, 15, 228, 107, 229, 131, 183, 31, 74, 181, 183,\n 12, 38, 87, 255, 29, 5, 204, 207, 29, 41, 42, 147, 105, 98, 141, 26, 25, 79, 148, 78,\n 101, 153, 0, 0, 16, 39,\n ];\n\n let randomness = 0x0101010101010101010101010101010101010101010101010101010101010101;\n let _ = OracleMock::mock(\"getRandomField\").returns(randomness).times(\n (MAX_PRIVATE_LOG_PLAINTEXT_SIZE_IN_BYTES as u64 + 1 + 30) / 31,\n );\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk).times(1);\n\n let recipient = AztecAddress::from_field(\n 0x25afb798ea6d0b8c1618e50fdeafa463059415013d3b7c75d46abf5e242be70c,\n );\n\n let sender = AztecAddress::from_field(\n 0x25afb798ea6d0b8c1618e50fdeafa463059415013d3b7c75d46abf5e242be70c,\n );\n\n let _ = OracleMock::mock(\"getIndexedTaggingSecretAsSender\").returns([69420, 1337]);\n\n let _ = OracleMock::mock(\"incrementAppTaggingSecretIndexAsSender\").returns(());\n\n let payload = compute_private_log_payload(contract_address, recipient, sender, plaintext);\n\n // The following value was generated by `encrypted_log_payload.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let private_log_payload_from_typescript = [\n 0x0e9cffc3ddd746affb02410d8f0a823e89939785bcc8e88ee4f3cae05e737c36,\n 0x008d460c0e434d846ec1ea286e4090eb56376ff27bddc1aacae1d856549f701f,\n 0x00a70577790aeabcc2d81ec8d0c99e7f5d2bf2f1452025dc777a178404f851d9,\n 0x003de818923f85187871d99bdf95d695eff0a900000000000000000000000000,\n 0x000000a600a61f7d59eeaf52eb51bc0592ff981d9ba3ea8e6ea8ba9dc0cec8c7,\n 0x000b81e84556a77ce6c3ca47a527f99ffe7b2524bb885a23020b7295748ad19c,\n 0x001083618ad96298b76ee07eb1a56d19cc798710e9f5de96501bd59b3781c9c0,\n 0x002a6c95c5912f8936b1500d362afbf0922c85b1ada18db8b95162a6e9d06765,\n 0x005cdf669eb387f8e0492a95fdcdb39429d5340b4bebc250ba9bf62c2f49f549,\n 0x00f37beed75a668aa51967e0e57547e5a655157bcf381e22f30e25881548ec96,\n 0x0006a151b5fbfb2d14ee4b34bf4c1dbd71c7be15ad4c63474bb6f89970aeb3d9,\n 0x00489c8edbdff80a1a3a5c28370e534abc870a85ea4318326ea19222fb10df35,\n 0x008c765edada497db4284ae30507a2e03e983d23cfa0bd831577e857bbef9cf7,\n 0x0090c97cb5699cc8783a1b4276d929be2882e5b9b72829a4f8404f7e3c853d11,\n 0x00d6d5a000b80134891e95f81007ad35d3945eaeecbe137fff85d01d7eaf8f19,\n 0x00a15eb965c6a4bc97aa87fd3463c31c9d4e0d722a8ba870bcc50c9c7a8b48ad,\n 0x0063c861bdbe490d44c57382decbae663927909652f87ac18dcfd5b30649cce5,\n 0x00820f14caa725efe1fa3485ceac88499eadf0565c5b20998c05931bbf478e68,\n ];\n\n assert_eq(payload, private_log_payload_from_typescript);\n }\n\n #[test]\n fn test_incoming_body_ciphertext_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06,\n };\n let address_point = AddressPoint {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false,\n },\n };\n let plaintext = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,\n ];\n\n // `compute_incoming_body_ciphertext(...)` function then derives symmetric key from `eph_sk` and `address_point` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = compute_incoming_body_ciphertext(plaintext, eph_sk, address_point);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160,\n 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157,\n 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93,\n 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130,\n 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95,\n 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234,\n 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162,\n 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185,\n 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236,\n 23, 206, 229, 108,\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"
6100
6100
  },
6101
6101
  "92": {
6102
6102
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/hash.nr",
6103
- "source": "use crate::utils::to_bytes::{arr_to_be_bytes_arr, str_to_be_bytes_arr};\nuse dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__FUNCTION_ARGS, GENERATOR_INDEX__MESSAGE_NULLIFIER,\n GENERATOR_INDEX__SECRET_HASH,\n },\n hash::{poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice, sha256_to_field},\n point::Point,\n traits::Hash,\n};\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<let N: u32>(\n contract_address: AztecAddress,\n log: [u8; N],\n) -> Field {\n let mut hash_bytes = [0; N + 36];\n // Address is converted to 32 bytes in ts\n let address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes: [u8; 4] = (N as Field).to_be_bytes();\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..N {\n hash_bytes[36 + i] = log[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_l1_to_l2_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field,\n leaf_index: Field,\n) -> Field {\n let mut hash_bytes = [0 as u8; 224];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n let leaf_index_bytes: [u8; 32] = leaf_index.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n hash_bytes[i + 192] = leaf_index_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret\npub fn compute_l1_to_l2_message_nullifier(message_hash: Field, secret: Field) -> Field {\n poseidon2_hash_with_separator([message_hash, secret], GENERATOR_INDEX__MESSAGE_NULLIFIER)\n}\n\npub struct ArgsHasher {\n pub fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(\n 0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6,\n );\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd,\n ];\n let serialized_log = arr_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(\n 0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6,\n );\n let log = AztecAddress::from_field(\n 0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303,\n );\n let serialized_log: [u8; 32] = log.to_field().to_be_bytes();\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(\n 0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8,\n );\n let log = \"dummy\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(\n 0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8,\n );\n let log = \"Hello this is a string\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"
6103
+ "source": "use crate::utils::to_bytes::{arr_to_be_bytes_arr, str_to_be_bytes_arr};\nuse dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__FUNCTION_ARGS, GENERATOR_INDEX__MESSAGE_NULLIFIER,\n GENERATOR_INDEX__SECRET_HASH,\n },\n hash::{poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice, sha256_to_field},\n point::Point,\n traits::Hash,\n};\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_l1_to_l2_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field,\n leaf_index: Field,\n) -> Field {\n let mut hash_bytes = [0 as u8; 224];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n let leaf_index_bytes: [u8; 32] = leaf_index.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n hash_bytes[i + 192] = leaf_index_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret\npub fn compute_l1_to_l2_message_nullifier(message_hash: Field, secret: Field) -> Field {\n poseidon2_hash_with_separator([message_hash, secret], GENERATOR_INDEX__MESSAGE_NULLIFIER)\n}\n\npub struct ArgsHasher {\n pub fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n"
6104
6104
  }
6105
6105
  }
6106
6106
  }