@wireio/stake 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/lib/stake.browser.js +6681 -115
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +23 -40
  4. package/lib/stake.js +6684 -120
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +6681 -115
  7. package/lib/stake.m.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.dbg.json +4 -0
  10. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.json +1153 -0
  11. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  12. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.json +172 -0
  13. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  14. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.json +39 -0
  15. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  16. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
  17. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthBurn.dbg.json +4 -0
  18. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthBurn.json +24 -0
  19. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthMint.dbg.json +4 -0
  20. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthMint.json +35 -0
  21. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  22. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.json +213 -0
  23. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  24. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.json +138 -0
  25. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  26. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +70 -0
  27. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  28. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +64 -0
  29. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  30. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  31. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20.dbg.json +4 -0
  32. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20.json +749 -0
  33. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20Pausable.dbg.json +4 -0
  34. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20Pausable.json +812 -0
  35. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.dbg.json +4 -0
  36. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.json +10 -0
  37. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.dbg.json +4 -0
  38. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.json +10 -0
  39. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.dbg.json +4 -0
  40. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.json +225 -0
  41. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.dbg.json +4 -0
  42. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.json +10 -0
  43. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.dbg.json +4 -0
  44. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.json +10 -0
  45. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
  46. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.json +813 -0
  47. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.dbg.json +4 -0
  48. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.json +651 -0
  49. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.dbg.json +4 -0
  50. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.json +1110 -0
  51. package/src/assets/ethereum/ABI/liqEth/liqEthBurn.sol/LiqEthBurn.dbg.json +4 -0
  52. package/src/assets/ethereum/ABI/liqEth/liqEthBurn.sol/LiqEthBurn.json +391 -0
  53. package/src/assets/ethereum/ABI/liqEth/liqEthMint.sol/LiqEthMint.dbg.json +4 -0
  54. package/src/assets/ethereum/ABI/liqEth/liqEthMint.sol/LiqEthMint.json +402 -0
  55. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.dbg.json +4 -0
  56. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.json +1225 -0
  57. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
  58. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +927 -0
  59. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
  60. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
  61. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
  62. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.json +447 -0
  63. package/src/index.ts +1 -1
  64. package/src/networks/ethereum/contract.ts +53 -90
  65. package/src/networks/ethereum/ethereum.ts +40 -65
  66. package/src/networks/ethereum/types.ts +6 -9
  67. package/src/networks/solana/solana.ts +36 -32
  68. package/src/staker/staker.ts +6 -3
  69. package/src/staker/types.ts +14 -9
