secure-transac-contracts 1.0.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.
Files changed (63) hide show
  1. package/build/contracts/AccessControl.json +4579 -0
  2. package/build/contracts/Context.json +356 -0
  3. package/build/contracts/CreditSystem.json +6037 -0
  4. package/build/contracts/ECDSA.json +4734 -0
  5. package/build/contracts/EIP712.json +3021 -0
  6. package/build/contracts/ERC165.json +352 -0
  7. package/build/contracts/ERC20.json +6816 -0
  8. package/build/contracts/ERC20Permit.json +2658 -0
  9. package/build/contracts/ERC721.json +12779 -0
  10. package/build/contracts/ERC721Utils.json +1058 -0
  11. package/build/contracts/Groth16Verifier.json +6298 -0
  12. package/build/contracts/Guardian.json +1116 -0
  13. package/build/contracts/IERC1155Errors.json +1687 -0
  14. package/build/contracts/IERC165.json +197 -0
  15. package/build/contracts/IERC20.json +1162 -0
  16. package/build/contracts/IERC20Errors.json +1662 -0
  17. package/build/contracts/IERC20Metadata.json +574 -0
  18. package/build/contracts/IERC20Permit.json +546 -0
  19. package/build/contracts/IERC5267.json +392 -0
  20. package/build/contracts/IERC721.json +1729 -0
  21. package/build/contracts/IERC721Errors.json +1694 -0
  22. package/build/contracts/IERC721Metadata.json +728 -0
  23. package/build/contracts/IERC721Receiver.json +296 -0
  24. package/build/contracts/IGuardian.json +215 -0
  25. package/build/contracts/ITrustRegistry.json +6767 -0
  26. package/build/contracts/IdentityVault.json +11584 -0
  27. package/build/contracts/Math.json +23115 -0
  28. package/build/contracts/MessageHashUtils.json +1668 -0
  29. package/build/contracts/Nonces.json +865 -0
  30. package/build/contracts/Ownable.json +1859 -0
  31. package/build/contracts/Panic.json +798 -0
  32. package/build/contracts/ReportingSystem.json +2787 -0
  33. package/build/contracts/SafeCast.json +21592 -0
  34. package/build/contracts/ScoringSystem.json +11245 -0
  35. package/build/contracts/SecureTransacSBT.json +18823 -0
  36. package/build/contracts/SecureTransacToken.json +19225 -0
  37. package/build/contracts/SecureVault.json +12890 -0
  38. package/build/contracts/ShortStrings.json +2852 -0
  39. package/build/contracts/SignedMath.json +1915 -0
  40. package/build/contracts/StorageSlot.json +1773 -0
  41. package/build/contracts/Strings.json +19001 -0
  42. package/build/contracts/TransactionLogger.json +5325 -0
  43. package/build/contracts/TrustDAO.json +23850 -0
  44. package/build/contracts/TrustRegistry.json +10948 -0
  45. package/build/contracts/VerificationRegistry.json +12811 -0
  46. package/build/contracts/ZKIdentityVerifier.json +13979 -0
  47. package/contracts/AccessControl.sol +34 -0
  48. package/contracts/CreditSystem.sol +48 -0
  49. package/contracts/Guardian.sol +33 -0
  50. package/contracts/IGuardian.sol +7 -0
  51. package/contracts/IdentityVault.sol +57 -0
  52. package/contracts/ReportingSystem.sol +14 -0
  53. package/contracts/ScoringSystem.sol +71 -0
  54. package/contracts/SecureTransacSBT.sol +72 -0
  55. package/contracts/SecureTransacToken.sol +20 -0
  56. package/contracts/SecureVault.sol +24 -0
  57. package/contracts/TransactionLogger.sol +12 -0
  58. package/contracts/TrustDAO.sol +158 -0
  59. package/contracts/TrustRegistry.sol +23 -0
  60. package/contracts/VerificationRegistry.sol +51 -0
  61. package/contracts/ZKIdentityVerifier.sol +38 -0
  62. package/contracts/ZKScoreVerifier.sol +175 -0
  63. package/package.json +32 -0
