@aastar/core 0.16.7

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 (136) hide show
  1. package/LICENSE +21 -0
  2. package/dist/abis/BLSAggregator.json +686 -0
  3. package/dist/abis/BLSValidator.json +42 -0
  4. package/dist/abis/DVTValidator.json +368 -0
  5. package/dist/abis/Eip7702Support.json +24 -0
  6. package/dist/abis/EntryPoint.json +1382 -0
  7. package/dist/abis/GToken.json +513 -0
  8. package/dist/abis/GTokenStaking.json +949 -0
  9. package/dist/abis/LegacyAccount.json +625 -0
  10. package/dist/abis/MySBT.json +1518 -0
  11. package/dist/abis/Paymaster.json +1143 -0
  12. package/dist/abis/PaymasterFactory.json +640 -0
  13. package/dist/abis/Registry.json +1942 -0
  14. package/dist/abis/ReputationSystem.json +699 -0
  15. package/dist/abis/SenderCreator.json +99 -0
  16. package/dist/abis/Simple7702Account.json +395 -0
  17. package/dist/abis/SimpleAccount.json +560 -0
  18. package/dist/abis/SimpleAccountFactory.json +111 -0
  19. package/dist/abis/SimpleAccountFactoryV08.json +87 -0
  20. package/dist/abis/SimpleAccountV08.json +557 -0
  21. package/dist/abis/SuperPaymaster.json +1781 -0
  22. package/dist/abis/UserOperationLib.json +57 -0
  23. package/dist/abis/abi.config.json +24 -0
  24. package/dist/abis/index.d.ts +1126 -0
  25. package/dist/abis/index.js +91 -0
  26. package/dist/abis/xPNTsFactory.json +718 -0
  27. package/dist/abis/xPNTsToken.json +1280 -0
  28. package/dist/actions/StateValidator.d.ts +68 -0
  29. package/dist/actions/StateValidator.js +187 -0
  30. package/dist/actions/StateValidator.test.d.ts +1 -0
  31. package/dist/actions/StateValidator.test.js +144 -0
  32. package/dist/actions/account.d.ts +55 -0
  33. package/dist/actions/account.js +133 -0
  34. package/dist/actions/account.test.d.ts +1 -0
  35. package/dist/actions/account.test.js +118 -0
  36. package/dist/actions/aggregator.d.ts +17 -0
  37. package/dist/actions/aggregator.js +31 -0
  38. package/dist/actions/aggregator.test.d.ts +1 -0
  39. package/dist/actions/aggregator.test.js +67 -0
  40. package/dist/actions/dvt.d.ts +30 -0
  41. package/dist/actions/dvt.js +41 -0
  42. package/dist/actions/dvt.test.d.ts +1 -0
  43. package/dist/actions/dvt.test.js +98 -0
  44. package/dist/actions/entryPoint.d.ts +90 -0
  45. package/dist/actions/entryPoint.js +211 -0
  46. package/dist/actions/entryPoint.test.d.ts +1 -0
  47. package/dist/actions/entryPoint.test.js +139 -0
  48. package/dist/actions/factory.d.ts +215 -0
  49. package/dist/actions/factory.js +442 -0
  50. package/dist/actions/factory.test.d.ts +1 -0
  51. package/dist/actions/factory.test.js +197 -0
  52. package/dist/actions/faucet.d.ts +48 -0
  53. package/dist/actions/faucet.js +337 -0
  54. package/dist/actions/faucet.test.d.ts +1 -0
  55. package/dist/actions/faucet.test.js +120 -0
  56. package/dist/actions/gtokenExtended.d.ts +39 -0
  57. package/dist/actions/gtokenExtended.js +115 -0
  58. package/dist/actions/gtokenExtended.test.d.ts +1 -0
  59. package/dist/actions/gtokenExtended.test.js +118 -0
  60. package/dist/actions/index.d.ts +15 -0
  61. package/dist/actions/index.js +17 -0
  62. package/dist/actions/paymasterV4.d.ts +170 -0
  63. package/dist/actions/paymasterV4.js +334 -0
  64. package/dist/actions/paymasterV4.test.d.ts +1 -0
  65. package/dist/actions/paymasterV4.test.js +159 -0
  66. package/dist/actions/registry.d.ts +246 -0
  67. package/dist/actions/registry.js +667 -0
  68. package/dist/actions/registry.test.d.ts +1 -0
  69. package/dist/actions/registry.test.js +360 -0
  70. package/dist/actions/reputation.d.ts +129 -0
  71. package/dist/actions/reputation.js +281 -0
  72. package/dist/actions/reputation.test.d.ts +1 -0
  73. package/dist/actions/reputation.test.js +169 -0
  74. package/dist/actions/sbt.d.ts +191 -0
  75. package/dist/actions/sbt.js +533 -0
  76. package/dist/actions/sbt.test.d.ts +1 -0
  77. package/dist/actions/sbt.test.js +256 -0
  78. package/dist/actions/staking.d.ts +132 -0
  79. package/dist/actions/staking.js +330 -0
  80. package/dist/actions/staking.test.d.ts +1 -0
  81. package/dist/actions/staking.test.js +223 -0
  82. package/dist/actions/superPaymaster.d.ts +237 -0
  83. package/dist/actions/superPaymaster.js +644 -0
  84. package/dist/actions/superPaymaster.test.d.ts +1 -0
  85. package/dist/actions/superPaymaster.test.js +287 -0
  86. package/dist/actions/tokens.d.ts +229 -0
  87. package/dist/actions/tokens.js +415 -0
  88. package/dist/actions/tokens.test.d.ts +1 -0
  89. package/dist/actions/tokens.test.js +53 -0
  90. package/dist/actions/validators.d.ts +194 -0
  91. package/dist/actions/validators.js +433 -0
  92. package/dist/actions/validators.test.d.ts +1 -0
  93. package/dist/actions/validators.test.js +215 -0
  94. package/dist/branding.d.ts +30 -0
  95. package/dist/branding.js +30 -0
  96. package/dist/clients/BaseClient.d.ts +25 -0
  97. package/dist/clients/BaseClient.js +66 -0
  98. package/dist/clients/types.d.ts +60 -0
  99. package/dist/clients/types.js +1 -0
  100. package/dist/clients.d.ts +5 -0
  101. package/dist/clients.js +11 -0
  102. package/dist/communities.d.ts +52 -0
  103. package/dist/communities.js +73 -0
  104. package/dist/config/ContractConfigManager.d.ts +20 -0
  105. package/dist/config/ContractConfigManager.js +48 -0
  106. package/dist/constants.d.ts +88 -0
  107. package/dist/constants.js +125 -0
  108. package/dist/contract-addresses.d.ts +110 -0
  109. package/dist/contract-addresses.js +99 -0
  110. package/dist/contracts.d.ts +424 -0
  111. package/dist/contracts.js +343 -0
  112. package/dist/contracts.test.d.ts +1 -0
  113. package/dist/contracts.test.js +40 -0
  114. package/dist/crypto/blsSigner.d.ts +64 -0
  115. package/dist/crypto/blsSigner.js +98 -0
  116. package/dist/crypto/index.d.ts +1 -0
  117. package/dist/crypto/index.js +1 -0
  118. package/dist/index.d.ts +21 -0
  119. package/dist/index.js +21 -0
  120. package/dist/networks.d.ts +127 -0
  121. package/dist/networks.js +118 -0
  122. package/dist/requirementChecker.d.ts +38 -0
  123. package/dist/requirementChecker.js +139 -0
  124. package/dist/requirementChecker.test.d.ts +1 -0
  125. package/dist/requirementChecker.test.js +60 -0
  126. package/dist/roles.d.ts +204 -0
  127. package/dist/roles.js +211 -0
  128. package/dist/roles.test.d.ts +1 -0
  129. package/dist/roles.test.js +23 -0
  130. package/dist/utils/validation.d.ts +24 -0
  131. package/dist/utils/validation.js +56 -0
  132. package/dist/utils/validation.test.d.ts +1 -0
  133. package/dist/utils/validation.test.js +40 -0
  134. package/dist/utils.d.ts +12 -0
  135. package/dist/utils.js +14 -0
  136. package/package.json +33 -0