@@ -0,0 +1,1110 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LiqEthToken",
4
+ "sourceName": "contracts/liqEth/liqEth.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "admin",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "minter",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "burner",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "AccessControlBadConfirmation",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "address",
36
+ "name": "account",
37
+ "type": "address"
38
+ },
39
+ {
40
+ "internalType": "bytes32",
41
+ "name": "neededRole",
42
+ "type": "bytes32"
43
+ }
44
+ ],
45
+ "name": "AccessControlUnauthorizedAccount",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [],
50
+ "name": "ECDSAInvalidSignature",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [
55
+ {
56
+ "internalType": "uint256",
57
+ "name": "length",
58
+ "type": "uint256"
59
+ }
60
+ ],
61
+ "name": "ECDSAInvalidSignatureLength",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "bytes32",
68
+ "name": "s",
69
+ "type": "bytes32"
70
+ }
71
+ ],
72
+ "name": "ECDSAInvalidSignatureS",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "address",
79
+ "name": "spender",
80
+ "type": "address"
81
+ },
82
+ {
83
+ "internalType": "uint256",
84
+ "name": "allowance",
85
+ "type": "uint256"
86
+ },
87
+ {
88
+ "internalType": "uint256",
89
+ "name": "needed",
90
+ "type": "uint256"
91
+ }
92
+ ],
93
+ "name": "ERC20InsufficientAllowance",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [
98
+ {
99
+ "internalType": "address",
100
+ "name": "sender",
101
+ "type": "address"
102
+ },
103
+ {
104
+ "internalType": "uint256",
105
+ "name": "balance",
106
+ "type": "uint256"
107
+ },
108
+ {
109
+ "internalType": "uint256",
110
+ "name": "needed",
111
+ "type": "uint256"
112
+ }
113
+ ],
114
+ "name": "ERC20InsufficientBalance",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [
119
+ {
120
+ "internalType": "address",
121
+ "name": "approver",
122
+ "type": "address"
123
+ }
124
+ ],
125
+ "name": "ERC20InvalidApprover",
126
+ "type": "error"
127
+ },
128
+ {
129
+ "inputs": [
130
+ {
131
+ "internalType": "address",
132
+ "name": "receiver",
133
+ "type": "address"
134
+ }
135
+ ],
136
+ "name": "ERC20InvalidReceiver",
137
+ "type": "error"
138
+ },
139
+ {
140
+ "inputs": [
141
+ {
142
+ "internalType": "address",
143
+ "name": "sender",
144
+ "type": "address"
145
+ }
146
+ ],
147
+ "name": "ERC20InvalidSender",
148
+ "type": "error"
149
+ },
150
+ {
151
+ "inputs": [
152
+ {
153
+ "internalType": "address",
154
+ "name": "spender",
155
+ "type": "address"
156
+ }
157
+ ],
158
+ "name": "ERC20InvalidSpender",
159
+ "type": "error"
160
+ },
161
+ {
162
+ "inputs": [
163
+ {
164
+ "internalType": "uint256",
165
+ "name": "deadline",
166
+ "type": "uint256"
167
+ }
168
+ ],
169
+ "name": "ERC2612ExpiredSignature",
170
+ "type": "error"
171
+ },
172
+ {
173
+ "inputs": [
174
+ {
175
+ "internalType": "address",
176
+ "name": "signer",
177
+ "type": "address"
178
+ },
179
+ {
180
+ "internalType": "address",
181
+ "name": "owner",
182
+ "type": "address"
183
+ }
184
+ ],
185
+ "name": "ERC2612InvalidSigner",
186
+ "type": "error"
187
+ },
188
+ {
189
+ "inputs": [],
190
+ "name": "EnforcedPause",
191
+ "type": "error"
192
+ },
193
+ {
194
+ "inputs": [],
195
+ "name": "ExpectedPause",
196
+ "type": "error"
197
+ },
198
+ {
199
+ "inputs": [
200
+ {
201
+ "internalType": "address",
202
+ "name": "account",
203
+ "type": "address"
204
+ },
205
+ {
206
+ "internalType": "uint256",
207
+ "name": "currentNonce",
208
+ "type": "uint256"
209
+ }
210
+ ],
211
+ "name": "InvalidAccountNonce",
212
+ "type": "error"
213
+ },
214
+ {
215
+ "inputs": [],
216
+ "name": "InvalidShortString",
217
+ "type": "error"
218
+ },
219
+ {
220
+ "inputs": [
221
+ {
222
+ "internalType": "string",
223
+ "name": "str",
224
+ "type": "string"
225
+ }
226
+ ],
227
+ "name": "StringTooLong",
228
+ "type": "error"
229
+ },
230
+ {
231
+ "anonymous": false,
232
+ "inputs": [
233
+ {
234
+ "indexed": true,
235
+ "internalType": "address",
236
+ "name": "owner",
237
+ "type": "address"
238
+ },
239
+ {
240
+ "indexed": true,
241
+ "internalType": "address",
242
+ "name": "spender",
243
+ "type": "address"
244
+ },
245
+ {
246
+ "indexed": false,
247
+ "internalType": "uint256",
248
+ "name": "value",
249
+ "type": "uint256"
250
+ }
251
+ ],
252
+ "name": "Approval",
253
+ "type": "event"
254
+ },
255
+ {
256
+ "anonymous": false,
257
+ "inputs": [],
258
+ "name": "EIP712DomainChanged",
259
+ "type": "event"
260
+ },
261
+ {
262
+ "anonymous": false,
263
+ "inputs": [
264
+ {
265
+ "indexed": false,
266
+ "internalType": "uint256",
267
+ "name": "newIndex",
268
+ "type": "uint256"
269
+ },
270
+ {
271
+ "indexed": false,
272
+ "internalType": "uint256",
273
+ "name": "tokenPenalty",
274
+ "type": "uint256"
275
+ }
276
+ ],
277
+ "name": "IndexDecreased",
278
+ "type": "event"
279
+ },
280
+ {
281
+ "anonymous": false,
282
+ "inputs": [
283
+ {
284
+ "indexed": false,
285
+ "internalType": "uint256",
286
+ "name": "newIndex",
287
+ "type": "uint256"
288
+ },
289
+ {
290
+ "indexed": false,
291
+ "internalType": "uint256",
292
+ "name": "tokenReward",
293
+ "type": "uint256"
294
+ }
295
+ ],
296
+ "name": "IndexIncreased",
297
+ "type": "event"
298
+ },
299
+ {
300
+ "anonymous": false,
301
+ "inputs": [
302
+ {
303
+ "indexed": false,
304
+ "internalType": "address",
305
+ "name": "account",
306
+ "type": "address"
307
+ }
308
+ ],
309
+ "name": "Paused",
310
+ "type": "event"
311
+ },
312
+ {
313
+ "anonymous": false,
314
+ "inputs": [
315
+ {
316
+ "indexed": true,
317
+ "internalType": "bytes32",
318
+ "name": "role",
319
+ "type": "bytes32"
320
+ },
321
+ {
322
+ "indexed": true,
323
+ "internalType": "bytes32",
324
+ "name": "previousAdminRole",
325
+ "type": "bytes32"
326
+ },
327
+ {
328
+ "indexed": true,
329
+ "internalType": "bytes32",
330
+ "name": "newAdminRole",
331
+ "type": "bytes32"
332
+ }
333
+ ],
334
+ "name": "RoleAdminChanged",
335
+ "type": "event"
336
+ },
337
+ {
338
+ "anonymous": false,
339
+ "inputs": [
340
+ {
341
+ "indexed": true,
342
+ "internalType": "bytes32",
343
+ "name": "role",
344
+ "type": "bytes32"
345
+ },
346
+ {
347
+ "indexed": true,
348
+ "internalType": "address",
349
+ "name": "account",
350
+ "type": "address"
351
+ },
352
+ {
353
+ "indexed": true,
354
+ "internalType": "address",
355
+ "name": "sender",
356
+ "type": "address"
357
+ }
358
+ ],
359
+ "name": "RoleGranted",
360
+ "type": "event"
361
+ },
362
+ {
363
+ "anonymous": false,
364
+ "inputs": [
365
+ {
366
+ "indexed": true,
367
+ "internalType": "bytes32",
368
+ "name": "role",
369
+ "type": "bytes32"
370
+ },
371
+ {
372
+ "indexed": true,
373
+ "internalType": "address",
374
+ "name": "account",
375
+ "type": "address"
376
+ },
377
+ {
378
+ "indexed": true,
379
+ "internalType": "address",
380
+ "name": "sender",
381
+ "type": "address"
382
+ }
383
+ ],
384
+ "name": "RoleRevoked",
385
+ "type": "event"
386
+ },
387
+ {
388
+ "anonymous": false,
389
+ "inputs": [
390
+ {
391
+ "indexed": true,
392
+ "internalType": "address",
393
+ "name": "from",
394
+ "type": "address"
395
+ },
396
+ {
397
+ "indexed": false,
398
+ "internalType": "uint256",
399
+ "name": "shares",
400
+ "type": "uint256"
401
+ },
402
+ {
403
+ "indexed": false,
404
+ "internalType": "uint256",
405
+ "name": "tokenValue",
406
+ "type": "uint256"
407
+ }
408
+ ],
409
+ "name": "SharesBurned",
410
+ "type": "event"
411
+ },
412
+ {
413
+ "anonymous": false,
414
+ "inputs": [
415
+ {
416
+ "indexed": true,
417
+ "internalType": "address",
418
+ "name": "to",
419
+ "type": "address"
420
+ },
421
+ {
422
+ "indexed": false,
423
+ "internalType": "uint256",
424
+ "name": "shares",
425
+ "type": "uint256"
426
+ },
427
+ {
428
+ "indexed": false,
429
+ "internalType": "uint256",
430
+ "name": "tokenValue",
431
+ "type": "uint256"
432
+ }
433
+ ],
434
+ "name": "SharesMinted",
435
+ "type": "event"
436
+ },
437
+ {
438
+ "anonymous": false,
439
+ "inputs": [
440
+ {
441
+ "indexed": true,
442
+ "internalType": "address",
443
+ "name": "from",
444
+ "type": "address"
445
+ },
446
+ {
447
+ "indexed": true,
448
+ "internalType": "address",
449
+ "name": "to",
450
+ "type": "address"
451
+ },
452
+ {
453
+ "indexed": false,
454
+ "internalType": "uint256",
455
+ "name": "value",
456
+ "type": "uint256"
457
+ }
458
+ ],
459
+ "name": "Transfer",
460
+ "type": "event"
461
+ },
462
+ {
463
+ "anonymous": false,
464
+ "inputs": [
465
+ {
466
+ "indexed": false,
467
+ "internalType": "address",
468
+ "name": "account",
469
+ "type": "address"
470
+ }
471
+ ],
472
+ "name": "Unpaused",
473
+ "type": "event"
474
+ },
475
+ {
476
+ "inputs": [],
477
+ "name": "BURNER_ROLE",
478
+ "outputs": [
479
+ {
480
+ "internalType": "bytes32",
481
+ "name": "",
482
+ "type": "bytes32"
483
+ }
484
+ ],
485
+ "stateMutability": "view",
486
+ "type": "function"
487
+ },
488
+ {
489
+ "inputs": [],
490
+ "name": "DEFAULT_ADMIN_ROLE",
491
+ "outputs": [
492
+ {
493
+ "internalType": "bytes32",
494
+ "name": "",
495
+ "type": "bytes32"
496
+ }
497
+ ],
498
+ "stateMutability": "view",
499
+ "type": "function"
500
+ },
501
+ {
502
+ "inputs": [],
503
+ "name": "DOMAIN_SEPARATOR",
504
+ "outputs": [
505
+ {
506
+ "internalType": "bytes32",
507
+ "name": "",
508
+ "type": "bytes32"
509
+ }
510
+ ],
511
+ "stateMutability": "view",
512
+ "type": "function"
513
+ },
514
+ {
515
+ "inputs": [],
516
+ "name": "MINTER_ROLE",
517
+ "outputs": [
518
+ {
519
+ "internalType": "bytes32",
520
+ "name": "",
521
+ "type": "bytes32"
522
+ }
523
+ ],
524
+ "stateMutability": "view",
525
+ "type": "function"
526
+ },
527
+ {
528
+ "inputs": [],
529
+ "name": "ORACLE_ROLE",
530
+ "outputs": [
531
+ {
532
+ "internalType": "bytes32",
533
+ "name": "",
534
+ "type": "bytes32"
535
+ }
536
+ ],
537
+ "stateMutability": "view",
538
+ "type": "function"
539
+ },
540
+ {
541
+ "inputs": [],
542
+ "name": "UNIT",
543
+ "outputs": [
544
+ {
545
+ "internalType": "uint256",
546
+ "name": "",
547
+ "type": "uint256"
548
+ }
549
+ ],
550
+ "stateMutability": "view",
551
+ "type": "function"
552
+ },
553
+ {
554
+ "inputs": [],
555
+ "name": "_index",
556
+ "outputs": [
557
+ {
558
+ "internalType": "uint256",
559
+ "name": "",
560
+ "type": "uint256"
561
+ }
562
+ ],
563
+ "stateMutability": "view",
564
+ "type": "function"
565
+ },
566
+ {
567
+ "inputs": [],
568
+ "name": "_totalShares",
569
+ "outputs": [
570
+ {
571
+ "internalType": "uint256",
572
+ "name": "",
573
+ "type": "uint256"
574
+ }
575
+ ],
576
+ "stateMutability": "view",
577
+ "type": "function"
578
+ },
579
+ {
580
+ "inputs": [],
581
+ "name": "_unit",
582
+ "outputs": [
583
+ {
584
+ "internalType": "uint256",
585
+ "name": "",
586
+ "type": "uint256"
587
+ }
588
+ ],
589
+ "stateMutability": "view",
590
+ "type": "function"
591
+ },
592
+ {
593
+ "inputs": [
594
+ {
595
+ "internalType": "address",
596
+ "name": "owner",
597
+ "type": "address"
598
+ },
599
+ {
600
+ "internalType": "address",
601
+ "name": "spender",
602
+ "type": "address"
603
+ }
604
+ ],
605
+ "name": "allowance",
606
+ "outputs": [
607
+ {
608
+ "internalType": "uint256",
609
+ "name": "",
610
+ "type": "uint256"
611
+ }
612
+ ],
613
+ "stateMutability": "view",
614
+ "type": "function"
615
+ },
616
+ {
617
+ "inputs": [
618
+ {
619
+ "internalType": "address",
620
+ "name": "spender",
621
+ "type": "address"
622
+ },
623
+ {
624
+ "internalType": "uint256",
625
+ "name": "value",
626
+ "type": "uint256"
627
+ }
628
+ ],
629
+ "name": "approve",
630
+ "outputs": [
631
+ {
632
+ "internalType": "bool",
633
+ "name": "",
634
+ "type": "bool"
635
+ }
636
+ ],
637
+ "stateMutability": "nonpayable",
638
+ "type": "function"
639
+ },
640
+ {
641
+ "inputs": [
642
+ {
643
+ "internalType": "address",
644
+ "name": "account",
645
+ "type": "address"
646
+ }
647
+ ],
648
+ "name": "balanceOf",
649
+ "outputs": [
650
+ {
651
+ "internalType": "uint256",
652
+ "name": "",
653
+ "type": "uint256"
654
+ }
655
+ ],
656
+ "stateMutability": "view",
657
+ "type": "function"
658
+ },
659
+ {
660
+ "inputs": [],
661
+ "name": "decimals",
662
+ "outputs": [
663
+ {
664
+ "internalType": "uint8",
665
+ "name": "",
666
+ "type": "uint8"
667
+ }
668
+ ],
669
+ "stateMutability": "view",
670
+ "type": "function"
671
+ },
672
+ {
673
+ "inputs": [
674
+ {
675
+ "internalType": "uint256",
676
+ "name": "tokenReward",
677
+ "type": "uint256"
678
+ }
679
+ ],
680
+ "name": "decreaseIndex",
681
+ "outputs": [],
682
+ "stateMutability": "nonpayable",
683
+ "type": "function"
684
+ },
685
+ {
686
+ "inputs": [],
687
+ "name": "eip712Domain",
688
+ "outputs": [
689
+ {
690
+ "internalType": "bytes1",
691
+ "name": "fields",
692
+ "type": "bytes1"
693
+ },
694
+ {
695
+ "internalType": "string",
696
+ "name": "name",
697
+ "type": "string"
698
+ },
699
+ {
700
+ "internalType": "string",
701
+ "name": "version",
702
+ "type": "string"
703
+ },
704
+ {
705
+ "internalType": "uint256",
706
+ "name": "chainId",
707
+ "type": "uint256"
708
+ },
709
+ {
710
+ "internalType": "address",
711
+ "name": "verifyingContract",
712
+ "type": "address"
713
+ },
714
+ {
715
+ "internalType": "bytes32",
716
+ "name": "salt",
717
+ "type": "bytes32"
718
+ },
719
+ {
720
+ "internalType": "uint256[]",
721
+ "name": "extensions",
722
+ "type": "uint256[]"
723
+ }
724
+ ],
725
+ "stateMutability": "view",
726
+ "type": "function"
727
+ },
728
+ {
729
+ "inputs": [
730
+ {
731
+ "internalType": "bytes32",
732
+ "name": "role",
733
+ "type": "bytes32"
734
+ }
735
+ ],
736
+ "name": "getRoleAdmin",
737
+ "outputs": [
738
+ {
739
+ "internalType": "bytes32",
740
+ "name": "",
741
+ "type": "bytes32"
742
+ }
743
+ ],
744
+ "stateMutability": "view",
745
+ "type": "function"
746
+ },
747
+ {
748
+ "inputs": [
749
+ {
750
+ "internalType": "bytes32",
751
+ "name": "role",
752
+ "type": "bytes32"
753
+ },
754
+ {
755
+ "internalType": "address",
756
+ "name": "account",
757
+ "type": "address"
758
+ }
759
+ ],
760
+ "name": "grantRole",
761
+ "outputs": [],
762
+ "stateMutability": "nonpayable",
763
+ "type": "function"
764
+ },
765
+ {
766
+ "inputs": [
767
+ {
768
+ "internalType": "bytes32",
769
+ "name": "role",
770
+ "type": "bytes32"
771
+ },
772
+ {
773
+ "internalType": "address",
774
+ "name": "account",
775
+ "type": "address"
776
+ }
777
+ ],
778
+ "name": "hasRole",
779
+ "outputs": [
780
+ {
781
+ "internalType": "bool",
782
+ "name": "",
783
+ "type": "bool"
784
+ }
785
+ ],
786
+ "stateMutability": "view",
787
+ "type": "function"
788
+ },
789
+ {
790
+ "inputs": [
791
+ {
792
+ "internalType": "uint256",
793
+ "name": "tokenReward",
794
+ "type": "uint256"
795
+ }
796
+ ],
797
+ "name": "increaseIndex",
798
+ "outputs": [],
799
+ "stateMutability": "nonpayable",
800
+ "type": "function"
801
+ },
802
+ {
803
+ "inputs": [
804
+ {
805
+ "internalType": "address",
806
+ "name": "to",
807
+ "type": "address"
808
+ },
809
+ {
810
+ "internalType": "uint256",
811
+ "name": "tokenValue",
812
+ "type": "uint256"
813
+ }
814
+ ],
815
+ "name": "mint",
816
+ "outputs": [
817
+ {
818
+ "internalType": "uint256",
819
+ "name": "shares",
820
+ "type": "uint256"
821
+ }
822
+ ],
823
+ "stateMutability": "nonpayable",
824
+ "type": "function"
825
+ },
826
+ {
827
+ "inputs": [],
828
+ "name": "name",
829
+ "outputs": [
830
+ {
831
+ "internalType": "string",
832
+ "name": "",
833
+ "type": "string"
834
+ }
835
+ ],
836
+ "stateMutability": "view",
837
+ "type": "function"
838
+ },
839
+ {
840
+ "inputs": [
841
+ {
842
+ "internalType": "address",
843
+ "name": "owner",
844
+ "type": "address"
845
+ }
846
+ ],
847
+ "name": "nonces",
848
+ "outputs": [
849
+ {
850
+ "internalType": "uint256",
851
+ "name": "",
852
+ "type": "uint256"
853
+ }
854
+ ],
855
+ "stateMutability": "view",
856
+ "type": "function"
857
+ },
858
+ {
859
+ "inputs": [],
860
+ "name": "pause",
861
+ "outputs": [],
862
+ "stateMutability": "nonpayable",
863
+ "type": "function"
864
+ },
865
+ {
866
+ "inputs": [],
867
+ "name": "paused",
868
+ "outputs": [
869
+ {
870
+ "internalType": "bool",
871
+ "name": "",
872
+ "type": "bool"
873
+ }
874
+ ],
875
+ "stateMutability": "view",
876
+ "type": "function"
877
+ },
878
+ {
879
+ "inputs": [
880
+ {
881
+ "internalType": "address",
882
+ "name": "owner",
883
+ "type": "address"
884
+ },
885
+ {
886
+ "internalType": "address",
887
+ "name": "spender",
888
+ "type": "address"
889
+ },
890
+ {
891
+ "internalType": "uint256",
892
+ "name": "value",
893
+ "type": "uint256"
894
+ },
895
+ {
896
+ "internalType": "uint256",
897
+ "name": "deadline",
898
+ "type": "uint256"
899
+ },
900
+ {
901
+ "internalType": "uint8",
902
+ "name": "v",
903
+ "type": "uint8"
904
+ },
905
+ {
906
+ "internalType": "bytes32",
907
+ "name": "r",
908
+ "type": "bytes32"
909
+ },
910
+ {
911
+ "internalType": "bytes32",
912
+ "name": "s",
913
+ "type": "bytes32"
914
+ }
915
+ ],
916
+ "name": "permit",
917
+ "outputs": [],
918
+ "stateMutability": "nonpayable",
919
+ "type": "function"
920
+ },
921
+ {
922
+ "inputs": [
923
+ {
924
+ "internalType": "uint256",
925
+ "name": "tokenValue",
926
+ "type": "uint256"
927
+ }
928
+ ],
929
+ "name": "previewShares",
930
+ "outputs": [
931
+ {
932
+ "internalType": "uint256",
933
+ "name": "",
934
+ "type": "uint256"
935
+ }
936
+ ],
937
+ "stateMutability": "view",
938
+ "type": "function"
939
+ },
940
+ {
941
+ "inputs": [
942
+ {
943
+ "internalType": "bytes32",
944
+ "name": "role",
945
+ "type": "bytes32"
946
+ },
947
+ {
948
+ "internalType": "address",
949
+ "name": "callerConfirmation",
950
+ "type": "address"
951
+ }
952
+ ],
953
+ "name": "renounceRole",
954
+ "outputs": [],
955
+ "stateMutability": "nonpayable",
956
+ "type": "function"
957
+ },
958
+ {
959
+ "inputs": [
960
+ {
961
+ "internalType": "bytes32",
962
+ "name": "role",
963
+ "type": "bytes32"
964
+ },
965
+ {
966
+ "internalType": "address",
967
+ "name": "account",
968
+ "type": "address"
969
+ }
970
+ ],
971
+ "name": "revokeRole",
972
+ "outputs": [],
973
+ "stateMutability": "nonpayable",
974
+ "type": "function"
975
+ },
976
+ {
977
+ "inputs": [
978
+ {
979
+ "internalType": "address",
980
+ "name": "from",
981
+ "type": "address"
982
+ },
983
+ {
984
+ "internalType": "uint256",
985
+ "name": "tokenValue",
986
+ "type": "uint256"
987
+ }
988
+ ],
989
+ "name": "safeBurn",
990
+ "outputs": [
991
+ {
992
+ "internalType": "uint256",
993
+ "name": "shares",
994
+ "type": "uint256"
995
+ }
996
+ ],
997
+ "stateMutability": "nonpayable",
998
+ "type": "function"
999
+ },
1000
+ {
1001
+ "inputs": [
1002
+ {
1003
+ "internalType": "bytes4",
1004
+ "name": "interfaceId",
1005
+ "type": "bytes4"
1006
+ }
1007
+ ],
1008
+ "name": "supportsInterface",
1009
+ "outputs": [
1010
+ {
1011
+ "internalType": "bool",
1012
+ "name": "",
1013
+ "type": "bool"
1014
+ }
1015
+ ],
1016
+ "stateMutability": "view",
1017
+ "type": "function"
1018
+ },
1019
+ {
1020
+ "inputs": [],
1021
+ "name": "symbol",
1022
+ "outputs": [
1023
+ {
1024
+ "internalType": "string",
1025
+ "name": "",
1026
+ "type": "string"
1027
+ }
1028
+ ],
1029
+ "stateMutability": "view",
1030
+ "type": "function"
1031
+ },
1032
+ {
1033
+ "inputs": [],
1034
+ "name": "totalSupply",
1035
+ "outputs": [
1036
+ {
1037
+ "internalType": "uint256",
1038
+ "name": "",
1039
+ "type": "uint256"
1040
+ }
1041
+ ],
1042
+ "stateMutability": "view",
1043
+ "type": "function"
1044
+ },
1045
+ {
1046
+ "inputs": [
1047
+ {
1048
+ "internalType": "address",
1049
+ "name": "to",
1050
+ "type": "address"
1051
+ },
1052
+ {
1053
+ "internalType": "uint256",
1054
+ "name": "value",
1055
+ "type": "uint256"
1056
+ }
1057
+ ],
1058
+ "name": "transfer",
1059
+ "outputs": [
1060
+ {
1061
+ "internalType": "bool",
1062
+ "name": "",
1063
+ "type": "bool"
1064
+ }
1065
+ ],
1066
+ "stateMutability": "nonpayable",
1067
+ "type": "function"
1068
+ },
1069
+ {
1070
+ "inputs": [
1071
+ {
1072
+ "internalType": "address",
1073
+ "name": "from",
1074
+ "type": "address"
1075
+ },
1076
+ {
1077
+ "internalType": "address",
1078
+ "name": "to",
1079
+ "type": "address"
1080
+ },
1081
+ {
1082
+ "internalType": "uint256",
1083
+ "name": "value",
1084
+ "type": "uint256"
1085
+ }
1086
+ ],
1087
+ "name": "transferFrom",
1088
+ "outputs": [
1089
+ {
1090
+ "internalType": "bool",
1091
+ "name": "",
1092
+ "type": "bool"
1093
+ }
1094
+ ],
1095
+ "stateMutability": "nonpayable",
1096
+ "type": "function"
1097
+ },
1098
+ {
1099
+ "inputs": [],
1100
+ "name": "unpause",
1101
+ "outputs": [],
1102
+ "stateMutability": "nonpayable",
1103
+ "type": "function"
1104
+ }
1105
+ ],
1106
+ "bytecode": "0x6101603461051657601f6125ad38819003918201601f19168301916001600160401b03831184841017610434578084926060946040528339810103126105165761004881610536565b90610061604061005a60208401610536565b9201610536565b6040519261006e8461051b565b6006845265098d2e28aa8960d31b93846020820152604051946100908661051b565b60068652650d8d2e28aa8960d31b6020870152604051906100b08261051b565b600682526020820152604051906100c68261051b565b60018252603160f81b60208301526100dd81610706565b610120526100ea826108c5565b6101405260208151910120908160e0526020815191012080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811060018060401b03821117610434576040525190206080523060c05280516001600160401b03811161043457600591825490600182811c9216801561050c575b60208310146104145781601f8493116104bb575b50602090601f83116001146104555760009261044a575b50508160011b916000199060031b1c19161781555b8451906001600160401b0382116104345760065490600182811c9216801561042a575b602083101461041457601f82116103d1575b5050602094601f82116001146103695794819293949560009261035e575b50508160011b916000199060031b1c1916176006555b6b033b2e3c9fd0803ce800000060078190556008805460ff19166012179055600a556001600160a01b0390808216610355575061027b3361054a565b5080831615159081610349575b50156102f25761029a6102a0926105c9565b5061066a565b50604051611b439081610a4a823960805181611559015260a05181611625015260c05181611523015260e051816115a8015261010051816115ce015261012051816108cc015261014051816108f60152f35b60405162461bcd60e51b815260206004820152602960248201527f4d696e74657220616e64206275726e6572206164647265737365732063616e2760448201526874206265207a65726f60b81b6064820152608490fd5b90508116151538610288565b61027b9061054a565b015190503880610229565b601f19821695600660005260206000209160005b8881106103b9575083600195969798106103a0575b505050811b0160065561023f565b015160001960f88460031b161c19169055388080610392565b9192602060018192868501518155019401920161037d565b6006600052602060002090601f8401811c8201926020851061040a575b601f01901c01905b8181101561020b57600081556001016103f6565b91925082916103ee565b634e487b7160e01b600052602260045260246000fd5b91607f16916101f9565b634e487b7160e01b600052604160045260246000fd5b0151905038806101c1565b6000858152602081209350601f198516905b8181106104a3575090846001959493921061048a575b505050811b0181556101d6565b015160001960f88460031b161c1916905538808061047d565b92936020600181928786015181550195019301610467565b909150836000526020600020601f8401851c81019160208510610502575b90601f8594939201861c01905b8181106104f357506101aa565b600081558493506001016104e6565b90915081906104d9565b91607f1691610196565b600080fd5b604081019081106001600160401b0382111761043457604052565b51906001600160a01b038216820361051657565b6001600160a01b031660008181527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e8602052604081205490919060ff166105c557818052600c6020526040822081835260205260408220600160ff19825416179055339160008051602061258d8339815191528180a4600190565b5090565b6001600160a01b031660008181527f297088127cc45ea7f60fa1b46efa81e1426f4926444f68430e102ce446bc4a3260205260408120549091907ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc99060ff1661066557808352600c6020526040832082845260205260408320600160ff1982541617905560008051602061258d833981519152339380a4600190565b505090565b6001600160a01b031660008181527f4bf101a22967e68b2be571983e6ee2c815185e1824be8130d7dc33bf3ee5461a60205260408120549091907f9667e80708b6eeeb0053fa0cca44e028ff548e2a9f029edfeac87c118b08b7c89060ff1661066557808352600c6020526040832082845260205260408320600160ff1982541617905560008051602061258d833981519152339380a4600190565b805160209190828110156107a0575090601f825111610741578082519201519080831061073257501790565b82600019910360031b1b161790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b828510610787575050604492506000838284010152601f80199101168101030190fd5b8481018201518686016044015293810193859350610764565b6001600160401b038111610434576000928354926001938481811c911680156108bb575b838210146108a757601f8111610874575b5081601f841160011461081157509282939183928694610806575b50501b916000199060031b1c191617905560ff90565b0151925038806107f0565b919083601f1981168780528488209488905b8883831061085a5750505010610841575b505050811b01905560ff90565b015160001960f88460031b161c19169055388080610834565b858701518855909601959485019487935090810190610823565b85805284601f848820920160051c820191601f860160051c015b82811061089c5750506107d5565b87815501859061088e565b634e487b7160e01b86526022600452602486fd5b90607f16906107c4565b80516020908181101561094e5750601f8251116108ef578082519201519080831061073257501790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b828510610935575050604492506000838284010152601f80199101168101030190fd5b8481018201518686016044015293810193859350610912565b9192916001600160401b0381116104345760019182548381811c91168015610a3f575b8282101461041457601f8111610a09575b5080601f83116001146109bf5750819293946000926109b4575b5050600019600383901b1c191690821b17905560ff90565b01519050388061099c565b90601f198316958460005282600020926000905b8882106109f2575050838596971061084157505050811b01905560ff90565b8087859682949686015181550195019301906109d3565b8360005283601f83600020920160051c820191601f850160051c015b828110610a33575050610982565b60008155018490610a25565b90607f169061097156fe60806040908082526004918236101561001757600080fd5b600091823560e01c9081630186108014610fdd5750806301ffc9a714610f8757806302cea26b14610f6757806306fdde0314610eb457806307e2cea514610e7a578063095ea7b314610e5157806318160ddd14610e2b5780631b870ba714610d9857806323b872dd14610d5c578063248a9ca314610d31578063282c51f314610cf75780632f2ff15d14610ccd578063313ce56714610cac5780633644e51514610c9057806336568abe14610c4b5780633f4ba83a14610be157806340c10f1914610acf5780635c975abb14610aac57806370a0823114610a655780637ecebe0014610a2e5780638456cb59146109d457806384b0196e146108b457806391d148541461086d57806395d89b411461077c5780639d8e2177146107565780639f15d700146105a7578063a217fddf1461058d578063a846ef7f1461056f578063a9059cbb1461053f578063b0428da614610521578063d505accf146103ba578063d539139314610380578063d547741f14610340578063dd62ed3e146102f35763e39fa5d2146101a657600080fd5b346102ef5760203660031901126102ef5782356101c16111bf565b600954600a54600754906101e4600a6101db848487611a70565b04851115611182565b83156102ac57821561027d57816101fb9184611a70565b8381039181831161026a5780859184029384041491141715610257577fb762d39071f358aadf087b91215286e9bcf9076ce362828ff37c813424b35a2b93929161024491611178565b9081600a5582519182526020820152a180f35b634e487b7160e01b855260118652602485fd5b634e487b7160e01b875260118852602487fd5b845162461bcd60e51b815260208189015260096024820152686e6f2073686172657360b81b6044820152606490fd5b845162461bcd60e51b8152602081890152601b60248201527f52657761726420616d6f756e742063616e2774206265207a65726f00000000006044820152606490fd5b5080fd5b50823461033c578160031936011261033c576020928291610312611039565b61031a611054565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5082903461033c578060031936011261033c5761037c91356103776001610365611054565b93838752600c60205286200154611273565b61164b565b5080f35b50346102ef57816003193601126102ef57602090517ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc98152f35b5091346102ef5760e03660031901126102ef576103d5611039565b6103dd611054565b906044359260643560843560ff8116810361051d578142116105065760018060a01b0390818516928389526002602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff8211176104f3578b525190206104c1916104b891610492611520565b908c519161190160f01b83526002830152602282015260c43591604260a4359220611935565b909291926119e5565b168181036104d857866104d58787876116c2565b80f35b87516325c0072360e11b815292830152602482015260449150fd5b634e487b7160e01b8b526041875260248bfd5b875163313c898160e11b8152808401839052602490fd5b8680fd5b50346102ef57816003193601126102ef576020906009549051908152f35b50346102ef57806003193601126102ef5760209061056861055e611039565b602435903361138f565b5160018152f35b50346102ef57816003193601126102ef576020906007549051908152f35b50346102ef57816003193601126102ef5751908152602090f35b50346102ef57806003193601126102ef576105c0611039565b92602435927f9667e80708b6eeeb0053fa0cca44e028ff548e2a9f029edfeac87c118b08b7c894858252602095600c8752848320338452875260ff85842054161561073857506001600160a01b03811692831561072157338403610711575b610627611755565b61062f611755565b6106388661106a565b918484526003885285842054918383106106c9575050819084845260038852038483205560095403600955817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868551878152a37f8038d1806af22a919dcd5b2a4c313824e515ceb65343ff568379f92a1f323010826106b78561106a565b9481519086825287820152a251908152f35b61070d88886106de86600a5460075491611a70565b905163391434e360e21b81526001600160a01b0390951693850193845260208401526040830152829160600190565b0390fd5b61071c8633846112bc565b61061f565b8451634b637e8f60e11b8152908101839052602490fd5b845163e2517d3f60e01b815233818601526024810191909152604490fd5b50346102ef57816003193601126102ef57602090516b033b2e3c9fd0803ce80000008152f35b50903461086a578060031936011261086a57815191828260065461079f816110ea565b90818452602095600191876001821691826000146108435750506001146107e7575b5050506107e392916107d4910385611156565b51928284938452830190610ff9565b0390f35b9190869350600683527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b82841061082b57505050820101816107d46107e36107c1565b8054848a018601528895508794909301928101610812565b60ff19168782015293151560051b860190930193508492506107d491506107e390506107c1565b80fd5b50823461033c578160031936011261033c578160209360ff9261088e611054565b90358252600c86528282206001600160a01b039091168252855220549151911615158152f35b5082903461033c578260031936011261033c576108f07f0000000000000000000000000000000000000000000000000000000000000000611773565b9261091a7f0000000000000000000000000000000000000000000000000000000000000000611874565b90825192602092602085019585871067ffffffffffffffff8811176109c1575092602061097783889661096a998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b0190610ff9565b91898303908a0152610ff9565b924660608801523060808801528460a088015286840360c088015251928381520193925b8281106109aa57505050500390f35b83518552869550938101939281019260010161099b565b634e487b7160e01b845260419052602483fd5b50346102ef57816003193601126102ef5760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25891610a11611239565b610a19611755565b600160ff19600b541617600b5551338152a180f35b50346102ef5760203660031901126102ef5760209181906001600160a01b03610a55611039565b1681526002845220549051908152f35b50346102ef5760203660031901126102ef57602091610aa59082906001600160a01b03610a90611039565b168152600385522054600a5460075491611a70565b9051908152f35b50346102ef57816003193601126102ef5760209060ff600b541690519015158152f35b50346102ef57806003193601126102ef57610ae8611039565b92602435927ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc994858252602095600c8752848320338452875260ff85842054161561073857506001600160a01b0316918215610bcc57508190610b49611755565b610b51611755565b610b5a8561106a565b610b6681600954611299565b600955828252600387528482209081540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868551878152a37fd5103f333769455df788908e17b0f6f83838ebeae2cd1ed6f23ec20dad88c9a3826106b78561106a565b60249184519163ec442f0560e01b8352820152fd5b50823461033c578260031936011261033c57610bfb611239565b600b549060ff821615610c3d575060ff1916600b55513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152fd5b50346102ef57806003193601126102ef57610c64611054565b90336001600160a01b03831603610c81575061037c91923561164b565b5163334bd91960e11b81528390fd5b50346102ef57816003193601126102ef57602090610aa5611520565b50346102ef57816003193601126102ef5760209060ff600854169051908152f35b5082903461033c578060031936011261033c5761037c9135610cf26001610365611054565b6114a0565b50346102ef57816003193601126102ef57602090517f9667e80708b6eeeb0053fa0cca44e028ff548e2a9f029edfeac87c118b08b7c88152f35b50823461033c57602036600319011261033c5781602093600192358152600c85522001549051908152f35b50346102ef5760603660031901126102ef57602090610568610d7c611039565b610d84611054565b60443591610d938333836112bc565b61138f565b50346102ef5760203660031901126102ef578235610db46111bf565b600954600a5460075490610dce600a6101db848487611a70565b83156102ac57821561027d5783610de983610dee9386611a70565b611299565b818102918183041490151715610257577f5cbb2dcb38e3f81288892582319561f83597c750f6e15b840461f14557b7c24a93929161024491611178565b50346102ef57816003193601126102ef57602090610aa5600954600a5460075491611a70565b50346102ef57806003193601126102ef57602090610568610e70611039565b60243590336116c2565b50346102ef57816003193601126102ef57602090517f352d05fe3946dbe49277552ba941e744d5a96d9c60bc1ba0ea5f1d3ae000f7c88152f35b50903461086a578060031936011261086a578151918282600554610ed7816110ea565b9081845260209560019187600182169182600014610843575050600114610f0b575050506107e392916107d4910385611156565b9190869350600583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b828410610f4f57505050820101816107d46107e36107c1565b8054848a018601528895508794909301928101610f36565b50903461086a57602036600319011261086a5750610aa56020923561106a565b50823461033c57602036600319011261033c57359063ffffffff60e01b821680920361033c5760209250637965db0b60e01b8214918215610fcc575b50519015158152f35b6301ffc9a760e01b14915083610fc3565b8390346102ef57816003193601126102ef57602090600a548152f35b919082519283825260005b848110611025575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611004565b600435906001600160a01b038216820361104f57565b600080fd5b602435906001600160a01b038216820361104f57565b80156110ae57600754600a54611081818385611a70565b918115611098576110959309151590611299565b90565b634e487b7160e01b600052601260045260246000fd5b60405162461bcd60e51b8152602060048201526014602482015273416d6f756e742063616e2774206265207a65726f60601b6044820152606490fd5b90600182811c9216801561111a575b602083101461110457565b634e487b7160e01b600052602260045260246000fd5b91607f16916110f9565b6040810190811067ffffffffffffffff82111761114057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761114057604052565b8115611098570490565b1561118957565b60405162461bcd60e51b815260206004820152600e60248201526d52656261736520746f6f2062696760901b6044820152606490fd5b3360009081527fad6800380182c080bdcbe0405f029414a274cf648936d4a4dfe109b0c29b356b60205260409020547f352d05fe3946dbe49277552ba941e744d5a96d9c60bc1ba0ea5f1d3ae000f7c89060ff161561121b5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e8602052604081205460ff161561121b5750565b80600052600c60205260406000203360005260205260ff604060002054161561121b5750565b919082018092116112a657565b634e487b7160e01b600052601160045260246000fd5b9160018060a01b0380931691600093838552600460205260409384862091831691828752602052848620549260001984106112fb575b50505050505050565b84841061135f5750801561134757811561132f578552600460205283852090855260205203912055388080808080806112f2565b8451634a1406b160e11b815260048101879052602490fd5b845163e602df0560e01b815260048101879052602490fd5b8551637dc7a0d960e11b81526001600160a01b039190911660048201526024810184905260448101859052606490fd5b916001600160a01b03808416928315611487571692831561146e576113b2611755565b6113ba611755565b6113c38261106a565b90600090848252600360205260408220549083821061142657509160408282602095887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef98965260038752038282205587815220908154019055604051908152a3565b61070d61143a8693600a5460075491611a70565b60405163391434e360e21b81526001600160a01b039093166004840152602483015260448201929092529081906064820190565b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b90600091808352600c602052604083209160018060a01b03169182845260205260ff6040842054161560001461151b57808352600c6020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611622575b1561157b577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176111405760405251902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611552565b90600091808352600c602052604083209160018060a01b03169182845260205260ff60408420541660001461151b57808352600c602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b6001600160a01b0390811691821561173c57169182156117235760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b60ff600b541661176157565b60405163d93c066560e01b8152600490fd5b60ff81146117b15760ff811690601f821161179f576040519161179583611124565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600081600054916117c5836110ea565b8083529260209060019081811690811561185057506001146117f0575b505061109592500382611156565b915092600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563936000925b828410611838575061109594505050810160200138806117e2565b8554878501830152948501948694509281019261181d565b9150506020925061109594915060ff191682840152151560051b82010138806117e2565b60ff81146118965760ff811690601f821161179f576040519161179583611124565b506040516000816001916001546118ac816110ea565b808452936020916001811690811561185057506001146118d457505061109592500382611156565b91509260016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6936000925b82841061191d575061109594505050810160200138806117e2565b85548785018301529485019486945092810192611902565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116119b957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156119ad5780516001600160a01b038116156119a457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b600411156119cf57565b634e487b7160e01b600052602160045260246000fd5b6119ee816119c5565b806119f7575050565b611a00816119c5565b60018103611a1a5760405163f645eedf60e01b8152600490fd5b611a23816119c5565b60028103611a445760405163fce698f760e01b815260048101839052602490fd5b80611a506003926119c5565b14611a585750565b602490604051906335e2f38360e21b82526004820152fd5b90916000198383099280830292838086109503948086039514611b005784831115611ae7579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b505090611095925061117856fea2646970667358221220aa89dcb0a93b22d78a6e78a1b73a3a3dd6f9ae5a9d3e6fba9c2e6627712acf4e64736f6c634300081900332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
1107
+ "deployedBytecode": "0x60806040908082526004918236101561001757600080fd5b600091823560e01c9081630186108014610fdd5750806301ffc9a714610f8757806302cea26b14610f6757806306fdde0314610eb457806307e2cea514610e7a578063095ea7b314610e5157806318160ddd14610e2b5780631b870ba714610d9857806323b872dd14610d5c578063248a9ca314610d31578063282c51f314610cf75780632f2ff15d14610ccd578063313ce56714610cac5780633644e51514610c9057806336568abe14610c4b5780633f4ba83a14610be157806340c10f1914610acf5780635c975abb14610aac57806370a0823114610a655780637ecebe0014610a2e5780638456cb59146109d457806384b0196e146108b457806391d148541461086d57806395d89b411461077c5780639d8e2177146107565780639f15d700146105a7578063a217fddf1461058d578063a846ef7f1461056f578063a9059cbb1461053f578063b0428da614610521578063d505accf146103ba578063d539139314610380578063d547741f14610340578063dd62ed3e146102f35763e39fa5d2146101a657600080fd5b346102ef5760203660031901126102ef5782356101c16111bf565b600954600a54600754906101e4600a6101db848487611a70565b04851115611182565b83156102ac57821561027d57816101fb9184611a70565b8381039181831161026a5780859184029384041491141715610257577fb762d39071f358aadf087b91215286e9bcf9076ce362828ff37c813424b35a2b93929161024491611178565b9081600a5582519182526020820152a180f35b634e487b7160e01b855260118652602485fd5b634e487b7160e01b875260118852602487fd5b845162461bcd60e51b815260208189015260096024820152686e6f2073686172657360b81b6044820152606490fd5b845162461bcd60e51b8152602081890152601b60248201527f52657761726420616d6f756e742063616e2774206265207a65726f00000000006044820152606490fd5b5080fd5b50823461033c578160031936011261033c576020928291610312611039565b61031a611054565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5082903461033c578060031936011261033c5761037c91356103776001610365611054565b93838752600c60205286200154611273565b61164b565b5080f35b50346102ef57816003193601126102ef57602090517ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc98152f35b5091346102ef5760e03660031901126102ef576103d5611039565b6103dd611054565b906044359260643560843560ff8116810361051d578142116105065760018060a01b0390818516928389526002602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff8211176104f3578b525190206104c1916104b891610492611520565b908c519161190160f01b83526002830152602282015260c43591604260a4359220611935565b909291926119e5565b168181036104d857866104d58787876116c2565b80f35b87516325c0072360e11b815292830152602482015260449150fd5b634e487b7160e01b8b526041875260248bfd5b875163313c898160e11b8152808401839052602490fd5b8680fd5b50346102ef57816003193601126102ef576020906009549051908152f35b50346102ef57806003193601126102ef5760209061056861055e611039565b602435903361138f565b5160018152f35b50346102ef57816003193601126102ef576020906007549051908152f35b50346102ef57816003193601126102ef5751908152602090f35b50346102ef57806003193601126102ef576105c0611039565b92602435927f9667e80708b6eeeb0053fa0cca44e028ff548e2a9f029edfeac87c118b08b7c894858252602095600c8752848320338452875260ff85842054161561073857506001600160a01b03811692831561072157338403610711575b610627611755565b61062f611755565b6106388661106a565b918484526003885285842054918383106106c9575050819084845260038852038483205560095403600955817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868551878152a37f8038d1806af22a919dcd5b2a4c313824e515ceb65343ff568379f92a1f323010826106b78561106a565b9481519086825287820152a251908152f35b61070d88886106de86600a5460075491611a70565b905163391434e360e21b81526001600160a01b0390951693850193845260208401526040830152829160600190565b0390fd5b61071c8633846112bc565b61061f565b8451634b637e8f60e11b8152908101839052602490fd5b845163e2517d3f60e01b815233818601526024810191909152604490fd5b50346102ef57816003193601126102ef57602090516b033b2e3c9fd0803ce80000008152f35b50903461086a578060031936011261086a57815191828260065461079f816110ea565b90818452602095600191876001821691826000146108435750506001146107e7575b5050506107e392916107d4910385611156565b51928284938452830190610ff9565b0390f35b9190869350600683527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b82841061082b57505050820101816107d46107e36107c1565b8054848a018601528895508794909301928101610812565b60ff19168782015293151560051b860190930193508492506107d491506107e390506107c1565b80fd5b50823461033c578160031936011261033c578160209360ff9261088e611054565b90358252600c86528282206001600160a01b039091168252855220549151911615158152f35b5082903461033c578260031936011261033c576108f07f0000000000000000000000000000000000000000000000000000000000000000611773565b9261091a7f0000000000000000000000000000000000000000000000000000000000000000611874565b90825192602092602085019585871067ffffffffffffffff8811176109c1575092602061097783889661096a998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b0190610ff9565b91898303908a0152610ff9565b924660608801523060808801528460a088015286840360c088015251928381520193925b8281106109aa57505050500390f35b83518552869550938101939281019260010161099b565b634e487b7160e01b845260419052602483fd5b50346102ef57816003193601126102ef5760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25891610a11611239565b610a19611755565b600160ff19600b541617600b5551338152a180f35b50346102ef5760203660031901126102ef5760209181906001600160a01b03610a55611039565b1681526002845220549051908152f35b50346102ef5760203660031901126102ef57602091610aa59082906001600160a01b03610a90611039565b168152600385522054600a5460075491611a70565b9051908152f35b50346102ef57816003193601126102ef5760209060ff600b541690519015158152f35b50346102ef57806003193601126102ef57610ae8611039565b92602435927ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc994858252602095600c8752848320338452875260ff85842054161561073857506001600160a01b0316918215610bcc57508190610b49611755565b610b51611755565b610b5a8561106a565b610b6681600954611299565b600955828252600387528482209081540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868551878152a37fd5103f333769455df788908e17b0f6f83838ebeae2cd1ed6f23ec20dad88c9a3826106b78561106a565b60249184519163ec442f0560e01b8352820152fd5b50823461033c578260031936011261033c57610bfb611239565b600b549060ff821615610c3d575060ff1916600b55513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152fd5b50346102ef57806003193601126102ef57610c64611054565b90336001600160a01b03831603610c81575061037c91923561164b565b5163334bd91960e11b81528390fd5b50346102ef57816003193601126102ef57602090610aa5611520565b50346102ef57816003193601126102ef5760209060ff600854169051908152f35b5082903461033c578060031936011261033c5761037c9135610cf26001610365611054565b6114a0565b50346102ef57816003193601126102ef57602090517f9667e80708b6eeeb0053fa0cca44e028ff548e2a9f029edfeac87c118b08b7c88152f35b50823461033c57602036600319011261033c5781602093600192358152600c85522001549051908152f35b50346102ef5760603660031901126102ef57602090610568610d7c611039565b610d84611054565b60443591610d938333836112bc565b61138f565b50346102ef5760203660031901126102ef578235610db46111bf565b600954600a5460075490610dce600a6101db848487611a70565b83156102ac57821561027d5783610de983610dee9386611a70565b611299565b818102918183041490151715610257577f5cbb2dcb38e3f81288892582319561f83597c750f6e15b840461f14557b7c24a93929161024491611178565b50346102ef57816003193601126102ef57602090610aa5600954600a5460075491611a70565b50346102ef57806003193601126102ef57602090610568610e70611039565b60243590336116c2565b50346102ef57816003193601126102ef57602090517f352d05fe3946dbe49277552ba941e744d5a96d9c60bc1ba0ea5f1d3ae000f7c88152f35b50903461086a578060031936011261086a578151918282600554610ed7816110ea565b9081845260209560019187600182169182600014610843575050600114610f0b575050506107e392916107d4910385611156565b9190869350600583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b828410610f4f57505050820101816107d46107e36107c1565b8054848a018601528895508794909301928101610f36565b50903461086a57602036600319011261086a5750610aa56020923561106a565b50823461033c57602036600319011261033c57359063ffffffff60e01b821680920361033c5760209250637965db0b60e01b8214918215610fcc575b50519015158152f35b6301ffc9a760e01b14915083610fc3565b8390346102ef57816003193601126102ef57602090600a548152f35b919082519283825260005b848110611025575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611004565b600435906001600160a01b038216820361104f57565b600080fd5b602435906001600160a01b038216820361104f57565b80156110ae57600754600a54611081818385611a70565b918115611098576110959309151590611299565b90565b634e487b7160e01b600052601260045260246000fd5b60405162461bcd60e51b8152602060048201526014602482015273416d6f756e742063616e2774206265207a65726f60601b6044820152606490fd5b90600182811c9216801561111a575b602083101461110457565b634e487b7160e01b600052602260045260246000fd5b91607f16916110f9565b6040810190811067ffffffffffffffff82111761114057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761114057604052565b8115611098570490565b1561118957565b60405162461bcd60e51b815260206004820152600e60248201526d52656261736520746f6f2062696760901b6044820152606490fd5b3360009081527fad6800380182c080bdcbe0405f029414a274cf648936d4a4dfe109b0c29b356b60205260409020547f352d05fe3946dbe49277552ba941e744d5a96d9c60bc1ba0ea5f1d3ae000f7c89060ff161561121b5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e8602052604081205460ff161561121b5750565b80600052600c60205260406000203360005260205260ff604060002054161561121b5750565b919082018092116112a657565b634e487b7160e01b600052601160045260246000fd5b9160018060a01b0380931691600093838552600460205260409384862091831691828752602052848620549260001984106112fb575b50505050505050565b84841061135f5750801561134757811561132f578552600460205283852090855260205203912055388080808080806112f2565b8451634a1406b160e11b815260048101879052602490fd5b845163e602df0560e01b815260048101879052602490fd5b8551637dc7a0d960e11b81526001600160a01b039190911660048201526024810184905260448101859052606490fd5b916001600160a01b03808416928315611487571692831561146e576113b2611755565b6113ba611755565b6113c38261106a565b90600090848252600360205260408220549083821061142657509160408282602095887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef98965260038752038282205587815220908154019055604051908152a3565b61070d61143a8693600a5460075491611a70565b60405163391434e360e21b81526001600160a01b039093166004840152602483015260448201929092529081906064820190565b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b90600091808352600c602052604083209160018060a01b03169182845260205260ff6040842054161560001461151b57808352600c6020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611622575b1561157b577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176111405760405251902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611552565b90600091808352600c602052604083209160018060a01b03169182845260205260ff60408420541660001461151b57808352600c602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b6001600160a01b0390811691821561173c57169182156117235760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b60ff600b541661176157565b60405163d93c066560e01b8152600490fd5b60ff81146117b15760ff811690601f821161179f576040519161179583611124565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600081600054916117c5836110ea565b8083529260209060019081811690811561185057506001146117f0575b505061109592500382611156565b915092600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563936000925b828410611838575061109594505050810160200138806117e2565b8554878501830152948501948694509281019261181d565b9150506020925061109594915060ff191682840152151560051b82010138806117e2565b60ff81146118965760ff811690601f821161179f576040519161179583611124565b506040516000816001916001546118ac816110ea565b808452936020916001811690811561185057506001146118d457505061109592500382611156565b91509260016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6936000925b82841061191d575061109594505050810160200138806117e2565b85548785018301529485019486945092810192611902565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116119b957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156119ad5780516001600160a01b038116156119a457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b600411156119cf57565b634e487b7160e01b600052602160045260246000fd5b6119ee816119c5565b806119f7575050565b611a00816119c5565b60018103611a1a5760405163f645eedf60e01b8152600490fd5b611a23816119c5565b60028103611a445760405163fce698f760e01b815260048101839052602490fd5b80611a506003926119c5565b14611a585750565b602490604051906335e2f38360e21b82526004820152fd5b90916000198383099280830292838086109503948086039514611b005784831115611ae7579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b505090611095925061117856fea2646970667358221220aa89dcb0a93b22d78a6e78a1b73a3a3dd6f9ae5a9d3e6fba9c2e6627712acf4e64736f6c63430008190033",
1108
+ "linkReferences": {},
1109
+ "deployedLinkReferences": {}
1110
+ }