@aztec/protocol-contracts 0.75.0 → 0.76.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,25 @@
1
1
  {
2
2
  "transpiled": true,
3
- "noir_version": "1.0.0-beta.1+4144a8dce4789d85",
3
+ "noir_version": "1.0.0-beta.1+3f8376928465907d",
4
4
  "name": "AuthRegistry",
5
5
  "functions": [
6
6
  {
7
- "name": "set_authorized_private",
8
- "is_unconstrained": false,
7
+ "name": "public_dispatch",
8
+ "is_unconstrained": true,
9
9
  "custom_attributes": [
10
- "private"
10
+ "public"
11
11
  ],
12
12
  "abi": {
13
13
  "error_types": {
14
+ "12737498021964987455": {
15
+ "error_kind": "string",
16
+ "string": "unauthorized"
17
+ },
18
+ "16541607464495309456": {
19
+ "error_kind": "fmtstring",
20
+ "item_types": [],
21
+ "length": 16
22
+ },
14
23
  "16761564377371454734": {
15
24
  "error_kind": "string",
16
25
  "string": "Array index out of bounds"
@@ -19,140 +28,569 @@
19
28
  "error_kind": "string",
20
29
  "string": "Stack too deep"
21
30
  },
22
- "4939791462094160055": {
31
+ "206160798890201757": {
23
32
  "error_kind": "string",
24
- "string": "Message not authorized by account"
33
+ "string": "Storage slot 0 not allowed. Storage slots must start from 1."
25
34
  },
26
35
  "5019202896831570965": {
27
36
  "error_kind": "string",
28
37
  "string": "attempt to add with overflow"
38
+ },
39
+ "5444967152290923376": {
40
+ "error_kind": "string",
41
+ "string": "Function is_consumable can only be called statically"
42
+ },
43
+ "6304245522015439386": {
44
+ "error_kind": "string",
45
+ "string": "Function _set_authorized can only be called internally"
46
+ },
47
+ "715723737710351018": {
48
+ "error_kind": "string",
49
+ "string": "rejecting all"
50
+ },
51
+ "9474245853673257536": {
52
+ "error_kind": "string",
53
+ "string": "Function is_reject_all can only be called statically"
29
54
  }
30
55
  },
31
56
  "parameters": [
32
57
  {
33
- "name": "inputs",
58
+ "name": "selector",
59
+ "type": {
60
+ "kind": "field"
61
+ },
62
+ "visibility": "private"
63
+ }
64
+ ],
65
+ "return_type": null
66
+ },
67
+ "bytecode": "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",
68
+ "debug_symbols": "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",
69
+ "brillig_names": [
70
+ "public_dispatch"
71
+ ]
72
+ },
73
+ {
74
+ "name": "unconstrained_is_consumable",
75
+ "is_unconstrained": true,
76
+ "custom_attributes": [],
77
+ "abi": {
78
+ "error_types": {
79
+ "16761564377371454734": {
80
+ "error_kind": "string",
81
+ "string": "Array index out of bounds"
82
+ },
83
+ "17843811134343075018": {
84
+ "error_kind": "string",
85
+ "string": "Stack too deep"
86
+ },
87
+ "206160798890201757": {
88
+ "error_kind": "string",
89
+ "string": "Storage slot 0 not allowed. Storage slots must start from 1."
90
+ },
91
+ "5019202896831570965": {
92
+ "error_kind": "string",
93
+ "string": "attempt to add with overflow"
94
+ }
95
+ },
96
+ "parameters": [
97
+ {
98
+ "name": "on_behalf_of",
34
99
  "type": {
35
100
  "fields": [
36
101
  {
37
- "name": "call_context",
102
+ "name": "inner",
38
103
  "type": {
39
- "fields": [
40
- {
41
- "name": "msg_sender",
42
- "type": {
43
- "fields": [
44
- {
45
- "name": "inner",
46
- "type": {
47
- "kind": "field"
48
- }
49
- }
50
- ],
51
- "kind": "struct",
52
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
53
- }
54
- },
55
- {
56
- "name": "contract_address",
57
- "type": {
58
- "fields": [
59
- {
60
- "name": "inner",
61
- "type": {
62
- "kind": "field"
63
- }
64
- }
65
- ],
66
- "kind": "struct",
67
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
68
- }
69
- },
70
- {
71
- "name": "function_selector",
72
- "type": {
73
- "fields": [
74
- {
75
- "name": "inner",
76
- "type": {
77
- "kind": "integer",
78
- "sign": "unsigned",
79
- "width": 32
80
- }
81
- }
82
- ],
83
- "kind": "struct",
84
- "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"
85
- }
86
- },
87
- {
88
- "name": "is_static_call",
89
- "type": {
90
- "kind": "boolean"
91
- }
92
- }
93
- ],
94
- "kind": "struct",
95
- "path": "authwit::aztec::protocol_types::abis::call_context::CallContext"
104
+ "kind": "field"
96
105
  }
97
- },
106
+ }
107
+ ],
108
+ "kind": "struct",
109
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
110
+ },
111
+ "visibility": "private"
112
+ },
113
+ {
114
+ "name": "message_hash",
115
+ "type": {
116
+ "kind": "field"
117
+ },
118
+ "visibility": "private"
119
+ }
120
+ ],
121
+ "return_type": {
122
+ "abi_type": {
123
+ "kind": "boolean"
124
+ },
125
+ "visibility": "public"
126
+ }
127
+ },
128
+ "bytecode": "H4sIAAAAAAAA/+VbzW4jRRCeiTPxT/zHLiwPwWXGcTbJCcPyIy4cWP4kuJjYWVbARkrChQt+DDggLtxAuxLiLXgDxIEnQEIcuJIJXfbnz5/bY2c6LKKlaMbT1VXV1VXVVdWdOPqnbV3+xe59G75xM5iBe6bXa1mJuNKQfMYl8hkDn1sLL8A8vqv+H91LnWDyz5USJ18numXiP0z7B/VovpXM/14dcAbA3zP822Hwp1WH55XJPP6I6Lbcb9QfG2N9qEevur7a5V87mr13AV/eXgO6hrtO+ErWibuB1yy7vYR/m1ve7k2C0N7bdXKuOWE2Qf4Pxhcvf3p6/Mmbn3/20fiMPQFqWCQ4x5ZjvTXDeu/00cXZ8PjipdHobHx+zhgSgTlagrUBWD8ePnz0xoix7WyG7d3x2fnD00eMrVoQm+lMDb4N3DO9XuuZ/dSJN6TbgO9l6ktM9KJo3i4iot8gXsu2nZjoGT8sH7Mtk92u4LUr+mrwjn1IZ1fQUbh4jVCGg3LkkbaiRb27Id3ob6obtTD8eHUD5bOpbsT0XoZulImrEy2uN+uzkk3DQwfHG1xdjBu4Z7pe6/EHXhOjjXSb8L1E/dkvqs9GvxEtrkUIfW4SP8t0w2TXErx2RR/rYEvQaQk6/yVcpqNmG6g7bBtKzk0PHRxvcC0xLl7yNDr8jekonjuCB/YJNTGfmoeO2gd9+8um81E8++x+XTrmJ1APysyJlLxaNI92ifPoEMyg5Hm0AX+HaHfDyDAz/M+EwT+NmStijfIM4W34HkezrCGJZraCY5+BfoT/A3C+5947BMMyzv8sr8CsakesQ0LwH7qnyS9QnJ3eArwR0aoLfsujnU3XznjAZn23gTb73mehj/3Yc9DHvucO9OF6ceOMF2VxVc+IZ3gZzprSkSb1VcU8rK8u5qH2ix3qQ99bpT70Z761ztvAPdPrtUz5IKSFvOStQrznbYvgVSyN8rJ18e2hLKNEwMZL+NwW45VNG/yFe+a43wHd4XkavcC2XzjnN/oNMdcQcXBRPVB5nY0NnfMzD6p2Xhd0/4283Og3iNdQ66fi0S0hV6534diu6Ftmh0hH1YZuCpfyM+yz1o3VcXyRWD2wzyicO7PPCF0LqheU67o+g/XkaasFlYGLc2fUHdbfde0Exxucr85dRL8UHcVzJ1puQ3G06Jd8vkrFVUX2gE3ns67db0oH58O5baNEOlir7BCdZbnbD/AddbZo7mbwvwDOJ+69I8Y3iJ7K3SpiHpy7/eSe9WjR1kLnbrtEO8zZZjat31rdAJv1Yc7Pto+8sx1hzse6jzkfrhc3lbvZt3Vzt4qYh8rd2O+o2FP5qwr1oe1z7qZyGGVjnFuhPIrkVjsCXtmp8rE4FsclAjamd/td1OYM/mf3xNyqImhsR7PGNpK3gXum12tZS9CLiW6YukraK+KjkX6DeC2Zn8ynUygf04u8rmG6fX5xejZ8MH5rPByxquyIKWE/NlYr+5bQb97CY/pdEXh8zRdmqKn7zBVh2PxiwaMyW5aVwq1o47gtwpEvFW+5v7pnvka/u/fAx3o949NKTMvChCb0I/xv7pm7kPfjeZmpIyOf+2wLeJ533tRW0b4Rea1ffuUtHLdi3sKx/MpbOJZfG9T3PPShTLip7d3klNP7oMD2jroZE02jwbrTJX4rgl8MXfkY4U+ASRwzts6BympTu7gFPKm5cQnU4P9yT2UXVSEvlQ4yDwjP886bKpvb2LDyerqOJZRd+C6+KbswOa1jFwmt86pw0GcXO4DXjuOmJfTJDK6sNTw4nN1/rjj8SbQoG6SfEHzLIeAUw/btwYZ8nhwMs5O94clwfzga9Y+HnMLlzWyGr3AGDhuzwH5omjLiNVCjlc/p9hLfgv4K4zW7Osvp9wvxDOcd994RtE3mytdwKufzUZiSWUwXuAzb95VoApcdCpeAjX6DeC1bb317N/otvm4RKA7tGz/qOpO6gpeXSdrR4pohf4YLUzQuRaD+cilrp6BsfKWEbjRvN2hPqnTBVyxVrGF9OC+zp93Ib38xwSs/wWPxd7QEHq+IIP4U/Mp98ivquNhXTldXOH05AfuVQFeeprrbXiHTFsnI4A/d5FWsqOzBFyuqHArnnZC80F44h2qHkdee8dpZIa82ycvgX/TIS81fHWkxDwjf9sgLZYljmfYyX3RTurhKtqyLBv+6kK3BWpyHOhgyJr1s+zkfXwMfKNcr/oHuMntR11R966/spUvwuN7Kx3PpGunytWN1nKJ8PObK90kmq+LDsmPytDc6vjvuXaYNB3ez3tFoVUxeNv3x4dEoPToZD7Ms643S8To5gdr7eR+pEp95U1dToqi8WN90aNVVKdy7Ef44nuczUOwoj9B8x4AqdrI8JHR+xnnOlxCPPCB94JgH+9QRtopVWI9QLqxHgWLpPfaFuAcgr1zTNfjTgntAFeaTt+1JkPn01R6AeQvvAUX/JaTInoEyU/9CwblxInChzPmIEX21gjd8rMdfwBo9ief5Q7vk4051RULtQ7zvoS9qAM9fkc8JVAc5VNc4rKkrcTH1oR36rjVVqA/1QP2Tr7VVNcR1js7L8EPsa0LtBf9nv8Cxmi9uLMMmuaag6hpok1YLuPo+iWZzmczG5a3qfm8DPYQ3/hKC/wb20m9JvxNBL4d77IGLlzyvcIhv25P5b/XJInxlsghvtBuTRR6tbxf6UI/y1nS/UV6Iy/hICP57iDfyVoMxNr4r6NeI/hzf4tvCWbOA3xXw+fp85waZbuPcy64/XtEk/PiNeXsMel12PtHfHx4cDw+y7KifjfvZ/qp84m8N2nV6oEcAAA==",
129
+ "debug_symbols": "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",
130
+ "brillig_names": [
131
+ "unconstrained_is_consumable"
132
+ ]
133
+ },
134
+ {
135
+ "name": "is_consumable",
136
+ "is_unconstrained": true,
137
+ "custom_attributes": [
138
+ "public",
139
+ "view"
140
+ ],
141
+ "abi": {
142
+ "error_types": {
143
+ "16761564377371454734": {
144
+ "error_kind": "string",
145
+ "string": "Array index out of bounds"
146
+ },
147
+ "17843811134343075018": {
148
+ "error_kind": "string",
149
+ "string": "Stack too deep"
150
+ },
151
+ "206160798890201757": {
152
+ "error_kind": "string",
153
+ "string": "Storage slot 0 not allowed. Storage slots must start from 1."
154
+ },
155
+ "5019202896831570965": {
156
+ "error_kind": "string",
157
+ "string": "attempt to add with overflow"
158
+ },
159
+ "5444967152290923376": {
160
+ "error_kind": "string",
161
+ "string": "Function is_consumable can only be called statically"
162
+ }
163
+ },
164
+ "parameters": [
165
+ {
166
+ "name": "on_behalf_of",
167
+ "type": {
168
+ "fields": [
98
169
  {
99
- "name": "historical_header",
170
+ "name": "inner",
100
171
  "type": {
101
- "fields": [
102
- {
103
- "name": "last_archive",
104
- "type": {
105
- "fields": [
106
- {
107
- "name": "root",
108
- "type": {
109
- "kind": "field"
110
- }
111
- },
112
- {
113
- "name": "next_available_leaf_index",
114
- "type": {
115
- "kind": "integer",
116
- "sign": "unsigned",
117
- "width": 32
118
- }
119
- }
120
- ],
121
- "kind": "struct",
122
- "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"
123
- }
124
- },
125
- {
126
- "name": "content_commitment",
127
- "type": {
128
- "fields": [
129
- {
130
- "name": "num_txs",
131
- "type": {
132
- "kind": "field"
133
- }
134
- },
135
- {
136
- "name": "blobs_hash",
137
- "type": {
138
- "kind": "field"
139
- }
140
- },
141
- {
142
- "name": "in_hash",
143
- "type": {
144
- "kind": "field"
145
- }
146
- },
147
- {
148
- "name": "out_hash",
149
- "type": {
150
- "kind": "field"
151
- }
152
- }
153
- ],
154
- "kind": "struct",
155
- "path": "authwit::aztec::protocol_types::content_commitment::ContentCommitment"
172
+ "kind": "field"
173
+ }
174
+ }
175
+ ],
176
+ "kind": "struct",
177
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
178
+ },
179
+ "visibility": "private"
180
+ },
181
+ {
182
+ "name": "message_hash",
183
+ "type": {
184
+ "kind": "field"
185
+ },
186
+ "visibility": "private"
187
+ }
188
+ ],
189
+ "return_type": {
190
+ "abi_type": {
191
+ "kind": "boolean"
192
+ },
193
+ "visibility": "public"
194
+ }
195
+ },
196
+ "bytecode": "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",
197
+ "debug_symbols": "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",
198
+ "brillig_names": [
199
+ "is_consumable"
200
+ ]
201
+ },
202
+ {
203
+ "name": "compute_note_hash_and_optionally_a_nullifier",
204
+ "is_unconstrained": true,
205
+ "custom_attributes": [],
206
+ "abi": {
207
+ "error_types": {
208
+ "16541607464495309456": {
209
+ "error_kind": "fmtstring",
210
+ "item_types": [],
211
+ "length": 16
212
+ },
213
+ "17843811134343075018": {
214
+ "error_kind": "string",
215
+ "string": "Stack too deep"
216
+ }
217
+ },
218
+ "parameters": [
219
+ {
220
+ "name": "contract_address",
221
+ "type": {
222
+ "fields": [
223
+ {
224
+ "name": "inner",
225
+ "type": {
226
+ "kind": "field"
227
+ }
228
+ }
229
+ ],
230
+ "kind": "struct",
231
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
232
+ },
233
+ "visibility": "private"
234
+ },
235
+ {
236
+ "name": "nonce",
237
+ "type": {
238
+ "kind": "field"
239
+ },
240
+ "visibility": "private"
241
+ },
242
+ {
243
+ "name": "storage_slot",
244
+ "type": {
245
+ "kind": "field"
246
+ },
247
+ "visibility": "private"
248
+ },
249
+ {
250
+ "name": "note_type_id",
251
+ "type": {
252
+ "kind": "field"
253
+ },
254
+ "visibility": "private"
255
+ },
256
+ {
257
+ "name": "compute_nullifier",
258
+ "type": {
259
+ "kind": "boolean"
260
+ },
261
+ "visibility": "private"
262
+ },
263
+ {
264
+ "name": "packed_note_content",
265
+ "type": {
266
+ "kind": "array",
267
+ "length": 0,
268
+ "type": {
269
+ "kind": "field"
270
+ }
271
+ },
272
+ "visibility": "private"
273
+ }
274
+ ],
275
+ "return_type": {
276
+ "abi_type": {
277
+ "kind": "array",
278
+ "length": 4,
279
+ "type": {
280
+ "kind": "field"
281
+ }
282
+ },
283
+ "visibility": "public"
284
+ }
285
+ },
286
+ "bytecode": "H4sIAAAAAAAA/9VZy67aQAwdSEJIuAEKn3Cl7tomXJ47Fn3c30AFPqHrrLppP7qMGCcH46siYVfFEpoknhyfOXZmJqHjztY//TrhOA5tz10b9dmGtrzPKkWs0pJn50F4dh+EZ/QgPGNFnh2Bp2/peUvc+ZlL3fl5bC7iTT7BEdzk/gYAwX6HNgttF/yKCakyYZBa+Otyvs/cpSnzf8kCZmqDvyD8vg1+Sbw/1y0+joXiRqF9rVstX+Eeb0U4xuIlXPJ1wfeF+SLwfWU+rOFvzId1T5xIN1qYlOtqY50XGlsKY+u80TrXaofXSOvcmdZoRTnPGB/On/gU1Kdu+fSYLwZfxnwJ+Eh/3z5DP577FPp9hONP0IfXZ+Su65n8lH/U3aK+YgP8k82lHPD8xPVlbPRhDmLQ85npY7FuoD4W+nt9pm/wp2Nvae0ai5ieqBFp1sf+zJeBL64v4+ThPIY4iEU8Etb/QzgfhbYH99D9YyF+j8W/4C1cQ404ViRco/7++Xwfjgfh52voJ93jructvc31ci7N4Xr4qwY/s+F/JPzcBn9J+AMb/GZv82SCPysJv7Dh38xBQ5v6afaWIxv+B8Ifm+DPD7QOv3OtNXNEOJ7Adb35u6pu2SNh/JxxtdojTRgfrg+uwd43FbiOBR/P4VSIMxXiSFiZItaTItboPx1jXxFroIg1VMTSzGOqiKWpV66IVShiada9pl6UR2mf5m0b2vJOk/ZpiviVtE/TfJcnram+YkFDHF/C+v9gOg9MeFYzWnPoWacYGLswin3rek3xC4EP8c4F3z0fZw+L9XGzXmxOW7JqOds0+SwYV34N34twPsb+0tov7fsUtS6ld/8h6OotBl/BfAn4iKP07j804n+L/hh/LPj4+n9rLifuej0csHHjN6+typjb74HSt3rj+Wtx67NJ8XN3PV//q++NqA/fS+cC17Hg4/uTXIiTC3EeEYt/s0cNfV2TTnHd+rVyuVq3f3TRXJS4y/8BHIufsP6/wjmOjdp75vzjalcdX3bH3WK338+/7yYM31sXdPoDg5oBSR0fAAA=",
287
+ "debug_symbols": "tdfNaoQwFIbhe8k6i5z8mIm3UsoQNQ6BECVqoYj33jhM26GzLN9GiBwfN77g2dkQuu12jXmcFta+7SxNvV/jlOtpPzjrSkwp3q7Pt5k4L87c55fZ5/O4rL6srFWSs5AH1mpRnx5jCqxt5MFfBu33oLU/g0Ye75y5BgVbFHxBwQ4EkxAwmWCyhMkKJmuYbGByA5MtTL7AZFiDBGuQYA0SrEGCNUiwBgnWIMEaJFiD9L8GnXoM1k/hhXYwWgocTTha4miFozWONji6wdEWR+NqlLgaFa5GBarxqKcPX6LvUnhsTeOW+6clav2cw599ai5TH4athHOz+l2qzvSU4drc/zzqgZTmpFx9SX3RFw==",
288
+ "brillig_names": [
289
+ "compute_note_hash_and_optionally_a_nullifier"
290
+ ]
291
+ },
292
+ {
293
+ "name": "sync_notes",
294
+ "is_unconstrained": true,
295
+ "custom_attributes": [],
296
+ "abi": {
297
+ "error_types": {
298
+ "17843811134343075018": {
299
+ "error_kind": "string",
300
+ "string": "Stack too deep"
301
+ }
302
+ },
303
+ "parameters": [],
304
+ "return_type": null
305
+ },
306
+ "bytecode": "H4sIAAAAAAAA/7WTyw7CIBBFqcUo0sTEx39MU0y7dOHafyCtLHVRN+766dZkJkyI0QVwEzJMgMNcHoXwKjBKESGCHDEqjAs2Xs7tjDnEqVbBvin5HRijvvhLWH+jkFnk4QPxM50/rJBzmTyfe6F913PTrF8J/z5y+af7y+l//8OzRq9bzCvh/8P4uvfXx/M2ij/SbJGc0ptoOwAqvkT+EvmhJBvn8w+Yb4Svj6KMqNO1tnaNdfZkh8H0dhfwP+KH/QbzqHp4zgQAAA==",
307
+ "debug_symbols": "bY/dCoMwDIXfJde9aKobs68iQ6pGKZRWah0M8d0Xxybdz80hJ3w55KzQU7uMjfVDmEHXK7jQmWSDZ7duAtponbNjk69B7oLFk58n43c7JxMT6EIJIN+DLiVfD9YR6LPaxA+IEuWb5VlVB47l5T9f4cErlB/8dWN7M9Ga1tHr9WHxXdYk3Sf6KjXF0FG/RNrrZc1YazwJJTmWox8=",
308
+ "brillig_names": [
309
+ "sync_notes"
310
+ ]
311
+ },
312
+ {
313
+ "name": "consume",
314
+ "is_unconstrained": true,
315
+ "custom_attributes": [
316
+ "public"
317
+ ],
318
+ "abi": {
319
+ "error_types": {
320
+ "12737498021964987455": {
321
+ "error_kind": "string",
322
+ "string": "unauthorized"
323
+ },
324
+ "16761564377371454734": {
325
+ "error_kind": "string",
326
+ "string": "Array index out of bounds"
327
+ },
328
+ "17843811134343075018": {
329
+ "error_kind": "string",
330
+ "string": "Stack too deep"
331
+ },
332
+ "206160798890201757": {
333
+ "error_kind": "string",
334
+ "string": "Storage slot 0 not allowed. Storage slots must start from 1."
335
+ },
336
+ "5019202896831570965": {
337
+ "error_kind": "string",
338
+ "string": "attempt to add with overflow"
339
+ },
340
+ "715723737710351018": {
341
+ "error_kind": "string",
342
+ "string": "rejecting all"
343
+ }
344
+ },
345
+ "parameters": [
346
+ {
347
+ "name": "on_behalf_of",
348
+ "type": {
349
+ "fields": [
350
+ {
351
+ "name": "inner",
352
+ "type": {
353
+ "kind": "field"
354
+ }
355
+ }
356
+ ],
357
+ "kind": "struct",
358
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
359
+ },
360
+ "visibility": "private"
361
+ },
362
+ {
363
+ "name": "inner_hash",
364
+ "type": {
365
+ "kind": "field"
366
+ },
367
+ "visibility": "private"
368
+ }
369
+ ],
370
+ "return_type": {
371
+ "abi_type": {
372
+ "kind": "field"
373
+ },
374
+ "visibility": "public"
375
+ }
376
+ },
377
+ "bytecode": "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",
378
+ "debug_symbols": "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",
379
+ "brillig_names": [
380
+ "consume"
381
+ ]
382
+ },
383
+ {
384
+ "name": "is_reject_all",
385
+ "is_unconstrained": true,
386
+ "custom_attributes": [
387
+ "public",
388
+ "view"
389
+ ],
390
+ "abi": {
391
+ "error_types": {
392
+ "16761564377371454734": {
393
+ "error_kind": "string",
394
+ "string": "Array index out of bounds"
395
+ },
396
+ "17843811134343075018": {
397
+ "error_kind": "string",
398
+ "string": "Stack too deep"
399
+ },
400
+ "206160798890201757": {
401
+ "error_kind": "string",
402
+ "string": "Storage slot 0 not allowed. Storage slots must start from 1."
403
+ },
404
+ "5019202896831570965": {
405
+ "error_kind": "string",
406
+ "string": "attempt to add with overflow"
407
+ },
408
+ "9474245853673257536": {
409
+ "error_kind": "string",
410
+ "string": "Function is_reject_all can only be called statically"
411
+ }
412
+ },
413
+ "parameters": [
414
+ {
415
+ "name": "on_behalf_of",
416
+ "type": {
417
+ "fields": [
418
+ {
419
+ "name": "inner",
420
+ "type": {
421
+ "kind": "field"
422
+ }
423
+ }
424
+ ],
425
+ "kind": "struct",
426
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
427
+ },
428
+ "visibility": "private"
429
+ }
430
+ ],
431
+ "return_type": {
432
+ "abi_type": {
433
+ "kind": "boolean"
434
+ },
435
+ "visibility": "public"
436
+ }
437
+ },
438
+ "bytecode": "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",
439
+ "debug_symbols": "7Z3bbuM4DIbfJde9EHVWX2WwKNI2UwQIkiJNF1gU8+5rZ2o7jQR7JQo7KfTfFElNmvQXWaRom/5YPW8e318etvufh7fV/Y+P1e7wtD5tD/vu28evu9XjcbvbbV8eLv+9Ev0f78/yb6/rff/17bQ+nlb3ZK28W232z/1HJ7s9/NzuNqt7232MhG0Q7lPYBqlGYS8SwkGMew7Cm0vhv+5WQWV60+v4fB0SBYaIqETJppS0luZTSWtt5wGTsGqwQDQBJqNT0t4OwsGPsjK4sztS3JY75qbcUbdFR90WHX1bdLS+LXf8Tblj1G254/5vd8zgjhTyizuxrNdyEPba6Una+oS0GvespbiQTYhKCnrwQpKcFzajE0a6S9Gen5Xgx+JnwY/DzxH4sfhh/LH4eYw/Hj+MPxa/IMCPxU+DH4tfAD8GPykU+LH4efDj8COs3xb5WTHwsxTxQ/7C4ieRP/P4GfBb4jfK2q+iPT+N85fFz2D9weOH85fFz2L88fhh/LH4OYw/Hj8Nfix+WP+y+HnUX3j8cP2cxS+g/sLjh/Ubh58SqL/w+CF/TkDBRaEYCmlAiaEgfY2hSOQECShINGMoCtE7AQUhOYaiUadKQEFITkBBSI6hGJSJElAQkmMoFiE5AQVVmhgKHl1IQUHyloCCekoMxWtAiaFgpERQdKP3uEo1QdHmGopqc0HoKAxeOKWKhc8E25yAcgiSnY7PeooItjlbVSSo21yCVSRo2gwONQm2ubjLIujcsGNyIYrFjdYMahJsc9lYkyBiMZOga7NGXJMgshkmwUbbUdQkiGyGSTBgDHIJIpvhEkQ2wyNoGm1MUZMgshkmQUIk4RJEJOESRCRhEpQaBJkE27wlL4tgoLHbeZARQYVshksQY5BJUFe40kTeDxYur+mnCWox4NYXtJM7dnZ4VYLzEz76/a4AU+Mq45/x3Hxb5jUam/whz5dzTmuWPFdhnCnsVxMJd5QfXHdaTNLJF3048sNJ6qSkeWEioaYpS1h7Kd4f63+4h7P2sbrpWCnMu29GLlZME50i/dt3+31999+Xe/evJiOpEqMXPYmvwdE2+hz1PBTCSElAaTMRnYci21zfLEDBSImhNLoSXoDSZqleBjlCEWZhcSvGlXB3qP6aoG6zVF+TYJsZUBZBuliNmesbUW2jvWhrEmwzYlYkaNsMrzUJIhYvE7RmPD4fRRKPs3iRoBZDU/3uYzQGG+3KWJNgm7dR1iPoGi0T1iSoQXCJoJHj8RkjIoJt3vxSkWCjXR8rEmy0G2JNgsiomQQbLZpWJNho/8GaBFEfZBI0qFFzCWJVxyTY6KP+NQliHlwm6MYbUU2Q1wQbfWdVTYIYg0yCjb53qSZBVPmZBFHlZxNEPsgj6FHlZxNEjXqRoJoeTFLq+jqJR42aTRCxmEkQVX42QcRiJsFGWyLXJIhIwiWIbIZJsNGXOtUkiGyGSbDRptI1CSKbYRK0yGaWCWo3ErQiIogxyCTYaEvkmgQRi5kEG31PVE2CWJMwCQaMQS5BzIO8pyGCwJqESxD5IJNgow1tahJELBbXnRVJUPLMdGODL6dVpJPu+RH0YCiY2E66y8WCjinQCfk66VeUzzed6LR8iZaVRVquRMsV2XJFtnyRLV9kKxTZCiW/FwlZpFVyXJRu2r6oZYq0QomWVEVaPnuOIZXkHsTwYtYgEzr58xIZk2/HhHyddHeLBR2Xr+Py51lKt7Oc1/EFdnz+3Ezp9d+CTr4dKXSBTnJcBzOM6+BkpEOqQKfATvqehnkdRQU6BXZ0gZ3FXCChk+5qNP+bmvycQ9oCO9bn66Rrwgs6BeeCz58PZKACnfz5WqXj8YJOgR2iAh1ToJP/+yiZOQ5+dd/+Xh+368fd5q3T6De+759O28P+8+vpn9dhy+Nxu9ttXx5ej4enzfP7cfOwOzz121bi888P6cydDPacVXVfu3n9rpunz1NvvzW4bmvorHaW/wU=",
440
+ "brillig_names": [
441
+ "is_reject_all"
442
+ ]
443
+ },
444
+ {
445
+ "name": "set_authorized_private",
446
+ "is_unconstrained": false,
447
+ "custom_attributes": [
448
+ "private"
449
+ ],
450
+ "abi": {
451
+ "error_types": {
452
+ "16761564377371454734": {
453
+ "error_kind": "string",
454
+ "string": "Array index out of bounds"
455
+ },
456
+ "17843811134343075018": {
457
+ "error_kind": "string",
458
+ "string": "Stack too deep"
459
+ },
460
+ "4939791462094160055": {
461
+ "error_kind": "string",
462
+ "string": "Message not authorized by account"
463
+ },
464
+ "5019202896831570965": {
465
+ "error_kind": "string",
466
+ "string": "attempt to add with overflow"
467
+ }
468
+ },
469
+ "parameters": [
470
+ {
471
+ "name": "inputs",
472
+ "type": {
473
+ "fields": [
474
+ {
475
+ "name": "call_context",
476
+ "type": {
477
+ "fields": [
478
+ {
479
+ "name": "msg_sender",
480
+ "type": {
481
+ "fields": [
482
+ {
483
+ "name": "inner",
484
+ "type": {
485
+ "kind": "field"
486
+ }
487
+ }
488
+ ],
489
+ "kind": "struct",
490
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
491
+ }
492
+ },
493
+ {
494
+ "name": "contract_address",
495
+ "type": {
496
+ "fields": [
497
+ {
498
+ "name": "inner",
499
+ "type": {
500
+ "kind": "field"
501
+ }
502
+ }
503
+ ],
504
+ "kind": "struct",
505
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
506
+ }
507
+ },
508
+ {
509
+ "name": "function_selector",
510
+ "type": {
511
+ "fields": [
512
+ {
513
+ "name": "inner",
514
+ "type": {
515
+ "kind": "integer",
516
+ "sign": "unsigned",
517
+ "width": 32
518
+ }
519
+ }
520
+ ],
521
+ "kind": "struct",
522
+ "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"
523
+ }
524
+ },
525
+ {
526
+ "name": "is_static_call",
527
+ "type": {
528
+ "kind": "boolean"
529
+ }
530
+ }
531
+ ],
532
+ "kind": "struct",
533
+ "path": "authwit::aztec::protocol_types::abis::call_context::CallContext"
534
+ }
535
+ },
536
+ {
537
+ "name": "historical_header",
538
+ "type": {
539
+ "fields": [
540
+ {
541
+ "name": "last_archive",
542
+ "type": {
543
+ "fields": [
544
+ {
545
+ "name": "root",
546
+ "type": {
547
+ "kind": "field"
548
+ }
549
+ },
550
+ {
551
+ "name": "next_available_leaf_index",
552
+ "type": {
553
+ "kind": "integer",
554
+ "sign": "unsigned",
555
+ "width": 32
556
+ }
557
+ }
558
+ ],
559
+ "kind": "struct",
560
+ "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"
561
+ }
562
+ },
563
+ {
564
+ "name": "content_commitment",
565
+ "type": {
566
+ "fields": [
567
+ {
568
+ "name": "num_txs",
569
+ "type": {
570
+ "kind": "field"
571
+ }
572
+ },
573
+ {
574
+ "name": "blobs_hash",
575
+ "type": {
576
+ "kind": "field"
577
+ }
578
+ },
579
+ {
580
+ "name": "in_hash",
581
+ "type": {
582
+ "kind": "field"
583
+ }
584
+ },
585
+ {
586
+ "name": "out_hash",
587
+ "type": {
588
+ "kind": "field"
589
+ }
590
+ }
591
+ ],
592
+ "kind": "struct",
593
+ "path": "authwit::aztec::protocol_types::content_commitment::ContentCommitment"
156
594
  }
157
595
  },
158
596
  {
@@ -1425,191 +1863,57 @@
1425
1863
  }
1426
1864
  },
1427
1865
  {
1428
- "name": "block_number",
1429
- "type": {
1430
- "kind": "field"
1431
- }
1432
- },
1433
- {
1434
- "name": "slot_number",
1435
- "type": {
1436
- "kind": "field"
1437
- }
1438
- },
1439
- {
1440
- "name": "timestamp",
1441
- "type": {
1442
- "kind": "integer",
1443
- "sign": "unsigned",
1444
- "width": 64
1445
- }
1446
- },
1447
- {
1448
- "name": "coinbase",
1449
- "type": {
1450
- "fields": [
1451
- {
1452
- "name": "inner",
1453
- "type": {
1454
- "kind": "field"
1455
- }
1456
- }
1457
- ],
1458
- "kind": "struct",
1459
- "path": "authwit::aztec::protocol_types::address::eth_address::EthAddress"
1460
- }
1461
- },
1462
- {
1463
- "name": "fee_recipient",
1464
- "type": {
1465
- "fields": [
1466
- {
1467
- "name": "inner",
1468
- "type": {
1469
- "kind": "field"
1470
- }
1471
- }
1472
- ],
1473
- "kind": "struct",
1474
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
1475
- }
1476
- },
1477
- {
1478
- "name": "gas_fees",
1479
- "type": {
1480
- "fields": [
1481
- {
1482
- "name": "fee_per_da_gas",
1483
- "type": {
1484
- "kind": "field"
1485
- }
1486
- },
1487
- {
1488
- "name": "fee_per_l2_gas",
1489
- "type": {
1490
- "kind": "field"
1491
- }
1492
- }
1493
- ],
1494
- "kind": "struct",
1495
- "path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
1496
- }
1497
- }
1498
- ],
1499
- "kind": "struct",
1500
- "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"
1501
- }
1502
- },
1503
- {
1504
- "name": "total_fees",
1505
- "type": {
1506
- "kind": "field"
1507
- }
1508
- },
1509
- {
1510
- "name": "total_mana_used",
1511
- "type": {
1512
- "kind": "field"
1513
- }
1514
- }
1515
- ],
1516
- "kind": "struct",
1517
- "path": "authwit::aztec::protocol_types::block_header::BlockHeader"
1518
- }
1519
- },
1520
- {
1521
- "name": "tx_context",
1522
- "type": {
1523
- "fields": [
1524
- {
1525
- "name": "chain_id",
1526
- "type": {
1527
- "kind": "field"
1528
- }
1529
- },
1530
- {
1531
- "name": "version",
1532
- "type": {
1533
- "kind": "field"
1534
- }
1535
- },
1536
- {
1537
- "name": "gas_settings",
1538
- "type": {
1539
- "fields": [
1540
- {
1541
- "name": "gas_limits",
1542
- "type": {
1543
- "fields": [
1544
- {
1545
- "name": "da_gas",
1546
- "type": {
1547
- "kind": "integer",
1548
- "sign": "unsigned",
1549
- "width": 32
1550
- }
1551
- },
1552
- {
1553
- "name": "l2_gas",
1554
- "type": {
1555
- "kind": "integer",
1556
- "sign": "unsigned",
1557
- "width": 32
1558
- }
1559
- }
1560
- ],
1561
- "kind": "struct",
1562
- "path": "authwit::aztec::protocol_types::abis::gas::Gas"
1866
+ "name": "block_number",
1867
+ "type": {
1868
+ "kind": "field"
1563
1869
  }
1564
1870
  },
1565
1871
  {
1566
- "name": "teardown_gas_limits",
1872
+ "name": "slot_number",
1873
+ "type": {
1874
+ "kind": "field"
1875
+ }
1876
+ },
1877
+ {
1878
+ "name": "timestamp",
1879
+ "type": {
1880
+ "kind": "integer",
1881
+ "sign": "unsigned",
1882
+ "width": 64
1883
+ }
1884
+ },
1885
+ {
1886
+ "name": "coinbase",
1567
1887
  "type": {
1568
1888
  "fields": [
1569
1889
  {
1570
- "name": "da_gas",
1571
- "type": {
1572
- "kind": "integer",
1573
- "sign": "unsigned",
1574
- "width": 32
1575
- }
1576
- },
1577
- {
1578
- "name": "l2_gas",
1890
+ "name": "inner",
1579
1891
  "type": {
1580
- "kind": "integer",
1581
- "sign": "unsigned",
1582
- "width": 32
1892
+ "kind": "field"
1583
1893
  }
1584
1894
  }
1585
1895
  ],
1586
1896
  "kind": "struct",
1587
- "path": "authwit::aztec::protocol_types::abis::gas::Gas"
1897
+ "path": "authwit::aztec::protocol_types::address::eth_address::EthAddress"
1588
1898
  }
1589
1899
  },
1590
1900
  {
1591
- "name": "max_fees_per_gas",
1901
+ "name": "fee_recipient",
1592
1902
  "type": {
1593
1903
  "fields": [
1594
1904
  {
1595
- "name": "fee_per_da_gas",
1596
- "type": {
1597
- "kind": "field"
1598
- }
1599
- },
1600
- {
1601
- "name": "fee_per_l2_gas",
1905
+ "name": "inner",
1602
1906
  "type": {
1603
1907
  "kind": "field"
1604
1908
  }
1605
1909
  }
1606
1910
  ],
1607
1911
  "kind": "struct",
1608
- "path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
1912
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
1609
1913
  }
1610
1914
  },
1611
1915
  {
1612
- "name": "max_priority_fees_per_gas",
1916
+ "name": "gas_fees",
1613
1917
  "type": {
1614
1918
  "fields": [
1615
1919
  {
@@ -1621,413 +1925,176 @@
1621
1925
  {
1622
1926
  "name": "fee_per_l2_gas",
1623
1927
  "type": {
1624
- "kind": "field"
1625
- }
1626
- }
1627
- ],
1628
- "kind": "struct",
1629
- "path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
1630
- }
1631
- }
1632
- ],
1633
- "kind": "struct",
1634
- "path": "authwit::aztec::protocol_types::abis::gas_settings::GasSettings"
1635
- }
1636
- }
1637
- ],
1638
- "kind": "struct",
1639
- "path": "authwit::aztec::protocol_types::transaction::tx_context::TxContext"
1640
- }
1641
- }
1642
- ],
1643
- "kind": "struct",
1644
- "path": "authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"
1645
- },
1646
- "visibility": "databus"
1647
- }
1648
- },
1649
- "bytecode": "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",
1650
- "debug_symbols": "7VvbbuM4DP2XPOdBFC+i+iuLxSBtM4MAQVqk7QKLYv99pUwlO6liD5Gmk2n8UkTJOTLJQ1si5b7O7pe3Lz++rTbfH55mN3+9ztYPd4vn1cMmjV5nQLvvnh4Xmzx8el5sn2c3IOLns+XmPn8M/r/57PtqvZzdSPr4Duy9hDew9xorOHILHEnfwOg8DINBMGq1g6CDp0s28dzBQ+jQSi00ChY0gdtD/z2fAU+RORIZmSJzJDLhoiNDyF1kKI5ExoOXYgkQnxgZnSJzJDLx5MiQiwVM4LWCQ8wX8O7cF4DWBRABigIoOnwBQIVYzMEonWDSDGnk6Ao8CodhuEosemlAHFFXqaqrFGgEjVzA5HvaSjOBaxQ9Oh4GA0LVJ4VyBOy66LlerBM46+MnfS5aH5z0+SV9QvXR75vRcjGEMjGEyCfpQ5M+F60Pf4A+sW4ugFzP+LY+FJQqXH0cg4vv4NLbMaQFtBXHUJ9DiiMbnWvXXibtr1b7MGl/tdrr5WvP3GmvOKw9VlMIOnkAw87ZePnOxq7GDUjDzqYa23X1tvTK858FJbor8xe+mL8hdNvXoBAO/fVX5i/+Vn/ZORmGBy5zh15jTWFnPF248ep9t7T1jZ9W2FNWWORL171acqB7Nv7zywJObebOeNI+PFv0+ZtVRqnJwAQjTQTvwNWbw/mxR+S13x06yfmV5IyTnF9ITvr8AoLJYydnr9RvwiUtEW9oAR3pC0Cvd5yE7arDtMhkZ+HSnfVaUld8jCNNkHS0W3MmHcgcHjaSvypvj1QOoR5us8Nhb6Or++PouJdq3tqGIPoAY6QUwhGcDhuTTkGwJn5klhNjyX+2+fK55qcVR+tbDg7jftMiDW63q/V69ePb3vtkLv9pJwpDuYuY/bvcYjtF7JRgp6iRkkaQke1TXakpob0TZkA6ftA4TGE7ReyUYKeondLchKVmTd2b6CGl3SkcpoCd4u0UtFPITmE7ReyUYKeondJWv3YEtLeWZkpr8SpPN+xtYjGt70e3hB83PZx3en/e6fG809N5p+fzTi/nnT584PS9Y6YyvZ53+njW6bl518ZarkYMh88RBjvF2ylop5CdwnaK2CnBTBG1U6KZEprqeyoJs+tP7CdMADvF2ylop5CdwnaK2ClN9dNJSaHEd3dlUDslminq7BSwU7ydgkZKGvldSdA0LzUMSr9A5LD8aL+7O0xBO4XsFLZTxEhJI8zI9j8p+ei0Rpy7TuSuLZZGNJWi6dm+y7tmEnF92zlwf5HmREzDfxbb1eJ2vcxlff71ZXNXqvw0fP73sfxS+gCP24e75f3Ldpk7Al0zIGcjwpwgeQD5lk6dT+ZaJu++EpiL5N/zDaJxHqHeM5meygaMhU5uTtylRv4KZO6hSn78glwZnufokpvJ1f8B",
1651
- "brillig_names": [
1652
- "store_in_execution_cache_oracle_wrapper",
1653
- "call_private_function_internal",
1654
- "load",
1655
- "notify_created_nullifier_oracle_wrapper",
1656
- "store_in_execution_cache_oracle_wrapper",
1657
- "enqueue_public_function_call_internal"
1658
- ],
1659
- "verification_key": "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"
1660
- },
1661
- {
1662
- "name": "is_reject_all",
1663
- "is_unconstrained": true,
1664
- "custom_attributes": [
1665
- "public",
1666
- "view"
1667
- ],
1668
- "abi": {
1669
- "error_types": {
1670
- "16761564377371454734": {
1671
- "error_kind": "string",
1672
- "string": "Array index out of bounds"
1673
- },
1674
- "17843811134343075018": {
1675
- "error_kind": "string",
1676
- "string": "Stack too deep"
1677
- },
1678
- "206160798890201757": {
1679
- "error_kind": "string",
1680
- "string": "Storage slot 0 not allowed. Storage slots must start from 1."
1681
- },
1682
- "5019202896831570965": {
1683
- "error_kind": "string",
1684
- "string": "attempt to add with overflow"
1685
- },
1686
- "9474245853673257536": {
1687
- "error_kind": "string",
1688
- "string": "Function is_reject_all can only be called statically"
1689
- }
1690
- },
1691
- "parameters": [
1692
- {
1693
- "name": "on_behalf_of",
1694
- "type": {
1695
- "fields": [
1696
- {
1697
- "name": "inner",
1698
- "type": {
1699
- "kind": "field"
1700
- }
1701
- }
1702
- ],
1703
- "kind": "struct",
1704
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
1705
- },
1706
- "visibility": "private"
1707
- }
1708
- ],
1709
- "return_type": {
1710
- "abi_type": {
1711
- "kind": "boolean"
1712
- },
1713
- "visibility": "public"
1714
- }
1715
- },
1716
- "bytecode": "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",
1717
- "debug_symbols": "7Z3bbuM4DIbfJde9EHVWX2WwKHrIFAGCpEjbBRbFvPs62dpJIyFeicJMCv43RVKTJv1FFinapj8WT8uH9+e71ebn9nVx++Njsd4+3r+ttpvh28evm8XDbrVer57vTv+9UPs/MR7kX1/uN/uvr2/3u7fFLXmvbxbLzdP+Y9DDHn6u1svFrR8+ZsI+qfAp7JM2k3BUBeGkpj0nFd2p8F83i2QqvdnrxHodUg2GiKhFyZeUrNXuU8la6y8DJuXNaIHoCJicLUlHPwqnOMnq5A/uaHVd7rircsdcFx1zXXTsddGx9rrciVfljjPX5U743e640R2t9Bd3ctlo9SgcbbBHaR8K0mbas9XqRLYgqinZ0QtN+rKwm5xwOpyK7vl5DX4sfh78OPwCgR+LH8Yfi1/E+OPxw/hj8UsK/Fj8LPix+CXwY/DTyoAfi18EPw4/wvptlp9XIz9PGT/kLyx+Gvkzj58Dvzl+k6z/KrrnZ3H+svg5rD94/HD+svh5jD8eP4w/Fr+A8cfjZ8GPxQ/rXxa/iPoLjx+un7P4JdRfePywfuPwMwr1Fx4/5M8FKLgolEMhCyg5FKSvORSNnKAABYlmDsUgehegICTnUCzqVAUoCMkFKAjJORSHMlEBCkJyDsUjJBegoEqTQ8GjCyUoSN4KUFBPyaFECyg5FIyUDIoVeo+rNkco1p1DMTIXhIHS6EUwpln4QFDmBFRDkPzx+HykjKDM2aojQStzCdaRoJMZHHoSlLm4qyIYwrhjCimLxUJrBj0Jylw29iSIWMwkGGTWiHsSRDbDJCi0HUVPgshmmAQTxiCXILIZLkFkMzyCTmhjip4Ekc0wCRIiCZcgIgmXICIJk6C2IMgkKPOWvCqCiaZu50lnBA2yGS5BjEEmQdvhShPFOFo4vaZfJmjViNue0C7uOPjxVQkhHvHRf+8KcD2uMv4Zz923Zd6jsckf8nw+5/RuznOTppnCfzVRcMfE0fVg1VG6+KKPQHE8SYPWdFmYSJnjlKW8PxXfH+v/uIez97GG47FSuuy+m7h4dZzozPDzHnz339f3+H25D/8SGUmNmrwwZM+Coxf6HPVlKISRUoAiMxG9DEXLXN/MQMFIyaEIXQnPQJFZqtdJT1CUm1ncqmklPBxqPCdoZZbqexKUmQFVEaST1Zg7vxHVC+1F25OgzIjZkaCXGV57EkQsnifo3XR8MYskEWfxLEGrxqb6w8dsDArtytiToMzbKPsRDELLhD0JWhCcI+j0dHzOqYygzJtfOhIU2vWxI0Gh3RB7EkRGzSQotGjakaDQ/oM9CaI+yCToUKPmEsSqjklQ6KP+PQliHpwnGKYbUV3S5wSFvrOqJ0GMQSZBoe9d6kkQVX4mQVT52QSRD/IIRlT52QRRo54laI4PJhlzfp0kokbNJohYzCSIKj+bIGIxk6DQlsg9CSKScAkim2ESFPpSp54Ekc0wCQptKt2TILIZJkGPbGaeoA0TQa8yghiDTIJCWyL3JIhYzCQo9D1RPQliTcIkmDAGuQQxD/KehkgKaxIuQeSDTIJCG9r0JIhYrM47K5Ki4pkZpgZfwZpMp9zzI9nRUHK5nXKXixkd16CT6nXKryi/3HRi0IotWl43aYUWrdBkKzTZik22YpOt1GQrtfxepHSTVstxUblp+6yWa9JKLVraNGnF6jmGTJF7UuOLWZMu6NTPS+RcvR2X6nXK3S1mdEK9TqifZ6nczvKyTmywE+vnZiqv/2Z06u1oZRt0iuM6uXFcp6AzHTINOg12yvc0XNYx1KDTYMc22JnNBQo65a5Gl39TV59zaN9gx8d6nXJNeEan4VyI9fOBTtSgUz9fm3I8ntFpsEPUoOMadOp/H6Mrx8Gv4dvf97vV/cN6+Tpo7De+bx7fVtvN59e3f17GLQ+71Xq9er572W0fl0/vu+Xdevu437ZQn39+6OBuhmXMIasavg7z+s0wTx+m3v3WFIatabA6WP4X",
1718
- "brillig_names": [
1719
- "is_reject_all"
1720
- ]
1721
- },
1722
- {
1723
- "name": "set_authorized",
1724
- "is_unconstrained": true,
1725
- "custom_attributes": [
1726
- "public"
1727
- ],
1728
- "abi": {
1729
- "error_types": {
1730
- "16761564377371454734": {
1731
- "error_kind": "string",
1732
- "string": "Array index out of bounds"
1733
- },
1734
- "17843811134343075018": {
1735
- "error_kind": "string",
1736
- "string": "Stack too deep"
1737
- },
1738
- "206160798890201757": {
1739
- "error_kind": "string",
1740
- "string": "Storage slot 0 not allowed. Storage slots must start from 1."
1741
- },
1742
- "5019202896831570965": {
1743
- "error_kind": "string",
1744
- "string": "attempt to add with overflow"
1745
- }
1746
- },
1747
- "parameters": [
1748
- {
1749
- "name": "message_hash",
1750
- "type": {
1751
- "kind": "field"
1752
- },
1753
- "visibility": "private"
1754
- },
1755
- {
1756
- "name": "authorize",
1757
- "type": {
1758
- "kind": "boolean"
1759
- },
1760
- "visibility": "private"
1761
- }
1762
- ],
1763
- "return_type": null
1764
- },
1765
- "bytecode": "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",
1766
- "debug_symbols": "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",
1767
- "brillig_names": [
1768
- "set_authorized"
1769
- ]
1770
- },
1771
- {
1772
- "name": "process_log",
1773
- "is_unconstrained": true,
1774
- "custom_attributes": [],
1775
- "abi": {
1776
- "error_types": {
1777
- "16541607464495309456": {
1778
- "error_kind": "fmtstring",
1779
- "item_types": [],
1780
- "length": 16
1781
- },
1782
- "17843811134343075018": {
1783
- "error_kind": "string",
1784
- "string": "Stack too deep"
1785
- }
1786
- },
1787
- "parameters": [
1788
- {
1789
- "name": "log_plaintext",
1790
- "type": {
1791
- "fields": [
1792
- {
1793
- "name": "storage",
1794
- "type": {
1795
- "kind": "array",
1796
- "length": 18,
1797
- "type": {
1798
- "kind": "field"
1799
- }
1800
- }
1801
- },
1802
- {
1803
- "name": "len",
1804
- "type": {
1805
- "kind": "integer",
1806
- "sign": "unsigned",
1807
- "width": 32
1808
- }
1809
- }
1810
- ],
1811
- "kind": "struct",
1812
- "path": "std::collections::bounded_vec::BoundedVec"
1813
- },
1814
- "visibility": "private"
1815
- },
1816
- {
1817
- "name": "tx_hash",
1818
- "type": {
1819
- "kind": "field"
1820
- },
1821
- "visibility": "private"
1822
- },
1823
- {
1824
- "name": "unique_note_hashes_in_tx",
1825
- "type": {
1826
- "fields": [
1827
- {
1828
- "name": "storage",
1829
- "type": {
1830
- "kind": "array",
1831
- "length": 64,
1832
- "type": {
1833
- "kind": "field"
1928
+ "kind": "field"
1929
+ }
1930
+ }
1931
+ ],
1932
+ "kind": "struct",
1933
+ "path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
1934
+ }
1935
+ }
1936
+ ],
1937
+ "kind": "struct",
1938
+ "path": "authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"
1939
+ }
1940
+ },
1941
+ {
1942
+ "name": "total_fees",
1943
+ "type": {
1944
+ "kind": "field"
1945
+ }
1946
+ },
1947
+ {
1948
+ "name": "total_mana_used",
1949
+ "type": {
1950
+ "kind": "field"
1951
+ }
1834
1952
  }
1835
- }
1836
- },
1837
- {
1838
- "name": "len",
1839
- "type": {
1840
- "kind": "integer",
1841
- "sign": "unsigned",
1842
- "width": 32
1843
- }
1844
- }
1845
- ],
1846
- "kind": "struct",
1847
- "path": "std::collections::bounded_vec::BoundedVec"
1848
- },
1849
- "visibility": "private"
1850
- },
1851
- {
1852
- "name": "first_nullifier_in_tx",
1853
- "type": {
1854
- "kind": "field"
1855
- },
1856
- "visibility": "private"
1857
- },
1858
- {
1859
- "name": "recipient",
1860
- "type": {
1861
- "fields": [
1862
- {
1863
- "name": "inner",
1864
- "type": {
1865
- "kind": "field"
1866
- }
1867
- }
1868
- ],
1869
- "kind": "struct",
1870
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
1871
- },
1872
- "visibility": "private"
1873
- }
1874
- ],
1875
- "return_type": null
1876
- },
1877
- "bytecode": "H4sIAAAAAAAA/92c927bMBDG5URKIieOndG9927leHeme+/W/dsdfosWAtqHSPu09Zfw7DPDAilCovkqQJCto+9+PFHUiTy6EG1s3cFeMJ9jc5w2R5xfjMY3Kbtqjtn2tqpHXVkoxgIB4wQB4yQBY0zAmBAwThEwThMwzhAwpgSMRQLGWQLGOQLGEgHjPAFjmYCxQsC4EIAxBOciCeeSR04d24fiXY52fhvdRcC4m4BxDwHjXgLGfQSM+wkYDxAwHiRgPETAeJiA8QgB41ECxmMEjMcJGE8QMJ4kYDxFwHiagPEMAeNZAsZzBIznCRgvEDBeJGC8RMB4mYDxCgFjRsBYJWBcIWCsETDWCRgbBIxNAsYWAWObgLFDwHiVgPEaAeN1AsYbBIw3CRhvETCuEjDeJmC8Q8B4l4DxHgHjfQLGBwSMDwkYHxEwPiZgfELA+JSA8RkB43MCxhcEjC8JGF8RML4mYHxDwPg2AGMIzncknO9JOLuBOKMPFvTEYMfCLSyMwsIjLOzBwhksTMHCDyyswMIFLAxA4j0S25E4XhnsSHxGUjESdpEEiyRTJHEiSRJJiEjyQxIdktSQBIYkKyQxIUno6GA/NtiRRIIkDSRBIMkAk/iYJMckNCZ5MYmKSUpMAmKSDZNYmCRCrTDJgUkEDNJjEByDzBjExSApBiExyIdBNAxSYRAIgywYxJBBArzk4iUSL2l4CcJLBoJ4BMkIQhHkIYhCkIIgAA9ZPMTwkEAnjE4OnQhuUtwAaFzd6M+bNJIf5pia44SSe1xEV00tuz71t7POx9RRP4/8tdTonAmiv9ES/WkY/kwW2t7LR/p1XcTupDl285Evu/k4k5RZU2XWrDJSnzDXu14P66/qSsnyUaTqIraLYWzXCpY9fV20TOwXo5Btc2NRsrYnPLZ/pO8oSZl8xFOwZHG+uR4iS5RMri/snFfl7LY1Y8mEBZu035LyjWwfjEyuaax0+muvjXbY9lrP/l17rVf/x/YaW7I431yPv22vum3Z7TWJRpv0pSKbUrKflmxayX7lI9sNxdE0n8P2yRvPYH3v+X6GLTn4tS1s0/nIH9IGJ9W5RPlv3T+6vCVLlSzOx+0UzfdY2dG6hCOxytfN97I5TqnfyO8rDvtTlv0xbsc52y+po3zqKI+2dsl8njU72tA3+U20+d7Fvmq+Z9vamh1XP+lPf6vm6gs98n8R/bNB9NeH+ufC8A/jqlIY/w/1z4fh74v+chj9TdFfCaO/IfoXguhfGcYJ+s927DhhSZ33GNduOU4Q+0WLNVScsGTx2P7RcQJkyw7WikNm9wHLDjvLDjsuXfMedS141FXcoXUsedRV8agr9ajL53Wc86jLp7/KHnXNeNTls9379Jdcx7DjVVnmitOiAPqLYfQP+37po/W7ma6T2E+s8l8tP88F8fNoHEr6M+0LVyzl0/ZWn9div+TgEe6iQ7adP0D70mj3O+1GZxDSV5srnaxg6RdW+5x+L9L9iy7veva74j6Pvs5cYxBl5VdssZLNW7JEyYRRj0G44mKf/Fvxv7Zfccjs/nmr13IxGm9r+n6cjUb3c5z7r3urvfHHLuuMRn8SjY8xRpb9xCr/3Xy3+7rt3iP9Vq/ar/X6vUbv8+f6p96ipV/7EH76DXVGL3ipUwAA",
1878
- "debug_symbols": "tZbLCoMwEEX/ZdZZOOOr9VdKKVFjCYQoUQtF/PfG0oe067sJTJg5QxYn3IVaU8/Xi/VdP1J1Wsj1jZ5s72O1rIrqYJ2z18v+mpLt4ESeA+Og/VaPkw4TVakoMr6lKkvieGedoaqQVf01lu/Gsvw05rKeVSSnMHIGI+cwcgEjlzDyAUY+osicwMgMI8McZJiDDHOQYQ4yzEGGOcgwBxnmoMAcFJiDAnNQYA4KxsE1VjcdrK6deQWIbvbNLk9M98H8RIsh9I1p52C2kPHNF9vbM1G5PH/9WLAUilOOS+KiBw==",
1879
- "brillig_names": [
1880
- "process_log"
1881
- ]
1882
- },
1883
- {
1884
- "name": "is_consumable",
1885
- "is_unconstrained": true,
1886
- "custom_attributes": [
1887
- "public",
1888
- "view"
1889
- ],
1890
- "abi": {
1891
- "error_types": {
1892
- "16761564377371454734": {
1893
- "error_kind": "string",
1894
- "string": "Array index out of bounds"
1895
- },
1896
- "17843811134343075018": {
1897
- "error_kind": "string",
1898
- "string": "Stack too deep"
1899
- },
1900
- "206160798890201757": {
1901
- "error_kind": "string",
1902
- "string": "Storage slot 0 not allowed. Storage slots must start from 1."
1903
- },
1904
- "5019202896831570965": {
1905
- "error_kind": "string",
1906
- "string": "attempt to add with overflow"
1907
- },
1908
- "5444967152290923376": {
1909
- "error_kind": "string",
1910
- "string": "Function is_consumable can only be called statically"
1911
- }
1912
- },
1913
- "parameters": [
1914
- {
1915
- "name": "on_behalf_of",
1916
- "type": {
1917
- "fields": [
1918
- {
1919
- "name": "inner",
1920
- "type": {
1921
- "kind": "field"
1922
- }
1953
+ ],
1954
+ "kind": "struct",
1955
+ "path": "authwit::aztec::protocol_types::block_header::BlockHeader"
1923
1956
  }
1924
- ],
1925
- "kind": "struct",
1926
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
1927
- },
1928
- "visibility": "private"
1929
- },
1930
- {
1931
- "name": "message_hash",
1932
- "type": {
1933
- "kind": "field"
1934
- },
1935
- "visibility": "private"
1936
- }
1937
- ],
1938
- "return_type": {
1939
- "abi_type": {
1940
- "kind": "boolean"
1941
- },
1942
- "visibility": "public"
1943
- }
1944
- },
1945
- "bytecode": "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",
1946
- "debug_symbols": "7Z3bbts4EIbfxde54PnQVykWQZKmhQEjKZJ0gUXRd185G8lOOBajGW4ql/9NYMf8NaPPFGc4oqmfmy+31z++XW7vvt4/bj59/rnZ3d9cPW3v74Z3P39dbK4ftrvd9tvl8b83av8nu+f2j9+v7vZvH5+uHp42n3QI5mJze/dl/zKa4Qhft7vbzacwvCwah6ziS+OQjZ0aJ0U0zmo6clbJHzf+62KT80JvBo1WjiPiWNKRITKGErms7YvIZafmCWsVxsZa6wNh7R3VOoWxcU5TW5PDf+7EVblj9brcCatyx62LjlsXHb8uOt6vy528KneCW5c76aPd8aM7RplX7pRtkzNj4+SiO7QOkWhtpyM7o47aEk2Nzm70wmgz39hPTngTj5vu+UULfiJ+Efwk/JIBPxE/9D8Rv4z+J+OH/ifhZ5QGPxE/D34SflqBn4ifAz8Rvwx+En4G87cqv6BGfkEX/JC/iPhZ5M8yfgH8avymtuF10z0/j+tXxC9g/iHjh+tXxC+i/8n4of+J+CX0Pxk/1F9k/DD/FfHLqL/I+OH+uYSfVai/yPhh/ibip1F/kfFD/lxCMbgpREBBpktAQfpaQrHICQgoSDRLKA7Rm4CCkFxC8ahTEVAQkgkoCMkllI//1cI5QEFILqFEhGQCCqo0JRT8dIGCguSthJJRTyGgIHkroDiFnlJC6XSNq7EHKM6/heL6nBBGnUcvorXsxs8E+xyAlhDU4XB+Ib1dvOp8n6NVS4J9TsEaEgx9BoeWBPuc3C0iGON4YB1zEYs7rRm0JNjntLEhwYRYLCXoQFBIENmMkGCn21G0JIhsRkbQK/RBKUFkM0KCnW5L0ZKgA0EhQWQzQoIGkURKEJFESNAikkgJ4j6JlGCfS/IWEcx62nw9m4KgcyAoJIg+KCToG9xp0imNFo7v6dMEnZqOfET7xLMbxtOMOrw67LPn6Vw9D2fLvMXGJr/J83rO6WPTkWJuh3f/jhsbH+qOX5U7eV108qroBLUqOkG5dbmTVuWOtutyJ360O+f3y/qZnUmD0eAn4hfAT8LPov/J+KH/ifg59D8ZPw9+In4Z/CT8vAM/Eb8EfhJ+wYKfiB/mb5Kd6UNE/iLjh/xZxO/j675/1M6G4R3L2cFvjh/yZxG/jP4n44f+J+EXFfqfjB/mbyJ+79iZGfzm+GH+JuKH+29Cfpi/ifhZzN9k/HD/Q8YP+XMJxaGoTEBBpltC8UhfCSjICUooAYkmAQXRm4CCkFxCiQ5QSigIySWUhJBMQEGZqISSEZIJKAjJBZSkUKUhoCAkE1AQkksoGvWUEkqnlfPZ/dqT63NMabdfe+q0TNdup+fk+xytGhLstNbVkmCfwaEhwdhnyt5uP6YU+5wJtiTYZyW3IcGEWCwl2GflryHBTsuELQkiksgI5k4LkC0Jog9KCSKbERLstA7akiCyGSHBThe8tySISCIliEgiJGgRSaQEEUlkOz1n1+dCq5YE0QeFBH2DbOb/2j86hvjSNKYDPj20ffY8nKvn4WyZt1hZ/Xs8f8fy5xhqnts8jRThtQnCHZvGQ0enDq2TohrrNF6k0Rg931hrZQ9DlgrhuPn+XN+xpU3rc42Hc9V53n0/cQnqMNDZ4et99t2fr+/5fLlr1WlxyqrJC6vdm+io1Tseb9cjFfQVgorpMxmtULF9TnJqVNBXCCqdTohrVDpd55zNREX5gorvswxfo9Jnab1Gpc98pUKl052fa1T6jMwVKp3u0lyjgtGWoNLpjso1KugrBJVOd++dp6JNg4d6/nHzIN3pQ+orVCz6CkWlz8dQV6h0+njzGhX0FYKKR1+hqKQuqVTylRaPT/8DqURQKanEPvOVGhUPKgSVPiNzhUrCaEtRwWhLUMkGVAgq6CslFaP6rK/MU7GKHG3jtEwvOltojKM02Y2Gsi/tmLRcQ6+tqWjCco0jK/r7dWDjl61CKlWepcocFT1brapYtgLLVmDZiixbkWUrsb6vxLKVWeeVE0PllGGpAkelFUvlF48xjl6DmdW4OWA2pYYxLjl6Tda8HXrF0rzGK4bGMTTLx1lH1zcqGoaduHxsdkkzNAw7mWGH3rYk+7Ff52jeajy9UUdFw7BDbyVQ0aTlGsOwYxh2qrkApYmLv1PvDEPDsEOvZJvXBMXQLL8WfLQMzfLxwCfH0OTlmsywk5efT1CGoVn+/QS9vB8EVn4W6J5QVZHXwzBhOkyevC5U9HMZqiqWLXrkrqgiPXZXVXQuqIOfVKlgeOK5f0PeNj7rfXhZ2rKOpUocFT1SVlV03jnEkVHlvSpU9Groqopl68T8p6bKHBVdF6+pTlwpNVXkqLJlqRJDlZRlqU6cV5x+F+5zkRskbVgqli3jOaoTI0BN5ViqxFE5FsMT17I9/I7fWl2qAkdFZ0xVlWOpEkcVDUvFopFY5BPLVmaRzyzymUM+n6ibWBcnVVClKnJU9GyspjKKpfIcldUsVeCoHMvWiXrrfL6RT9RbKyp6i/+qKi5V/Rre/X31sL263t0+Dpr9hz/ubp6293cvb5/++T5+cv2w3e223y6/P9zf3H758XB7ubu/2X+2US9/Pu/3kxjKYHtv9m+N9xcmqP3bPXJn/PBpHKwOlv8F",
1947
- "brillig_names": [
1948
- "is_consumable"
1949
- ]
1950
- },
1951
- {
1952
- "name": "sync_notes",
1953
- "is_unconstrained": true,
1954
- "custom_attributes": [],
1955
- "abi": {
1956
- "error_types": {
1957
- "17843811134343075018": {
1958
- "error_kind": "string",
1959
- "string": "Stack too deep"
1960
- }
1961
- },
1962
- "parameters": [],
1963
- "return_type": null
1964
- },
1965
- "bytecode": "H4sIAAAAAAAA/7WTyw7CIBBFqcUo0sTEx39MU0y7dOHafyCtLHVRN+766dZkJkyI0QVwEzJMgMNcHoXwKjBKESGCHDEqjAs2Xs7tjDnEqVbBvin5HRijvvhLWH+jkFnk4QPxM50/rJBzmTyfe6F913PTrF8J/z5y+af7y+l//8OzRq9bzCvh/8P4uvfXx/M2ij/SbJGc0ptoOwAqvkT+EvmhJBvn8w+Yb4Svj6KMqNO1tnaNdfZkh8H0dhfwP+KH/QbzqHp4zgQAAA==",
1966
- "debug_symbols": "bY/dCoMwDIXfJde9aKobs68iQ6pGKZRWah0M8d0Xxybdz80hJ3w55KzQU7uMjfVDmEHXK7jQmWSDZ7duAtponbNjk69B7oLFk58n43c7JxMT6EIJIN+DLiVfD9YR6LPaxA+IEuWb5VlVB47l5T9f4cErlB/8dWN7M9Ga1tHr9WHxXdYk3Sf6KjXF0FG/RNrrZc1YazwJJTmWox8=",
1967
- "brillig_names": [
1968
- "sync_notes"
1969
- ]
1970
- },
1971
- {
1972
- "name": "unconstrained_is_consumable",
1973
- "is_unconstrained": true,
1974
- "custom_attributes": [],
1975
- "abi": {
1976
- "error_types": {
1977
- "16761564377371454734": {
1978
- "error_kind": "string",
1979
- "string": "Array index out of bounds"
1980
- },
1981
- "17843811134343075018": {
1982
- "error_kind": "string",
1983
- "string": "Stack too deep"
1984
- },
1985
- "206160798890201757": {
1986
- "error_kind": "string",
1987
- "string": "Storage slot 0 not allowed. Storage slots must start from 1."
1988
- },
1989
- "5019202896831570965": {
1990
- "error_kind": "string",
1991
- "string": "attempt to add with overflow"
1992
- }
1993
- },
1994
- "parameters": [
1995
- {
1996
- "name": "on_behalf_of",
1997
- "type": {
1998
- "fields": [
1999
- {
2000
- "name": "inner",
2001
- "type": {
2002
- "kind": "field"
2003
- }
1957
+ },
1958
+ {
1959
+ "name": "tx_context",
1960
+ "type": {
1961
+ "fields": [
1962
+ {
1963
+ "name": "chain_id",
1964
+ "type": {
1965
+ "kind": "field"
1966
+ }
1967
+ },
1968
+ {
1969
+ "name": "version",
1970
+ "type": {
1971
+ "kind": "field"
1972
+ }
1973
+ },
1974
+ {
1975
+ "name": "gas_settings",
1976
+ "type": {
1977
+ "fields": [
1978
+ {
1979
+ "name": "gas_limits",
1980
+ "type": {
1981
+ "fields": [
1982
+ {
1983
+ "name": "da_gas",
1984
+ "type": {
1985
+ "kind": "integer",
1986
+ "sign": "unsigned",
1987
+ "width": 32
1988
+ }
1989
+ },
1990
+ {
1991
+ "name": "l2_gas",
1992
+ "type": {
1993
+ "kind": "integer",
1994
+ "sign": "unsigned",
1995
+ "width": 32
1996
+ }
1997
+ }
1998
+ ],
1999
+ "kind": "struct",
2000
+ "path": "authwit::aztec::protocol_types::abis::gas::Gas"
2001
+ }
2002
+ },
2003
+ {
2004
+ "name": "teardown_gas_limits",
2005
+ "type": {
2006
+ "fields": [
2007
+ {
2008
+ "name": "da_gas",
2009
+ "type": {
2010
+ "kind": "integer",
2011
+ "sign": "unsigned",
2012
+ "width": 32
2013
+ }
2014
+ },
2015
+ {
2016
+ "name": "l2_gas",
2017
+ "type": {
2018
+ "kind": "integer",
2019
+ "sign": "unsigned",
2020
+ "width": 32
2021
+ }
2022
+ }
2023
+ ],
2024
+ "kind": "struct",
2025
+ "path": "authwit::aztec::protocol_types::abis::gas::Gas"
2026
+ }
2027
+ },
2028
+ {
2029
+ "name": "max_fees_per_gas",
2030
+ "type": {
2031
+ "fields": [
2032
+ {
2033
+ "name": "fee_per_da_gas",
2034
+ "type": {
2035
+ "kind": "field"
2036
+ }
2037
+ },
2038
+ {
2039
+ "name": "fee_per_l2_gas",
2040
+ "type": {
2041
+ "kind": "field"
2042
+ }
2043
+ }
2044
+ ],
2045
+ "kind": "struct",
2046
+ "path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
2047
+ }
2048
+ },
2049
+ {
2050
+ "name": "max_priority_fees_per_gas",
2051
+ "type": {
2052
+ "fields": [
2053
+ {
2054
+ "name": "fee_per_da_gas",
2055
+ "type": {
2056
+ "kind": "field"
2057
+ }
2058
+ },
2059
+ {
2060
+ "name": "fee_per_l2_gas",
2061
+ "type": {
2062
+ "kind": "field"
2063
+ }
2064
+ }
2065
+ ],
2066
+ "kind": "struct",
2067
+ "path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
2068
+ }
2069
+ }
2070
+ ],
2071
+ "kind": "struct",
2072
+ "path": "authwit::aztec::protocol_types::abis::gas_settings::GasSettings"
2073
+ }
2074
+ }
2075
+ ],
2076
+ "kind": "struct",
2077
+ "path": "authwit::aztec::protocol_types::transaction::tx_context::TxContext"
2004
2078
  }
2005
- ],
2006
- "kind": "struct",
2007
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
2008
- },
2009
- "visibility": "private"
2010
- },
2011
- {
2012
- "name": "message_hash",
2013
- "type": {
2014
- "kind": "field"
2015
- },
2016
- "visibility": "private"
2017
- }
2018
- ],
2019
- "return_type": {
2020
- "abi_type": {
2021
- "kind": "boolean"
2079
+ }
2080
+ ],
2081
+ "kind": "struct",
2082
+ "path": "authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"
2022
2083
  },
2023
- "visibility": "public"
2084
+ "visibility": "databus"
2024
2085
  }
2025
2086
  },