@@ -0,0 +1,949 @@
1
+ {
2
+ "abi": [
3
+ {
4
+ "type": "constructor",
5
+ "inputs": [
6
+ {
7
+ "name": "_gtoken",
8
+ "type": "address",
9
+ "internalType": "address"
10
+ },
11
+ {
12
+ "name": "_treasury",
13
+ "type": "address",
14
+ "internalType": "address"
15
+ }
16
+ ],
17
+ "stateMutability": "nonpayable"
18
+ },
19
+ {
20
+ "type": "function",
21
+ "name": "GTOKEN",
22
+ "inputs": [],
23
+ "outputs": [
24
+ {
25
+ "name": "",
26
+ "type": "address",
27
+ "internalType": "contract IERC20"
28
+ }
29
+ ],
30
+ "stateMutability": "view"
31
+ },
32
+ {
33
+ "type": "function",
34
+ "name": "REGISTRY",
35
+ "inputs": [],
36
+ "outputs": [
37
+ {
38
+ "name": "",
39
+ "type": "address",
40
+ "internalType": "address"
41
+ }
42
+ ],
43
+ "stateMutability": "view"
44
+ },
45
+ {
46
+ "type": "function",
47
+ "name": "authorizedSlashers",
48
+ "inputs": [
49
+ {
50
+ "name": "",
51
+ "type": "address",
52
+ "internalType": "address"
53
+ }
54
+ ],
55
+ "outputs": [
56
+ {
57
+ "name": "",
58
+ "type": "bool",
59
+ "internalType": "bool"
60
+ }
61
+ ],
62
+ "stateMutability": "view"
63
+ },
64
+ {
65
+ "type": "function",
66
+ "name": "availableBalance",
67
+ "inputs": [
68
+ {
69
+ "name": "",
70
+ "type": "address",
71
+ "internalType": "address"
72
+ }
73
+ ],
74
+ "outputs": [
75
+ {
76
+ "name": "",
77
+ "type": "uint256",
78
+ "internalType": "uint256"
79
+ }
80
+ ],
81
+ "stateMutability": "pure"
82
+ },
83
+ {
84
+ "type": "function",
85
+ "name": "balanceOf",
86
+ "inputs": [
87
+ {
88
+ "name": "user",
89
+ "type": "address",
90
+ "internalType": "address"
91
+ }
92
+ ],
93
+ "outputs": [
94
+ {
95
+ "name": "",
96
+ "type": "uint256",
97
+ "internalType": "uint256"
98
+ }
99
+ ],
100
+ "stateMutability": "view"
101
+ },
102
+ {
103
+ "type": "function",
104
+ "name": "getLockedStake",
105
+ "inputs": [
106
+ {
107
+ "name": "user",
108
+ "type": "address",
109
+ "internalType": "address"
110
+ },
111
+ {
112
+ "name": "roleId",
113
+ "type": "bytes32",
114
+ "internalType": "bytes32"
115
+ }
116
+ ],
117
+ "outputs": [
118
+ {
119
+ "name": "",
120
+ "type": "uint256",
121
+ "internalType": "uint256"
122
+ }
123
+ ],
124
+ "stateMutability": "view"
125
+ },
126
+ {
127
+ "type": "function",
128
+ "name": "getStakeInfo",
129
+ "inputs": [
130
+ {
131
+ "name": "operator",
132
+ "type": "address",
133
+ "internalType": "address"
134
+ },
135
+ {
136
+ "name": "roleId",
137
+ "type": "bytes32",
138
+ "internalType": "bytes32"
139
+ }
140
+ ],
141
+ "outputs": [
142
+ {
143
+ "name": "",
144
+ "type": "tuple",
145
+ "internalType": "struct IGTokenStaking.StakeInfo",
146
+ "components": [
147
+ {
148
+ "name": "amount",
149
+ "type": "uint256",
150
+ "internalType": "uint256"
151
+ },
152
+ {
153
+ "name": "slashedAmount",
154
+ "type": "uint256",
155
+ "internalType": "uint256"
156
+ },
157
+ {
158
+ "name": "stakedAt",
159
+ "type": "uint256",
160
+ "internalType": "uint256"
161
+ },
162
+ {
163
+ "name": "unstakeRequestedAt",
164
+ "type": "uint256",
165
+ "internalType": "uint256"
166
+ }
167
+ ]
168
+ }
169
+ ],
170
+ "stateMutability": "view"
171
+ },
172
+ {
173
+ "type": "function",
174
+ "name": "getUserRoleLocks",
175
+ "inputs": [
176
+ {
177
+ "name": "user",
178
+ "type": "address",
179
+ "internalType": "address"
180
+ }
181
+ ],
182
+ "outputs": [
183
+ {
184
+ "name": "",
185
+ "type": "tuple[]",
186
+ "internalType": "struct IGTokenStaking.RoleLock[]",
187
+ "components": [
188
+ {
189
+ "name": "amount",
190
+ "type": "uint128",
191
+ "internalType": "uint128"
192
+ },
193
+ {
194
+ "name": "entryBurn",
195
+ "type": "uint128",
196
+ "internalType": "uint128"
197
+ },
198
+ {
199
+ "name": "lockedAt",
200
+ "type": "uint48",
201
+ "internalType": "uint48"
202
+ },
203
+ {
204
+ "name": "roleId",
205
+ "type": "bytes32",
206
+ "internalType": "bytes32"
207
+ },
208
+ {
209
+ "name": "metadata",
210
+ "type": "bytes",
211
+ "internalType": "bytes"
212
+ }
213
+ ]
214
+ }
215
+ ],
216
+ "stateMutability": "view"
217
+ },
218
+ {
219
+ "type": "function",
220
+ "name": "hasRoleLock",
221
+ "inputs": [
222
+ {
223
+ "name": "user",
224
+ "type": "address",
225
+ "internalType": "address"
226
+ },
227
+ {
228
+ "name": "roleId",
229
+ "type": "bytes32",
230
+ "internalType": "bytes32"
231
+ }
232
+ ],
233
+ "outputs": [
234
+ {
235
+ "name": "",
236
+ "type": "bool",
237
+ "internalType": "bool"
238
+ }
239
+ ],
240
+ "stateMutability": "view"
241
+ },
242
+ {
243
+ "type": "function",
244
+ "name": "lockStake",
245
+ "inputs": [
246
+ {
247
+ "name": "user",
248
+ "type": "address",
249
+ "internalType": "address"
250
+ },
251
+ {
252
+ "name": "roleId",
253
+ "type": "bytes32",
254
+ "internalType": "bytes32"
255
+ },
256
+ {
257
+ "name": "stakeAmount",
258
+ "type": "uint256",
259
+ "internalType": "uint256"
260
+ },
261
+ {
262
+ "name": "entryBurn",
263
+ "type": "uint256",
264
+ "internalType": "uint256"
265
+ },
266
+ {
267
+ "name": "payer",
268
+ "type": "address",
269
+ "internalType": "address"
270
+ }
271
+ ],
272
+ "outputs": [
273
+ {
274
+ "name": "lockId",
275
+ "type": "uint256",
276
+ "internalType": "uint256"
277
+ }
278
+ ],
279
+ "stateMutability": "nonpayable"
280
+ },
281
+ {
282
+ "type": "function",
283
+ "name": "owner",
284
+ "inputs": [],
285
+ "outputs": [
286
+ {
287
+ "name": "",
288
+ "type": "address",
289
+ "internalType": "address"
290
+ }
291
+ ],
292
+ "stateMutability": "view"
293
+ },
294
+ {
295
+ "type": "function",
296
+ "name": "previewExitFee",
297
+ "inputs": [
298
+ {
299
+ "name": "user",
300
+ "type": "address",
301
+ "internalType": "address"
302
+ },
303
+ {
304
+ "name": "roleId",
305
+ "type": "bytes32",
306
+ "internalType": "bytes32"
307
+ }
308
+ ],
309
+ "outputs": [
310
+ {
311
+ "name": "fee",
312
+ "type": "uint256",
313
+ "internalType": "uint256"
314
+ },
315
+ {
316
+ "name": "netAmount",
317
+ "type": "uint256",
318
+ "internalType": "uint256"
319
+ }
320
+ ],
321
+ "stateMutability": "view"
322
+ },
323
+ {
324
+ "type": "function",
325
+ "name": "renounceOwnership",
326
+ "inputs": [],
327
+ "outputs": [],
328
+ "stateMutability": "nonpayable"
329
+ },
330
+ {
331
+ "type": "function",
332
+ "name": "roleExitConfigs",
333
+ "inputs": [
334
+ {
335
+ "name": "",
336
+ "type": "bytes32",
337
+ "internalType": "bytes32"
338
+ }
339
+ ],
340
+ "outputs": [
341
+ {
342
+ "name": "feePercent",
343
+ "type": "uint256",
344
+ "internalType": "uint256"
345
+ },
346
+ {
347
+ "name": "minFee",
348
+ "type": "uint256",
349
+ "internalType": "uint256"
350
+ }
351
+ ],
352
+ "stateMutability": "view"
353
+ },
354
+ {
355
+ "type": "function",
356
+ "name": "roleLocks",
357
+ "inputs": [
358
+ {
359
+ "name": "",
360
+ "type": "address",
361
+ "internalType": "address"
362
+ },
363
+ {
364
+ "name": "",
365
+ "type": "bytes32",
366
+ "internalType": "bytes32"
367
+ }
368
+ ],
369
+ "outputs": [
370
+ {
371
+ "name": "amount",
372
+ "type": "uint128",
373
+ "internalType": "uint128"
374
+ },
375
+ {
376
+ "name": "entryBurn",
377
+ "type": "uint128",
378
+ "internalType": "uint128"
379
+ },
380
+ {
381
+ "name": "lockedAt",
382
+ "type": "uint48",
383
+ "internalType": "uint48"
384
+ },
385
+ {
386
+ "name": "roleId",
387
+ "type": "bytes32",
388
+ "internalType": "bytes32"
389
+ },
390
+ {
391
+ "name": "metadata",
392
+ "type": "bytes",
393
+ "internalType": "bytes"
394
+ }
395
+ ],
396
+ "stateMutability": "view"
397
+ },
398
+ {
399
+ "type": "function",
400
+ "name": "setAuthorizedSlasher",
401
+ "inputs": [
402
+ {
403
+ "name": "slasher",
404
+ "type": "address",
405
+ "internalType": "address"
406
+ },
407
+ {
408
+ "name": "authorized",
409
+ "type": "bool",
410
+ "internalType": "bool"
411
+ }
412
+ ],
413
+ "outputs": [],
414
+ "stateMutability": "nonpayable"
415
+ },
416
+ {
417
+ "type": "function",
418
+ "name": "setRegistry",
419
+ "inputs": [
420
+ {
421
+ "name": "_registry",
422
+ "type": "address",
423
+ "internalType": "address"
424
+ }
425
+ ],
426
+ "outputs": [],
427
+ "stateMutability": "nonpayable"
428
+ },
429
+ {
430
+ "type": "function",
431
+ "name": "setRoleExitFee",
432
+ "inputs": [
433
+ {
434
+ "name": "roleId",
435
+ "type": "bytes32",
436
+ "internalType": "bytes32"
437
+ },
438
+ {
439
+ "name": "feePercent",
440
+ "type": "uint256",
441
+ "internalType": "uint256"
442
+ },
443
+ {
444
+ "name": "minFee",
445
+ "type": "uint256",
446
+ "internalType": "uint256"
447
+ }
448
+ ],
449
+ "outputs": [],
450
+ "stateMutability": "nonpayable"
451
+ },
452
+ {
453
+ "type": "function",
454
+ "name": "setTreasury",
455
+ "inputs": [
456
+ {
457
+ "name": "_treasury",
458
+ "type": "address",
459
+ "internalType": "address"
460
+ }
461
+ ],
462
+ "outputs": [],
463
+ "stateMutability": "nonpayable"
464
+ },
465
+ {
466
+ "type": "function",
467
+ "name": "slash",
468
+ "inputs": [
469
+ {
470
+ "name": "user",
471
+ "type": "address",
472
+ "internalType": "address"
473
+ },
474
+ {
475
+ "name": "amount",
476
+ "type": "uint256",
477
+ "internalType": "uint256"
478
+ },
479
+ {
480
+ "name": "reason",
481
+ "type": "string",
482
+ "internalType": "string"
483
+ }
484
+ ],
485
+ "outputs": [
486
+ {
487
+ "name": "slashedAmount",
488
+ "type": "uint256",
489
+ "internalType": "uint256"
490
+ }
491
+ ],
492
+ "stateMutability": "nonpayable"
493
+ },
494
+ {
495
+ "type": "function",
496
+ "name": "slashByDVT",
497
+ "inputs": [
498
+ {
499
+ "name": "operator",
500
+ "type": "address",
501
+ "internalType": "address"
502
+ },
503
+ {
504
+ "name": "roleId",
505
+ "type": "bytes32",
506
+ "internalType": "bytes32"
507
+ },
508
+ {
509
+ "name": "penaltyAmount",
510
+ "type": "uint256",
511
+ "internalType": "uint256"
512
+ },
513
+ {
514
+ "name": "reason",
515
+ "type": "string",
516
+ "internalType": "string"
517
+ }
518
+ ],
519
+ "outputs": [],
520
+ "stateMutability": "nonpayable"
521
+ },
522
+ {
523
+ "type": "function",
524
+ "name": "stakes",
525
+ "inputs": [
526
+ {
527
+ "name": "",
528
+ "type": "address",
529
+ "internalType": "address"
530
+ }
531
+ ],
532
+ "outputs": [
533
+ {
534
+ "name": "amount",
535
+ "type": "uint256",
536
+ "internalType": "uint256"
537
+ },
538
+ {
539
+ "name": "slashedAmount",
540
+ "type": "uint256",
541
+ "internalType": "uint256"
542
+ },
543
+ {
544
+ "name": "stakedAt",
545
+ "type": "uint256",
546
+ "internalType": "uint256"
547
+ },
548
+ {
549
+ "name": "unstakeRequestedAt",
550
+ "type": "uint256",
551
+ "internalType": "uint256"
552
+ }
553
+ ],
554
+ "stateMutability": "view"
555
+ },
556
+ {
557
+ "type": "function",
558
+ "name": "topUpStake",
559
+ "inputs": [
560
+ {
561
+ "name": "user",
562
+ "type": "address",
563
+ "internalType": "address"
564
+ },
565
+ {
566
+ "name": "roleId",
567
+ "type": "bytes32",
568
+ "internalType": "bytes32"
569
+ },
570
+ {
571
+ "name": "stakeAmount",
572
+ "type": "uint256",
573
+ "internalType": "uint256"
574
+ },
575
+ {
576
+ "name": "payer",
577
+ "type": "address",
578
+ "internalType": "address"
579
+ }
580
+ ],
581
+ "outputs": [],
582
+ "stateMutability": "nonpayable"
583
+ },
584
+ {
585
+ "type": "function",
586
+ "name": "totalStaked",
587
+ "inputs": [],
588
+ "outputs": [
589
+ {
590
+ "name": "",
591
+ "type": "uint256",
592
+ "internalType": "uint256"
593
+ }
594
+ ],
595
+ "stateMutability": "view"
596
+ },
597
+ {
598
+ "type": "function",
599
+ "name": "transferOwnership",
600
+ "inputs": [
601
+ {
602
+ "name": "newOwner",
603
+ "type": "address",
604
+ "internalType": "address"
605
+ }
606
+ ],
607
+ "outputs": [],
608
+ "stateMutability": "nonpayable"
609
+ },
610
+ {
611
+ "type": "function",
612
+ "name": "treasury",
613
+ "inputs": [],
614
+ "outputs": [
615
+ {
616
+ "name": "",
617
+ "type": "address",
618
+ "internalType": "address"
619
+ }
620
+ ],
621
+ "stateMutability": "view"
622
+ },
623
+ {
624
+ "type": "function",
625
+ "name": "unlockAndTransfer",
626
+ "inputs": [
627
+ {
628
+ "name": "user",
629
+ "type": "address",
630
+ "internalType": "address"
631
+ },
632
+ {
633
+ "name": "roleId",
634
+ "type": "bytes32",
635
+ "internalType": "bytes32"
636
+ }
637
+ ],
638
+ "outputs": [
639
+ {
640
+ "name": "netAmount",
641
+ "type": "uint256",
642
+ "internalType": "uint256"
643
+ }
644
+ ],
645
+ "stateMutability": "nonpayable"
646
+ },
647
+ {
648
+ "type": "function",
649
+ "name": "userActiveRoles",
650
+ "inputs": [
651
+ {
652
+ "name": "",
653
+ "type": "address",
654
+ "internalType": "address"
655
+ },
656
+ {
657
+ "name": "",
658
+ "type": "uint256",
659
+ "internalType": "uint256"
660
+ }
661
+ ],
662
+ "outputs": [
663
+ {
664
+ "name": "",
665
+ "type": "bytes32",
666
+ "internalType": "bytes32"
667
+ }
668
+ ],
669
+ "stateMutability": "view"
670
+ },
671
+ {
672
+ "type": "function",
673
+ "name": "version",
674
+ "inputs": [],
675
+ "outputs": [
676
+ {
677
+ "name": "",
678
+ "type": "string",
679
+ "internalType": "string"
680
+ }
681
+ ],
682
+ "stateMutability": "pure"
683
+ },
684
+ {
685
+ "type": "event",
686
+ "name": "OwnershipTransferred",
687
+ "inputs": [
688
+ {
689
+ "name": "previousOwner",
690
+ "type": "address",
691
+ "indexed": true,
692
+ "internalType": "address"
693
+ },
694
+ {
695
+ "name": "newOwner",
696
+ "type": "address",
697
+ "indexed": true,
698
+ "internalType": "address"
699
+ }
700
+ ],
701
+ "anonymous": false
702
+ },
703
+ {
704
+ "type": "event",
705
+ "name": "StakeLocked",
706
+ "inputs": [
707
+ {
708
+ "name": "user",
709
+ "type": "address",
710
+ "indexed": true,
711
+ "internalType": "address"
712
+ },
713
+ {
714
+ "name": "roleId",
715
+ "type": "bytes32",
716
+ "indexed": true,
717
+ "internalType": "bytes32"
718
+ },
719
+ {
720
+ "name": "amount",
721
+ "type": "uint256",
722
+ "indexed": false,
723
+ "internalType": "uint256"
724
+ },
725
+ {
726
+ "name": "entryBurn",
727
+ "type": "uint256",
728
+ "indexed": false,
729
+ "internalType": "uint256"
730
+ },
731
+ {
732
+ "name": "timestamp",
733
+ "type": "uint256",
734
+ "indexed": false,
735
+ "internalType": "uint256"
736
+ }
737
+ ],
738
+ "anonymous": false
739
+ },
740
+ {
741
+ "type": "event",
742
+ "name": "StakeSlashed",
743
+ "inputs": [
744
+ {
745
+ "name": "operator",
746
+ "type": "address",
747
+ "indexed": true,
748
+ "internalType": "address"
749
+ },
750
+ {
751
+ "name": "roleId",
752
+ "type": "bytes32",
753
+ "indexed": true,
754
+ "internalType": "bytes32"
755
+ },
756
+ {
757
+ "name": "amount",
758
+ "type": "uint256",
759
+ "indexed": false,
760
+ "internalType": "uint256"
761
+ },
762
+ {
763
+ "name": "reason",
764
+ "type": "string",
765
+ "indexed": false,
766
+ "internalType": "string"
767
+ },
768
+ {
769
+ "name": "timestamp",
770
+ "type": "uint256",
771
+ "indexed": false,
772
+ "internalType": "uint256"
773
+ }
774
+ ],
775
+ "anonymous": false
776
+ },
777
+ {
778
+ "type": "event",
779
+ "name": "StakeUnlocked",
780
+ "inputs": [
781
+ {
782
+ "name": "user",
783
+ "type": "address",
784
+ "indexed": true,
785
+ "internalType": "address"
786
+ },
787
+ {
788
+ "name": "roleId",
789
+ "type": "bytes32",
790
+ "indexed": true,
791
+ "internalType": "bytes32"
792
+ },
793
+ {
794
+ "name": "grossAmount",
795
+ "type": "uint256",
796
+ "indexed": false,
797
+ "internalType": "uint256"
798
+ },
799
+ {
800
+ "name": "exitFee",
801
+ "type": "uint256",
802
+ "indexed": false,
803
+ "internalType": "uint256"
804
+ },
805
+ {
806
+ "name": "netAmount",
807
+ "type": "uint256",
808
+ "indexed": false,
809
+ "internalType": "uint256"
810
+ },
811
+ {
812
+ "name": "timestamp",
813
+ "type": "uint256",
814
+ "indexed": false,
815
+ "internalType": "uint256"
816
+ }
817
+ ],
818
+ "anonymous": false
819
+ },
820
+ {
821
+ "type": "event",
822
+ "name": "TokensBurned",
823
+ "inputs": [
824
+ {
825
+ "name": "user",
826
+ "type": "address",
827
+ "indexed": true,
828
+ "internalType": "address"
829
+ },
830
+ {
831
+ "name": "roleId",
832
+ "type": "bytes32",
833
+ "indexed": true,
834
+ "internalType": "bytes32"
835
+ },
836
+ {
837
+ "name": "amount",
838
+ "type": "uint256",
839
+ "indexed": false,
840
+ "internalType": "uint256"
841
+ },
842
+ {
843
+ "name": "purpose",
844
+ "type": "string",
845
+ "indexed": false,
846
+ "internalType": "string"
847
+ }
848
+ ],
849
+ "anonymous": false
850
+ },
851
+ {
852
+ "type": "event",
853
+ "name": "UserSlashed",
854
+ "inputs": [
855
+ {
856
+ "name": "user",
857
+ "type": "address",
858
+ "indexed": true,
859
+ "internalType": "address"
860
+ },
861
+ {
862
+ "name": "amount",
863
+ "type": "uint256",
864
+ "indexed": false,
865
+ "internalType": "uint256"
866
+ },
867
+ {
868
+ "name": "reason",
869
+ "type": "string",
870
+ "indexed": false,
871
+ "internalType": "string"
872
+ },
873
+ {
874
+ "name": "timestamp",
875
+ "type": "uint256",
876
+ "indexed": false,
877
+ "internalType": "uint256"
878
+ }
879
+ ],
880
+ "anonymous": false
881
+ },
882
+ {
883
+ "type": "error",
884
+ "name": "AddressEmptyCode",
885
+ "inputs": [
886
+ {
887
+ "name": "target",
888
+ "type": "address",
889
+ "internalType": "address"
890
+ }
891
+ ]
892
+ },
893
+ {
894
+ "type": "error",
895
+ "name": "AddressInsufficientBalance",
896
+ "inputs": [
897
+ {
898
+ "name": "account",
899
+ "type": "address",
900
+ "internalType": "address"
901
+ }
902
+ ]
903
+ },
904
+ {
905
+ "type": "error",
906
+ "name": "FailedInnerCall",
907
+ "inputs": []
908
+ },
909
+ {
910
+ "type": "error",
911
+ "name": "OwnableInvalidOwner",
912
+ "inputs": [
913
+ {
914
+ "name": "owner",
915
+ "type": "address",
916
+ "internalType": "address"
917
+ }
918
+ ]
919
+ },
920
+ {
921
+ "type": "error",
922
+ "name": "OwnableUnauthorizedAccount",
923
+ "inputs": [
924
+ {
925
+ "name": "account",
926
+ "type": "address",
927
+ "internalType": "address"
928
+ }
929
+ ]
930
+ },
931
+ {
932
+ "type": "error",
933
+ "name": "ReentrancyGuardReentrantCall",
934
+ "inputs": []
935
+ },
936
+ {
937
+ "type": "error",
938
+ "name": "SafeERC20FailedOperation",
939
+ "inputs": [
940
+ {
941
+ "name": "token",
942
+ "type": "address",
943
+ "internalType": "address"
944
+ }
945
+ ]
946
+ }
947
+ ],
948
+ "bytecode": "0x60a03461019c57601f6120f438819003918201601f19168301916001600160401b038311848410176101a057808492604094855283398101031261019c57610052602061004b836101b4565b92016101b4565b60015f5533156101895760018054336001600160a01b0319821681179092556040519391906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36001600160a01b031691821561015657506001600160a01b031690811561011e57608052600380546001600160a01b031916919091179055604051611f2b90816101c982396080518181816104b501528181610e0701528181610ed6015281816111a2015281816113fa0152818161170801526117470152f35b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420547265617375727960801b6044820152606490fd5b62461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21023aa37b5b2b760911b6044820152606490fd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361019c5756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816306433b1b146119715750806316934fc41461192257806330b039ee1461189057806336cb2b821461183d578063374e4d73146114f45780634bcb80a21461137357806354fd4d501461132057806361d027b3146112f8578063678b3ee2146110775780636d265c11146110295780636da12d0c14610fd157806370a0823114610f99578063715018a614610f515780637c50309f14610f055780637f6b337b14610ec1578063817b1cd214610ea45780638da5cb5b14610e7c5780638f76484814610ce957806391b65cd614610ac857806394e2b21e14610a95578063a0821be314610a71578063a91ee0dc146109f3578063aed2d908146109b6578063b4d81fb314610901578063befa570e14610420578063d64c66aa1461038e578063f0f442601461030e578063f2fde38b146102985763f50102c01461015d575f80fd5b3461029557604036600319011261029557608090610179611994565b81606060405161018881611a48565b828152826020820152826040820152015260018060a01b03169081815260056020526040812060243582526020526040812091604051906101c882611a2d565b8354600180871b0381168352851c6020830152610205600365ffffffffffff60018701541695604085019687526002810154606086015201611a86565b858301528252600460205265ffffffffffff604083209160405161022881611a48565b8354815260606003600186015495866020850152600281015460408501520154910152600180871b0390511693511690606060405161026681611a48565b858152602081019283526040810193845201928352604051938452516020840152516040830152516060820152f35b80fd5b5034610295576020366003190112610295576102b2611994565b6102ba611c9b565b6001600160a01b031680156102fa57600180546001600160a01b0319811683179091556001600160a01b03165f516020611e965f395f51905f528380a380f35b631e4fbdf760e01b82526004829052602482fd5b503461029557602036600319011261029557610328611994565b610330611c9b565b6001600160a01b0316801561035657600380546001600160a01b03191691909117905580f35b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420547265617375727960801b6044820152606490fd5b5034610295576060366003190112610295576002546001600160a01b03163314158061040b575b6103d75760043581526007602052604081206024358155600160443591015580f35b60405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606490fd5b506001546001600160a01b03163314156103b5565b503461088d5760a036600319011261088d5761043a611994565b606435916024359160843590604435906001600160a01b038316830361088d57610462611cc2565b6002546001600160a01b031633036108cc576001600160a01b03165f8181526005602090815260408083208884529091529020549092906001600160801b0316610891576104dd6104b38784611bd6565b7f000000000000000000000000000000000000000000000000000000000000000092309084611d20565b856107e0575b508183526004602052604083206104fb828254611bd6565b905581835260046020526002604084200154156107ca575b6001600160801b03811161078c576001600160801b03851161078c576040519461053c86611a2d565b6001600160801b038281168752811660208088019182524265ffffffffffff166040808a0191825260608a0189815290519299929360039392906105808c87611a63565b8986526080848101968752898b5260058d526040808c208d8d528e528b2094519151901b6001600160801b0319166001600160801b03919091161783555160018301805465ffffffffffff191665ffffffffffff929092169190911790555160028201559151805191909201916001600160401b03821161077857819061060784546119c6565b601f811161073f575b508990601f83116001146106dd5788926106d2575b50508160011b915f199060031b1c19161790555b8284526006865260408420805490600160401b8210156106be57869360019695938561069361067d866060968c5f516020611eb65f395f51905f5299018155611b77565b819391549060031b91821b915f19901b19161790565b90556106a182600854611bd6565b60085560405191825289820152426040820152a355604051908152f35b634e487b7160e01b86526041600452602486fd5b015190505f80610625565b8489528a89209250601f198416895b8c828210610729575050908460019594939210610711575b505050811b019055610639565b01515f1960f88460031b161c191690555f8080610704565b60018596829396860151815501950193016106ec565b61076890858a528b8a20601f850160051c8101918d861061076e575b601f0160051c0190611ba0565b5f610610565b909150819061075b565b634e487b7160e01b87526041600452602487fd5b60405162461bcd60e51b8152602060048201526016602482015275082dadeeadce840caf0c6cacac8e640ead2dce86264760531b6044820152606490fd5b8183526004602052426002604085200155610513565b6001600160a01b0316803b1561088d575f8091602460405180948193630852cd8d60e31b83528b60048401525af180156108825761086d575b5083827fbbd5bd0123b04ed83c5d79cf2f6fca38e7b242f17f09d9eea712fb1cbe2fb861608060405189815260406020820152600a60408201526922b73a393c90213ab93760b11b6060820152a35f6104e3565b61087a9193505f90611a63565b5f915f610819565b6040513d5f823e3d90fd5b5f80fd5b60405162461bcd60e51b8152602060048201526013602482015272149bdb1948185b1c9958591e481b1bd8dad959606a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600d60248201526c4f6e6c7920526567697374727960981b6044820152606490fd5b3461088d57604036600319011261088d57604061091c611994565b6001600160a01b03165f9081526005602090815282822060243583528152828220546007909152908290208251916001600160801b0316906127109061097c90610965856119fe565b602060018254928388520154950194855283611bb6565b0491518083106109ae575b508082116109a6575b8161099a91611bc9565b82519182526020820152f35b905080610990565b915083610987565b3461088d57602036600319011261088d576001600160a01b036109d7611994565b165f526009602052602060ff60405f2054166040519015158152f35b3461088d57602036600319011261088d57610a0c611994565b610a14611c9b565b6001600160a01b03168015610a3957600280546001600160a01b031916919091179055005b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420526567697374727960801b6044820152606490fd5b3461088d57602036600319011261088d57610a8a611994565b5060206040515f8152f35b3461088d57602036600319011261088d576004355f5260076020526040805f206001815491015482519182526020820152f35b3461088d57602036600319011261088d576001600160a01b03610ae9611994565b16805f52600660205260405f2090604051808360208295549384815201905f5260205f20925f5b818110610cd0575050610b2592500383611a63565b815191610b3183611c70565b92610b3f6040519485611a63565b808452610b4e601f1991611c70565b015f5b818110610c9a5750505f5b8151811015610bf057600190835f52600560205260405f20610b7e8285611c87565b515f5260205260405f20610bcf600360405192610b9a84611a2d565b8054868060801b038116855260801c602085015265ffffffffffff868201541660408501526002810154606085015201611a86565b6080820152610bde8287611c87565b52610be98186611c87565b5001610b5c565b836040518091602082016020835281518091526040830190602060408260051b8601019301915f905b828210610c2857505050500390f35b91936001919395506020610c8a8192603f198a820301865260a060808a518780831b0381511684528780831b0386820151168685015265ffffffffffff6040820151166040850152606081015160608501520151918160808201520190611b26565b9601920192018594939192610c19565b602090604051610ca981611a2d565b5f81525f838201525f60408201525f60608201526060608082015282828801015201610b51565b8454835260019485019487945060209093019201610b10565b3461088d57608036600319011261088d57610d02611994565b604435906064356001600160401b03811161088d57610d25903690600401611b4a565b90335f52600960205260ff60405f20541615610e3e57610e395f516020611e765f395f51905f529360018060a01b031694855f52600560205260405f206024355f5260205260405f2060018060801b03815416610d8483821015611c2f565b6001600160801b0390610d9a9084831690611be3565b82546001600160801b03191691161790555f8681526004602052604090208054610de2908390610dcc82821015611c2f565b60018401610ddb838254611bd6565b9055611bc9565b9055610df081600854611bc9565b600855600354610e2b9082906001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000611ce0565b604051938493429285611bfc565b0390a2005b60405162461bcd60e51b81526020600482015260166024820152752737ba1030baba3437b934bd32b21039b630b9b432b960511b6044820152606490fd5b3461088d575f36600319011261088d576001546040516001600160a01b039091168152602090f35b3461088d575f36600319011261088d576020600854604051908152f35b3461088d575f36600319011261088d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461088d57604036600319011261088d576001600160a01b03610f26611994565b165f52600560205260405f206024355f52602052602060018060801b0360405f205416604051908152f35b3461088d575f36600319011261088d57610f69611c9b565b600180546001600160a01b031981169091555f906001600160a01b03165f516020611e965f395f51905f528280a3005b3461088d57602036600319011261088d576001600160a01b03610fba611994565b165f526004602052602060405f2054604051908152f35b3461088d57604036600319011261088d57610fea611994565b6001600160a01b03165f9081526006602052604090208054602435919082101561088d5760209161101a91611b77565b90549060031b1c604051908152f35b3461088d57604036600319011261088d576001600160a01b0361104a611994565b165f52600560205260405f206024355f52602052602060018060801b0360405f2054161515604051908152f35b3461088d57606036600319011261088d57611090611994565b6024356044356001600160401b03811161088d576110b2903690600401611b4a565b926110bb611cc2565b6002546001600160a01b0316331415806112e1575b61129e576001600160a01b03165f818152600460205260409020805493919291848111156112985750835b84611136575b50505f516020611e765f395f51905f529060209461112760405192839242918885611bfc565b0390a260015f55604051908152f35b8461114a9160018401610ddb838254611bd6565b815561115884600854611bc9565b600855825f5260066020526111728460405f209254611bd6565b80159182156111cf575b5050505f516020611e765f395f51905f52906020946111c68560018060a01b03600354167f0000000000000000000000000000000000000000000000000000000000000000611ce0565b94819250611101565b919594925f9491945b835481101561127757825f52600560205260405f206111f78286611b77565b90549060031b1c5f5260205260405f209060018060801b038254169161121d8784611bb6565b928a6112635788600194049080821161125b575b608085901b859003916112479190831690611be3565b16838060801b0319825416179055016111d8565b905080611231565b634e487b7160e01b5f52601260045260245ffd5b5091509250602094505f516020611e765f395f51905f52919394819261117c565b936110fb565b60405162461bcd60e51b815260206004820152601b60248201527a13db9b1e48149959da5cdd1c9e481bdc88185d5d1a1bdc9a5e9959602a1b6044820152606490fd5b50335f52600960205260ff60405f205416156110d0565b3461088d575f36600319011261088d576003546040516001600160a01b039091168152602090f35b3461088d575f36600319011261088d5761136f604051611341604082611a63565b600d81526c29ba30b5b4b73396999718971960991b6020820152604051918291602083526020830190611b26565b0390f35b3461088d57608036600319011261088d5761138c611994565b6024359060443590606435906001600160a01b038216820361088d576113b0611cc2565b6002546001600160a01b031633036108cc5760018060a01b031691825f52600560205260405f20845f5260205260405f209160018060801b03835416156114bd578161141e9130907f0000000000000000000000000000000000000000000000000000000000000000611d20565b81546001600160801b0390811682821601919082116114a95765ffffffffffff60015f516020611eb65f395f51905f5294606094828060801b0316828060801b0319825416178155865f52600460205260405f2061147d858254611bd6565b905561148b84600854611bd6565b6008550154166040519182525f60208301526040820152a360015f55005b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b815260206004820152600f60248201526e149bdb19481b9bdd081b1bd8dad959608a1b6044820152606490fd5b3461088d57604036600319011261088d5761150d611994565b60243590611519611cc2565b6002546001600160a01b031633036108cc5760018060a01b03811691825f52600560205260405f20815f5260205260405f2065ffffffffffff600182015416156118085760018060801b0390541690835f52600560205260405f20815f52602052600360405f205f81555f60018201555f60028201550161159a81546119c6565b90816117c5575b5050835f52600660205260405f20935f5b8554808210156117a857836115c78389611b77565b90549060031b1c146115dc57506001016115b2565b5f95929394951981019081116114a95761067d6115fc61160a9289611b77565b90549060031b1c9288611b77565b90558454908115611794576020955f516020611ed65f395f51905f52925f1901906116358282611b77565b8154905f199060031b1b19169055555b825f526004865260405f2061165b868254611bc9565b9055825f526004865260405f20541561177f575b61167b85600854611bc9565b600855835f526007865260405f206127106116b26040519261169c846119fe565b8960018254928387520154940193845288611bb6565b049051808210611777575b50858111611770575b6116f36116d38288611bc9565b96879383611733575b8480611702575b50506040519384934292856119aa565b0390a360015f55604051908152f35b61172c917f0000000000000000000000000000000000000000000000000000000000000000611ce0565b89846116e3565b60035461176b9085906001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000611ce0565b6116dc565b50846116c6565b9050876116bd565b825f52600486525f600160408220015561166f565b634e487b7160e01b5f52603160045260245ffd5b5050909192602094505f516020611ed65f395f51905f5290611645565b81601f5f93116001146117dc5750555b84806115a1565b818352602083206117f891601f0160051c810190600101611ba0565b80825281602081209155556117d5565b60405162461bcd60e51b815260206004820152600d60248201526c139bc81b1bd8dac8199bdd5b99609a1b6044820152606490fd5b3461088d57604036600319011261088d57611856611994565b6024359081151580920361088d5761186c611c9b565b60018060a01b03165f52600960205260405f209060ff801983541691161790555f80f35b3461088d57604036600319011261088d576001600160a01b036118b1611994565b165f52600560205260405f206024355f5260205260405f20805461136f65ffffffffffff600184015416926118ed600360028301549201611a86565b9060405194859460018060801b038116865260801c60208601526040850152606084015260a0608084015260a0830190611b26565b3461088d57602036600319011261088d576001600160a01b03611943611994565b165f52600460205260405f20805461136f6001830154926003600282015491015490604051948594856119aa565b3461088d575f36600319011261088d576002546001600160a01b03168152602090f35b600435906001600160a01b038216820361088d57565b9094939260609260808301968352602083015260408201520152565b90600182811c921680156119f4575b60208310146119e057565b634e487b7160e01b5f52602260045260245ffd5b91607f16916119d5565b604081019081106001600160401b03821117611a1957604052565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b03821117611a1957604052565b608081019081106001600160401b03821117611a1957604052565b601f909101601f19168101906001600160401b03821190821017611a1957604052565b9060405191825f825492611a99846119c6565b8084529360018116908115611b045750600114611ac0575b50611abe92500383611a63565b565b90505f9291925260205f20905f915b818310611ae8575050906020611abe928201015f611ab1565b6020919350806001915483858901015201910190918492611acf565b905060209250611abe94915060ff191682840152151560051b8201015f611ab1565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f8401121561088d578235916001600160401b03831161088d576020838186019501011161088d57565b8054821015611b8c575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b818110611bab575050565b5f8155600101611ba0565b818102929181159184041417156114a957565b919082039182116114a957565b919082018092116114a957565b6001600160801b0391821690821603919082116114a957565b94939280604093608093885260606020890152816060890152838801375f828288010152601f8019910116850101930152565b15611c3657565b60405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e74207374616b6560701b6044820152606490fd5b6001600160401b038111611a195760051b60200190565b8051821015611b8c5760209160051b010190565b6001546001600160a01b03163303611caf57565b63118cdaa760e01b5f523360045260245ffd5b60025f5414611cd15760025f55565b633ee5aeb560e01b5f5260045ffd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611abe91611d1b606483611a63565b611d64565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152611abe91611d1b608483611a63565b81516001600160a01b03909116915f91829160200182855af13d15611e0b573d6001600160401b038111611a1957604051611dbf929091611daf601f8201601f191660200184611a63565b82523d5f602084013e5b83611e17565b8051908115159182611de7575b5050611dd55750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261088d576020015180159081150361088d575f80611dcc565b611dbf90606090611db9565b90611e3b5750805115611e2c57805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580611e6c575b611e4c575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611e4456fe6951689eba99e77d7e3b622f276c0ad8e36126c3c510f181b86d05d685eaa0748be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0e4c76dcad70ec0bf6b921afbe6bb7b4950aedf705245ec68942ea9ecf00f8a0c9cadbc33680e22a2f04ed8eb0d7cc7f218ee9231b3473ed05904c7ec5e2d483da26469706673582212202b02889027c7547c7f85c863dc6a1a547412a5b58bf0673f5d104e22cfaed3a564736f6c634300081c0033"
949
+ }