@@ -0,0 +1,798 @@
1
+ {
2
+ "contractName": "Panic",
3
+ "abi": [],
4
+ "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"version\":1}",
5
+ "bytecode": "0x6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220a96d575a704097062e4863e1da431485deb0ef6c0aeebc2d9126ad39ad822a4964736f6c63430008150033",
6
+ "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220a96d575a704097062e4863e1da431485deb0ef6c0aeebc2d9126ad39ad822a4964736f6c63430008150033",
7
+ "immutableReferences": {},
8
+ "generatedSources": [],
9
+ "deployedGeneratedSources": [],
10
+ "sourceMap": "657:1315:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
11
+ "deployedSourceMap": "657:1315:15:-:0;;;;;;;;",
12
+ "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n * using Panic for uint256;\n *\n * // Use any of the declared internal constants\n * function foo() { Panic.GENERIC.panic(); }\n *\n * // Alternatively\n * function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n *\n * _Available since v5.1._\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n /// @dev generic / unspecified error\n uint256 internal constant GENERIC = 0x00;\n /// @dev used by the assert() builtin\n uint256 internal constant ASSERT = 0x01;\n /// @dev arithmetic underflow or overflow\n uint256 internal constant UNDER_OVERFLOW = 0x11;\n /// @dev division or modulo by zero\n uint256 internal constant DIVISION_BY_ZERO = 0x12;\n /// @dev enum conversion error\n uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n /// @dev invalid encoding in storage\n uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n /// @dev empty array pop\n uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n /// @dev array out of bounds access\n uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n /// @dev resource error (too large allocation or too large array)\n uint256 internal constant RESOURCE_ERROR = 0x41;\n /// @dev calling invalid internal function\n uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n /// @dev Reverts with a panic code. Recommended to use with\n /// the internal constants with predefined codes.\n function panic(uint256 code) internal pure {\n assembly (\"memory-safe\") {\n mstore(0x00, 0x4e487b71)\n mstore(0x20, code)\n revert(0x1c, 0x24)\n }\n }\n}\n",
13
+ "sourcePath": "@openzeppelin\\contracts\\utils\\Panic.sol",
14
+ "ast": {
15
+ "absolutePath": "@openzeppelin/contracts/utils/Panic.sol",
16
+ "exportedSymbols": {
17
+ "Panic": [
18
+ 2465
19
+ ]
20
+ },
21
+ "id": 2466,
22
+ "license": "MIT",
23
+ "nodeType": "SourceUnit",
24
+ "nodes": [
25
+ {
26
+ "id": 2415,
27
+ "literals": [
28
+ "solidity",
29
+ "^",
30
+ "0.8",
31
+ ".20"
32
+ ],
33
+ "nodeType": "PragmaDirective",
34
+ "src": "99:24:15"
35
+ },
36
+ {
37
+ "abstract": false,
38
+ "baseContracts": [],
39
+ "canonicalName": "Panic",
40
+ "contractDependencies": [],
41
+ "contractKind": "library",
42
+ "documentation": {
43
+ "id": 2416,
44
+ "nodeType": "StructuredDocumentation",
45
+ "src": "125:489:15",
46
+ "text": " @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n using Panic for uint256;\n // Use any of the declared internal constants\n function foo() { Panic.GENERIC.panic(); }\n // Alternatively\n function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n _Available since v5.1._"
47
+ },
48
+ "fullyImplemented": true,
49
+ "id": 2465,
50
+ "linearizedBaseContracts": [
51
+ 2465
52
+ ],
53
+ "name": "Panic",
54
+ "nameLocation": "665:5:15",
55
+ "nodeType": "ContractDefinition",
56
+ "nodes": [
57
+ {
58
+ "constant": true,
59
+ "documentation": {
60
+ "id": 2417,
61
+ "nodeType": "StructuredDocumentation",
62
+ "src": "677:36:15",
63
+ "text": "@dev generic / unspecified error"
64
+ },
65
+ "id": 2420,
66
+ "mutability": "constant",
67
+ "name": "GENERIC",
68
+ "nameLocation": "744:7:15",
69
+ "nodeType": "VariableDeclaration",
70
+ "scope": 2465,
71
+ "src": "718:40:15",
72
+ "stateVariable": true,
73
+ "storageLocation": "default",
74
+ "typeDescriptions": {
75
+ "typeIdentifier": "t_uint256",
76
+ "typeString": "uint256"
77
+ },
78
+ "typeName": {
79
+ "id": 2418,
80
+ "name": "uint256",
81
+ "nodeType": "ElementaryTypeName",
82
+ "src": "718:7:15",
83
+ "typeDescriptions": {
84
+ "typeIdentifier": "t_uint256",
85
+ "typeString": "uint256"
86
+ }
87
+ },
88
+ "value": {
89
+ "hexValue": "30783030",
90
+ "id": 2419,
91
+ "isConstant": false,
92
+ "isLValue": false,
93
+ "isPure": true,
94
+ "kind": "number",
95
+ "lValueRequested": false,
96
+ "nodeType": "Literal",
97
+ "src": "754:4:15",
98
+ "typeDescriptions": {
99
+ "typeIdentifier": "t_rational_0_by_1",
100
+ "typeString": "int_const 0"
101
+ },
102
+ "value": "0x00"
103
+ },
104
+ "visibility": "internal"
105
+ },
106
+ {
107
+ "constant": true,
108
+ "documentation": {
109
+ "id": 2421,
110
+ "nodeType": "StructuredDocumentation",
111
+ "src": "764:37:15",
112
+ "text": "@dev used by the assert() builtin"
113
+ },
114
+ "id": 2424,
115
+ "mutability": "constant",
116
+ "name": "ASSERT",
117
+ "nameLocation": "832:6:15",
118
+ "nodeType": "VariableDeclaration",
119
+ "scope": 2465,
120
+ "src": "806:39:15",
121
+ "stateVariable": true,
122
+ "storageLocation": "default",
123
+ "typeDescriptions": {
124
+ "typeIdentifier": "t_uint256",
125
+ "typeString": "uint256"
126
+ },
127
+ "typeName": {
128
+ "id": 2422,
129
+ "name": "uint256",
130
+ "nodeType": "ElementaryTypeName",
131
+ "src": "806:7:15",
132
+ "typeDescriptions": {
133
+ "typeIdentifier": "t_uint256",
134
+ "typeString": "uint256"
135
+ }
136
+ },
137
+ "value": {
138
+ "hexValue": "30783031",
139
+ "id": 2423,
140
+ "isConstant": false,
141
+ "isLValue": false,
142
+ "isPure": true,
143
+ "kind": "number",
144
+ "lValueRequested": false,
145
+ "nodeType": "Literal",
146
+ "src": "841:4:15",
147
+ "typeDescriptions": {
148
+ "typeIdentifier": "t_rational_1_by_1",
149
+ "typeString": "int_const 1"
150
+ },
151
+ "value": "0x01"
152
+ },
153
+ "visibility": "internal"
154
+ },
155
+ {
156
+ "constant": true,
157
+ "documentation": {
158
+ "id": 2425,
159
+ "nodeType": "StructuredDocumentation",
160
+ "src": "851:41:15",
161
+ "text": "@dev arithmetic underflow or overflow"
162
+ },
163
+ "id": 2428,
164
+ "mutability": "constant",
165
+ "name": "UNDER_OVERFLOW",
166
+ "nameLocation": "923:14:15",
167
+ "nodeType": "VariableDeclaration",
168
+ "scope": 2465,
169
+ "src": "897:47:15",
170
+ "stateVariable": true,
171
+ "storageLocation": "default",
172
+ "typeDescriptions": {
173
+ "typeIdentifier": "t_uint256",
174
+ "typeString": "uint256"
175
+ },
176
+ "typeName": {
177
+ "id": 2426,
178
+ "name": "uint256",
179
+ "nodeType": "ElementaryTypeName",
180
+ "src": "897:7:15",
181
+ "typeDescriptions": {
182
+ "typeIdentifier": "t_uint256",
183
+ "typeString": "uint256"
184
+ }
185
+ },
186
+ "value": {
187
+ "hexValue": "30783131",
188
+ "id": 2427,
189
+ "isConstant": false,
190
+ "isLValue": false,
191
+ "isPure": true,
192
+ "kind": "number",
193
+ "lValueRequested": false,
194
+ "nodeType": "Literal",
195
+ "src": "940:4:15",
196
+ "typeDescriptions": {
197
+ "typeIdentifier": "t_rational_17_by_1",
198
+ "typeString": "int_const 17"
199
+ },
200
+ "value": "0x11"
201
+ },
202
+ "visibility": "internal"
203
+ },
204
+ {
205
+ "constant": true,
206
+ "documentation": {
207
+ "id": 2429,
208
+ "nodeType": "StructuredDocumentation",
209
+ "src": "950:35:15",
210
+ "text": "@dev division or modulo by zero"
211
+ },
212
+ "id": 2432,
213
+ "mutability": "constant",
214
+ "name": "DIVISION_BY_ZERO",
215
+ "nameLocation": "1016:16:15",
216
+ "nodeType": "VariableDeclaration",
217
+ "scope": 2465,
218
+ "src": "990:49:15",
219
+ "stateVariable": true,
220
+ "storageLocation": "default",
221
+ "typeDescriptions": {
222
+ "typeIdentifier": "t_uint256",
223
+ "typeString": "uint256"
224
+ },
225
+ "typeName": {
226
+ "id": 2430,
227
+ "name": "uint256",
228
+ "nodeType": "ElementaryTypeName",
229
+ "src": "990:7:15",
230
+ "typeDescriptions": {
231
+ "typeIdentifier": "t_uint256",
232
+ "typeString": "uint256"
233
+ }
234
+ },
235
+ "value": {
236
+ "hexValue": "30783132",
237
+ "id": 2431,
238
+ "isConstant": false,
239
+ "isLValue": false,
240
+ "isPure": true,
241
+ "kind": "number",
242
+ "lValueRequested": false,
243
+ "nodeType": "Literal",
244
+ "src": "1035:4:15",
245
+ "typeDescriptions": {
246
+ "typeIdentifier": "t_rational_18_by_1",
247
+ "typeString": "int_const 18"
248
+ },
249
+ "value": "0x12"
250
+ },
251
+ "visibility": "internal"
252
+ },
253
+ {
254
+ "constant": true,
255
+ "documentation": {
256
+ "id": 2433,
257
+ "nodeType": "StructuredDocumentation",
258
+ "src": "1045:30:15",
259
+ "text": "@dev enum conversion error"
260
+ },
261
+ "id": 2436,
262
+ "mutability": "constant",
263
+ "name": "ENUM_CONVERSION_ERROR",
264
+ "nameLocation": "1106:21:15",
265
+ "nodeType": "VariableDeclaration",
266
+ "scope": 2465,
267
+ "src": "1080:54:15",
268
+ "stateVariable": true,
269
+ "storageLocation": "default",
270
+ "typeDescriptions": {
271
+ "typeIdentifier": "t_uint256",
272
+ "typeString": "uint256"
273
+ },
274
+ "typeName": {
275
+ "id": 2434,
276
+ "name": "uint256",
277
+ "nodeType": "ElementaryTypeName",
278
+ "src": "1080:7:15",
279
+ "typeDescriptions": {
280
+ "typeIdentifier": "t_uint256",
281
+ "typeString": "uint256"
282
+ }
283
+ },
284
+ "value": {
285
+ "hexValue": "30783231",
286
+ "id": 2435,
287
+ "isConstant": false,
288
+ "isLValue": false,
289
+ "isPure": true,
290
+ "kind": "number",
291
+ "lValueRequested": false,
292
+ "nodeType": "Literal",
293
+ "src": "1130:4:15",
294
+ "typeDescriptions": {
295
+ "typeIdentifier": "t_rational_33_by_1",
296
+ "typeString": "int_const 33"
297
+ },
298
+ "value": "0x21"
299
+ },
300
+ "visibility": "internal"
301
+ },
302
+ {
303
+ "constant": true,
304
+ "documentation": {
305
+ "id": 2437,
306
+ "nodeType": "StructuredDocumentation",
307
+ "src": "1140:36:15",
308
+ "text": "@dev invalid encoding in storage"
309
+ },
310
+ "id": 2440,
311
+ "mutability": "constant",
312
+ "name": "STORAGE_ENCODING_ERROR",
313
+ "nameLocation": "1207:22:15",
314
+ "nodeType": "VariableDeclaration",
315
+ "scope": 2465,
316
+ "src": "1181:55:15",
317
+ "stateVariable": true,
318
+ "storageLocation": "default",
319
+ "typeDescriptions": {
320
+ "typeIdentifier": "t_uint256",
321
+ "typeString": "uint256"
322
+ },
323
+ "typeName": {
324
+ "id": 2438,
325
+ "name": "uint256",
326
+ "nodeType": "ElementaryTypeName",
327
+ "src": "1181:7:15",
328
+ "typeDescriptions": {
329
+ "typeIdentifier": "t_uint256",
330
+ "typeString": "uint256"
331
+ }
332
+ },
333
+ "value": {
334
+ "hexValue": "30783232",
335
+ "id": 2439,
336
+ "isConstant": false,
337
+ "isLValue": false,
338
+ "isPure": true,
339
+ "kind": "number",
340
+ "lValueRequested": false,
341
+ "nodeType": "Literal",
342
+ "src": "1232:4:15",
343
+ "typeDescriptions": {
344
+ "typeIdentifier": "t_rational_34_by_1",
345
+ "typeString": "int_const 34"
346
+ },
347
+ "value": "0x22"
348
+ },
349
+ "visibility": "internal"
350
+ },
351
+ {
352
+ "constant": true,
353
+ "documentation": {
354
+ "id": 2441,
355
+ "nodeType": "StructuredDocumentation",
356
+ "src": "1242:24:15",
357
+ "text": "@dev empty array pop"
358
+ },
359
+ "id": 2444,
360
+ "mutability": "constant",
361
+ "name": "EMPTY_ARRAY_POP",
362
+ "nameLocation": "1297:15:15",
363
+ "nodeType": "VariableDeclaration",
364
+ "scope": 2465,
365
+ "src": "1271:48:15",
366
+ "stateVariable": true,
367
+ "storageLocation": "default",
368
+ "typeDescriptions": {
369
+ "typeIdentifier": "t_uint256",
370
+ "typeString": "uint256"
371
+ },
372
+ "typeName": {
373
+ "id": 2442,
374
+ "name": "uint256",
375
+ "nodeType": "ElementaryTypeName",
376
+ "src": "1271:7:15",
377
+ "typeDescriptions": {
378
+ "typeIdentifier": "t_uint256",
379
+ "typeString": "uint256"
380
+ }
381
+ },
382
+ "value": {
383
+ "hexValue": "30783331",
384
+ "id": 2443,
385
+ "isConstant": false,
386
+ "isLValue": false,
387
+ "isPure": true,
388
+ "kind": "number",
389
+ "lValueRequested": false,
390
+ "nodeType": "Literal",
391
+ "src": "1315:4:15",
392
+ "typeDescriptions": {
393
+ "typeIdentifier": "t_rational_49_by_1",
394
+ "typeString": "int_const 49"
395
+ },
396
+ "value": "0x31"
397
+ },
398
+ "visibility": "internal"
399
+ },
400
+ {
401
+ "constant": true,
402
+ "documentation": {
403
+ "id": 2445,
404
+ "nodeType": "StructuredDocumentation",
405
+ "src": "1325:35:15",
406
+ "text": "@dev array out of bounds access"
407
+ },
408
+ "id": 2448,
409
+ "mutability": "constant",
410
+ "name": "ARRAY_OUT_OF_BOUNDS",
411
+ "nameLocation": "1391:19:15",
412
+ "nodeType": "VariableDeclaration",
413
+ "scope": 2465,
414
+ "src": "1365:52:15",
415
+ "stateVariable": true,
416
+ "storageLocation": "default",
417
+ "typeDescriptions": {
418
+ "typeIdentifier": "t_uint256",
419
+ "typeString": "uint256"
420
+ },
421
+ "typeName": {
422
+ "id": 2446,
423
+ "name": "uint256",
424
+ "nodeType": "ElementaryTypeName",
425
+ "src": "1365:7:15",
426
+ "typeDescriptions": {
427
+ "typeIdentifier": "t_uint256",
428
+ "typeString": "uint256"
429
+ }
430
+ },
431
+ "value": {
432
+ "hexValue": "30783332",
433
+ "id": 2447,
434
+ "isConstant": false,
435
+ "isLValue": false,
436
+ "isPure": true,
437
+ "kind": "number",
438
+ "lValueRequested": false,
439
+ "nodeType": "Literal",
440
+ "src": "1413:4:15",
441
+ "typeDescriptions": {
442
+ "typeIdentifier": "t_rational_50_by_1",
443
+ "typeString": "int_const 50"
444
+ },
445
+ "value": "0x32"
446
+ },
447
+ "visibility": "internal"
448
+ },
449
+ {
450
+ "constant": true,
451
+ "documentation": {
452
+ "id": 2449,
453
+ "nodeType": "StructuredDocumentation",
454
+ "src": "1423:65:15",
455
+ "text": "@dev resource error (too large allocation or too large array)"
456
+ },
457
+ "id": 2452,
458
+ "mutability": "constant",
459
+ "name": "RESOURCE_ERROR",
460
+ "nameLocation": "1519:14:15",
461
+ "nodeType": "VariableDeclaration",
462
+ "scope": 2465,
463
+ "src": "1493:47:15",
464
+ "stateVariable": true,
465
+ "storageLocation": "default",
466
+ "typeDescriptions": {
467
+ "typeIdentifier": "t_uint256",
468
+ "typeString": "uint256"
469
+ },
470
+ "typeName": {
471
+ "id": 2450,
472
+ "name": "uint256",
473
+ "nodeType": "ElementaryTypeName",
474
+ "src": "1493:7:15",
475
+ "typeDescriptions": {
476
+ "typeIdentifier": "t_uint256",
477
+ "typeString": "uint256"
478
+ }
479
+ },
480
+ "value": {
481
+ "hexValue": "30783431",
482
+ "id": 2451,
483
+ "isConstant": false,
484
+ "isLValue": false,
485
+ "isPure": true,
486
+ "kind": "number",
487
+ "lValueRequested": false,
488
+ "nodeType": "Literal",
489
+ "src": "1536:4:15",
490
+ "typeDescriptions": {
491
+ "typeIdentifier": "t_rational_65_by_1",
492
+ "typeString": "int_const 65"
493
+ },
494
+ "value": "0x41"
495
+ },
496
+ "visibility": "internal"
497
+ },
498
+ {
499
+ "constant": true,
500
+ "documentation": {
501
+ "id": 2453,
502
+ "nodeType": "StructuredDocumentation",
503
+ "src": "1546:42:15",
504
+ "text": "@dev calling invalid internal function"
505
+ },
506
+ "id": 2456,
507
+ "mutability": "constant",
508
+ "name": "INVALID_INTERNAL_FUNCTION",
509
+ "nameLocation": "1619:25:15",
510
+ "nodeType": "VariableDeclaration",
511
+ "scope": 2465,
512
+ "src": "1593:58:15",
513
+ "stateVariable": true,
514
+ "storageLocation": "default",
515
+ "typeDescriptions": {
516
+ "typeIdentifier": "t_uint256",
517
+ "typeString": "uint256"
518
+ },
519
+ "typeName": {
520
+ "id": 2454,
521
+ "name": "uint256",
522
+ "nodeType": "ElementaryTypeName",
523
+ "src": "1593:7:15",
524
+ "typeDescriptions": {
525
+ "typeIdentifier": "t_uint256",
526
+ "typeString": "uint256"
527
+ }
528
+ },
529
+ "value": {
530
+ "hexValue": "30783531",
531
+ "id": 2455,
532
+ "isConstant": false,
533
+ "isLValue": false,
534
+ "isPure": true,
535
+ "kind": "number",
536
+ "lValueRequested": false,
537
+ "nodeType": "Literal",
538
+ "src": "1647:4:15",
539
+ "typeDescriptions": {
540
+ "typeIdentifier": "t_rational_81_by_1",
541
+ "typeString": "int_const 81"
542
+ },
543
+ "value": "0x51"
544
+ },
545
+ "visibility": "internal"
546
+ },
547
+ {
548
+ "body": {
549
+ "id": 2463,
550
+ "nodeType": "Block",
551
+ "src": "1819:151:15",
552
+ "statements": [
553
+ {
554
+ "AST": {
555
+ "nativeSrc": "1854:110:15",
556
+ "nodeType": "YulBlock",
557
+ "src": "1854:110:15",
558
+ "statements": [
559
+ {
560
+ "expression": {
561
+ "arguments": [
562
+ {
563
+ "kind": "number",
564
+ "nativeSrc": "1875:4:15",
565
+ "nodeType": "YulLiteral",
566
+ "src": "1875:4:15",
567
+ "type": "",
568
+ "value": "0x00"
569
+ },
570
+ {
571
+ "kind": "number",
572
+ "nativeSrc": "1881:10:15",
573
+ "nodeType": "YulLiteral",
574
+ "src": "1881:10:15",
575
+ "type": "",
576
+ "value": "0x4e487b71"
577
+ }
578
+ ],
579
+ "functionName": {
580
+ "name": "mstore",
581
+ "nativeSrc": "1868:6:15",
582
+ "nodeType": "YulIdentifier",
583
+ "src": "1868:6:15"
584
+ },
585
+ "nativeSrc": "1868:24:15",
586
+ "nodeType": "YulFunctionCall",
587
+ "src": "1868:24:15"
588
+ },
589
+ "nativeSrc": "1868:24:15",
590
+ "nodeType": "YulExpressionStatement",
591
+ "src": "1868:24:15"
592
+ },
593
+ {
594
+ "expression": {
595
+ "arguments": [
596
+ {
597
+ "kind": "number",
598
+ "nativeSrc": "1912:4:15",
599
+ "nodeType": "YulLiteral",
600
+ "src": "1912:4:15",
601
+ "type": "",
602
+ "value": "0x20"
603
+ },
604
+ {
605
+ "name": "code",
606
+ "nativeSrc": "1918:4:15",
607
+ "nodeType": "YulIdentifier",
608
+ "src": "1918:4:15"
609
+ }
610
+ ],
611
+ "functionName": {
612
+ "name": "mstore",
613
+ "nativeSrc": "1905:6:15",
614
+ "nodeType": "YulIdentifier",
615
+ "src": "1905:6:15"
616
+ },
617
+ "nativeSrc": "1905:18:15",
618
+ "nodeType": "YulFunctionCall",
619
+ "src": "1905:18:15"
620
+ },
621
+ "nativeSrc": "1905:18:15",
622
+ "nodeType": "YulExpressionStatement",
623
+ "src": "1905:18:15"
624
+ },
625
+ {
626
+ "expression": {
627
+ "arguments": [
628
+ {
629
+ "kind": "number",
630
+ "nativeSrc": "1943:4:15",
631
+ "nodeType": "YulLiteral",
632
+ "src": "1943:4:15",
633
+ "type": "",
634
+ "value": "0x1c"
635
+ },
636
+ {
637
+ "kind": "number",
638
+ "nativeSrc": "1949:4:15",
639
+ "nodeType": "YulLiteral",
640
+ "src": "1949:4:15",
641
+ "type": "",
642
+ "value": "0x24"
643
+ }
644
+ ],
645
+ "functionName": {
646
+ "name": "revert",
647
+ "nativeSrc": "1936:6:15",
648
+ "nodeType": "YulIdentifier",
649
+ "src": "1936:6:15"
650
+ },
651
+ "nativeSrc": "1936:18:15",
652
+ "nodeType": "YulFunctionCall",
653
+ "src": "1936:18:15"
654
+ },
655
+ "nativeSrc": "1936:18:15",
656
+ "nodeType": "YulExpressionStatement",
657
+ "src": "1936:18:15"
658
+ }
659
+ ]
660
+ },
661
+ "evmVersion": "shanghai",
662
+ "externalReferences": [
663
+ {
664
+ "declaration": 2459,
665
+ "isOffset": false,
666
+ "isSlot": false,
667
+ "src": "1918:4:15",
668
+ "valueSize": 1
669
+ }
670
+ ],
671
+ "flags": [
672
+ "memory-safe"
673
+ ],
674
+ "id": 2462,
675
+ "nodeType": "InlineAssembly",
676
+ "src": "1829:135:15"
677
+ }
678
+ ]
679
+ },
680
+ "documentation": {
681
+ "id": 2457,
682
+ "nodeType": "StructuredDocumentation",
683
+ "src": "1658:113:15",
684
+ "text": "@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes."
685
+ },
686
+ "id": 2464,
687
+ "implemented": true,
688
+ "kind": "function",
689
+ "modifiers": [],
690
+ "name": "panic",
691
+ "nameLocation": "1785:5:15",
692
+ "nodeType": "FunctionDefinition",
693
+ "parameters": {
694
+ "id": 2460,
695
+ "nodeType": "ParameterList",
696
+ "parameters": [
697
+ {
698
+ "constant": false,
699
+ "id": 2459,
700
+ "mutability": "mutable",
701
+ "name": "code",
702
+ "nameLocation": "1799:4:15",
703
+ "nodeType": "VariableDeclaration",
704
+ "scope": 2464,
705
+ "src": "1791:12:15",
706
+ "stateVariable": false,
707
+ "storageLocation": "default",
708
+ "typeDescriptions": {
709
+ "typeIdentifier": "t_uint256",
710
+ "typeString": "uint256"
711
+ },
712
+ "typeName": {
713
+ "id": 2458,
714
+ "name": "uint256",
715
+ "nodeType": "ElementaryTypeName",
716
+ "src": "1791:7:15",
717
+ "typeDescriptions": {
718
+ "typeIdentifier": "t_uint256",
719
+ "typeString": "uint256"
720
+ }
721
+ },
722
+ "visibility": "internal"
723
+ }
724
+ ],
725
+ "src": "1790:14:15"
726
+ },
727
+ "returnParameters": {
728
+ "id": 2461,
729
+ "nodeType": "ParameterList",
730
+ "parameters": [],
731
+ "src": "1819:0:15"
732
+ },
733
+ "scope": 2465,
734
+ "src": "1776:194:15",
735
+ "stateMutability": "pure",
736
+ "virtual": false,
737
+ "visibility": "internal"
738
+ }
739
+ ],
740
+ "scope": 2466,
741
+ "src": "657:1315:15",
742
+ "usedErrors": [],
743
+ "usedEvents": []
744
+ }
745
+ ],
746
+ "src": "99:1874:15"
747
+ },
748
+ "compiler": {
749
+ "name": "solc",
750
+ "version": "0.8.21+commit.d9974bed.Emscripten.clang"
751
+ },
752
+ "networks": {},
753
+ "schemaVersion": "3.4.16",
754
+ "updatedAt": "2026-01-24T20:23:04.042Z",
755
+ "devdoc": {
756
+ "details": "Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._",
757
+ "kind": "dev",
758
+ "methods": {},
759
+ "stateVariables": {
760
+ "ARRAY_OUT_OF_BOUNDS": {
761
+ "details": "array out of bounds access"
762
+ },
763
+ "ASSERT": {
764
+ "details": "used by the assert() builtin"
765
+ },
766
+ "DIVISION_BY_ZERO": {
767
+ "details": "division or modulo by zero"
768
+ },
769
+ "EMPTY_ARRAY_POP": {
770
+ "details": "empty array pop"
771
+ },
772
+ "ENUM_CONVERSION_ERROR": {
773
+ "details": "enum conversion error"
774
+ },
775
+ "GENERIC": {
776
+ "details": "generic / unspecified error"
777
+ },
778
+ "INVALID_INTERNAL_FUNCTION": {
779
+ "details": "calling invalid internal function"
780
+ },
781
+ "RESOURCE_ERROR": {
782
+ "details": "resource error (too large allocation or too large array)"
783
+ },
784
+ "STORAGE_ENCODING_ERROR": {
785
+ "details": "invalid encoding in storage"
786
+ },
787
+ "UNDER_OVERFLOW": {
788
+ "details": "arithmetic underflow or overflow"
789
+ }
790
+ },
791
+ "version": 1
792
+ },
793
+ "userdoc": {
794
+ "kind": "user",
795
+ "methods": {},
796
+ "version": 1
797
+ }
798
+ }