2026
- "bytecode": "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",
2027
- "debug_symbols": "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",
2087
+ "bytecode": "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",
2088
+ "debug_symbols": "7VvRbts6DP2XPOdBJEWK6q9cXAxpmw0BgrRI2wFDsX+flFWymyr2iDRd1viliJJzZJKHtkTKfZ7dLq+fvn1Zbb7ePcyu/nuere9uFo+ru00aPc/A7757uF9s8vDhcbF9nF2BCM5ny81t/hjw53z2dbVezq4kfXwDRpTwAkbUWMGRW+Do9QVMDmEYDEJRqx0eOjiKNvHcwUPo0NqcnYQK2oN7hf5/PgOeInMgMjJF5kBkwllHxhN3kfFxJDIIKMUS8HxkZHSKzIHIxKMj410sYA+oFRxivgC6U18AWhcgAigKkOjwBYAUYjGHonSCiW/BI0dX4FE4DMNVYtFLA9GIuuqruuqDH0ETF7DHnrbSTOAaRSTHw2AgqPqkUI6AXRc914t1Amd9cNLnrPWhSZ8/0idUH/G1GS0XQygTQ4h8lD5+0ues9eF30CfWzQV41zO+rY8P6itcMY7BBTu49HYMaQFtxTHU55DSyEbn0rWXSfuL1T5M2l+s9nr+2jN32isNa0/VFA+dPEBh52w8f2djV+MG8sPOphrbdfW29Mrz3wUluQvzFz6ZvyF029egEPb9xQvzl/6qv+ycDMMDl7lDr7GmsDPen7nxitgtbX3jpxX2mBWW+Nx1r5bs6Z6N//iygFObuTPeax+eLfr4zSqT1GRgDyNNBHTg6s3hcOwReel3h05yfiY54yTnJ5LTf3wBwR6pk7NX6jfhkpaIF7SAjvQFoNc7TsJ21WFaZLKzcO7OopbUFYxxpAmSjnZrzqQDmf3DRo8X5e2ByiHUw212NOxtdHV/HB33Ug2tbQjv38EYKYVwBKfDxqRTEKqJH5nlyFjyv22+fKz5acXR+paDo/i6aZEG19vVer369uXV+2Qu/2knCkO5i5jxTW6xnSJ2SrBT1EhJI8jI9qmu1JTQ3gkzkD980DhMYTtF7JRgp6id0tyEpWZN3ZvoPqXdKRymgJ2CdgrZKd5OYTtF7JRgp6id0la/dgS0t5ZmSmvxKk836m1i6ff07S3h+00Pp50eTzs9nXZ6f9rp+bTTy2mnD+84fe+YqUyvp50+nnR6bt61sZarkcL+c4TBTkE7hewUb6ewnSJ2SjBTRO2UaKaEpvroS8KghP2ECWCnoJ1Cdoq3U9hOETulqX46KSmU+OauDGqnRDNFnZ0CdgraKWSkpBHuSoKmealhUPoFIvvlR/vd3WEK2SneTmE7RYyUNKKMbP+TEkanNeLcdSJ3bbE08lMpmp7tu7xrJhHXt50D9xdpTsQ0/L7YrhbX62Uu6/OvT5ubUuWn4eOP+/JL6QPcb+9ulrdP22XuCHTNgJyNBHMPyQPIt3TqfDLXMnn3lcBcJP+ebxCN8wj1nsn0VDZQLHTv5p671MhfgcwRquSHL8iVgTwnl9xMrv4C",
2028
2089
  "brillig_names": [
2029
- "unconstrained_is_consumable"
2030
- ]
2090
+ "store_in_execution_cache_oracle_wrapper",
2091
+ "call_private_function_internal",
2092
+ "load",
2093
+ "notify_created_nullifier_oracle_wrapper",
2094
+ "store_in_execution_cache_oracle_wrapper",
2095
+ "enqueue_public_function_call_internal"
2096
+ ],
2097
+ "verification_key": "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"
2031
2098
  },
