@iexec-nox/nox-protocol-contracts 0.2.1 → 0.2.3

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.
@@ -0,0 +1,1059 @@
1
+ {
2
+ "_format": "hh3-artifact-1",
3
+ "contractName": "HandleUtils",
4
+ "sourceName": "contracts/utils/HandleUtils.sol",
5
+ "abi": [],
6
+ "bytecode": "0x602c604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea164736f6c6343000823000a",
7
+ "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea164736f6c6343000823000a",
8
+ "linkReferences": {},
9
+ "deployedLinkReferences": {},
10
+ "immutableReferences": {},
11
+ "inputSourceName": "project/contracts/utils/HandleUtils.sol",
12
+ "buildInfoId": "solc-0_8_35-78aaf8749566814c0b5c1b21ccc24b7f1017e498",
13
+ "ast": {
14
+ "absolutePath": "project/contracts/utils/HandleUtils.sol",
15
+ "exportedSymbols": {
16
+ "HandleUtils": [
17
+ 20320
18
+ ],
19
+ "TEEType": [
20
+ 20424
21
+ ]
22
+ },
23
+ "id": 20321,
24
+ "license": "MIT",
25
+ "nodeType": "SourceUnit",
26
+ "nodes": [
27
+ {
28
+ "id": 20250,
29
+ "literals": [
30
+ "solidity",
31
+ "^",
32
+ "0.8",
33
+ ".35"
34
+ ],
35
+ "nodeType": "PragmaDirective",
36
+ "src": "32:24:46"
37
+ },
38
+ {
39
+ "absolutePath": "project/contracts/utils/TypeUtils.sol",
40
+ "file": "./TypeUtils.sol",
41
+ "id": 20252,
42
+ "nameLocation": "-1:-1:-1",
43
+ "nodeType": "ImportDirective",
44
+ "scope": 20321,
45
+ "sourceUnit": 20632,
46
+ "src": "58:40:46",
47
+ "symbolAliases": [
48
+ {
49
+ "foreign": {
50
+ "id": 20251,
51
+ "name": "TEEType",
52
+ "nodeType": "Identifier",
53
+ "overloadedDeclarations": [],
54
+ "referencedDeclaration": 20424,
55
+ "src": "66:7:46",
56
+ "typeDescriptions": {}
57
+ },
58
+ "nameLocation": "-1:-1:-1"
59
+ }
60
+ ],
61
+ "unitAlias": ""
62
+ },
63
+ {
64
+ "abstract": false,
65
+ "baseContracts": [],
66
+ "canonicalName": "HandleUtils",
67
+ "contractDependencies": [],
68
+ "contractKind": "library",
69
+ "fullyImplemented": true,
70
+ "id": 20320,
71
+ "linearizedBaseContracts": [
72
+ 20320
73
+ ],
74
+ "name": "HandleUtils",
75
+ "nameLocation": "108:11:46",
76
+ "nodeType": "ContractDefinition",
77
+ "nodes": [
78
+ {
79
+ "constant": true,
80
+ "documentation": {
81
+ "id": 20253,
82
+ "nodeType": "StructuredDocumentation",
83
+ "src": "126:85:46",
84
+ "text": "@dev Bit 0 of the attrs byte. When set, the handle is guaranteed unique on-chain."
85
+ },
86
+ "id": 20256,
87
+ "mutability": "constant",
88
+ "name": "ATTR_IS_UNIQUE_HANDLE",
89
+ "nameLocation": "290:21:46",
90
+ "nodeType": "VariableDeclaration",
91
+ "scope": 20320,
92
+ "src": "265:53:46",
93
+ "stateVariable": true,
94
+ "storageLocation": "default",
95
+ "typeDescriptions": {
96
+ "typeIdentifier": "t_bytes1",
97
+ "typeString": "bytes1"
98
+ },
99
+ "typeName": {
100
+ "id": 20254,
101
+ "name": "bytes1",
102
+ "nodeType": "ElementaryTypeName",
103
+ "src": "265:6:46",
104
+ "typeDescriptions": {
105
+ "typeIdentifier": "t_bytes1",
106
+ "typeString": "bytes1"
107
+ }
108
+ },
109
+ "value": {
110
+ "hexValue": "30783031",
111
+ "id": 20255,
112
+ "isConstant": false,
113
+ "isLValue": false,
114
+ "isPure": true,
115
+ "kind": "number",
116
+ "lValueRequested": false,
117
+ "nodeType": "Literal",
118
+ "src": "314:4:46",
119
+ "typeDescriptions": {
120
+ "typeIdentifier": "t_rational_1_by_1",
121
+ "typeString": "int_const 1"
122
+ },
123
+ "value": "0x01"
124
+ },
125
+ "visibility": "internal"
126
+ },
127
+ {
128
+ "body": {
129
+ "id": 20273,
130
+ "nodeType": "Block",
131
+ "src": "1417:64:46",
132
+ "statements": [
133
+ {
134
+ "expression": {
135
+ "commonType": {
136
+ "typeIdentifier": "t_bytes1",
137
+ "typeString": "bytes1"
138
+ },
139
+ "id": 20271,
140
+ "isConstant": false,
141
+ "isLValue": false,
142
+ "isPure": false,
143
+ "lValueRequested": false,
144
+ "leftExpression": {
145
+ "components": [
146
+ {
147
+ "commonType": {
148
+ "typeIdentifier": "t_bytes1",
149
+ "typeString": "bytes1"
150
+ },
151
+ "id": 20268,
152
+ "isConstant": false,
153
+ "isLValue": false,
154
+ "isPure": false,
155
+ "lValueRequested": false,
156
+ "leftExpression": {
157
+ "baseExpression": {
158
+ "id": 20264,
159
+ "name": "handle",
160
+ "nodeType": "Identifier",
161
+ "overloadedDeclarations": [],
162
+ "referencedDeclaration": 20259,
163
+ "src": "1435:6:46",
164
+ "typeDescriptions": {
165
+ "typeIdentifier": "t_bytes32",
166
+ "typeString": "bytes32"
167
+ }
168
+ },
169
+ "id": 20266,
170
+ "indexExpression": {
171
+ "hexValue": "36",
172
+ "id": 20265,
173
+ "isConstant": false,
174
+ "isLValue": false,
175
+ "isPure": true,
176
+ "kind": "number",
177
+ "lValueRequested": false,
178
+ "nodeType": "Literal",
179
+ "src": "1442:1:46",
180
+ "typeDescriptions": {
181
+ "typeIdentifier": "t_rational_6_by_1",
182
+ "typeString": "int_const 6"
183
+ },
184
+ "value": "6"
185
+ },
186
+ "isConstant": false,
187
+ "isLValue": false,
188
+ "isPure": false,
189
+ "lValueRequested": false,
190
+ "nodeType": "IndexAccess",
191
+ "src": "1435:9:46",
192
+ "typeDescriptions": {
193
+ "typeIdentifier": "t_bytes1",
194
+ "typeString": "bytes1"
195
+ }
196
+ },
197
+ "nodeType": "BinaryOperation",
198
+ "operator": "&",
199
+ "rightExpression": {
200
+ "id": 20267,
201
+ "name": "ATTR_IS_UNIQUE_HANDLE",
202
+ "nodeType": "Identifier",
203
+ "overloadedDeclarations": [],
204
+ "referencedDeclaration": 20256,
205
+ "src": "1447:21:46",
206
+ "typeDescriptions": {
207
+ "typeIdentifier": "t_bytes1",
208
+ "typeString": "bytes1"
209
+ }
210
+ },
211
+ "src": "1435:33:46",
212
+ "typeDescriptions": {
213
+ "typeIdentifier": "t_bytes1",
214
+ "typeString": "bytes1"
215
+ }
216
+ }
217
+ ],
218
+ "id": 20269,
219
+ "isConstant": false,
220
+ "isInlineArray": false,
221
+ "isLValue": false,
222
+ "isPure": false,
223
+ "lValueRequested": false,
224
+ "nodeType": "TupleExpression",
225
+ "src": "1434:35:46",
226
+ "typeDescriptions": {
227
+ "typeIdentifier": "t_bytes1",
228
+ "typeString": "bytes1"
229
+ }
230
+ },
231
+ "nodeType": "BinaryOperation",
232
+ "operator": "==",
233
+ "rightExpression": {
234
+ "hexValue": "30",
235
+ "id": 20270,
236
+ "isConstant": false,
237
+ "isLValue": false,
238
+ "isPure": true,
239
+ "kind": "number",
240
+ "lValueRequested": false,
241
+ "nodeType": "Literal",
242
+ "src": "1473:1:46",
243
+ "typeDescriptions": {
244
+ "typeIdentifier": "t_rational_0_by_1",
245
+ "typeString": "int_const 0"
246
+ },
247
+ "value": "0"
248
+ },
249
+ "src": "1434:40:46",
250
+ "typeDescriptions": {
251
+ "typeIdentifier": "t_bool",
252
+ "typeString": "bool"
253
+ }
254
+ },
255
+ "functionReturnParameters": 20263,
256
+ "id": 20272,
257
+ "nodeType": "Return",
258
+ "src": "1427:47:46"
259
+ }
260
+ ]
261
+ },
262
+ "documentation": {
263
+ "id": 20257,
264
+ "nodeType": "StructuredDocumentation",
265
+ "src": "325:1018:46",
266
+ "text": " @notice Checks if a handle is a public handle (isUniqueHandle bit == 0).\n A public handle wraps a plaintext value known on-chain, has no ACL,\n and is accessible by everyone.\n @dev **Security invariant — public handles bypass all ACL checks.**\n Every access-control gate in the system short-circuits on this predicate:\n - `_isAllowed` → always returns true for public handles\n - `_allowTransient` → silently skips (no tstore needed)\n - `allow`, `addViewer`... → ACL mutations are blocked to prevent confusion\n - `isViewer` → always returns true for public handles\n - `isPubliclyDecryptable` → always returns true for public handles\n This is intentional: public handles contain no secret, their plaintext\n is deterministically derivable from the handle itself.\n @param handle The handle to check\n @return True if the handle is a public handle"
267
+ },
268
+ "id": 20274,
269
+ "implemented": true,
270
+ "kind": "function",
271
+ "modifiers": [],
272
+ "name": "isPublicHandle",
273
+ "nameLocation": "1357:14:46",
274
+ "nodeType": "FunctionDefinition",
275
+ "parameters": {
276
+ "id": 20260,
277
+ "nodeType": "ParameterList",
278
+ "parameters": [
279
+ {
280
+ "constant": false,
281
+ "id": 20259,
282
+ "mutability": "mutable",
283
+ "name": "handle",
284
+ "nameLocation": "1380:6:46",
285
+ "nodeType": "VariableDeclaration",
286
+ "scope": 20274,
287
+ "src": "1372:14:46",
288
+ "stateVariable": false,
289
+ "storageLocation": "default",
290
+ "typeDescriptions": {
291
+ "typeIdentifier": "t_bytes32",
292
+ "typeString": "bytes32"
293
+ },
294
+ "typeName": {
295
+ "id": 20258,
296
+ "name": "bytes32",
297
+ "nodeType": "ElementaryTypeName",
298
+ "src": "1372:7:46",
299
+ "typeDescriptions": {
300
+ "typeIdentifier": "t_bytes32",
301
+ "typeString": "bytes32"
302
+ }
303
+ },
304
+ "visibility": "internal"
305
+ }
306
+ ],
307
+ "src": "1371:16:46"
308
+ },
309
+ "returnParameters": {
310
+ "id": 20263,
311
+ "nodeType": "ParameterList",
312
+ "parameters": [
313
+ {
314
+ "constant": false,
315
+ "id": 20262,
316
+ "mutability": "mutable",
317
+ "name": "",
318
+ "nameLocation": "-1:-1:-1",
319
+ "nodeType": "VariableDeclaration",
320
+ "scope": 20274,
321
+ "src": "1411:4:46",
322
+ "stateVariable": false,
323
+ "storageLocation": "default",
324
+ "typeDescriptions": {
325
+ "typeIdentifier": "t_bool",
326
+ "typeString": "bool"
327
+ },
328
+ "typeName": {
329
+ "id": 20261,
330
+ "name": "bool",
331
+ "nodeType": "ElementaryTypeName",
332
+ "src": "1411:4:46",
333
+ "typeDescriptions": {
334
+ "typeIdentifier": "t_bool",
335
+ "typeString": "bool"
336
+ }
337
+ },
338
+ "visibility": "internal"
339
+ }
340
+ ],
341
+ "src": "1410:6:46"
342
+ },
343
+ "scope": 20320,
344
+ "src": "1348:133:46",
345
+ "stateMutability": "pure",
346
+ "virtual": false,
347
+ "visibility": "internal"
348
+ },
349
+ {
350
+ "body": {
351
+ "id": 20318,
352
+ "nodeType": "Block",
353
+ "src": "2000:192:46",
354
+ "statements": [
355
+ {
356
+ "expression": {
357
+ "commonType": {
358
+ "typeIdentifier": "t_bytes32",
359
+ "typeString": "bytes32"
360
+ },
361
+ "id": 20316,
362
+ "isConstant": false,
363
+ "isLValue": false,
364
+ "isPure": false,
365
+ "lValueRequested": false,
366
+ "leftExpression": {
367
+ "components": [
368
+ {
369
+ "commonType": {
370
+ "typeIdentifier": "t_bytes32",
371
+ "typeString": "bytes32"
372
+ },
373
+ "id": 20298,
374
+ "isConstant": false,
375
+ "isLValue": false,
376
+ "isPure": false,
377
+ "lValueRequested": false,
378
+ "leftExpression": {
379
+ "arguments": [
380
+ {
381
+ "arguments": [
382
+ {
383
+ "arguments": [
384
+ {
385
+ "expression": {
386
+ "id": 20289,
387
+ "name": "block",
388
+ "nodeType": "Identifier",
389
+ "overloadedDeclarations": [],
390
+ "referencedDeclaration": -4,
391
+ "src": "2098:5:46",
392
+ "typeDescriptions": {
393
+ "typeIdentifier": "t_magic_block",
394
+ "typeString": "block"
395
+ }
396
+ },
397
+ "id": 20290,
398
+ "isConstant": false,
399
+ "isLValue": false,
400
+ "isPure": false,
401
+ "lValueRequested": false,
402
+ "memberLocation": "2104:7:46",
403
+ "memberName": "chainid",
404
+ "nodeType": "MemberAccess",
405
+ "src": "2098:13:46",
406
+ "typeDescriptions": {
407
+ "typeIdentifier": "t_uint256",
408
+ "typeString": "uint256"
409
+ }
410
+ }
411
+ ],
412
+ "expression": {
413
+ "argumentTypes": [
414
+ {
415
+ "typeIdentifier": "t_uint256",
416
+ "typeString": "uint256"
417
+ }
418
+ ],
419
+ "id": 20288,
420
+ "isConstant": false,
421
+ "isLValue": false,
422
+ "isPure": true,
423
+ "lValueRequested": false,
424
+ "nodeType": "ElementaryTypeNameExpression",
425
+ "src": "2091:6:46",
426
+ "typeDescriptions": {
427
+ "typeIdentifier": "t_type$_t_uint32_$",
428
+ "typeString": "type(uint32)"
429
+ },
430
+ "typeName": {
431
+ "id": 20287,
432
+ "name": "uint32",
433
+ "nodeType": "ElementaryTypeName",
434
+ "src": "2091:6:46",
435
+ "typeDescriptions": {}
436
+ }
437
+ },
438
+ "id": 20291,
439
+ "isConstant": false,
440
+ "isLValue": false,
441
+ "isPure": false,
442
+ "kind": "typeConversion",
443
+ "lValueRequested": false,
444
+ "nameLocations": [],
445
+ "names": [],
446
+ "nodeType": "FunctionCall",
447
+ "src": "2091:21:46",
448
+ "tryCall": false,
449
+ "typeDescriptions": {
450
+ "typeIdentifier": "t_uint32",
451
+ "typeString": "uint32"
452
+ }
453
+ }
454
+ ],
455
+ "expression": {
456
+ "argumentTypes": [
457
+ {
458
+ "typeIdentifier": "t_uint32",
459
+ "typeString": "uint32"
460
+ }
461
+ ],
462
+ "id": 20286,
463
+ "isConstant": false,
464
+ "isLValue": false,
465
+ "isPure": true,
466
+ "lValueRequested": false,
467
+ "nodeType": "ElementaryTypeNameExpression",
468
+ "src": "2084:6:46",
469
+ "typeDescriptions": {
470
+ "typeIdentifier": "t_type$_t_bytes4_$",
471
+ "typeString": "type(bytes4)"
472
+ },
473
+ "typeName": {
474
+ "id": 20285,
475
+ "name": "bytes4",
476
+ "nodeType": "ElementaryTypeName",
477
+ "src": "2084:6:46",
478
+ "typeDescriptions": {}
479
+ }
480
+ },
481
+ "id": 20292,
482
+ "isConstant": false,
483
+ "isLValue": false,
484
+ "isPure": false,
485
+ "kind": "typeConversion",
486
+ "lValueRequested": false,
487
+ "nameLocations": [],
488
+ "names": [],
489
+ "nodeType": "FunctionCall",
490
+ "src": "2084:29:46",
491
+ "tryCall": false,
492
+ "typeDescriptions": {
493
+ "typeIdentifier": "t_bytes4",
494
+ "typeString": "bytes4"
495
+ }
496
+ }
497
+ ],
498
+ "expression": {
499
+ "argumentTypes": [
500
+ {
501
+ "typeIdentifier": "t_bytes4",
502
+ "typeString": "bytes4"
503
+ }
504
+ ],
505
+ "id": 20284,
506
+ "isConstant": false,
507
+ "isLValue": false,
508
+ "isPure": true,
509
+ "lValueRequested": false,
510
+ "nodeType": "ElementaryTypeNameExpression",
511
+ "src": "2076:7:46",
512
+ "typeDescriptions": {
513
+ "typeIdentifier": "t_type$_t_bytes32_$",
514
+ "typeString": "type(bytes32)"
515
+ },
516
+ "typeName": {
517
+ "id": 20283,
518
+ "name": "bytes32",
519
+ "nodeType": "ElementaryTypeName",
520
+ "src": "2076:7:46",
521
+ "typeDescriptions": {}
522
+ }
523
+ },
524
+ "id": 20293,
525
+ "isConstant": false,
526
+ "isLValue": false,
527
+ "isPure": false,
528
+ "kind": "typeConversion",
529
+ "lValueRequested": false,
530
+ "nameLocations": [],
531
+ "names": [],
532
+ "nodeType": "FunctionCall",
533
+ "src": "2076:38:46",
534
+ "tryCall": false,
535
+ "typeDescriptions": {
536
+ "typeIdentifier": "t_bytes32",
537
+ "typeString": "bytes32"
538
+ }
539
+ },
540
+ "nodeType": "BinaryOperation",
541
+ "operator": ">>",
542
+ "rightExpression": {
543
+ "components": [
544
+ {
545
+ "commonType": {
546
+ "typeIdentifier": "t_rational_8_by_1",
547
+ "typeString": "int_const 8"
548
+ },
549
+ "id": 20296,
550
+ "isConstant": false,
551
+ "isLValue": false,
552
+ "isPure": true,
553
+ "lValueRequested": false,
554
+ "leftExpression": {
555
+ "hexValue": "31",
556
+ "id": 20294,
557
+ "isConstant": false,
558
+ "isLValue": false,
559
+ "isPure": true,
560
+ "kind": "number",
561
+ "lValueRequested": false,
562
+ "nodeType": "Literal",
563
+ "src": "2119:1:46",
564
+ "typeDescriptions": {
565
+ "typeIdentifier": "t_rational_1_by_1",
566
+ "typeString": "int_const 1"
567
+ },
568
+ "value": "1"
569
+ },
570
+ "nodeType": "BinaryOperation",
571
+ "operator": "*",
572
+ "rightExpression": {
573
+ "hexValue": "38",
574
+ "id": 20295,
575
+ "isConstant": false,
576
+ "isLValue": false,
577
+ "isPure": true,
578
+ "kind": "number",
579
+ "lValueRequested": false,
580
+ "nodeType": "Literal",
581
+ "src": "2123:1:46",
582
+ "typeDescriptions": {
583
+ "typeIdentifier": "t_rational_8_by_1",
584
+ "typeString": "int_const 8"
585
+ },
586
+ "value": "8"
587
+ },
588
+ "src": "2119:5:46",
589
+ "typeDescriptions": {
590
+ "typeIdentifier": "t_rational_8_by_1",
591
+ "typeString": "int_const 8"
592
+ }
593
+ }
594
+ ],
595
+ "id": 20297,
596
+ "isConstant": false,
597
+ "isInlineArray": false,
598
+ "isLValue": false,
599
+ "isPure": true,
600
+ "lValueRequested": false,
601
+ "nodeType": "TupleExpression",
602
+ "src": "2118:7:46",
603
+ "typeDescriptions": {
604
+ "typeIdentifier": "t_rational_8_by_1",
605
+ "typeString": "int_const 8"
606
+ }
607
+ },
608
+ "src": "2076:49:46",
609
+ "typeDescriptions": {
610
+ "typeIdentifier": "t_bytes32",
611
+ "typeString": "bytes32"
612
+ }
613
+ }
614
+ ],
615
+ "id": 20299,
616
+ "isConstant": false,
617
+ "isInlineArray": false,
618
+ "isLValue": false,
619
+ "isPure": false,
620
+ "lValueRequested": false,
621
+ "nodeType": "TupleExpression",
622
+ "src": "2075:51:46",
623
+ "typeDescriptions": {
624
+ "typeIdentifier": "t_bytes32",
625
+ "typeString": "bytes32"
626
+ }
627
+ },
628
+ "nodeType": "BinaryOperation",
629
+ "operator": "|",
630
+ "rightExpression": {
631
+ "components": [
632
+ {
633
+ "commonType": {
634
+ "typeIdentifier": "t_bytes32",
635
+ "typeString": "bytes32"
636
+ },
637
+ "id": 20314,
638
+ "isConstant": false,
639
+ "isLValue": false,
640
+ "isPure": false,
641
+ "lValueRequested": false,
642
+ "leftExpression": {
643
+ "arguments": [
644
+ {
645
+ "arguments": [
646
+ {
647
+ "arguments": [
648
+ {
649
+ "id": 20306,
650
+ "name": "teeType",
651
+ "nodeType": "Identifier",
652
+ "overloadedDeclarations": [],
653
+ "referencedDeclaration": 20278,
654
+ "src": "2163:7:46",
655
+ "typeDescriptions": {
656
+ "typeIdentifier": "t_enum$_TEEType_$20424",
657
+ "typeString": "enum TEEType"
658
+ }
659
+ }
660
+ ],
661
+ "expression": {
662
+ "argumentTypes": [
663
+ {
664
+ "typeIdentifier": "t_enum$_TEEType_$20424",
665
+ "typeString": "enum TEEType"
666
+ }
667
+ ],
668
+ "id": 20305,
669
+ "isConstant": false,
670
+ "isLValue": false,
671
+ "isPure": true,
672
+ "lValueRequested": false,
673
+ "nodeType": "ElementaryTypeNameExpression",
674
+ "src": "2157:5:46",
675
+ "typeDescriptions": {
676
+ "typeIdentifier": "t_type$_t_uint8_$",
677
+ "typeString": "type(uint8)"
678
+ },
679
+ "typeName": {
680
+ "id": 20304,
681
+ "name": "uint8",
682
+ "nodeType": "ElementaryTypeName",
683
+ "src": "2157:5:46",
684
+ "typeDescriptions": {}
685
+ }
686
+ },
687
+ "id": 20307,
688
+ "isConstant": false,
689
+ "isLValue": false,
690
+ "isPure": false,
691
+ "kind": "typeConversion",
692
+ "lValueRequested": false,
693
+ "nameLocations": [],
694
+ "names": [],
695
+ "nodeType": "FunctionCall",
696
+ "src": "2157:14:46",
697
+ "tryCall": false,
698
+ "typeDescriptions": {
699
+ "typeIdentifier": "t_uint8",
700
+ "typeString": "uint8"
701
+ }
702
+ }
703
+ ],
704
+ "expression": {
705
+ "argumentTypes": [
706
+ {
707
+ "typeIdentifier": "t_uint8",
708
+ "typeString": "uint8"
709
+ }
710
+ ],
711
+ "id": 20303,
712
+ "isConstant": false,
713
+ "isLValue": false,
714
+ "isPure": true,
715
+ "lValueRequested": false,
716
+ "nodeType": "ElementaryTypeNameExpression",
717
+ "src": "2150:6:46",
718
+ "typeDescriptions": {
719
+ "typeIdentifier": "t_type$_t_bytes1_$",
720
+ "typeString": "type(bytes1)"
721
+ },
722
+ "typeName": {
723
+ "id": 20302,
724
+ "name": "bytes1",
725
+ "nodeType": "ElementaryTypeName",
726
+ "src": "2150:6:46",
727
+ "typeDescriptions": {}
728
+ }
729
+ },
730
+ "id": 20308,
731
+ "isConstant": false,
732
+ "isLValue": false,
733
+ "isPure": false,
734
+ "kind": "typeConversion",
735
+ "lValueRequested": false,
736
+ "nameLocations": [],
737
+ "names": [],
738
+ "nodeType": "FunctionCall",
739
+ "src": "2150:22:46",
740
+ "tryCall": false,
741
+ "typeDescriptions": {
742
+ "typeIdentifier": "t_bytes1",
743
+ "typeString": "bytes1"
744
+ }
745
+ }
746
+ ],
747
+ "expression": {
748
+ "argumentTypes": [
749
+ {
750
+ "typeIdentifier": "t_bytes1",
751
+ "typeString": "bytes1"
752
+ }
753
+ ],
754
+ "id": 20301,
755
+ "isConstant": false,
756
+ "isLValue": false,
757
+ "isPure": true,
758
+ "lValueRequested": false,
759
+ "nodeType": "ElementaryTypeNameExpression",
760
+ "src": "2142:7:46",
761
+ "typeDescriptions": {
762
+ "typeIdentifier": "t_type$_t_bytes32_$",
763
+ "typeString": "type(bytes32)"
764
+ },
765
+ "typeName": {
766
+ "id": 20300,
767
+ "name": "bytes32",
768
+ "nodeType": "ElementaryTypeName",
769
+ "src": "2142:7:46",
770
+ "typeDescriptions": {}
771
+ }
772
+ },
773
+ "id": 20309,
774
+ "isConstant": false,
775
+ "isLValue": false,
776
+ "isPure": false,
777
+ "kind": "typeConversion",
778
+ "lValueRequested": false,
779
+ "nameLocations": [],
780
+ "names": [],
781
+ "nodeType": "FunctionCall",
782
+ "src": "2142:31:46",
783
+ "tryCall": false,
784
+ "typeDescriptions": {
785
+ "typeIdentifier": "t_bytes32",
786
+ "typeString": "bytes32"
787
+ }
788
+ },
789
+ "nodeType": "BinaryOperation",
790
+ "operator": ">>",
791
+ "rightExpression": {
792
+ "components": [
793
+ {
794
+ "commonType": {
795
+ "typeIdentifier": "t_rational_40_by_1",
796
+ "typeString": "int_const 40"
797
+ },
798
+ "id": 20312,
799
+ "isConstant": false,
800
+ "isLValue": false,
801
+ "isPure": true,
802
+ "lValueRequested": false,
803
+ "leftExpression": {
804
+ "hexValue": "35",
805
+ "id": 20310,
806
+ "isConstant": false,
807
+ "isLValue": false,
808
+ "isPure": true,
809
+ "kind": "number",
810
+ "lValueRequested": false,
811
+ "nodeType": "Literal",
812
+ "src": "2178:1:46",
813
+ "typeDescriptions": {
814
+ "typeIdentifier": "t_rational_5_by_1",
815
+ "typeString": "int_const 5"
816
+ },
817
+ "value": "5"
818
+ },
819
+ "nodeType": "BinaryOperation",
820
+ "operator": "*",
821
+ "rightExpression": {
822
+ "hexValue": "38",
823
+ "id": 20311,
824
+ "isConstant": false,
825
+ "isLValue": false,
826
+ "isPure": true,
827
+ "kind": "number",
828
+ "lValueRequested": false,
829
+ "nodeType": "Literal",
830
+ "src": "2182:1:46",
831
+ "typeDescriptions": {
832
+ "typeIdentifier": "t_rational_8_by_1",
833
+ "typeString": "int_const 8"
834
+ },
835
+ "value": "8"
836
+ },
837
+ "src": "2178:5:46",
838
+ "typeDescriptions": {
839
+ "typeIdentifier": "t_rational_40_by_1",
840
+ "typeString": "int_const 40"
841
+ }
842
+ }
843
+ ],
844
+ "id": 20313,
845
+ "isConstant": false,
846
+ "isInlineArray": false,
847
+ "isLValue": false,
848
+ "isPure": true,
849
+ "lValueRequested": false,
850
+ "nodeType": "TupleExpression",
851
+ "src": "2177:7:46",
852
+ "typeDescriptions": {
853
+ "typeIdentifier": "t_rational_40_by_1",
854
+ "typeString": "int_const 40"
855
+ }
856
+ },
857
+ "src": "2142:42:46",
858
+ "typeDescriptions": {
859
+ "typeIdentifier": "t_bytes32",
860
+ "typeString": "bytes32"
861
+ }
862
+ }
863
+ ],
864
+ "id": 20315,
865
+ "isConstant": false,
866
+ "isInlineArray": false,
867
+ "isLValue": false,
868
+ "isPure": false,
869
+ "lValueRequested": false,
870
+ "nodeType": "TupleExpression",
871
+ "src": "2141:44:46",
872
+ "typeDescriptions": {
873
+ "typeIdentifier": "t_bytes32",
874
+ "typeString": "bytes32"
875
+ }
876
+ },
877
+ "src": "2075:110:46",
878
+ "typeDescriptions": {
879
+ "typeIdentifier": "t_bytes32",
880
+ "typeString": "bytes32"
881
+ }
882
+ },
883
+ "functionReturnParameters": 20282,
884
+ "id": 20317,
885
+ "nodeType": "Return",
886
+ "src": "2010:175:46"
887
+ }
888
+ ]
889
+ },
890
+ "documentation": {
891
+ "id": 20275,
892
+ "nodeType": "StructuredDocumentation",
893
+ "src": "1487:439:46",
894
+ "text": " @notice Returns the zero handle for the given TEE type on the current chain.\n The zero handle represents the default zero value for a given type and is a public handle.\n It follows the standard handle format but with a zeroed pre-handle:\n [0]=version(0x00) [1-4]=chainId [5]=teeType [6]=attrs(0x00) [7-31]=0x00..00\n @param teeType The TEE type to encode\n @return The typed null handle"
895
+ },
896
+ "id": 20319,
897
+ "implemented": true,
898
+ "kind": "function",
899
+ "modifiers": [],
900
+ "name": "zeroHandle",
901
+ "nameLocation": "1940:10:46",
902
+ "nodeType": "FunctionDefinition",
903
+ "parameters": {
904
+ "id": 20279,
905
+ "nodeType": "ParameterList",
906
+ "parameters": [
907
+ {
908
+ "constant": false,
909
+ "id": 20278,
910
+ "mutability": "mutable",
911
+ "name": "teeType",
912
+ "nameLocation": "1959:7:46",
913
+ "nodeType": "VariableDeclaration",
914
+ "scope": 20319,
915
+ "src": "1951:15:46",
916
+ "stateVariable": false,
917
+ "storageLocation": "default",
918
+ "typeDescriptions": {
919
+ "typeIdentifier": "t_enum$_TEEType_$20424",
920
+ "typeString": "enum TEEType"
921
+ },
922
+ "typeName": {
923
+ "id": 20277,
924
+ "nodeType": "UserDefinedTypeName",
925
+ "pathNode": {
926
+ "id": 20276,
927
+ "name": "TEEType",
928
+ "nameLocations": [
929
+ "1951:7:46"
930
+ ],
931
+ "nodeType": "IdentifierPath",
932
+ "referencedDeclaration": 20424,
933
+ "src": "1951:7:46"
934
+ },
935
+ "referencedDeclaration": 20424,
936
+ "src": "1951:7:46",
937
+ "typeDescriptions": {
938
+ "typeIdentifier": "t_enum$_TEEType_$20424",
939
+ "typeString": "enum TEEType"
940
+ }
941
+ },
942
+ "visibility": "internal"
943
+ }
944
+ ],
945
+ "src": "1950:17:46"
946
+ },
947
+ "returnParameters": {
948
+ "id": 20282,
949
+ "nodeType": "ParameterList",
950
+ "parameters": [
951
+ {
952
+ "constant": false,
953
+ "id": 20281,
954
+ "mutability": "mutable",
955
+ "name": "",
956
+ "nameLocation": "-1:-1:-1",
957
+ "nodeType": "VariableDeclaration",
958
+ "scope": 20319,
959
+ "src": "1991:7:46",
960
+ "stateVariable": false,
961
+ "storageLocation": "default",
962
+ "typeDescriptions": {
963
+ "typeIdentifier": "t_bytes32",
964
+ "typeString": "bytes32"
965
+ },
966
+ "typeName": {
967
+ "id": 20280,
968
+ "name": "bytes32",
969
+ "nodeType": "ElementaryTypeName",
970
+ "src": "1991:7:46",
971
+ "typeDescriptions": {
972
+ "typeIdentifier": "t_bytes32",
973
+ "typeString": "bytes32"
974
+ }
975
+ },
976
+ "visibility": "internal"
977
+ }
978
+ ],
979
+ "src": "1990:9:46"
980
+ },
981
+ "scope": 20320,
982
+ "src": "1931:261:46",
983
+ "stateMutability": "view",
984
+ "virtual": false,
985
+ "visibility": "internal"
986
+ }
987
+ ],
988
+ "scope": 20321,
989
+ "src": "100:2094:46",
990
+ "usedErrors": [],
991
+ "usedEvents": []
992
+ }
993
+ ],
994
+ "src": "32:2163:46"
995
+ },
996
+ "metadata": {
997
+ "compiler": {
998
+ "version": "0.8.35+commit.47b9dedd"
999
+ },
1000
+ "language": "Solidity",
1001
+ "output": {
1002
+ "abi": [],
1003
+ "devdoc": {
1004
+ "kind": "dev",
1005
+ "methods": {},
1006
+ "stateVariables": {
1007
+ "ATTR_IS_UNIQUE_HANDLE": {
1008
+ "details": "Bit 0 of the attrs byte. When set, the handle is guaranteed unique on-chain."
1009
+ }
1010
+ },
1011
+ "version": 1
1012
+ },
1013
+ "userdoc": {
1014
+ "kind": "user",
1015
+ "methods": {},
1016
+ "version": 1
1017
+ }
1018
+ },
1019
+ "settings": {
1020
+ "compilationTarget": {
1021
+ "project/contracts/utils/HandleUtils.sol": "HandleUtils"
1022
+ },
1023
+ "evmVersion": "osaka",
1024
+ "libraries": {},
1025
+ "metadata": {
1026
+ "bytecodeHash": "none"
1027
+ },
1028
+ "optimizer": {
1029
+ "enabled": false,
1030
+ "runs": 200
1031
+ },
1032
+ "remappings": [
1033
+ "npm/@openzeppelin/contracts-upgradeable@5.6.1/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.6.1/",
1034
+ "project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.6.1/",
1035
+ "project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.6.1/",
1036
+ "project/:encrypted-types/=npm/encrypted-types@0.0.4/"
1037
+ ]
1038
+ },
1039
+ "sources": {
1040
+ "project/contracts/utils/HandleUtils.sol": {
1041
+ "keccak256": "0x0fdcbdd28431497dd68a481e2b12e0d278ac2d06aed643fcc2da9c729aebfdb9",
1042
+ "license": "MIT",
1043
+ "urls": [
1044
+ "bzz-raw://12a8ebd10bf17269f90834c742cc1648b7a46560267653f3f62d90c02d8709e9",
1045
+ "dweb:/ipfs/QmcGmTmdn418WNoqQWppQrVbwJ5Lt67Zb4QRYKu3iH7XS5"
1046
+ ]
1047
+ },
1048
+ "project/contracts/utils/TypeUtils.sol": {
1049
+ "keccak256": "0x44ef3780f8ec4060cf4ecc186cf6fd5948ecdd19ce9a4cb8fd86fad49b844a6f",
1050
+ "license": "MIT",
1051
+ "urls": [
1052
+ "bzz-raw://374c6a552502a8bba83987d8885f7a45685973afb58d429527a3faa69ba20982",
1053
+ "dweb:/ipfs/QmRLraaT8Dq3aJth8ZrXYVZR4TqisZg3hx1gUgJxofSpyL"
1054
+ ]
1055
+ }
1056
+ },
1057
+ "version": 1
1058
+ }
1059
+ }