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,574 @@
1
+ {
2
+ "contractName": "IERC20Metadata",
3
+ "abi": [
4
+ {
5
+ "anonymous": false,
6
+ "inputs": [
7
+ {
8
+ "indexed": true,
9
+ "internalType": "address",
10
+ "name": "owner",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "indexed": true,
15
+ "internalType": "address",
16
+ "name": "spender",
17
+ "type": "address"
18
+ },
19
+ {
20
+ "indexed": false,
21
+ "internalType": "uint256",
22
+ "name": "value",
23
+ "type": "uint256"
24
+ }
25
+ ],
26
+ "name": "Approval",
27
+ "type": "event"
28
+ },
29
+ {
30
+ "anonymous": false,
31
+ "inputs": [
32
+ {
33
+ "indexed": true,
34
+ "internalType": "address",
35
+ "name": "from",
36
+ "type": "address"
37
+ },
38
+ {
39
+ "indexed": true,
40
+ "internalType": "address",
41
+ "name": "to",
42
+ "type": "address"
43
+ },
44
+ {
45
+ "indexed": false,
46
+ "internalType": "uint256",
47
+ "name": "value",
48
+ "type": "uint256"
49
+ }
50
+ ],
51
+ "name": "Transfer",
52
+ "type": "event"
53
+ },
54
+ {
55
+ "inputs": [
56
+ {
57
+ "internalType": "address",
58
+ "name": "owner",
59
+ "type": "address"
60
+ },
61
+ {
62
+ "internalType": "address",
63
+ "name": "spender",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "name": "allowance",
68
+ "outputs": [
69
+ {
70
+ "internalType": "uint256",
71
+ "name": "",
72
+ "type": "uint256"
73
+ }
74
+ ],
75
+ "stateMutability": "view",
76
+ "type": "function"
77
+ },
78
+ {
79
+ "inputs": [
80
+ {
81
+ "internalType": "address",
82
+ "name": "spender",
83
+ "type": "address"
84
+ },
85
+ {
86
+ "internalType": "uint256",
87
+ "name": "value",
88
+ "type": "uint256"
89
+ }
90
+ ],
91
+ "name": "approve",
92
+ "outputs": [
93
+ {
94
+ "internalType": "bool",
95
+ "name": "",
96
+ "type": "bool"
97
+ }
98
+ ],
99
+ "stateMutability": "nonpayable",
100
+ "type": "function"
101
+ },
102
+ {
103
+ "inputs": [
104
+ {
105
+ "internalType": "address",
106
+ "name": "account",
107
+ "type": "address"
108
+ }
109
+ ],
110
+ "name": "balanceOf",
111
+ "outputs": [
112
+ {
113
+ "internalType": "uint256",
114
+ "name": "",
115
+ "type": "uint256"
116
+ }
117
+ ],
118
+ "stateMutability": "view",
119
+ "type": "function"
120
+ },
121
+ {
122
+ "inputs": [],
123
+ "name": "totalSupply",
124
+ "outputs": [
125
+ {
126
+ "internalType": "uint256",
127
+ "name": "",
128
+ "type": "uint256"
129
+ }
130
+ ],
131
+ "stateMutability": "view",
132
+ "type": "function"
133
+ },
134
+ {
135
+ "inputs": [
136
+ {
137
+ "internalType": "address",
138
+ "name": "to",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "internalType": "uint256",
143
+ "name": "value",
144
+ "type": "uint256"
145
+ }
146
+ ],
147
+ "name": "transfer",
148
+ "outputs": [
149
+ {
150
+ "internalType": "bool",
151
+ "name": "",
152
+ "type": "bool"
153
+ }
154
+ ],
155
+ "stateMutability": "nonpayable",
156
+ "type": "function"
157
+ },
158
+ {
159
+ "inputs": [
160
+ {
161
+ "internalType": "address",
162
+ "name": "from",
163
+ "type": "address"
164
+ },
165
+ {
166
+ "internalType": "address",
167
+ "name": "to",
168
+ "type": "address"
169
+ },
170
+ {
171
+ "internalType": "uint256",
172
+ "name": "value",
173
+ "type": "uint256"
174
+ }
175
+ ],
176
+ "name": "transferFrom",
177
+ "outputs": [
178
+ {
179
+ "internalType": "bool",
180
+ "name": "",
181
+ "type": "bool"
182
+ }
183
+ ],
184
+ "stateMutability": "nonpayable",
185
+ "type": "function"
186
+ },
187
+ {
188
+ "inputs": [],
189
+ "name": "name",
190
+ "outputs": [
191
+ {
192
+ "internalType": "string",
193
+ "name": "",
194
+ "type": "string"
195
+ }
196
+ ],
197
+ "stateMutability": "view",
198
+ "type": "function"
199
+ },
200
+ {
201
+ "inputs": [],
202
+ "name": "symbol",
203
+ "outputs": [
204
+ {
205
+ "internalType": "string",
206
+ "name": "",
207
+ "type": "string"
208
+ }
209
+ ],
210
+ "stateMutability": "view",
211
+ "type": "function"
212
+ },
213
+ {
214
+ "inputs": [],
215
+ "name": "decimals",
216
+ "outputs": [
217
+ {
218
+ "internalType": "uint8",
219
+ "name": "",
220
+ "type": "uint8"
221
+ }
222
+ ],
223
+ "stateMutability": "view",
224
+ "type": "function"
225
+ }
226
+ ],
227
+ "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]}},\"version\":1}",
228
+ "bytecode": "0x",
229
+ "deployedBytecode": "0x",
230
+ "immutableReferences": {},
231
+ "generatedSources": [],
232
+ "deployedGeneratedSources": [],
233
+ "sourceMap": "",
234
+ "deployedSourceMap": "",
235
+ "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity >=0.6.2;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n",
236
+ "sourcePath": "@openzeppelin\\contracts\\token\\ERC20\\extensions\\IERC20Metadata.sol",
237
+ "ast": {
238
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
239
+ "exportedSymbols": {
240
+ "IERC20": [
241
+ 902
242
+ ],
243
+ "IERC20Metadata": [
244
+ 1082
245
+ ]
246
+ },
247
+ "id": 1083,
248
+ "license": "MIT",
249
+ "nodeType": "SourceUnit",
250
+ "nodes": [
251
+ {
252
+ "id": 1058,
253
+ "literals": [
254
+ "solidity",
255
+ ">=",
256
+ "0.6",
257
+ ".2"
258
+ ],
259
+ "nodeType": "PragmaDirective",
260
+ "src": "125:24:6"
261
+ },
262
+ {
263
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
264
+ "file": "../IERC20.sol",
265
+ "id": 1060,
266
+ "nameLocation": "-1:-1:-1",
267
+ "nodeType": "ImportDirective",
268
+ "scope": 1083,
269
+ "sourceUnit": 903,
270
+ "src": "151:37:6",
271
+ "symbolAliases": [
272
+ {
273
+ "foreign": {
274
+ "id": 1059,
275
+ "name": "IERC20",
276
+ "nodeType": "Identifier",
277
+ "overloadedDeclarations": [],
278
+ "referencedDeclaration": 902,
279
+ "src": "159:6:6",
280
+ "typeDescriptions": {}
281
+ },
282
+ "nameLocation": "-1:-1:-1"
283
+ }
284
+ ],
285
+ "unitAlias": ""
286
+ },
287
+ {
288
+ "abstract": false,
289
+ "baseContracts": [
290
+ {
291
+ "baseName": {
292
+ "id": 1062,
293
+ "name": "IERC20",
294
+ "nameLocations": [
295
+ "306:6:6"
296
+ ],
297
+ "nodeType": "IdentifierPath",
298
+ "referencedDeclaration": 902,
299
+ "src": "306:6:6"
300
+ },
301
+ "id": 1063,
302
+ "nodeType": "InheritanceSpecifier",
303
+ "src": "306:6:6"
304
+ }
305
+ ],
306
+ "canonicalName": "IERC20Metadata",
307
+ "contractDependencies": [],
308
+ "contractKind": "interface",
309
+ "documentation": {
310
+ "id": 1061,
311
+ "nodeType": "StructuredDocumentation",
312
+ "src": "190:87:6",
313
+ "text": " @dev Interface for the optional metadata functions from the ERC-20 standard."
314
+ },
315
+ "fullyImplemented": false,
316
+ "id": 1082,
317
+ "linearizedBaseContracts": [
318
+ 1082,
319
+ 902
320
+ ],
321
+ "name": "IERC20Metadata",
322
+ "nameLocation": "288:14:6",
323
+ "nodeType": "ContractDefinition",
324
+ "nodes": [
325
+ {
326
+ "documentation": {
327
+ "id": 1064,
328
+ "nodeType": "StructuredDocumentation",
329
+ "src": "319:54:6",
330
+ "text": " @dev Returns the name of the token."
331
+ },
332
+ "functionSelector": "06fdde03",
333
+ "id": 1069,
334
+ "implemented": false,
335
+ "kind": "function",
336
+ "modifiers": [],
337
+ "name": "name",
338
+ "nameLocation": "387:4:6",
339
+ "nodeType": "FunctionDefinition",
340
+ "parameters": {
341
+ "id": 1065,
342
+ "nodeType": "ParameterList",
343
+ "parameters": [],
344
+ "src": "391:2:6"
345
+ },
346
+ "returnParameters": {
347
+ "id": 1068,
348
+ "nodeType": "ParameterList",
349
+ "parameters": [
350
+ {
351
+ "constant": false,
352
+ "id": 1067,
353
+ "mutability": "mutable",
354
+ "name": "",
355
+ "nameLocation": "-1:-1:-1",
356
+ "nodeType": "VariableDeclaration",
357
+ "scope": 1069,
358
+ "src": "417:13:6",
359
+ "stateVariable": false,
360
+ "storageLocation": "memory",
361
+ "typeDescriptions": {
362
+ "typeIdentifier": "t_string_memory_ptr",
363
+ "typeString": "string"
364
+ },
365
+ "typeName": {
366
+ "id": 1066,
367
+ "name": "string",
368
+ "nodeType": "ElementaryTypeName",
369
+ "src": "417:6:6",
370
+ "typeDescriptions": {
371
+ "typeIdentifier": "t_string_storage_ptr",
372
+ "typeString": "string"
373
+ }
374
+ },
375
+ "visibility": "internal"
376
+ }
377
+ ],
378
+ "src": "416:15:6"
379
+ },
380
+ "scope": 1082,
381
+ "src": "378:54:6",
382
+ "stateMutability": "view",
383
+ "virtual": false,
384
+ "visibility": "external"
385
+ },
386
+ {
387
+ "documentation": {
388
+ "id": 1070,
389
+ "nodeType": "StructuredDocumentation",
390
+ "src": "438:56:6",
391
+ "text": " @dev Returns the symbol of the token."
392
+ },
393
+ "functionSelector": "95d89b41",
394
+ "id": 1075,
395
+ "implemented": false,
396
+ "kind": "function",
397
+ "modifiers": [],
398
+ "name": "symbol",
399
+ "nameLocation": "508:6:6",
400
+ "nodeType": "FunctionDefinition",
401
+ "parameters": {
402
+ "id": 1071,
403
+ "nodeType": "ParameterList",
404
+ "parameters": [],
405
+ "src": "514:2:6"
406
+ },
407
+ "returnParameters": {
408
+ "id": 1074,
409
+ "nodeType": "ParameterList",
410
+ "parameters": [
411
+ {
412
+ "constant": false,
413
+ "id": 1073,
414
+ "mutability": "mutable",
415
+ "name": "",
416
+ "nameLocation": "-1:-1:-1",
417
+ "nodeType": "VariableDeclaration",
418
+ "scope": 1075,
419
+ "src": "540:13:6",
420
+ "stateVariable": false,
421
+ "storageLocation": "memory",
422
+ "typeDescriptions": {
423
+ "typeIdentifier": "t_string_memory_ptr",
424
+ "typeString": "string"
425
+ },
426
+ "typeName": {
427
+ "id": 1072,
428
+ "name": "string",
429
+ "nodeType": "ElementaryTypeName",
430
+ "src": "540:6:6",
431
+ "typeDescriptions": {
432
+ "typeIdentifier": "t_string_storage_ptr",
433
+ "typeString": "string"
434
+ }
435
+ },
436
+ "visibility": "internal"
437
+ }
438
+ ],
439
+ "src": "539:15:6"
440
+ },
441
+ "scope": 1082,
442
+ "src": "499:56:6",
443
+ "stateMutability": "view",
444
+ "virtual": false,
445
+ "visibility": "external"
446
+ },
447
+ {
448
+ "documentation": {
449
+ "id": 1076,
450
+ "nodeType": "StructuredDocumentation",
451
+ "src": "561:65:6",
452
+ "text": " @dev Returns the decimals places of the token."
453
+ },
454
+ "functionSelector": "313ce567",
455
+ "id": 1081,
456
+ "implemented": false,
457
+ "kind": "function",
458
+ "modifiers": [],
459
+ "name": "decimals",
460
+ "nameLocation": "640:8:6",
461
+ "nodeType": "FunctionDefinition",
462
+ "parameters": {
463
+ "id": 1077,
464
+ "nodeType": "ParameterList",
465
+ "parameters": [],
466
+ "src": "648:2:6"
467
+ },
468
+ "returnParameters": {
469
+ "id": 1080,
470
+ "nodeType": "ParameterList",
471
+ "parameters": [
472
+ {
473
+ "constant": false,
474
+ "id": 1079,
475
+ "mutability": "mutable",
476
+ "name": "",
477
+ "nameLocation": "-1:-1:-1",
478
+ "nodeType": "VariableDeclaration",
479
+ "scope": 1081,
480
+ "src": "674:5:6",
481
+ "stateVariable": false,
482
+ "storageLocation": "default",
483
+ "typeDescriptions": {
484
+ "typeIdentifier": "t_uint8",
485
+ "typeString": "uint8"
486
+ },
487
+ "typeName": {
488
+ "id": 1078,
489
+ "name": "uint8",
490
+ "nodeType": "ElementaryTypeName",
491
+ "src": "674:5:6",
492
+ "typeDescriptions": {
493
+ "typeIdentifier": "t_uint8",
494
+ "typeString": "uint8"
495
+ }
496
+ },
497
+ "visibility": "internal"
498
+ }
499
+ ],
500
+ "src": "673:7:6"
501
+ },
502
+ "scope": 1082,
503
+ "src": "631:50:6",
504
+ "stateMutability": "view",
505
+ "virtual": false,
506
+ "visibility": "external"
507
+ }
508
+ ],
509
+ "scope": 1083,
510
+ "src": "278:405:6",
511
+ "usedErrors": [],
512
+ "usedEvents": [
513
+ 836,
514
+ 845
515
+ ]
516
+ }
517
+ ],
518
+ "src": "125:559:6"
519
+ },
520
+ "compiler": {
521
+ "name": "solc",
522
+ "version": "0.8.21+commit.d9974bed.Emscripten.clang"
523
+ },
524
+ "networks": {},
525
+ "schemaVersion": "3.4.16",
526
+ "updatedAt": "2026-01-24T20:23:03.913Z",
527
+ "devdoc": {
528
+ "details": "Interface for the optional metadata functions from the ERC-20 standard.",
529
+ "events": {
530
+ "Approval(address,address,uint256)": {
531
+ "details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
532
+ },
533
+ "Transfer(address,address,uint256)": {
534
+ "details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
535
+ }
536
+ },
537
+ "kind": "dev",
538
+ "methods": {
539
+ "allowance(address,address)": {
540
+ "details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
541
+ },
542
+ "approve(address,uint256)": {
543
+ "details": "Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."
544
+ },
545
+ "balanceOf(address)": {
546
+ "details": "Returns the value of tokens owned by `account`."
547
+ },
548
+ "decimals()": {
549
+ "details": "Returns the decimals places of the token."
550
+ },
551
+ "name()": {
552
+ "details": "Returns the name of the token."
553
+ },
554
+ "symbol()": {
555
+ "details": "Returns the symbol of the token."
556
+ },
557
+ "totalSupply()": {
558
+ "details": "Returns the value of tokens in existence."
559
+ },
560
+ "transfer(address,uint256)": {
561
+ "details": "Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
562
+ },
563
+ "transferFrom(address,address,uint256)": {
564
+ "details": "Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
565
+ }
566
+ },
567
+ "version": 1
568
+ },
569
+ "userdoc": {
570
+ "kind": "user",
571
+ "methods": {},
572
+ "version": 1
573
+ }
574
+ }