2032
2099
  {
2033
2100
  "name": "set_reject_all",
@@ -2066,78 +2133,11 @@
2066
2133
  "return_type": null
2067
2134
  },
2068
2135
  "bytecode": "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",
2069
- "debug_symbols": "7Z3bbuM4DIbfxde50PnQVxksirTNFAGCpEjTBRZF333tIJbTSBuvRGHGA/03RVKTFv2FFilZoj+7l83Tx+vjdv/z8N49/Pjsdofn9Wl72PffPr9W3dNxu9ttXx+v/92x4Y/zZ/n3t/V++Pp+Wh9P3QNXyq26zf5l+GhMf4af292mezDiaxUJKyP4Rbj/6IOwYwlhJ624CDvp7LXwX6vOq7Q1wgRrlL1vDWdGjsKcyyDMtUpJu3Bm74Ks8OZsjV+SNZzJZZnjFmUOXxYdviw6Yll0hF2UOZIvyxyzKHMU+9Xm6PHMgolv5iTiyWSGU1ZN0sYmpGU4sxLsSjYhKrhXoxWCi/vCOhihhb0WPfPT4Efi58GPwk8r8CPxg/+R+Bn4H40f/I/Ez0rwI/Gz4Efh5wT4kfgZ8KPw8xz8SPwwfpvlZ9jIz/CIH/IXCj/BFPiR+Dnwm+MXZM130YGfwP1L4icx/qDxw/1L4qfgfzR+8D8SPw3/o/HD/AuJn8H4l8YP8y8kfhbPz2n8MP9C44fxG4mfU+BH4of8OYbi8VAoAQWZbgRFMqSvCSjICWIoHIlmAooClBgKQnIMRWCeKgEFITmGIhGSE1AwTRRDwd6JFBSE5AQUzNLEULB1IQUFyVsMxWA+JQEFyVsMxcJTYiiNrnEVcoKi9A0UxdscEFruRyuslMXCZ4JtdkA5BLmZrs+428WrSrTZW1UkKNscgtUk2GZwqEmwzcFdFkFrAwzro1jc6JxBTYJtDhsrEtSIxVSCbc4RVyRokM1QCSKSUAkimyEStPBBKkFkM0SCjZalqEkQ2QyRoEc2QyWISEIliEhCI6gZIgmVIJ6TEAnyNpfkZRH0fCy9zr2ICSKbIRIU8EEqwQpPmrgLry64fqafJqjYiFtd0U6e2Bp7EbVuwsd72cHyGk8Zf5PlfyzzGoVNfpPl8zmn1TOWSxF6Cqn8tyYS5jgrgz1usj35jg7l9UVWs6kcvOwvebD9f5TzqG27NMF27e7bbo0ceyNrPLsv3HexSkzd7Xcuw7U2WjpWsmCF5Oq2k2506u0+FAdPiaE0Wnl0BkqbefZdKKbRTc4zUOApMZRGNzkLLwIUpmcGWSyMyPpLdRFBBYJEgm1mQFkEuZyuT98uiDSN7rWuSLDRPcg1CbYZXisSbHR3cx5Bo8P1uSiSNFqbMougYizAYJEPmkZ3rlUk2OZyvooEG50mrEmwzQfgWQT1NGmuNbsl2OhyvpoE4YNEgq3uIq9G0DJk1FSCGNURCTZa9qAmQcwPEgkKBYJEghjVEQlK+CCVIPrBeYI2rEDS/rYuk2303V01CcIHiQQb3bRfkSBm+ckEMbNAJYh8kEgQs/xUgpijnicopw0yUvKIIOaoiQQbXZNckyBiMZUgYjGNoGOIxVSCiCREghzZDJUgfJBIsNEt5zUJIpuhEkQ2QyQokc3ME1Q2EDQsIggfJBJUmOUnEtSIxVSCyAeJBBt9DVZNgvBBIkGLfpC2G8JZjEmoBJEPEgk2WtCmIkGPWMxuK/z5dHCwU9EudfsSOZ/m6EPlLq+jVtI1du6pcJbeejGjowp00gvS7lac6I/KIi1bovUf75yb0ypqSxa1JYvaUkVtqaK2dNHvpYvaMkXXZUyJlmVFWqpIq+hOSQeuez1Mr5Pk7tn4dlAvYp38bqnvwll2OzxdrmdGx+XrpO/6GZ38fpanC5fM6BS0o1SBjs/X0QXt6IJ2TNKvvR792lsR67h8HVvQjuMFOiZfxxe04/PbEbO5QEpHZ/+mgrMCnYJ20uWWZnRcvo7MvxeE4gU6+f2B0KJAx+brmIJ2TMH12ALfsQW/j830g6/+29/r43b9tNu89xrDwY/982l72F++nv55G488Hbe73fb18e14eN68fBw3j7vD83CsY5c/P/oRyUo4d465/Vfu1Io7f761h6POr4Tnfat9y/8C",
2136
+ "debug_symbols": "7Z3bbuM4DIbfJde50JlSX2WwKHrIFAGCpEjbBRZF332dIJbTSBuvRGEmA/03RVyTFv2ZFinZoj8Xz6vHj5f79fbn7m1x9+Nzsdk9Pbyvd9th6/NruXjcrzeb9cv9+b8X4vDHh6P82+vD9rD59v6wf1/cSWP8crHaPh9+Ojcc4ed6s1rcOfW1TISNU/IkPPwMUdiLjLDXpE7CXns6F/5ruQgmb41y0RpD162RwulRWEodhaU1OWkfjxx8lFWBjtaEW7JGCn1b5vibMkfeFh15W3TUbdFRdFPmaHlb5ribMseIX22OHY+shPpmTiaeTGZ4Q2aSdj4jreORjRJnshlRJYMZrVBSXRe20Qir6Fz0yM+CH4tfAD8OP2vAj8UP/sfi5+B/PH7wPxY/0uDH4kfgx+HnFfix+Dnw4/ALEvxY/DB+m+XnxMjPyYQf8hcOPyUM+LH4efCb4xdl3XfRAz+F+5fFT2P8weOH+5fFz8D/ePzgfyx+Fv7H44f5FxY/h/Evjx/mX1j8CM/Pefww/8Ljh/Ebi5834Mfih/w5hRLwUCgDBZluAkULpK8ZKMgJUigSiWYGigGUFApCcgpFYZ4qAwUhOYWiEZIzUDBNlELB2okcFITkDBTM0qRQsHQhBwXJWwrFYT4lAwXJWwqF4CkplE7fcVV6gmLsBRQj+xwQkgyjFaR1tfCRYJ8dUAlB6abzc/7y5VWj+uytGhLUfQ7BWhLsMzi0JNjn4K6IIFGEQSGJxZ3OGbQk2OewsSFBi1jMJdjnHHFDgg7ZDJcgIgmXILIZJkGCD3IJIpthEuy0LEVLgshmmAQDshkuQUQSLkFEEh5BKxBJuATxnIRJUPb5Sl4RwSDH0usyqJQgshkmQQUf5BJs8KRJ+vjpgvNn+nmCRoy4zRnt7IHJ0UmU/IRPDrIHy1s8ZfxNlv+xzFsUNvlNls/nnGRnLNcq9hTahG9NZMzxpKM9frI9+40OE+xJ1oqpHLyW5mj7/yjn0dp27aLt1l+3nZweeyNyQVwXHrpYo6bu9juXw7l2WjpWi2jF4apfdNKdTr1dh+LhKSmUTiuPzkDpM8++CsV1ush5Bgo8JYXS6SJnFVSEIuzMIEvEEdlwqj4haECQSbDPDKiIoNTT+dnLFyJdp2utGxLsdA1yS4J9hteGBDtd3VxG0Nl4fj6JJJ3WpiwiaISIMETig67TlWsNCfb5Ol9Dgp1OE7Yk2OcD8CKCdpo0t1ZcEuz0db6WBOGDTIK9riJvRpAEMmouQYzqmAQ7LXvQkiDmB5kElQFBJkGM6pgENXyQSxD94DxBim8g2XBZl4k6/XZXS4LwQSbBThftNySIWX42QcwscAkiH2QSxCw/lyDmqOcJ6mmBjNYyIYg5aibBTt9JbkkQsZhLELGYR9ALxGIuQUQSJkGJbIZLED7IJNjpkvOWBJHNcAkim2ES1Mhm5gkaigSdSAjCB5kEDWb5mQQtYjGXIPJBJsFOP4PVkiB8kEmQ0A/yVkN4wpiESxD5IJNgpwVtGhIMiMXissJfyAcHmop2mcuPyIU8xxArdwWbtJKvsXNNRYr80osZHVOhk38h7WrFiWGvrtKiGq3/+ObcnFZVW7qqLV3Vlqlqy1S1Zauul61qy1Wdl3M1WiSqtEyVVtWdkg9c13qYQSfLPYjx66BBpTrl3dLQhYvidmS+XM+Mji/Xyd/1Mzrl/azMFy6Z0alox5gKnVCuYyvasRXtuKxfBzv6dSCV6vhyHapox8sKHVeuEyraCeXtqNlcIKdji6+pkqJCp6KdfLmlGR1frqPL7wVlZIVOeX+grKrQoXIdV9GOqzgfqvAdqrg+VOgHX8PW3w/79cPjZvU2aBx2fmyf3te77Wnz/Z/Xcc/jfr3ZrF/uX/e7p9Xzx351v9k9HfYtxOnPD+Voqbw/xtxhU3qzlD4cb+3DXh+WKsih1aHlfwE=",
2070
2137
  "brillig_names": [
2071
2138
  "set_reject_all"
2072
2139
  ]
2073
2140
  },
2074
- {
2075
- "name": "public_dispatch",
2076
- "is_unconstrained": true,
2077
- "custom_attributes": [
2078
- "public"
2079
- ],
2080
- "abi": {
2081
- "error_types": {
2082
- "12737498021964987455": {
2083
- "error_kind": "string",
2084
- "string": "unauthorized"
2085
- },
2086
- "16541607464495309456": {
2087
- "error_kind": "fmtstring",
2088
- "item_types": [],
2089
- "length": 16
2090
- },
2091
- "16761564377371454734": {
2092
- "error_kind": "string",
2093
- "string": "Array index out of bounds"
2094
- },
2095
- "17843811134343075018": {
2096
- "error_kind": "string",
2097
- "string": "Stack too deep"
2098
- },
2099
- "206160798890201757": {
2100
- "error_kind": "string",
2101
- "string": "Storage slot 0 not allowed. Storage slots must start from 1."
2102
- },
2103
- "5019202896831570965": {
2104
- "error_kind": "string",
2105
- "string": "attempt to add with overflow"
2106
- },
2107
- "5444967152290923376": {
2108
- "error_kind": "string",
2109
- "string": "Function is_consumable can only be called statically"
2110
- },
2111
- "6304245522015439386": {
2112
- "error_kind": "string",
2113
- "string": "Function _set_authorized can only be called internally"
2114
- },
2115
- "715723737710351018": {
2116
- "error_kind": "string",
2117
- "string": "rejecting all"
2118
- },
2119
- "9474245853673257536": {
2120
- "error_kind": "string",
2121
- "string": "Function is_reject_all can only be called statically"
2122
- }
2123
- },
2124
- "parameters": [
2125
- {
2126
- "name": "selector",
2127
- "type": {
2128
- "kind": "field"
2129
- },
2130
- "visibility": "private"
2131
- }
2132
- ],
2133
- "return_type": null
2134
- },
2135
- "bytecode": "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",
2136
- "debug_symbols": "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",
2137
- "brillig_names": [
2138
- "public_dispatch"
2139
- ]
2140
- },
2141
2141
  {
2142
2142
  "name": "_set_authorized",
2143
2143
  "is_unconstrained": true,
@@ -2203,170 +2203,170 @@
2203
2203
  "return_type": null
2204
2204
  },
2205
2205
  "bytecode": "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",
2206
- "debug_symbols": "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",
2206
+ "debug_symbols": "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",
2207
2207
  "brillig_names": [
2208
2208
  "_set_authorized"
2209
2209
  ]
2210
2210
  },
2211
2211
  {
2212
- "name": "compute_note_hash_and_optionally_a_nullifier",
2212
+ "name": "set_authorized",
2213
2213
  "is_unconstrained": true,
2214
- "custom_attributes": [],
2214
+ "custom_attributes": [
2215
+ "public"
2216
+ ],
2215
2217
  "abi": {
2216
2218
  "error_types": {
2217
- "16541607464495309456": {
2218
- "error_kind": "fmtstring",
2219
- "item_types": [],
2220
- "length": 16
2219
+ "16761564377371454734": {
2220
+ "error_kind": "string",
2221
+ "string": "Array index out of bounds"
2221
2222
  },
2222
2223
  "17843811134343075018": {
2223
2224
  "error_kind": "string",
2224
2225
  "string": "Stack too deep"
2226
+ },
2227
+ "206160798890201757": {
2228
+ "error_kind": "string",
2229
+ "string": "Storage slot 0 not allowed. Storage slots must start from 1."
2230
+ },
2231
+ "5019202896831570965": {
2232
+ "error_kind": "string",
2233
+ "string": "attempt to add with overflow"
2225
2234
  }
2226
2235
  },
2227
2236
  "parameters": [
2228
2237
  {
2229
- "name": "contract_address",
2230
- "type": {
2231
- "fields": [
2232
- {
2233
- "name": "inner",
2234
- "type": {
2235
- "kind": "field"
2236
- }
2237
- }
2238
- ],
2239
- "kind": "struct",
2240
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
2241
- },
2242
- "visibility": "private"
2243
- },
2244
- {
2245
- "name": "nonce",
2246
- "type": {
2247
- "kind": "field"
2248
- },
2249
- "visibility": "private"
2250
- },
2251
- {
2252
- "name": "storage_slot",
2253
- "type": {
2254
- "kind": "field"
2255
- },
2256
- "visibility": "private"
2257
- },
2258
- {
2259
- "name": "note_type_id",
2238
+ "name": "message_hash",
2260
2239
  "type": {
2261
2240
  "kind": "field"
2262
2241
  },
2263
2242
  "visibility": "private"
2264
2243
  },
2265
2244
  {
2266
- "name": "compute_nullifier",
2245
+ "name": "authorize",
2267
2246
  "type": {
2268
2247
  "kind": "boolean"
2269
2248
  },
2270
2249
  "visibility": "private"
2271
- },
2272
- {
2273
- "name": "packed_note_content",
2274
- "type": {
2275
- "kind": "array",
2276
- "length": 0,
2277
- "type": {
2278
- "kind": "field"
2279
- }
2280
- },
2281
- "visibility": "private"
2282
2250
  }
2283
2251
  ],
2284
- "return_type": {
2285
- "abi_type": {
2286
- "kind": "array",
2287
- "length": 4,
2288
- "type": {
2289
- "kind": "field"
2290
- }
2291
- },
2292
- "visibility": "public"
2293
- }
2252
+ "return_type": null
2294
2253
  },
2295
- "bytecode": "H4sIAAAAAAAA/9VZy67aQAwdSEJIuAEKn3Cl7tomXJ47Fn3c30AFPqHrrLppP7qMGCcH46siYVfFEpoknhyfOXZmJqHjztY//TrhOA5tz10b9dmGtrzPKkWs0pJn50F4dh+EZ/QgPGNFnh2Bp2/peUvc+ZlL3fl5bC7iTT7BEdzk/gYAwX6HNgttF/yKCakyYZBa+Otyvs/cpSnzf8kCZmqDvyD8vg1+Sbw/1y0+joXiRqF9rVstX+Eeb0U4xuIlXPJ1wfeF+SLwfWU+rOFvzId1T5xIN1qYlOtqY50XGlsKY+u80TrXaofXSOvcmdZoRTnPGB/On/gU1Kdu+fSYLwZfxnwJ+Eh/3z5DP577FPp9hONP0IfXZ+Su65n8lH/U3aK+YgP8k82lHPD8xPVlbPRhDmLQ85npY7FuoD4W+nt9pm/wp2Nvae0ai5ieqBFp1sf+zJeBL64v4+ThPIY4iEU8Etb/QzgfhbYH99D9YyF+j8W/4C1cQ404ViRco/7++Xwfjgfh52voJ93jructvc31ci7N4Xr4qwY/s+F/JPzcBn9J+AMb/GZv82SCPysJv7Dh38xBQ5v6afaWIxv+B8Ifm+DPD7QOv3OtNXNEOJ7Adb35u6pu2SNh/JxxtdojTRgfrg+uwd43FbiOBR/P4VSIMxXiSFiZItaTItboPx1jXxFroIg1VMTSzGOqiKWpV66IVShiada9pl6UR2mf5m0b2vJOk/ZpiviVtE/TfJcnram+YkFDHF/C+v9gOg9MeFYzWnPoWacYGLswin3rek3xC4EP8c4F3z0fZw+L9XGzXmxOW7JqOds0+SwYV34N34twPsb+0tov7fsUtS6ld/8h6OotBl/BfAn4iKP07j804n+L/hh/LPj4+n9rLifuej0csHHjN6+typjb74HSt3rj+Wtx67NJ8XN3PV//q++NqA/fS+cC17Hg4/uTXIiTC3EeEYt/s0cNfV2TTnHd+rVyuVq3f3TRXJS4y/8BHIufsP6/wjmOjdp75vzjalcdX3bH3WK338+/7yYM31sXdPoDg5oBSR0fAAA=",
2296
- "debug_symbols": "tdfNaoQwFIbhe8k6i5z8mIm3UsoQNQ6BECVqoYj33jhM26GzLN9GiBwfN77g2dkQuu12jXmcFta+7SxNvV/jlOtpPzjrSkwp3q7Pt5k4L87c55fZ5/O4rL6srFWSs5AH1mpRnx5jCqxt5MFfBu33oLU/g0Ye75y5BgVbFHxBwQ4EkxAwmWCyhMkKJmuYbGByA5MtTL7AZFiDBGuQYA0SrEGCNUiwBgnWIMEaJFiD9L8GnXoM1k/hhXYwWgocTTha4miFozWONji6wdEWR+NqlLgaFa5GBarxqKcPX6LvUnhsTeOW+6clav2cw599ai5TH4athHOz+l2qzvSU4drc/zzqgZTmpFx9SX3RFw==",
2254
+ "bytecode": "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",
2255
+ "debug_symbols": "7Z3bbts4EIbfxde54GF46qsUiyBJ08KAkRRJusCi6Luv1EayU1KiNaOmSvjfFHE9vzn+THOGI2r8fffp9vrbl8v93ef7x92Hj993h/ubq6f9/V336PuPi931w/5w2H+5PP3vner/Se6n/ePXq7v+4ePT1cPT7oNWXl/sbu8+9X+G1L3C5/3hdvfBmx8XmTF5Mxh3fx6NoyoYRxvMs3G0MZwa/3Ox00qV3bF2dMereXc6i9FYazsaa0cl6+gH4xRHW5PCL3fcttxJm3JH07bc2RYdsy06Zlt0rN2WO2FT7pDZljv+td1xgztGmRfuFCIKmcE4UqCjtY8Fazu+Mhl1YlswNTrR4IXRZt7YjU44E05Ne35Og5+InwM/CT+vwE/ED/NPxC9g/sn4Yf7J+CXwk/CLFvxE/CL4SfglA34ifgH8BPyMwv6tys+rgZ/XGT/kLyJ+GvmzjB+BX43faOtfmvb8LL6/Mn7Yf4j4Eb6/Mn6YfyJ+DvNPxg/zT8TPo/4i44f9r4hfQP1Fxg/Xz0X8IuovMn7Yv4n4JdRfZPwI/HIouCiUQbEKmW4BCtLXHIpGTlCAgkQzh2IQvQtQEJILUFCnyqFYhOQCFITkHAqhTFSAgpCcQ3EIyQUoqNLkUHDrQgkKAUoOBfWUHEpA8laAgpmSQaFGz7gae4RC7ncous0NYdBp8CJYyzbuCZo2F6AlBLU/vj8fdUawzdVqRYK2zS3YigSpzeCwJsE2N3eLCIYwvLAOKYvFjdYM1iRIICgkiFgsJOjbrBGvSRDZjJBgo+0o1iSIbEZIMGIOSgkSCAoJIpsREmy0McWaBJHNyAg6hUgiJYhIIiWISCIkqHGdREqwzSN5iwgmPTRf18lkBA2yGSlBzEEhQbvClSYd42B8ek2/TJDU8Mp0Qrv4wj4NbzNo/+Jlf3ru36rn9GaZr9HY5O94fsa1mOhWXSnmOry7My5svKY7ZzS8eFV3tkUnbItO2BadaLbljt+UO0lvyx332u68vTvrZzqTupTAT8DPn1H6Ab85fph/In4a80/GD/NPxM9Y8BPxC+An4WcN+In4efCT8CMNfiJ+2L9JOtN7Qv4i4vf6ZdR3xi+CX43fTGdD75G/yPghfxbxC5h/Mn6YfyJ+EfNPxg/7NxG/Mzozg98cP+zfZPywf5PwC4rAT8QP+zcRP43rHzJ+yJ9zKAZF5QIUZLo5FIv0tQCFACWHgkQzh0KI3gUoCMk5FIc6VQEKQnIOxSMkF6CgTFSAgpCcQwkIyQUoqNLkUHDpqAQFITmHklBPyaBERU1Cme3XHk2ba8p6/dpjo2W69To9R9vmarUmwTYT6xUJUpvBYU2Cbabs6/Vjiq7NneCaBNus5K5I0CMWSwm2WflbkyCyGSHBRmuKaxJENiMkGDEHpQSRzQgJNloHXZMgshkpQWQzMoJJIZJICSKSCAlqRBIpQUQSWafnZNo8aLUmQcxBKcEVspk/1T86+PBsGuIRn+5se8/XOCT/lzx/s8zXOFn9dzyvH3/Wqua5NaOxpfRiiII7XdFu9CcefY+q9DaTe7Z16tgi2Gr65Xt4dd+tH313cd734O3Y5t0nNW/cLbFkjsvtSy79e220HYVVoxf9p/7bIt3oQcEKFMyUHEqj5Z1ZKFqpNhPtGhXMlQIVjblSokJtnrVNZqSiXE6lzVJwhUqjHbVrVNpMVypUGj0qXKPSZmSuUcFqW6DSaAeAGpU2j/tUqDR6ILlCpdEOxhUqcYUflnx/+6BEoFKggrmSU9GqzZ9CrlDRbf7Edo0K5kqBSqM/x16j4pukMp+v6DV+Nv0dUnGgUqDSZr5SoXJGJaFFKm1G5goVh9W2RAWrbYHKGf0EW6SCuVKgEghUMiqmXLcNx3N3ZDNNmWQaT98ll49Tvkl2XlM+m1bR+OWaqd+5GY9Cd597zFWOpUoMlVXEUrHG0qyxNGsswxrLsMayjqVijUWs9zV1ZWleNXX8uKLyHJVXLJVbvMbYcmOHpIYGdcnkGsa6ZJNZPk7yizVUPidY0RBDs3ydpfLvtFQ0jHHM8rWZyrWXioYxDjHGKf8+c3LDvE7BZBqnGBrGON4yNHG5JjDGCYxxqrlASROWf6bJMDTLx3HlE7LzmvL50Ypm+XfBGcvQLF8PnCWGJi3XEGMcYrwfZxgaxufjl88Dz8rP/NR5y4qqXNfSJzcVOZ2prGGpWGOVV+6aqrx2V1XlXLB7YlTFnGEsj9XlEYOKVD5WJJYqclTllbKqKued7ngPmXPqd1VQmqVijTWx/6mpEkc1cZNxRTXxTampAkc1UbmvqSJH5VhjTdzC6MJ4M6BLWW4QJk5m1VSssYLjqCZWgJqKWKrIUSUOwzjxXbbHe8mt1bnKc1QTd9zUVMRSRY5q4hxCTcWiYVnkLWssYpEnFnlikZ+om1gKo8qrXBU4qvJurKYKiqVyHFXULJXnqBJrrIl663y+MdVSa1411UaqpgpLVT+6R/9ePeyvrg+3j52mf/Lb3c3T/v7u+eHTf1+HZ64f9ofD/svl14f7m9tP3x5uLw/3N/1zO/X8z0eb6IK0673pHxpKF8ZR/7BHTtp3z8Zu1G7k/wE=",
2297
2256
  "brillig_names": [
2298
- "compute_note_hash_and_optionally_a_nullifier"
2257
+ "set_authorized"
2299
2258
  ]
2300
2259
  },
2301
2260
  {
2302
- "name": "consume",
2261
+ "name": "process_log",
2303
2262
  "is_unconstrained": true,
2304
- "custom_attributes": [
2305
- "public"
2306
- ],
2263
+ "custom_attributes": [],
2307
2264
  "abi": {
2308
- "error_types": {
2309
- "12737498021964987455": {
2310
- "error_kind": "string",
2311
- "string": "unauthorized"
2312
- },
2313
- "16761564377371454734": {
2314
- "error_kind": "string",
2315
- "string": "Array index out of bounds"
2265
+ "error_types": {
2266
+ "16541607464495309456": {
2267
+ "error_kind": "fmtstring",
2268
+ "item_types": [],
2269
+ "length": 16
2316
2270
  },
2317
2271
  "17843811134343075018": {
2318
2272
  "error_kind": "string",
2319
2273
  "string": "Stack too deep"
2320
- },
2321
- "206160798890201757": {
2322
- "error_kind": "string",
2323
- "string": "Storage slot 0 not allowed. Storage slots must start from 1."
2324
- },
2325
- "5019202896831570965": {
2326
- "error_kind": "string",
2327
- "string": "attempt to add with overflow"
2328
- },
2329
- "715723737710351018": {
2330
- "error_kind": "string",
2331
- "string": "rejecting all"
2332
2274
  }
2333
2275
  },
2334
2276
  "parameters": [
2335
2277
  {
2336
- "name": "on_behalf_of",
2278
+ "name": "log_plaintext",
2337
2279
  "type": {
2338
2280
  "fields": [
2339
2281
  {
2340
- "name": "inner",
2282
+ "name": "storage",
2341
2283
  "type": {
2342
- "kind": "field"
2284
+ "kind": "array",
2285
+ "length": 18,
2286
+ "type": {
2287
+ "kind": "field"
2288
+ }
2289
+ }
2290
+ },
2291
+ {
2292
+ "name": "len",
2293
+ "type": {
2294
+ "kind": "integer",
2295
+ "sign": "unsigned",
2296
+ "width": 32
2343
2297
  }
2344
2298
  }
2345
2299
  ],
2346
2300
  "kind": "struct",
2347
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
2301
+ "path": "std::collections::bounded_vec::BoundedVec"
2348
2302
  },
2349
2303
  "visibility": "private"
2350
2304
  },
2351
2305
  {
2352
- "name": "inner_hash",
2306
+ "name": "tx_hash",
2307
+ "type": {
2308
+ "kind": "field"
2309
+ },
2310
+ "visibility": "private"
2311
+ },
2312
+ {
2313
+ "name": "unique_note_hashes_in_tx",
2314
+ "type": {
2315
+ "fields": [
2316
+ {
2317
+ "name": "storage",
2318
+ "type": {
2319
+ "kind": "array",
2320
+ "length": 64,
2321
+ "type": {
2322
+ "kind": "field"
2323
+ }
2324
+ }
2325
+ },
2326
+ {
2327
+ "name": "len",
2328
+ "type": {
2329
+ "kind": "integer",
2330
+ "sign": "unsigned",
2331
+ "width": 32
2332
+ }
2333
+ }
2334
+ ],
2335
+ "kind": "struct",
2336
+ "path": "std::collections::bounded_vec::BoundedVec"
2337
+ },
2338
+ "visibility": "private"
2339
+ },
2340
+ {
2341
+ "name": "first_nullifier_in_tx",
2353
2342
  "type": {
2354
2343
  "kind": "field"
2355
2344
  },
2356
2345
  "visibility": "private"
2346
+ },
2347
+ {
2348
+ "name": "recipient",
2349
+ "type": {
2350
+ "fields": [
2351
+ {
2352
+ "name": "inner",
2353
+ "type": {
2354
+ "kind": "field"
2355
+ }
2356
+ }
2357
+ ],
2358
+ "kind": "struct",
2359
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
2360
+ },
2361
+ "visibility": "private"
2357
2362
  }
2358
2363
  ],
2359
- "return_type": {
2360
- "abi_type": {
2361
- "kind": "field"
2362
- },
2363
- "visibility": "public"
2364
- }
2364
+ "return_type": null
2365
2365
  },
2366
- "bytecode": "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",
2367
- "debug_symbols": "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",
2366
+ "bytecode": "H4sIAAAAAAAA/92c927bMBDG5URKIieOndG9927leHeme+/W/dsdfosWAtqHSPu09Zfw7DPDAilCovkqQJCto+9+PFHUiTy6EG1s3cFeMJ9jc5w2R5xfjMY3Kbtqjtn2tqpHXVkoxgIB4wQB4yQBY0zAmBAwThEwThMwzhAwpgSMRQLGWQLGOQLGEgHjPAFjmYCxQsC4EIAxBOciCeeSR04d24fiXY52fhvdRcC4m4BxDwHjXgLGfQSM+wkYDxAwHiRgPETAeJiA8QgB41ECxmMEjMcJGE8QMJ4kYDxFwHiagPEMAeNZAsZzBIznCRgvEDBeJGC8RMB4mYDxCgFjRsBYJWBcIWCsETDWCRgbBIxNAsYWAWObgLFDwHiVgPEaAeN1AsYbBIw3CRhvETCuEjDeJmC8Q8B4l4DxHgHjfQLGBwSMDwkYHxEwPiZgfELA+JSA8RkB43MCxhcEjC8JGF8RML4mYHxDwPg2AGMIzncknO9JOLuBOKMPFvTEYMfCLSyMwsIjLOzBwhksTMHCDyyswMIFLAxA4j0S25E4XhnsSHxGUjESdpEEiyRTJHEiSRJJiEjyQxIdktSQBIYkKyQxIUno6GA/NtiRRIIkDSRBIMkAk/iYJMckNCZ5MYmKSUpMAmKSDZNYmCRCrTDJgUkEDNJjEByDzBjExSApBiExyIdBNAxSYRAIgywYxJBBArzk4iUSL2l4CcJLBoJ4BMkIQhHkIYhCkIIgAA9ZPMTwkEAnjE4OnQhuUtwAaFzd6M+bNJIf5pia44SSe1xEV00tuz71t7POx9RRP4/8tdTonAmiv9ES/WkY/kwW2t7LR/p1XcTupDl285Evu/k4k5RZU2XWrDJSnzDXu14P66/qSsnyUaTqIraLYWzXCpY9fV20TOwXo5Btc2NRsrYnPLZ/pO8oSZl8xFOwZHG+uR4iS5RMri/snFfl7LY1Y8mEBZu035LyjWwfjEyuaax0+muvjXbY9lrP/l17rVf/x/YaW7I431yPv22vum3Z7TWJRpv0pSKbUrKflmxayX7lI9sNxdE0n8P2yRvPYH3v+X6GLTn4tS1s0/nIH9IGJ9W5RPlv3T+6vCVLlSzOx+0UzfdY2dG6hCOxytfN97I5TqnfyO8rDvtTlv0xbsc52y+po3zqKI+2dsl8njU72tA3+U20+d7Fvmq+Z9vamh1XP+lPf6vm6gs98n8R/bNB9NeH+ufC8A/jqlIY/w/1z4fh74v+chj9TdFfCaO/IfoXguhfGcYJ+s927DhhSZ33GNduOU4Q+0WLNVScsGTx2P7RcQJkyw7WikNm9wHLDjvLDjsuXfMedS141FXcoXUsedRV8agr9ajL53Wc86jLp7/KHnXNeNTls9379Jdcx7DjVVnmitOiAPqLYfQP+37po/W7ma6T2E+s8l8tP88F8fNoHEr6M+0LVyzl0/ZWn9div+TgEe6iQ7adP0D70mj3O+1GZxDSV5srnaxg6RdW+5x+L9L9iy7veva74j6Pvs5cYxBl5VdssZLNW7JEyYRRj0G44mKf/Fvxv7Zfccjs/nmr13IxGm9r+n6cjUb3c5z7r3urvfHHLuuMRn8SjY8xRpb9xCr/3Xy3+7rt3iP9Vq/ar/X6vUbv8+f6p96ipV/7EH76DXVGL3ipUwAA",
2367
+ "debug_symbols": "tZbLCoMwEEX/ZdZZOOOr9VdKKVFjCYQoUQtF/PfG0oe067sJTJg5QxYn3IVaU8/Xi/VdP1J1Wsj1jZ5s72O1rIrqYJ2z18v+mpLt4ESeA+Og/VaPkw4TVakoMr6lKkvieGedoaqQVf01lu/Gsvw05rKeVSSnMHIGI+cwcgEjlzDyAUY+osicwMgMI8McZJiDDHOQYQ4yzEGGOcgwBxnmoMAcFJiDAnNQYA4KxsE1VjcdrK6deQWIbvbNLk9M98H8RIsh9I1p52C2kPHNF9vbM1G5PH/9WLAUilOOS+KiBw==",
2368
2368
  "brillig_names": [
2369
- "consume"
2369
+ "process_log"
2370
2370
  ]
2371
2371
  }
2372
2372
  ],
@@ -2436,28 +2436,7 @@
2436
2436
  "type": {
2437
2437
  "fields": [
2438
2438
  {
2439
- "name": "reject",
2440
- "type": {
2441
- "kind": "boolean"
2442
- }
2443
- }
2444
- ],
2445
- "kind": "struct",
2446
- "path": "AuthRegistry::set_reject_all_parameters"
2447
- }
2448
- }
2449
- ],
2450
- "kind": "struct",
2451
- "path": "AuthRegistry::set_reject_all_abi"
2452
- },
2453
- {
2454
- "fields": [
2455
- {
2456
- "name": "parameters",
2457
- "type": {
2458
- "fields": [
2459
- {
2460
- "name": "on_behalf_of",
2439
+ "name": "approver",
2461
2440
  "type": {
2462
2441
  "fields": [
2463
2442
  {
@@ -2476,21 +2455,21 @@
2476
2455
  "type": {
2477
2456
  "kind": "field"
2478
2457
  }
2458
+ },
2459
+ {
2460
+ "name": "authorize",
2461
+ "type": {
2462
+ "kind": "boolean"
2463
+ }
2479
2464
  }
2480
2465
  ],
2481
2466
  "kind": "struct",
2482
- "path": "AuthRegistry::is_consumable_parameters"
2483
- }
2484
- },
2485
- {
2486
- "name": "return_type",
2487
- "type": {
2488
- "kind": "boolean"
2467
+ "path": "AuthRegistry::set_authorized_private_parameters"
2489
2468
  }
2490
2469
  }
2491
2470
  ],
2492
2471
  "kind": "struct",
2493
- "path": "AuthRegistry::is_consumable_abi"
2472
+ "path": "AuthRegistry::set_authorized_private_abi"
2494
2473
  },
2495
2474
  {
2496
2475
  "fields": [
@@ -2499,7 +2478,7 @@
2499
2478
  "type": {
2500
2479
  "fields": [
2501
2480
  {
2502
- "name": "on_behalf_of",
2481
+ "name": "approver",
2503
2482
  "type": {
2504
2483
  "fields": [
2505
2484
  {
@@ -2514,25 +2493,25 @@
2514
2493
  }
2515
2494
  },
2516
2495
  {
2517
- "name": "inner_hash",
2496
+ "name": "message_hash",
2518
2497
  "type": {
2519
2498
  "kind": "field"
2520
2499
  }
2500
+ },
2501
+ {
2502
+ "name": "authorize",
2503
+ "type": {
2504
+ "kind": "boolean"
2505
+ }
2521
2506
  }
2522
2507
  ],
2523
2508
  "kind": "struct",
2524
- "path": "AuthRegistry::consume_parameters"
2525
- }
2526
- },
2527
- {
2528
- "name": "return_type",
2529
- "type": {
2530
- "kind": "field"
2509
+ "path": "AuthRegistry::_set_authorized_parameters"
2531
2510
  }
2532
2511
  }
2533
2512
  ],
2534
2513
  "kind": "struct",
2535
- "path": "AuthRegistry::consume_abi"
2514
+ "path": "AuthRegistry::_set_authorized_abi"
2536
2515
  },
2537
2516
  {
2538
2517
  "fields": [
@@ -2541,20 +2520,26 @@
2541
2520
  "type": {
2542
2521
  "fields": [
2543
2522
  {
2544
- "name": "approver",
2523
+ "name": "reject",
2545
2524
  "type": {
2546
- "fields": [
2547
- {
2548
- "name": "inner",
2549
- "type": {
2550
- "kind": "field"
2551
- }
2552
- }
2553
- ],
2554
- "kind": "struct",
2555
- "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
2525
+ "kind": "boolean"
2556
2526
  }
2557
- },
2527
+ }
2528
+ ],
2529
+ "kind": "struct",
2530
+ "path": "AuthRegistry::set_reject_all_parameters"
2531
+ }
2532
+ }
2533
+ ],
2534
+ "kind": "struct",
2535
+ "path": "AuthRegistry::set_reject_all_abi"
2536
+ },
2537
+ {
2538
+ "fields": [
2539
+ {
2540
+ "name": "parameters",
2541
+ "type": {
2542
+ "fields": [
2558
2543
  {
2559
2544
  "name": "message_hash",
2560
2545
  "type": {
@@ -2569,12 +2554,12 @@
2569
2554
  }
2570
2555
  ],
2571
2556
  "kind": "struct",
2572
- "path": "AuthRegistry::_set_authorized_parameters"
2557
+ "path": "AuthRegistry::set_authorized_parameters"
2573
2558
  }
2574
2559
  }
2575
2560
  ],
2576
2561
  "kind": "struct",
2577
- "path": "AuthRegistry::_set_authorized_abi"
2562
+ "path": "AuthRegistry::set_authorized_abi"
2578
2563
  },
2579
2564
  {
2580
2565
  "fields": [
@@ -2596,10 +2581,16 @@
2596
2581
  "kind": "struct",
2597
2582
  "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
2598
2583
  }
2584
+ },
2585
+ {
2586
+ "name": "message_hash",
2587
+ "type": {
2588
+ "kind": "field"
2589
+ }
2599
2590
  }
2600
2591
  ],
2601
2592
  "kind": "struct",
2602
- "path": "AuthRegistry::is_reject_all_parameters"
2593
+ "path": "AuthRegistry::is_consumable_parameters"
2603
2594
  }
2604
2595
  },
2605
2596
  {
@@ -2610,7 +2601,7 @@
2610
2601
  }
2611
2602
  ],
2612
2603
  "kind": "struct",
2613
- "path": "AuthRegistry::is_reject_all_abi"
2604
+ "path": "AuthRegistry::is_consumable_abi"
2614
2605
  },
2615
2606
  {
2616
2607
  "fields": [
@@ -2619,7 +2610,7 @@
2619
2610
  "type": {
2620
2611
  "fields": [
2621
2612
  {
2622
- "name": "approver",
2613
+ "name": "on_behalf_of",
2623
2614
  "type": {
2624
2615
  "fields": [
2625
2616
  {
@@ -2634,25 +2625,25 @@
2634
2625
  }
2635
2626
  },
2636
2627
  {
2637
- "name": "message_hash",
2628
+ "name": "inner_hash",
2638
2629
  "type": {
2639
2630
  "kind": "field"
2640
2631
  }
2641
- },
2642
- {
2643
- "name": "authorize",
2644
- "type": {
2645
- "kind": "boolean"
2646
- }
2647
2632
  }
2648
2633
  ],
2649
2634
  "kind": "struct",
2650
- "path": "AuthRegistry::set_authorized_private_parameters"
2635
+ "path": "AuthRegistry::consume_parameters"
2636
+ }
2637
+ },
2638
+ {
2639
+ "name": "return_type",
2640
+ "type": {
2641
+ "kind": "field"
2651
2642
  }
2652
2643
  }
2653
2644
  ],
2654
2645
  "kind": "struct",
2655
- "path": "AuthRegistry::set_authorized_private_abi"
2646
+ "path": "AuthRegistry::consume_abi"
2656
2647
  },
2657
2648
  {
2658
2649
  "fields": [
@@ -2661,25 +2652,34 @@
2661
2652
  "type": {
2662
2653
  "fields": [
2663
2654
  {
2664
- "name": "message_hash",
2665
- "type": {
2666
- "kind": "field"
2667
- }
2668
- },
2669
- {
2670
- "name": "authorize",
2655
+ "name": "on_behalf_of",
2671
2656
  "type": {
2672
- "kind": "boolean"
2657
+ "fields": [
2658
+ {
2659
+ "name": "inner",
2660
+ "type": {
2661
+ "kind": "field"
2662
+ }
2663
+ }
2664
+ ],
2665
+ "kind": "struct",
2666
+ "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
2673
2667
  }
2674
2668
  }
2675
2669
  ],
2676
2670
  "kind": "struct",
2677
- "path": "AuthRegistry::set_authorized_parameters"
2671
+ "path": "AuthRegistry::is_reject_all_parameters"
2672
+ }
2673
+ },
2674
+ {
2675
+ "name": "return_type",
2676
+ "type": {
2677
+ "kind": "boolean"
2678
2678
  }
2679
2679
  }
2680
2680
  ],
2681
2681
  "kind": "struct",
2682
- "path": "AuthRegistry::set_authorized_abi"
2682
+ "path": "AuthRegistry::is_reject_all_abi"
2683
2683
  }
2684
2684
  ]
2685
2685
  }
@@ -2717,7 +2717,7 @@
2717
2717
  "path": "/build-volume/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr",
2718
2718
  "source": "use crate::context::{PublicContext, UnconstrainedContext};\nuse crate::state_vars::storage::Storage;\nuse dep::protocol_types::traits::Packable;\n\n// docs:start:public_mutable_struct\npub struct PublicMutable<T, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T, Context, let N: u32> Storage<N> for PublicMutable<T, Context>\nwhere\n T: Packable<N>,\n{\n fn get_storage_slot(self) -> Field {\n self.storage_slot\n }\n}\n\nimpl<T, Context> PublicMutable<T, Context> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field,\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n}\n\nimpl<T, let T_PACKED_LEN: u32> PublicMutable<T, &mut PublicContext>\nwhere\n T: Packable<T_PACKED_LEN>,\n{\n // docs:start:public_mutable_struct_read\n pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write(self, value: T) {\n self.context.storage_write(self.storage_slot, value);\n }\n // docs:end:public_mutable_struct_write\n}\n\nimpl<T, let T_PACKED_LEN: u32> PublicMutable<T, UnconstrainedContext>\nwhere\n T: Packable<T_PACKED_LEN>,\n{\n pub unconstrained fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n}\n"
2719
2719
  },
2720
- "250": {
2720
+ "251": {
2721
2721
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
2722
2722
  "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"
2723
2723
  },
@@ -2725,31 +2725,31 @@
2725
2725
  "path": "std/hash/poseidon2.nr",
2726
2726
  "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"
2727
2727
  },
2728
- "267": {
2728
+ "268": {
2729
2729
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
2730
2730
  "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 = sha256::digest(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n let nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(nonce, siloed_note_hash)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.value())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<PrivateLogData>) -> PrivateLog {\n if private_log.contract_address.is_zero() {\n private_log.inner.log\n } else {\n let mut fields = private_log.inner.log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog { fields }\n }\n}\n\nfn compute_siloed_contract_class_log_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 = sha256::digest(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
2731
2731
  },
2732
- "284": {
2732
+ "285": {
2733
2733
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
2734
2734
  "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"
2735
2735
  },
2736
- "296": {
2736
+ "297": {
2737
2737
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/storage/map.nr",
2738
2738
  "source": "use crate::{hash::poseidon2_hash, traits::ToField};\n\npub fn derive_storage_slot_in_map<K>(storage_slot: Field, key: K) -> Field\nwhere\n K: ToField,\n{\n poseidon2_hash([storage_slot, key.to_field()])\n}\n\nmod test {\n use crate::{address::AztecAddress, storage::map::derive_storage_slot_in_map, traits::FromField};\n\n #[test]\n fn test_derive_storage_slot_in_map_matches_typescript() {\n let map_slot = 0x132258fb6962c4387ba659d9556521102d227549a386d39f0b22d1890d59c2b5;\n let key = AztecAddress::from_field(\n 0x302dbc2f9b50a73283d5fb2f35bc01eae8935615817a0b4219a057b2ba8a5a3f,\n );\n\n let slot = derive_storage_slot_in_map(map_slot, key);\n\n // The following value was generated by `map_slot.test.ts`\n let slot_from_typescript =\n 0x15b9fe39449affd8b377461263e9d2b610b9ad40580553500b4e41d9cbd887ac;\n\n assert_eq(slot, slot_from_typescript);\n }\n}\n"
2739
2739
  },
2740
- "313": {
2740
+ "314": {
2741
2741
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/type_packing.nr",
2742
2742
  "source": "use crate::traits::{Packable, ToField};\n\nglobal BOOL_PACKED_LEN: u32 = 1;\nglobal U8_PACKED_LEN: u32 = 1;\nglobal U16_PACKED_LEN: u32 = 1;\nglobal U32_PACKED_LEN: u32 = 1;\nglobal U64_PACKED_LEN: u32 = 1;\nglobal U128_PACKED_LEN: u32 = 1;\nglobal FIELD_PACKED_LEN: u32 = 1;\nglobal I8_PACKED_LEN: u32 = 1;\nglobal I16_PACKED_LEN: u32 = 1;\nglobal I32_PACKED_LEN: u32 = 1;\nglobal I64_PACKED_LEN: u32 = 1;\n\nimpl Packable<BOOL_PACKED_LEN> for bool {\n fn pack(self) -> [Field; BOOL_PACKED_LEN] {\n [self as Field]\n }\n\n fn unpack(fields: [Field; BOOL_PACKED_LEN]) -> bool {\n fields[0] as bool\n }\n}\n\nimpl Packable<U8_PACKED_LEN> for u8 {\n fn pack(self) -> [Field; U8_PACKED_LEN] {\n [self as Field]\n }\n\n fn unpack(fields: [Field; U8_PACKED_LEN]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Packable<U16_PACKED_LEN> for u16 {\n fn pack(self) -> [Field; U16_PACKED_LEN] {\n [self as Field]\n }\n\n fn unpack(fields: [Field; U16_PACKED_LEN]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Packable<U32_PACKED_LEN> for u32 {\n fn pack(self) -> [Field; U32_PACKED_LEN] {\n [self as Field]\n }\n\n fn unpack(fields: [Field; U32_PACKED_LEN]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Packable<U64_PACKED_LEN> for u64 {\n fn pack(self) -> [Field; U64_PACKED_LEN] {\n [self as Field]\n }\n\n fn unpack(fields: [Field; U64_PACKED_LEN]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Packable<U128_PACKED_LEN> for U128 {\n fn pack(self) -> [Field; U128_PACKED_LEN] {\n [self.to_field()]\n }\n\n fn unpack(fields: [Field; U128_PACKED_LEN]) -> Self {\n U128::from_integer(fields[0])\n }\n}\n\nimpl Packable<FIELD_PACKED_LEN> for Field {\n fn pack(self) -> [Field; FIELD_PACKED_LEN] {\n [self]\n }\n\n fn unpack(fields: [Field; FIELD_PACKED_LEN]) -> Self {\n fields[0]\n }\n}\n\nimpl Packable<I8_PACKED_LEN> for i8 {\n fn pack(self) -> [Field; I8_PACKED_LEN] {\n [self as Field]\n }\n\n fn unpack(fields: [Field; I8_PACKED_LEN]) -> Self {\n fields[0] as i8\n }\n}\n\nimpl Packable<I16_PACKED_LEN> for i16 {\n fn pack(self) -> [Field; I16_PACKED_LEN] {\n [self as Field]\n }\n\n fn unpack(fields: [Field; I16_PACKED_LEN]) -> Self {\n fields[0] as i16\n }\n}\n\nimpl Packable<I32_PACKED_LEN> for i32 {\n fn pack(self) -> [Field; I32_PACKED_LEN] {\n [self as Field]\n }\n\n fn unpack(fields: [Field; I32_PACKED_LEN]) -> Self {\n fields[0] as i32\n }\n}\n\nimpl Packable<I64_PACKED_LEN> for i64 {\n fn pack(self) -> [Field; I64_PACKED_LEN] {\n [self as Field]\n }\n\n fn unpack(fields: [Field; I64_PACKED_LEN]) -> Self {\n fields[0] as i64\n }\n}\n\nimpl<T, let N: u32, let M: u32> Packable<N * M> for [T; N]\nwhere\n T: Packable<M>,\n{\n fn pack(self) -> [Field; N * M] {\n let mut result: [Field; N * M] = std::mem::zeroed();\n let mut serialized: [Field; M] = std::mem::zeroed();\n for i in 0..N {\n serialized = self[i].pack();\n for j in 0..M {\n result[i * M + j] = serialized[j];\n }\n }\n result\n }\n\n fn unpack(fields: [Field; N * M]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; N] = std::mem::zeroed();\n reader.read_struct_array::<T, M, N>(Packable::unpack, result)\n }\n}\n\n#[test]\nfn test_u16_packing() {\n let a: u16 = 10;\n assert_eq(a, u16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i8_packing() {\n let a: i8 = -10;\n assert_eq(a, i8::unpack(a.pack()));\n}\n\n#[test]\nfn test_i16_packing() {\n let a: i16 = -10;\n assert_eq(a, i16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i32_packing() {\n let a: i32 = -10;\n assert_eq(a, i32::unpack(a.pack()));\n}\n\n#[test]\nfn test_i64_packing() {\n let a: i64 = -10;\n assert_eq(a, i64::unpack(a.pack()));\n}\n"
2743
2743
  },
2744
- "314": {
2744
+ "315": {
2745
2745
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr",
2746
2746
  "source": "use crate::traits::{Deserialize, Serialize};\n\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 2;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize<BOOL_SERIALIZED_LEN> for bool {\n fn serialize(self) -> [Field; BOOL_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<BOOL_SERIALIZED_LEN> for bool {\n fn deserialize(fields: [Field; BOOL_SERIALIZED_LEN]) -> bool {\n fields[0] as bool\n }\n}\n\nimpl Serialize<U8_SERIALIZED_LEN> for u8 {\n fn serialize(self) -> [Field; U8_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U8_SERIALIZED_LEN> for u8 {\n fn deserialize(fields: [Field; U8_SERIALIZED_LEN]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Serialize<U16_SERIALIZED_LEN> for u16 {\n fn serialize(self) -> [Field; U16_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U16_SERIALIZED_LEN> for u16 {\n fn deserialize(fields: [Field; U16_SERIALIZED_LEN]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Serialize<U32_SERIALIZED_LEN> for u32 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U32_SERIALIZED_LEN> for u32 {\n fn deserialize(fields: [Field; U32_SERIALIZED_LEN]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Serialize<U64_SERIALIZED_LEN> for u64 {\n fn serialize(self) -> [Field; U64_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U64_SERIALIZED_LEN> for u64 {\n fn deserialize(fields: [Field; U64_SERIALIZED_LEN]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Serialize<U128_SERIALIZED_LEN> for U128 {\n fn serialize(self) -> [Field; U128_SERIALIZED_LEN] {\n // We use little-endian ordering to match the order in which U128 defines its limbs.\n // This is necessary because of how Noir handles serialization:\n // - When calling a contract function from TypeScript, the serialization in encoder.ts gets used and then Noir\n // deserializes using its intrinsic serialization logic (based on the limb order in the struct).\n // - When calling a contract function from another function, the `serialize` method is invoked on the type\n // first.\n // For this reason if we didn't use the ordering of U128 limbs here and in encoder.ts we would get an arguments\n // hash mismatch.\n [self.lo, self.hi]\n }\n}\n\nimpl Deserialize<U128_SERIALIZED_LEN> for U128 {\n fn deserialize(fields: [Field; U128_SERIALIZED_LEN]) -> Self {\n U128::from_u64s_le(fields[0] as u64, fields[1] as u64)\n }\n}\n\nimpl Serialize<FIELD_SERIALIZED_LEN> for Field {\n fn serialize(self) -> [Field; FIELD_SERIALIZED_LEN] {\n [self]\n }\n}\n\nimpl Deserialize<FIELD_SERIALIZED_LEN> for Field {\n fn deserialize(fields: [Field; FIELD_SERIALIZED_LEN]) -> Self {\n fields[0]\n }\n}\n\nimpl Serialize<I8_SERIALIZED_LEN> for i8 {\n fn serialize(self) -> [Field; I8_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I8_SERIALIZED_LEN> for i8 {\n fn deserialize(fields: [Field; I8_SERIALIZED_LEN]) -> Self {\n fields[0] as i8\n }\n}\n\nimpl Serialize<I16_SERIALIZED_LEN> for i16 {\n fn serialize(self) -> [Field; I16_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I16_SERIALIZED_LEN> for i16 {\n fn deserialize(fields: [Field; I16_SERIALIZED_LEN]) -> Self {\n fields[0] as i16\n }\n}\n\nimpl Serialize<I32_SERIALIZED_LEN> for i32 {\n fn serialize(self) -> [Field; I32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I32_SERIALIZED_LEN> for i32 {\n fn deserialize(fields: [Field; I32_SERIALIZED_LEN]) -> Self {\n fields[0] as i32\n }\n}\n\nimpl Serialize<I64_SERIALIZED_LEN> for i64 {\n fn serialize(self) -> [Field; I64_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<I64_SERIALIZED_LEN> for i64 {\n fn deserialize(fields: [Field; I64_SERIALIZED_LEN]) -> Self {\n fields[0] as i64\n }\n}\n\nimpl<T, let N: u32, let M: u32> Serialize<N * M> for [T; N]\nwhere\n T: Serialize<M>,\n{\n fn serialize(self) -> [Field; N * M] {\n let mut result: [Field; N * M] = std::mem::zeroed();\n let mut serialized: [Field; M] = std::mem::zeroed();\n for i in 0..N {\n serialized = self[i].serialize();\n for j in 0..M {\n result[i * M + j] = serialized[j];\n }\n }\n result\n }\n}\n\nimpl<T, let N: u32, let M: u32> Deserialize<N * M> for [T; N]\nwhere\n T: Deserialize<M>,\n{\n fn deserialize(fields: [Field; N * M]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; N] = std::mem::zeroed();\n reader.read_struct_array::<T, M, N>(Deserialize::deserialize, result)\n }\n}\n\n#[test]\nfn test_u16_serialization() {\n let a: u16 = 10;\n assert_eq(a, u16::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i8_serialization() {\n let a: i8 = -10;\n assert_eq(a, i8::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i16_serialization() {\n let a: i16 = -10;\n assert_eq(a, i16::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i32_serialization() {\n let a: i32 = -10;\n assert_eq(a, i32::deserialize(a.serialize()));\n}\n\n#[test]\nfn test_i64_serialization() {\n let a: i64 = -10;\n assert_eq(a, i64::deserialize(a.serialize()));\n}\n"
2747
2747
  },
2748
- "330": {
2748
+ "331": {
2749
2749
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays.nr",
2750
2750
  "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"
2751
2751
  },
2752
- "333": {
2752
+ "334": {
2753
2753
  "path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr",
2754
2754
  "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"
2755
2755
  },