olas-operate-middleware 0.1.0rc59__py3-none-any.whl → 0.13.2__py3-none-any.whl

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 (98) hide show
  1. olas_operate_middleware-0.13.2.dist-info/METADATA +75 -0
  2. olas_operate_middleware-0.13.2.dist-info/RECORD +101 -0
  3. {olas_operate_middleware-0.1.0rc59.dist-info → olas_operate_middleware-0.13.2.dist-info}/WHEEL +1 -1
  4. operate/__init__.py +17 -0
  5. operate/account/user.py +35 -9
  6. operate/bridge/bridge_manager.py +470 -0
  7. operate/bridge/providers/lifi_provider.py +377 -0
  8. operate/bridge/providers/native_bridge_provider.py +677 -0
  9. operate/bridge/providers/provider.py +469 -0
  10. operate/bridge/providers/relay_provider.py +457 -0
  11. operate/cli.py +1565 -417
  12. operate/constants.py +60 -12
  13. operate/data/README.md +19 -0
  14. operate/data/contracts/{service_staking_token → dual_staking_token}/__init__.py +2 -2
  15. operate/data/contracts/dual_staking_token/build/DualStakingToken.json +443 -0
  16. operate/data/contracts/dual_staking_token/contract.py +132 -0
  17. operate/data/contracts/dual_staking_token/contract.yaml +23 -0
  18. operate/{ledger/base.py → data/contracts/foreign_omnibridge/__init__.py} +2 -19
  19. operate/data/contracts/foreign_omnibridge/build/ForeignOmnibridge.json +1372 -0
  20. operate/data/contracts/foreign_omnibridge/contract.py +130 -0
  21. operate/data/contracts/foreign_omnibridge/contract.yaml +23 -0
  22. operate/{ledger/solana.py → data/contracts/home_omnibridge/__init__.py} +2 -20
  23. operate/data/contracts/home_omnibridge/build/HomeOmnibridge.json +1421 -0
  24. operate/data/contracts/home_omnibridge/contract.py +80 -0
  25. operate/data/contracts/home_omnibridge/contract.yaml +23 -0
  26. operate/data/contracts/l1_standard_bridge/__init__.py +20 -0
  27. operate/data/contracts/l1_standard_bridge/build/L1StandardBridge.json +831 -0
  28. operate/data/contracts/l1_standard_bridge/contract.py +158 -0
  29. operate/data/contracts/l1_standard_bridge/contract.yaml +23 -0
  30. operate/data/contracts/l2_standard_bridge/__init__.py +20 -0
  31. operate/data/contracts/l2_standard_bridge/build/L2StandardBridge.json +626 -0
  32. operate/data/contracts/l2_standard_bridge/contract.py +130 -0
  33. operate/data/contracts/l2_standard_bridge/contract.yaml +23 -0
  34. operate/data/contracts/mech_activity/__init__.py +20 -0
  35. operate/data/contracts/mech_activity/build/MechActivity.json +111 -0
  36. operate/data/contracts/mech_activity/contract.py +44 -0
  37. operate/data/contracts/mech_activity/contract.yaml +23 -0
  38. operate/data/contracts/optimism_mintable_erc20/__init__.py +20 -0
  39. operate/data/contracts/optimism_mintable_erc20/build/OptimismMintableERC20.json +491 -0
  40. operate/data/contracts/optimism_mintable_erc20/contract.py +45 -0
  41. operate/data/contracts/optimism_mintable_erc20/contract.yaml +23 -0
  42. operate/data/contracts/recovery_module/__init__.py +20 -0
  43. operate/data/contracts/recovery_module/build/RecoveryModule.json +811 -0
  44. operate/data/contracts/recovery_module/contract.py +61 -0
  45. operate/data/contracts/recovery_module/contract.yaml +23 -0
  46. operate/data/contracts/requester_activity_checker/__init__.py +20 -0
  47. operate/data/contracts/requester_activity_checker/build/RequesterActivityChecker.json +111 -0
  48. operate/data/contracts/requester_activity_checker/contract.py +33 -0
  49. operate/data/contracts/requester_activity_checker/contract.yaml +23 -0
  50. operate/data/contracts/staking_token/__init__.py +20 -0
  51. operate/data/contracts/staking_token/build/StakingToken.json +1336 -0
  52. operate/data/contracts/{service_staking_token → staking_token}/contract.py +27 -13
  53. operate/data/contracts/staking_token/contract.yaml +23 -0
  54. operate/data/contracts/uniswap_v2_erc20/contract.yaml +3 -1
  55. operate/data/contracts/uniswap_v2_erc20/tests/__init__.py +20 -0
  56. operate/data/contracts/uniswap_v2_erc20/tests/test_contract.py +363 -0
  57. operate/keys.py +118 -33
  58. operate/ledger/__init__.py +159 -56
  59. operate/ledger/profiles.py +321 -18
  60. operate/migration.py +555 -0
  61. operate/{http → operate_http}/__init__.py +3 -2
  62. operate/{http → operate_http}/exceptions.py +6 -4
  63. operate/operate_types.py +544 -0
  64. operate/pearl.py +13 -1
  65. operate/quickstart/analyse_logs.py +118 -0
  66. operate/quickstart/claim_staking_rewards.py +104 -0
  67. operate/quickstart/reset_configs.py +106 -0
  68. operate/quickstart/reset_password.py +70 -0
  69. operate/quickstart/reset_staking.py +145 -0
  70. operate/quickstart/run_service.py +726 -0
  71. operate/quickstart/stop_service.py +72 -0
  72. operate/quickstart/terminate_on_chain_service.py +83 -0
  73. operate/quickstart/utils.py +298 -0
  74. operate/resource.py +62 -3
  75. operate/services/agent_runner.py +202 -0
  76. operate/services/deployment_runner.py +868 -0
  77. operate/services/funding_manager.py +929 -0
  78. operate/services/health_checker.py +280 -0
  79. operate/services/manage.py +2356 -620
  80. operate/services/protocol.py +1246 -340
  81. operate/services/service.py +756 -391
  82. operate/services/utils/mech.py +103 -0
  83. operate/services/utils/tendermint.py +86 -12
  84. operate/settings.py +70 -0
  85. operate/utils/__init__.py +135 -0
  86. operate/utils/gnosis.py +407 -80
  87. operate/utils/single_instance.py +226 -0
  88. operate/utils/ssl.py +133 -0
  89. operate/wallet/master.py +708 -123
  90. operate/wallet/wallet_recovery_manager.py +507 -0
  91. olas_operate_middleware-0.1.0rc59.dist-info/METADATA +0 -304
  92. olas_operate_middleware-0.1.0rc59.dist-info/RECORD +0 -41
  93. operate/data/contracts/service_staking_token/build/ServiceStakingToken.json +0 -1273
  94. operate/data/contracts/service_staking_token/contract.yaml +0 -23
  95. operate/ledger/ethereum.py +0 -48
  96. operate/types.py +0 -260
  97. {olas_operate_middleware-0.1.0rc59.dist-info → olas_operate_middleware-0.13.2.dist-info}/entry_points.txt +0 -0
  98. {olas_operate_middleware-0.1.0rc59.dist-info → olas_operate_middleware-0.13.2.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,1336 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "StakingToken",
4
+ "sourceName": "contracts/staking/StakingToken.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "AlreadyInitialized",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "address",
15
+ "name": "activityChecker",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "name": "ContractOnly",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "uint256",
26
+ "name": "provided",
27
+ "type": "uint256"
28
+ },
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "expected",
32
+ "type": "uint256"
33
+ }
34
+ ],
35
+ "name": "LowerThan",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "uint256",
42
+ "name": "maxNumServices",
43
+ "type": "uint256"
44
+ }
45
+ ],
46
+ "name": "MaxNumServicesReached",
47
+ "type": "error"
48
+ },
49
+ {
50
+ "inputs": [],
51
+ "name": "NoRewardsAvailable",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [
56
+ {
57
+ "internalType": "uint256",
58
+ "name": "serviceId",
59
+ "type": "uint256"
60
+ },
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "tsProvided",
64
+ "type": "uint256"
65
+ },
66
+ {
67
+ "internalType": "uint256",
68
+ "name": "tsExpected",
69
+ "type": "uint256"
70
+ }
71
+ ],
72
+ "name": "NotEnoughTimeStaked",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "address",
79
+ "name": "sender",
80
+ "type": "address"
81
+ },
82
+ {
83
+ "internalType": "address",
84
+ "name": "owner",
85
+ "type": "address"
86
+ }
87
+ ],
88
+ "name": "OwnerOnly",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [
93
+ {
94
+ "internalType": "uint256",
95
+ "name": "serviceId",
96
+ "type": "uint256"
97
+ }
98
+ ],
99
+ "name": "ServiceNotUnstaked",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [
104
+ {
105
+ "internalType": "address",
106
+ "name": "token",
107
+ "type": "address"
108
+ },
109
+ {
110
+ "internalType": "address",
111
+ "name": "from",
112
+ "type": "address"
113
+ },
114
+ {
115
+ "internalType": "address",
116
+ "name": "to",
117
+ "type": "address"
118
+ },
119
+ {
120
+ "internalType": "uint256",
121
+ "name": "value",
122
+ "type": "uint256"
123
+ }
124
+ ],
125
+ "name": "TokenTransferFailed",
126
+ "type": "error"
127
+ },
128
+ {
129
+ "inputs": [
130
+ {
131
+ "internalType": "address",
132
+ "name": "multisig",
133
+ "type": "address"
134
+ }
135
+ ],
136
+ "name": "UnauthorizedMultisig",
137
+ "type": "error"
138
+ },
139
+ {
140
+ "inputs": [
141
+ {
142
+ "internalType": "uint256",
143
+ "name": "provided",
144
+ "type": "uint256"
145
+ },
146
+ {
147
+ "internalType": "uint256",
148
+ "name": "expected",
149
+ "type": "uint256"
150
+ }
151
+ ],
152
+ "name": "ValueLowerThan",
153
+ "type": "error"
154
+ },
155
+ {
156
+ "inputs": [
157
+ {
158
+ "internalType": "uint256",
159
+ "name": "agentId",
160
+ "type": "uint256"
161
+ }
162
+ ],
163
+ "name": "WrongAgentId",
164
+ "type": "error"
165
+ },
166
+ {
167
+ "inputs": [
168
+ {
169
+ "internalType": "uint256",
170
+ "name": "serviceId",
171
+ "type": "uint256"
172
+ }
173
+ ],
174
+ "name": "WrongServiceConfiguration",
175
+ "type": "error"
176
+ },
177
+ {
178
+ "inputs": [
179
+ {
180
+ "internalType": "uint256",
181
+ "name": "state",
182
+ "type": "uint256"
183
+ },
184
+ {
185
+ "internalType": "uint256",
186
+ "name": "serviceId",
187
+ "type": "uint256"
188
+ }
189
+ ],
190
+ "name": "WrongServiceState",
191
+ "type": "error"
192
+ },
193
+ {
194
+ "inputs": [
195
+ {
196
+ "internalType": "address",
197
+ "name": "expected",
198
+ "type": "address"
199
+ },
200
+ {
201
+ "internalType": "address",
202
+ "name": "provided",
203
+ "type": "address"
204
+ }
205
+ ],
206
+ "name": "WrongStakingToken",
207
+ "type": "error"
208
+ },
209
+ {
210
+ "inputs": [],
211
+ "name": "ZeroAddress",
212
+ "type": "error"
213
+ },
214
+ {
215
+ "inputs": [],
216
+ "name": "ZeroTokenAddress",
217
+ "type": "error"
218
+ },
219
+ {
220
+ "inputs": [],
221
+ "name": "ZeroValue",
222
+ "type": "error"
223
+ },
224
+ {
225
+ "anonymous": false,
226
+ "inputs": [
227
+ {
228
+ "indexed": true,
229
+ "internalType": "uint256",
230
+ "name": "epoch",
231
+ "type": "uint256"
232
+ },
233
+ {
234
+ "indexed": false,
235
+ "internalType": "uint256",
236
+ "name": "availableRewards",
237
+ "type": "uint256"
238
+ },
239
+ {
240
+ "indexed": false,
241
+ "internalType": "uint256[]",
242
+ "name": "serviceIds",
243
+ "type": "uint256[]"
244
+ },
245
+ {
246
+ "indexed": false,
247
+ "internalType": "uint256[]",
248
+ "name": "rewards",
249
+ "type": "uint256[]"
250
+ },
251
+ {
252
+ "indexed": false,
253
+ "internalType": "uint256",
254
+ "name": "epochLength",
255
+ "type": "uint256"
256
+ }
257
+ ],
258
+ "name": "Checkpoint",
259
+ "type": "event"
260
+ },
261
+ {
262
+ "anonymous": false,
263
+ "inputs": [
264
+ {
265
+ "indexed": true,
266
+ "internalType": "address",
267
+ "name": "sender",
268
+ "type": "address"
269
+ },
270
+ {
271
+ "indexed": false,
272
+ "internalType": "uint256",
273
+ "name": "amount",
274
+ "type": "uint256"
275
+ },
276
+ {
277
+ "indexed": false,
278
+ "internalType": "uint256",
279
+ "name": "balance",
280
+ "type": "uint256"
281
+ },
282
+ {
283
+ "indexed": false,
284
+ "internalType": "uint256",
285
+ "name": "availableRewards",
286
+ "type": "uint256"
287
+ }
288
+ ],
289
+ "name": "Deposit",
290
+ "type": "event"
291
+ },
292
+ {
293
+ "anonymous": false,
294
+ "inputs": [
295
+ {
296
+ "indexed": false,
297
+ "internalType": "uint256",
298
+ "name": "epoch",
299
+ "type": "uint256"
300
+ },
301
+ {
302
+ "indexed": true,
303
+ "internalType": "uint256",
304
+ "name": "serviceId",
305
+ "type": "uint256"
306
+ },
307
+ {
308
+ "indexed": true,
309
+ "internalType": "address",
310
+ "name": "owner",
311
+ "type": "address"
312
+ },
313
+ {
314
+ "indexed": true,
315
+ "internalType": "address",
316
+ "name": "multisig",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "indexed": false,
321
+ "internalType": "uint256[]",
322
+ "name": "nonces",
323
+ "type": "uint256[]"
324
+ },
325
+ {
326
+ "indexed": false,
327
+ "internalType": "uint256",
328
+ "name": "reward",
329
+ "type": "uint256"
330
+ }
331
+ ],
332
+ "name": "RewardClaimed",
333
+ "type": "event"
334
+ },
335
+ {
336
+ "anonymous": false,
337
+ "inputs": [
338
+ {
339
+ "indexed": false,
340
+ "internalType": "uint256",
341
+ "name": "epoch",
342
+ "type": "uint256"
343
+ },
344
+ {
345
+ "indexed": true,
346
+ "internalType": "uint256",
347
+ "name": "serviceId",
348
+ "type": "uint256"
349
+ },
350
+ {
351
+ "indexed": true,
352
+ "internalType": "address",
353
+ "name": "owner",
354
+ "type": "address"
355
+ },
356
+ {
357
+ "indexed": true,
358
+ "internalType": "address",
359
+ "name": "multisig",
360
+ "type": "address"
361
+ },
362
+ {
363
+ "indexed": false,
364
+ "internalType": "uint256[]",
365
+ "name": "nonces",
366
+ "type": "uint256[]"
367
+ },
368
+ {
369
+ "indexed": false,
370
+ "internalType": "uint256",
371
+ "name": "reward",
372
+ "type": "uint256"
373
+ },
374
+ {
375
+ "indexed": false,
376
+ "internalType": "uint256",
377
+ "name": "availableRewards",
378
+ "type": "uint256"
379
+ }
380
+ ],
381
+ "name": "ServiceForceUnstaked",
382
+ "type": "event"
383
+ },
384
+ {
385
+ "anonymous": false,
386
+ "inputs": [
387
+ {
388
+ "indexed": false,
389
+ "internalType": "uint256",
390
+ "name": "epoch",
391
+ "type": "uint256"
392
+ },
393
+ {
394
+ "indexed": true,
395
+ "internalType": "uint256",
396
+ "name": "serviceId",
397
+ "type": "uint256"
398
+ },
399
+ {
400
+ "indexed": false,
401
+ "internalType": "uint256",
402
+ "name": "serviceInactivity",
403
+ "type": "uint256"
404
+ }
405
+ ],
406
+ "name": "ServiceInactivityWarning",
407
+ "type": "event"
408
+ },
409
+ {
410
+ "anonymous": false,
411
+ "inputs": [
412
+ {
413
+ "indexed": false,
414
+ "internalType": "uint256",
415
+ "name": "epoch",
416
+ "type": "uint256"
417
+ },
418
+ {
419
+ "indexed": true,
420
+ "internalType": "uint256",
421
+ "name": "serviceId",
422
+ "type": "uint256"
423
+ },
424
+ {
425
+ "indexed": true,
426
+ "internalType": "address",
427
+ "name": "owner",
428
+ "type": "address"
429
+ },
430
+ {
431
+ "indexed": true,
432
+ "internalType": "address",
433
+ "name": "multisig",
434
+ "type": "address"
435
+ },
436
+ {
437
+ "indexed": false,
438
+ "internalType": "uint256[]",
439
+ "name": "nonces",
440
+ "type": "uint256[]"
441
+ }
442
+ ],
443
+ "name": "ServiceStaked",
444
+ "type": "event"
445
+ },
446
+ {
447
+ "anonymous": false,
448
+ "inputs": [
449
+ {
450
+ "indexed": false,
451
+ "internalType": "uint256",
452
+ "name": "epoch",
453
+ "type": "uint256"
454
+ },
455
+ {
456
+ "indexed": true,
457
+ "internalType": "uint256",
458
+ "name": "serviceId",
459
+ "type": "uint256"
460
+ },
461
+ {
462
+ "indexed": true,
463
+ "internalType": "address",
464
+ "name": "owner",
465
+ "type": "address"
466
+ },
467
+ {
468
+ "indexed": true,
469
+ "internalType": "address",
470
+ "name": "multisig",
471
+ "type": "address"
472
+ },
473
+ {
474
+ "indexed": false,
475
+ "internalType": "uint256[]",
476
+ "name": "nonces",
477
+ "type": "uint256[]"
478
+ },
479
+ {
480
+ "indexed": false,
481
+ "internalType": "uint256",
482
+ "name": "reward",
483
+ "type": "uint256"
484
+ },
485
+ {
486
+ "indexed": false,
487
+ "internalType": "uint256",
488
+ "name": "availableRewards",
489
+ "type": "uint256"
490
+ }
491
+ ],
492
+ "name": "ServiceUnstaked",
493
+ "type": "event"
494
+ },
495
+ {
496
+ "anonymous": false,
497
+ "inputs": [
498
+ {
499
+ "indexed": true,
500
+ "internalType": "uint256",
501
+ "name": "epoch",
502
+ "type": "uint256"
503
+ },
504
+ {
505
+ "indexed": false,
506
+ "internalType": "uint256[]",
507
+ "name": "serviceIds",
508
+ "type": "uint256[]"
509
+ },
510
+ {
511
+ "indexed": false,
512
+ "internalType": "address[]",
513
+ "name": "owners",
514
+ "type": "address[]"
515
+ },
516
+ {
517
+ "indexed": false,
518
+ "internalType": "address[]",
519
+ "name": "multisigs",
520
+ "type": "address[]"
521
+ },
522
+ {
523
+ "indexed": false,
524
+ "internalType": "uint256[]",
525
+ "name": "serviceInactivity",
526
+ "type": "uint256[]"
527
+ }
528
+ ],
529
+ "name": "ServicesEvicted",
530
+ "type": "event"
531
+ },
532
+ {
533
+ "anonymous": false,
534
+ "inputs": [
535
+ {
536
+ "indexed": true,
537
+ "internalType": "address",
538
+ "name": "to",
539
+ "type": "address"
540
+ },
541
+ {
542
+ "indexed": false,
543
+ "internalType": "uint256",
544
+ "name": "amount",
545
+ "type": "uint256"
546
+ }
547
+ ],
548
+ "name": "Withdraw",
549
+ "type": "event"
550
+ },
551
+ {
552
+ "inputs": [],
553
+ "name": "VERSION",
554
+ "outputs": [
555
+ {
556
+ "internalType": "string",
557
+ "name": "",
558
+ "type": "string"
559
+ }
560
+ ],
561
+ "stateMutability": "view",
562
+ "type": "function"
563
+ },
564
+ {
565
+ "inputs": [],
566
+ "name": "activityChecker",
567
+ "outputs": [
568
+ {
569
+ "internalType": "address",
570
+ "name": "",
571
+ "type": "address"
572
+ }
573
+ ],
574
+ "stateMutability": "view",
575
+ "type": "function"
576
+ },
577
+ {
578
+ "inputs": [
579
+ {
580
+ "internalType": "uint256",
581
+ "name": "",
582
+ "type": "uint256"
583
+ }
584
+ ],
585
+ "name": "agentIds",
586
+ "outputs": [
587
+ {
588
+ "internalType": "uint256",
589
+ "name": "",
590
+ "type": "uint256"
591
+ }
592
+ ],
593
+ "stateMutability": "view",
594
+ "type": "function"
595
+ },
596
+ {
597
+ "inputs": [],
598
+ "name": "availableRewards",
599
+ "outputs": [
600
+ {
601
+ "internalType": "uint256",
602
+ "name": "",
603
+ "type": "uint256"
604
+ }
605
+ ],
606
+ "stateMutability": "view",
607
+ "type": "function"
608
+ },
609
+ {
610
+ "inputs": [],
611
+ "name": "balance",
612
+ "outputs": [
613
+ {
614
+ "internalType": "uint256",
615
+ "name": "",
616
+ "type": "uint256"
617
+ }
618
+ ],
619
+ "stateMutability": "view",
620
+ "type": "function"
621
+ },
622
+ {
623
+ "inputs": [
624
+ {
625
+ "internalType": "uint256",
626
+ "name": "serviceId",
627
+ "type": "uint256"
628
+ }
629
+ ],
630
+ "name": "calculateStakingLastReward",
631
+ "outputs": [
632
+ {
633
+ "internalType": "uint256",
634
+ "name": "reward",
635
+ "type": "uint256"
636
+ }
637
+ ],
638
+ "stateMutability": "view",
639
+ "type": "function"
640
+ },
641
+ {
642
+ "inputs": [
643
+ {
644
+ "internalType": "uint256",
645
+ "name": "serviceId",
646
+ "type": "uint256"
647
+ }
648
+ ],
649
+ "name": "calculateStakingReward",
650
+ "outputs": [
651
+ {
652
+ "internalType": "uint256",
653
+ "name": "reward",
654
+ "type": "uint256"
655
+ }
656
+ ],
657
+ "stateMutability": "view",
658
+ "type": "function"
659
+ },
660
+ {
661
+ "inputs": [],
662
+ "name": "checkpoint",
663
+ "outputs": [
664
+ {
665
+ "internalType": "uint256[]",
666
+ "name": "",
667
+ "type": "uint256[]"
668
+ },
669
+ {
670
+ "internalType": "uint256[]",
671
+ "name": "",
672
+ "type": "uint256[]"
673
+ },
674
+ {
675
+ "internalType": "uint256[]",
676
+ "name": "",
677
+ "type": "uint256[]"
678
+ },
679
+ {
680
+ "internalType": "uint256[]",
681
+ "name": "evictServiceIds",
682
+ "type": "uint256[]"
683
+ }
684
+ ],
685
+ "stateMutability": "nonpayable",
686
+ "type": "function"
687
+ },
688
+ {
689
+ "inputs": [
690
+ {
691
+ "internalType": "uint256",
692
+ "name": "serviceId",
693
+ "type": "uint256"
694
+ }
695
+ ],
696
+ "name": "checkpointAndClaim",
697
+ "outputs": [
698
+ {
699
+ "internalType": "uint256",
700
+ "name": "",
701
+ "type": "uint256"
702
+ }
703
+ ],
704
+ "stateMutability": "nonpayable",
705
+ "type": "function"
706
+ },
707
+ {
708
+ "inputs": [
709
+ {
710
+ "internalType": "uint256",
711
+ "name": "serviceId",
712
+ "type": "uint256"
713
+ }
714
+ ],
715
+ "name": "claim",
716
+ "outputs": [
717
+ {
718
+ "internalType": "uint256",
719
+ "name": "",
720
+ "type": "uint256"
721
+ }
722
+ ],
723
+ "stateMutability": "nonpayable",
724
+ "type": "function"
725
+ },
726
+ {
727
+ "inputs": [],
728
+ "name": "configHash",
729
+ "outputs": [
730
+ {
731
+ "internalType": "bytes32",
732
+ "name": "",
733
+ "type": "bytes32"
734
+ }
735
+ ],
736
+ "stateMutability": "view",
737
+ "type": "function"
738
+ },
739
+ {
740
+ "inputs": [
741
+ {
742
+ "internalType": "uint256",
743
+ "name": "amount",
744
+ "type": "uint256"
745
+ }
746
+ ],
747
+ "name": "deposit",
748
+ "outputs": [],
749
+ "stateMutability": "nonpayable",
750
+ "type": "function"
751
+ },
752
+ {
753
+ "inputs": [],
754
+ "name": "emissionsAmount",
755
+ "outputs": [
756
+ {
757
+ "internalType": "uint256",
758
+ "name": "",
759
+ "type": "uint256"
760
+ }
761
+ ],
762
+ "stateMutability": "view",
763
+ "type": "function"
764
+ },
765
+ {
766
+ "inputs": [],
767
+ "name": "epochCounter",
768
+ "outputs": [
769
+ {
770
+ "internalType": "uint256",
771
+ "name": "",
772
+ "type": "uint256"
773
+ }
774
+ ],
775
+ "stateMutability": "view",
776
+ "type": "function"
777
+ },
778
+ {
779
+ "inputs": [
780
+ {
781
+ "internalType": "uint256",
782
+ "name": "serviceId",
783
+ "type": "uint256"
784
+ }
785
+ ],
786
+ "name": "forcedUnstake",
787
+ "outputs": [],
788
+ "stateMutability": "nonpayable",
789
+ "type": "function"
790
+ },
791
+ {
792
+ "inputs": [],
793
+ "name": "getAgentIds",
794
+ "outputs": [
795
+ {
796
+ "internalType": "uint256[]",
797
+ "name": "",
798
+ "type": "uint256[]"
799
+ }
800
+ ],
801
+ "stateMutability": "view",
802
+ "type": "function"
803
+ },
804
+ {
805
+ "inputs": [],
806
+ "name": "getNextRewardCheckpointTimestamp",
807
+ "outputs": [
808
+ {
809
+ "internalType": "uint256",
810
+ "name": "tsNext",
811
+ "type": "uint256"
812
+ }
813
+ ],
814
+ "stateMutability": "view",
815
+ "type": "function"
816
+ },
817
+ {
818
+ "inputs": [],
819
+ "name": "getServiceIds",
820
+ "outputs": [
821
+ {
822
+ "internalType": "uint256[]",
823
+ "name": "",
824
+ "type": "uint256[]"
825
+ }
826
+ ],
827
+ "stateMutability": "view",
828
+ "type": "function"
829
+ },
830
+ {
831
+ "inputs": [
832
+ {
833
+ "internalType": "uint256",
834
+ "name": "serviceId",
835
+ "type": "uint256"
836
+ }
837
+ ],
838
+ "name": "getServiceInfo",
839
+ "outputs": [
840
+ {
841
+ "components": [
842
+ {
843
+ "internalType": "address",
844
+ "name": "multisig",
845
+ "type": "address"
846
+ },
847
+ {
848
+ "internalType": "address",
849
+ "name": "owner",
850
+ "type": "address"
851
+ },
852
+ {
853
+ "internalType": "uint256[]",
854
+ "name": "nonces",
855
+ "type": "uint256[]"
856
+ },
857
+ {
858
+ "internalType": "uint256",
859
+ "name": "tsStart",
860
+ "type": "uint256"
861
+ },
862
+ {
863
+ "internalType": "uint256",
864
+ "name": "reward",
865
+ "type": "uint256"
866
+ },
867
+ {
868
+ "internalType": "uint256",
869
+ "name": "inactivity",
870
+ "type": "uint256"
871
+ }
872
+ ],
873
+ "internalType": "struct ServiceInfo",
874
+ "name": "sInfo",
875
+ "type": "tuple"
876
+ }
877
+ ],
878
+ "stateMutability": "view",
879
+ "type": "function"
880
+ },
881
+ {
882
+ "inputs": [
883
+ {
884
+ "internalType": "uint256",
885
+ "name": "serviceId",
886
+ "type": "uint256"
887
+ }
888
+ ],
889
+ "name": "getStakingState",
890
+ "outputs": [
891
+ {
892
+ "internalType": "enum StakingBase.StakingState",
893
+ "name": "stakingState",
894
+ "type": "uint8"
895
+ }
896
+ ],
897
+ "stateMutability": "view",
898
+ "type": "function"
899
+ },
900
+ {
901
+ "inputs": [
902
+ {
903
+ "components": [
904
+ {
905
+ "internalType": "bytes32",
906
+ "name": "metadataHash",
907
+ "type": "bytes32"
908
+ },
909
+ {
910
+ "internalType": "uint256",
911
+ "name": "maxNumServices",
912
+ "type": "uint256"
913
+ },
914
+ {
915
+ "internalType": "uint256",
916
+ "name": "rewardsPerSecond",
917
+ "type": "uint256"
918
+ },
919
+ {
920
+ "internalType": "uint256",
921
+ "name": "minStakingDeposit",
922
+ "type": "uint256"
923
+ },
924
+ {
925
+ "internalType": "uint256",
926
+ "name": "minNumStakingPeriods",
927
+ "type": "uint256"
928
+ },
929
+ {
930
+ "internalType": "uint256",
931
+ "name": "maxNumInactivityPeriods",
932
+ "type": "uint256"
933
+ },
934
+ {
935
+ "internalType": "uint256",
936
+ "name": "livenessPeriod",
937
+ "type": "uint256"
938
+ },
939
+ {
940
+ "internalType": "uint256",
941
+ "name": "timeForEmissions",
942
+ "type": "uint256"
943
+ },
944
+ {
945
+ "internalType": "uint256",
946
+ "name": "numAgentInstances",
947
+ "type": "uint256"
948
+ },
949
+ {
950
+ "internalType": "uint256[]",
951
+ "name": "agentIds",
952
+ "type": "uint256[]"
953
+ },
954
+ {
955
+ "internalType": "uint256",
956
+ "name": "threshold",
957
+ "type": "uint256"
958
+ },
959
+ {
960
+ "internalType": "bytes32",
961
+ "name": "configHash",
962
+ "type": "bytes32"
963
+ },
964
+ {
965
+ "internalType": "bytes32",
966
+ "name": "proxyHash",
967
+ "type": "bytes32"
968
+ },
969
+ {
970
+ "internalType": "address",
971
+ "name": "serviceRegistry",
972
+ "type": "address"
973
+ },
974
+ {
975
+ "internalType": "address",
976
+ "name": "activityChecker",
977
+ "type": "address"
978
+ }
979
+ ],
980
+ "internalType": "struct StakingBase.StakingParams",
981
+ "name": "_stakingParams",
982
+ "type": "tuple"
983
+ },
984
+ {
985
+ "internalType": "address",
986
+ "name": "_serviceRegistryTokenUtility",
987
+ "type": "address"
988
+ },
989
+ {
990
+ "internalType": "address",
991
+ "name": "_stakingToken",
992
+ "type": "address"
993
+ }
994
+ ],
995
+ "name": "initialize",
996
+ "outputs": [],
997
+ "stateMutability": "nonpayable",
998
+ "type": "function"
999
+ },
1000
+ {
1001
+ "inputs": [],
1002
+ "name": "livenessPeriod",
1003
+ "outputs": [
1004
+ {
1005
+ "internalType": "uint256",
1006
+ "name": "",
1007
+ "type": "uint256"
1008
+ }
1009
+ ],
1010
+ "stateMutability": "view",
1011
+ "type": "function"
1012
+ },
1013
+ {
1014
+ "inputs": [
1015
+ {
1016
+ "internalType": "uint256",
1017
+ "name": "",
1018
+ "type": "uint256"
1019
+ }
1020
+ ],
1021
+ "name": "mapServiceInfo",
1022
+ "outputs": [
1023
+ {
1024
+ "internalType": "address",
1025
+ "name": "multisig",
1026
+ "type": "address"
1027
+ },
1028
+ {
1029
+ "internalType": "address",
1030
+ "name": "owner",
1031
+ "type": "address"
1032
+ },
1033
+ {
1034
+ "internalType": "uint256",
1035
+ "name": "tsStart",
1036
+ "type": "uint256"
1037
+ },
1038
+ {
1039
+ "internalType": "uint256",
1040
+ "name": "reward",
1041
+ "type": "uint256"
1042
+ },
1043
+ {
1044
+ "internalType": "uint256",
1045
+ "name": "inactivity",
1046
+ "type": "uint256"
1047
+ }
1048
+ ],
1049
+ "stateMutability": "view",
1050
+ "type": "function"
1051
+ },
1052
+ {
1053
+ "inputs": [],
1054
+ "name": "maxInactivityDuration",
1055
+ "outputs": [
1056
+ {
1057
+ "internalType": "uint256",
1058
+ "name": "",
1059
+ "type": "uint256"
1060
+ }
1061
+ ],
1062
+ "stateMutability": "view",
1063
+ "type": "function"
1064
+ },
1065
+ {
1066
+ "inputs": [],
1067
+ "name": "maxNumInactivityPeriods",
1068
+ "outputs": [
1069
+ {
1070
+ "internalType": "uint256",
1071
+ "name": "",
1072
+ "type": "uint256"
1073
+ }
1074
+ ],
1075
+ "stateMutability": "view",
1076
+ "type": "function"
1077
+ },
1078
+ {
1079
+ "inputs": [],
1080
+ "name": "maxNumServices",
1081
+ "outputs": [
1082
+ {
1083
+ "internalType": "uint256",
1084
+ "name": "",
1085
+ "type": "uint256"
1086
+ }
1087
+ ],
1088
+ "stateMutability": "view",
1089
+ "type": "function"
1090
+ },
1091
+ {
1092
+ "inputs": [],
1093
+ "name": "metadataHash",
1094
+ "outputs": [
1095
+ {
1096
+ "internalType": "bytes32",
1097
+ "name": "",
1098
+ "type": "bytes32"
1099
+ }
1100
+ ],
1101
+ "stateMutability": "view",
1102
+ "type": "function"
1103
+ },
1104
+ {
1105
+ "inputs": [],
1106
+ "name": "minStakingDeposit",
1107
+ "outputs": [
1108
+ {
1109
+ "internalType": "uint256",
1110
+ "name": "",
1111
+ "type": "uint256"
1112
+ }
1113
+ ],
1114
+ "stateMutability": "view",
1115
+ "type": "function"
1116
+ },
1117
+ {
1118
+ "inputs": [],
1119
+ "name": "minStakingDuration",
1120
+ "outputs": [
1121
+ {
1122
+ "internalType": "uint256",
1123
+ "name": "",
1124
+ "type": "uint256"
1125
+ }
1126
+ ],
1127
+ "stateMutability": "view",
1128
+ "type": "function"
1129
+ },
1130
+ {
1131
+ "inputs": [],
1132
+ "name": "numAgentInstances",
1133
+ "outputs": [
1134
+ {
1135
+ "internalType": "uint256",
1136
+ "name": "",
1137
+ "type": "uint256"
1138
+ }
1139
+ ],
1140
+ "stateMutability": "view",
1141
+ "type": "function"
1142
+ },
1143
+ {
1144
+ "inputs": [
1145
+ {
1146
+ "internalType": "address",
1147
+ "name": "",
1148
+ "type": "address"
1149
+ },
1150
+ {
1151
+ "internalType": "address",
1152
+ "name": "",
1153
+ "type": "address"
1154
+ },
1155
+ {
1156
+ "internalType": "uint256",
1157
+ "name": "",
1158
+ "type": "uint256"
1159
+ },
1160
+ {
1161
+ "internalType": "bytes",
1162
+ "name": "",
1163
+ "type": "bytes"
1164
+ }
1165
+ ],
1166
+ "name": "onERC721Received",
1167
+ "outputs": [
1168
+ {
1169
+ "internalType": "bytes4",
1170
+ "name": "",
1171
+ "type": "bytes4"
1172
+ }
1173
+ ],
1174
+ "stateMutability": "nonpayable",
1175
+ "type": "function"
1176
+ },
1177
+ {
1178
+ "inputs": [],
1179
+ "name": "proxyHash",
1180
+ "outputs": [
1181
+ {
1182
+ "internalType": "bytes32",
1183
+ "name": "",
1184
+ "type": "bytes32"
1185
+ }
1186
+ ],
1187
+ "stateMutability": "view",
1188
+ "type": "function"
1189
+ },
1190
+ {
1191
+ "inputs": [],
1192
+ "name": "rewardsPerSecond",
1193
+ "outputs": [
1194
+ {
1195
+ "internalType": "uint256",
1196
+ "name": "",
1197
+ "type": "uint256"
1198
+ }
1199
+ ],
1200
+ "stateMutability": "view",
1201
+ "type": "function"
1202
+ },
1203
+ {
1204
+ "inputs": [],
1205
+ "name": "serviceRegistry",
1206
+ "outputs": [
1207
+ {
1208
+ "internalType": "address",
1209
+ "name": "",
1210
+ "type": "address"
1211
+ }
1212
+ ],
1213
+ "stateMutability": "view",
1214
+ "type": "function"
1215
+ },
1216
+ {
1217
+ "inputs": [],
1218
+ "name": "serviceRegistryTokenUtility",
1219
+ "outputs": [
1220
+ {
1221
+ "internalType": "address",
1222
+ "name": "",
1223
+ "type": "address"
1224
+ }
1225
+ ],
1226
+ "stateMutability": "view",
1227
+ "type": "function"
1228
+ },
1229
+ {
1230
+ "inputs": [
1231
+ {
1232
+ "internalType": "uint256",
1233
+ "name": "",
1234
+ "type": "uint256"
1235
+ }
1236
+ ],
1237
+ "name": "setServiceIds",
1238
+ "outputs": [
1239
+ {
1240
+ "internalType": "uint256",
1241
+ "name": "",
1242
+ "type": "uint256"
1243
+ }
1244
+ ],
1245
+ "stateMutability": "view",
1246
+ "type": "function"
1247
+ },
1248
+ {
1249
+ "inputs": [
1250
+ {
1251
+ "internalType": "uint256",
1252
+ "name": "serviceId",
1253
+ "type": "uint256"
1254
+ }
1255
+ ],
1256
+ "name": "stake",
1257
+ "outputs": [],
1258
+ "stateMutability": "nonpayable",
1259
+ "type": "function"
1260
+ },
1261
+ {
1262
+ "inputs": [],
1263
+ "name": "stakingToken",
1264
+ "outputs": [
1265
+ {
1266
+ "internalType": "address",
1267
+ "name": "",
1268
+ "type": "address"
1269
+ }
1270
+ ],
1271
+ "stateMutability": "view",
1272
+ "type": "function"
1273
+ },
1274
+ {
1275
+ "inputs": [],
1276
+ "name": "threshold",
1277
+ "outputs": [
1278
+ {
1279
+ "internalType": "uint256",
1280
+ "name": "",
1281
+ "type": "uint256"
1282
+ }
1283
+ ],
1284
+ "stateMutability": "view",
1285
+ "type": "function"
1286
+ },
1287
+ {
1288
+ "inputs": [],
1289
+ "name": "timeForEmissions",
1290
+ "outputs": [
1291
+ {
1292
+ "internalType": "uint256",
1293
+ "name": "",
1294
+ "type": "uint256"
1295
+ }
1296
+ ],
1297
+ "stateMutability": "view",
1298
+ "type": "function"
1299
+ },
1300
+ {
1301
+ "inputs": [],
1302
+ "name": "tsCheckpoint",
1303
+ "outputs": [
1304
+ {
1305
+ "internalType": "uint256",
1306
+ "name": "",
1307
+ "type": "uint256"
1308
+ }
1309
+ ],
1310
+ "stateMutability": "view",
1311
+ "type": "function"
1312
+ },
1313
+ {
1314
+ "inputs": [
1315
+ {
1316
+ "internalType": "uint256",
1317
+ "name": "serviceId",
1318
+ "type": "uint256"
1319
+ }
1320
+ ],
1321
+ "name": "unstake",
1322
+ "outputs": [
1323
+ {
1324
+ "internalType": "uint256",
1325
+ "name": "",
1326
+ "type": "uint256"
1327
+ }
1328
+ ],
1329
+ "stateMutability": "nonpayable",
1330
+ "type": "function"
1331
+ }
1332
+ ],
1333
+ "bytecode": "0x608060405234801561000f575f80fd5b50600436106102cd575f3560e01c806393ac752f1161017c578063c5a1d7f0116100dd578063eb338c9611610093578063f86ad2b61161006e578063f86ad2b6146105db578063fd0bba8c146105e4578063ffa1ad7414610604575f80fd5b8063eb338c96146105b8578063f189e85a146105cb578063f4dce714146105d3575f80fd5b8063e1f1176d116100c3578063e1f1176d1461059d578063e77cdcc9146105a6578063eacdaabc146105af575f80fd5b8063c5a1d7f014610582578063cbcf252a1461058a575f80fd5b8063b150876011610132578063b69ef8a811610118578063b69ef8a81461054e578063b6b55f2514610557578063c2c4c5c11461056a575f80fd5b8063b150876014610526578063b267c67b1461053b575f80fd5b8063a0ed60e011610162578063a0ed60e01461048f578063a694fc3a14610498578063a74466ad146104ab575f80fd5b806393ac752f146104715780639573236114610486575f80fd5b806352c824f5116102315780637fbe2833116101e757806383f9eb22116101c257806383f9eb2214610442578063879d9090146104555780638f9e0a621461045e575f80fd5b80637fbe283314610406578063809cee2f1461041957806382a8ea5814610422575f80fd5b806356e760581161021757806356e76058146103d75780635829c5ec146103ea57806372f702f3146103f3575f80fd5b806352c824f5146103bb578063546af2e0146103c4575f80fd5b80632871405111610286578063379607f51161026c578063379607f5146103965780633e732997146103a957806342cde4e8146103b2575f80fd5b806328714051146103585780632e17de7814610383575f80fd5b8063150b7a02116102b6578063150b7a02146102f657806316a75172146103465780631f7794081461034f575f80fd5b806308ae7e54146102d157806314b19c5a146102ed575b5f80fd5b6102da600d5481565b6040519081526020015b60405180910390f35b6102da600f5481565b610315610304366004612c65565b630a85bd0160e11b95945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016102e4565b6102da60015481565b6102da60065481565b60175461036b906001600160a01b031681565b6040516001600160a01b0390911681526020016102e4565b6102da610391366004612cfc565b610635565b6102da6103a4366004612cfc565b610646565b6102da60135481565b6102da60085481565b6102da60055481565b6102da6103d2366004612cfc565b610651565b6102da6103e5366004612cfc565b61065d565b6102da60075481565b60185461036b906001600160a01b031681565b6102da610414366004612cfc565b61067c565b6102da600a5481565b610435610430366004612cfc565b610743565b6040516102e49190612d13565b6102da610450366004612cfc565b610832565b6102da60115481565b600c5461036b906001600160a01b031681565b61048461047f366004612cfc565b6108ea565b005b6102da60125481565b6102da60045481565b6104846104a6366004612cfc565b6108f9565b6104f36104b9366004612cfc565b60156020525f9081526040902080546001820154600383015460048401546005909401546001600160a01b03938416949390921692909185565b604080516001600160a01b039687168152959094166020860152928401919091526060830152608082015260a0016102e4565b61052e610de9565b6040516102e49190612ddf565b610484610549366004612f13565b610e3f565b6102da60105481565b610484610565366004612cfc565b610eb5565b610572610f42565b6040516102e49493929190613047565b6102da5f5481565b600b5461036b906001600160a01b031681565b6102da60095481565b6102da60035481565b6102da60025481565b6102da6105c6366004612cfc565b6115d6565b61052e6115e5565b6102da611639565b6102da600e5481565b6105f76105f2366004612cfc565b61164f565b6040516102e491906130b2565b610628604051806040016040528060058152602001640302e322e360dc1b81525081565b6040516102e491906130d8565b5f610640825f611721565b92915050565b5f610640825f611aa8565b5f610640826001611aa8565b6014818154811061066c575f80fd5b5f91825260209091200154905081565b5f818152601560209081526040808320815160c08101835281546001600160a01b03908116825260018301541681850152600282018054845181870281018701865281815287969395860193909291908301828280156106f957602002820191905f5260205f20905b8154815260200190600101908083116106e5575b50505050508152602001600382015481526020016004820154815260200160058201548152505090508060800151915061073283610832565b61073c9083613121565b9392505050565b6107896040518060c001604052805f6001600160a01b031681526020015f6001600160a01b03168152602001606081526020015f81526020015f81526020015f81525090565b5f82815260156020908152604091829020825160c08101845281546001600160a01b039081168252600183015416818401526002820180548551818602810186018752818152929593949386019383018282801561080457602002820191905f5260205f20905b8154815260200190600101908083116107f0575b5050505050815260200160038201548152602001600482015481526020016005820154815250509050919050565b5f805f805f80610840611bab565b505050945094509450945094505f5b848110156108df578783828151811061086a5761086a613134565b6020026020010151036108d757858411156108b657838683838151811061089357610893613134565b60200260200101516108a59190613148565b6108af9190613173565b96506108df565b8181815181106108c8576108c8613134565b602002602001015196506108df565b60010161084f565b505050505050919050565b6108f5816001611721565b5050565b610901610f42565b505050506011545f036109275760405163afb0be3360e01b815260040160405180910390fd5b5f81815260156020526040902060038101541561095f5760405163b4817ce760e01b8152600481018390526024015b60405180910390fd5b601654600154810361098a5760015460405163fd20861560e01b815260040161095691815260200190565b600b5460405163ef0e239b60e01b8152600481018590525f916001600160a01b03169063ef0e239b906024015f60405180830381865afa1580156109d0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109f79190810190613230565b9050806080015163ffffffff1660075414610a2857604051637ad404bf60e11b815260048101859052602401610956565b60095415801590610a3f5750806040015160095414155b15610a6057604051637ad404bf60e11b815260048101859052602401610956565b5f600854118015610a7d5750806060015163ffffffff1660085414155b15610a9e57604051637ad404bf60e11b815260048101859052602401610956565b60048160c001516005811115610ab657610ab661309e565b14610af5578060c001516005811115610ad157610ad161309e565b604051633c053f9d60e21b8152600481019190915260248101859052604401610956565b5f81602001516001600160a01b0316803b806020016040519081016040528181525f908060200190933c80519060200120905080600a5414610b5a57602082015160405162a2307960e51b81526001600160a01b039091166004820152602401610956565b6014548015610c1e5760e083015151818114610b8c57604051637ad404bf60e11b815260048101889052602401610956565b5f5b81811015610c1b578460e001518181518110610bac57610bac613134565b602002602001015163ffffffff1660148281548110610bcd57610bcd613134565b905f5260205f20015414610c135760148181548110610bee57610bee613134565b905f5260205f200154604051632ab10b0b60e21b815260040161095691815260200190565b600101610b8e565b50505b610c3e86845f01516bffffffffffffffffffffffff168560e00151611f4b565b602083015185546001600160a01b039182166001600160a01b0319918216811788556001880180549092163317909155600c5460405163d564c4bf60e01b815260048101929092525f92169063d564c4bf906024015f60405180830381865afa158015610cad573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610cd49190810190613309565b8051909150610cec9060028801906020840190612bc6565b50426003870155601680546001810182555f919091527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b512428901879055600b54604051632142170760e11b8152336004820152306024820152604481018990526001600160a01b03909116906342842e0e906064015f604051808303815f87803b158015610d76575f80fd5b505af1158015610d88573d5f803e3d5ffd5b5050505083602001516001600160a01b0316336001600160a01b0316887faa6b005b4958114a0c90492461c24af6525ae0178db7fbf44125ae9217c69ccb600f5485604051610dd892919061338a565b60405180910390a450505050505050565b60606014805480602002602001604051908101604052809291908181526020018280548015610e3557602002820191905f5260205f20905b815481526020019060010190808311610e21575b5050505050905090565b610e4883612134565b6001600160a01b0381161580610e6557506001600160a01b038216155b15610e8357604051636b093aad60e01b815260040160405180910390fd5b601880546001600160a01b039283166001600160a01b0319918216179091556017805493909216921691909117905550565b5f81601054610ec49190613121565b90505f82601154610ed59190613121565b60108390556011819055601854909150610efa906001600160a01b03163330866124b2565b604080518481526020810184905290810182905233907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2505050565b6060806060805f805f805f805f80610f58611bab565b97509750975097509750975097509750606080845167ffffffffffffffff811115610f8557610f85612df1565b604051908082528060200260200182016040528015610fae578160200160208202803683370190505b509a505f891561132f578967ffffffffffffffff811115610fd157610fd1612df1565b604051908082528060200260200182016040528015610ffa578160200160208202803683370190505b5092508967ffffffffffffffff81111561101657611016612df1565b60405190808252806020026020018201604052801561103f578160200160208202803683370190505b5091508a89111561123c575f8060015b8c811015611138578b8e8b838151811061106b5761106b613134565b602002602001015161107d9190613148565b6110879190613173565b92506110938383613121565b91508a81815181106110a7576110a7613134565b602002602001015193508a81815181106110c3576110c3613134565b60200260200101518682815181106110dd576110dd613134565b602002602001018181525050828582815181106110fc576110fc613134565b6020026020010181815250508260155f8681526020019081526020015f206004015f82825461112b9190613121565b909155505060010161104f565b508a8d8a5f8151811061114d5761114d613134565b602002602001015161115f9190613148565b6111699190613173565b91506111758282613121565b9050895f8151811061118957611189613134565b60200260200101519250895f815181106111a5576111a5613134565b6020026020010151855f815181106111bf576111bf613134565b602002602001018181525050808d11156111ea576111dd818e6133aa565b6111e79083613121565b91505b81845f815181106111fd576111fd613134565b6020026020010181815250508160155f8581526020019081526020015f206004015f82825461122c9190613121565b909155505f9d5061132992505050565b5f5b8a81101561131b5788818151811061125857611258613134565b6020026020010151915088818151811061127457611274613134565b602002602001015184828151811061128e5761128e613134565b6020026020010181815250508781815181106112ac576112ac613134565b60200260200101518382815181106112c6576112c6613134565b6020026020010181815250508781815181106112e4576112e4613134565b602002602001015160155f8481526020019081526020015f206004015f82825461130e9190613121565b909155505060010161123e565b50611326898c6133aa565b9a505b60118b90555b8551156115a257600f545f9a508a5b875181101561151d5787818151811061135957611359613134565b6020026020010151925086818151811061137557611375613134565b602002602001015160155f8581526020019081526020015f2060020190805190602001906113a4929190612bc6565b505f8682815181106113b8576113b8613134565b60200260200101511115611503578581815181106113d8576113d8613134565b602002602001015160155f8581526020019081526020015f20600501546113ff9190613121565b86828151811061141157611411613134565b60200260200101818152505085818151811061142f5761142f613134565b602002602001015160155f8581526020019081526020015f2060050181905550600e5486828151811061146457611464613134565b602002602001015111156114a257828e828151811061148557611485613134565b60209081029190910101528b61149a816133bd565b9c5050611515565b827f33dc5cdf1e035de8a7fe16ad7a30a441d30ee51719d3f07703ee35d4348f0779838884815181106114d7576114d7613134565b60200260200101516040516114f6929190918252602082015260400190565b60405180910390a2611515565b5f838152601560205260408120600501555b60010161133e565b508a156115365761152f8d868d612536565b9c5061153b565b60609c505b5f6013544261154a91906133aa565b42601355905061155b826001613121565b600f81905550817f48b735a18ed32318d316214e41387be29c52e29df4598f2b8e40fa843be3f9408e87878560405161159794939291906133d5565b60405180910390a250505b855115806115b057505f8c51115b156115c0576115bd6115e5565b95505b50939c509a509198505050505050505090919293565b6016818154811061066c575f80fd5b60606016805480602002602001604051908101604052809291908181526020018280548015610e3557602002820191905f5260205f2090815481526020019060010190808311610e21575050505050905090565b5f60055460135461164a9190613121565b905090565b5f818152601560209081526040808320815160c08101835281546001600160a01b03908116825260018301541681850152600282018054845181870281018701865281815287969395860193909291908301828280156116cc57602002820191905f5260205f20905b8154815260200190600101908083116116b8575b5050505050815260200160038201548152602001600482015481526020016005820154815250509050600e548160a00151111561170c576002915061171b565b60608101511561171b57600191505b50919050565b5f82815260156020526040812060018101546001600160a01b0316331461177257600181015460405163521eb56d60e11b81523360048201526001600160a01b039091166024820152604401610956565b5f61177b610f42565b505050600483015460115460038501549195509192505f9061179d90426133aa565b9050600d5481111580156117b057505f82115b156117e357600d5460405163ba2bbc6b60e01b815260048101899052602481018390526044810191909152606401610956565b5f805b8451821015611822578885838151811061180257611802613134565b60200260200101510361181757506001611822565b8160010191506117e6565b5f8660020180548060200260200160405190810160405280929190818152602001828054801561186f57602002820191905f5260205f20905b81548152602001906001019080831161185b575b50508a545f8f815260156020526040812080546001600160a01b0319908116825560018201805490911690559596506001600160a01b0390911694935091506118bd90506002830182612c0f565b505f60038201819055600482018190556005909101558215611953576016545f906118ea906001906133aa565b9050801561192d576016818154811061190557611905613134565b905f5260205f2001546016868154811061192157611921613134565b5f918252602090912001555b601680548061193e5761193e613411565b600190038181905f5260205f20015f90559055505b600b546040516323b872dd60e01b8152306004820152336024820152604481018d90526001600160a01b03909116906323b872dd906064015f604051808303815f87803b1580156119a2575f80fd5b505af11580156119b4573d5f803e3d5ffd5b505050505f8911156119e65789156119dc576119d08987613121565b601181905595506119e6565b6119e6818a6128ee565b8915611a4557806001600160a01b0316336001600160a01b03168c7f91c9f7c7f307bcc0ae02ba613bd8d07c29e94952f0a28803ded176fcd7d96d64600f54868e8c604051611a389493929190613425565b60405180910390a4611a9a565b806001600160a01b0316336001600160a01b03168c7f6d789d063e079a4c156e77a20008529fc448dca2cd7e5e7a20abf969fffb9226600f54868e8c604051611a919493929190613425565b60405180910390a45b505050505050505092915050565b5f82815260156020526040812060018101546001600160a01b03163314611af957600181015460405163521eb56d60e11b81523360048201526001600160a01b039091166024820152604401610956565b8215611b0c57611b07610f42565b505050505b80600401549150815f03611b3357604051637c946ed760e01b815260040160405180910390fd5b5f600482015580546001600160a01b0316611b4e81846128ee565b806001600160a01b0316336001600160a01b0316867f31add0166dae59ea66bbc180e4fae85b72fc9b7b5fc7b0f7257e4721a840c96e600f548660020188604051611b9b93929190613450565b60405180910390a4505092915050565b60135460115460165490915f91829160609182918291829182918015801590611bdf5750600554611bdc83426133aa565b10155b8015611bea57505f8a115b15611f3f578067ffffffffffffffff811115611c0857611c08612df1565b604051908082528060200260200182016040528015611c31578160200160208202803683370190505b5094508067ffffffffffffffff811115611c4d57611c4d612df1565b604051908082528060200260200182016040528015611c76578160200160208202803683370190505b5096508067ffffffffffffffff811115611c9257611c92612df1565b604051908082528060200260200182016040528015611cbb578160200160208202803683370190505b5095508067ffffffffffffffff811115611cd757611cd7612df1565b604051908082528060200260200182016040528015611d0a57816020015b6060815260200190600190039081611cf55790505b5093508067ffffffffffffffff811115611d2657611d26612df1565b604051908082528060200260200182016040528015611d4f578160200160208202803683370190505b5092505f5b81811015611f3d5760168181548110611d6f57611d6f613134565b905f5260205f200154868281518110611d8a57611d8a613134565b6020026020010181815250505f60155f888481518110611dac57611dac613134565b602002602001015181526020019081526020015f2090505f8490505f8260030154905081811115611ddb578091505b611de582426133aa565b8354600285018054604080516020808402820181019092528281529495505f94611e4f946001600160a01b03169390929091830182828015611e4457602002820191905f5260205f20905b815481526020019060010190808311611e30575b505050505084612962565b8a8781518110611e6157611e61613134565b602090810291909101015290508015611f0e5781600254611e829190613148565b8b8f81518110611e9457611e94613134565b6020026020010181815250508a8e81518110611eb257611eb2613134565b60200260200101518d611ec59190613121565b9c50898581518110611ed957611ed9613134565b60200260200101518c8f81518110611ef357611ef3613134565b6020908102919091010152611f078e6133bd565b9d50611f2e565b81888681518110611f2157611f21613134565b6020026020010181815250505b50505050806001019050611d54565b505b50509091929394959697565b601754604051633cebfa4f60e01b8152600481018590525f9182916001600160a01b0390911690633cebfa4f906024016040805180830381865afa158015611f95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fb991906134aa565b60185491935091506001600160a01b0380841691161461200357601854604051630b80380d60e31b81526001600160a01b0391821660048201529083166024820152604401610956565b6003546bffffffffffffffffffffffff821681111561204c57604051632b30b24760e21b81526bffffffffffffffffffffffff8316600482015260248101829052604401610956565b5f5b845181101561212b5760175485515f916001600160a01b0316906375c1f934908a9089908690811061208257612082613134565b60200260200101516040518363ffffffff1660e01b81526004016120b692919091825263ffffffff16602082015260400190565b602060405180830381865afa1580156120d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120f591906134dd565b90508281101561212257604051632b30b24760e21b81526004810182905260248101849052604401610956565b5060010161204e565b50505050505050565b600b546001600160a01b03161561215d5760405162dc149f60e41b815260040160405180910390fd5b8051158061216d57506020810151155b8061217a57506040810151155b80612187575060c0810151155b806121955750610100810151155b806121a2575060e0810151155b806121af57506080810151155b806121bc575060a0810151155b156121da57604051637c946ed760e01b815260040160405180910390fd5b8060a001518160800151101561221657608081015160a082015160405163491a2bb160e01b815260048101929092526024820152604401610956565b60028160600151101561224c57606081015160405163491a2bb160e01b8152600481019190915260026024820152604401610956565b6101a08101516001600160a01b0316158061227357506101c08101516001600160a01b0316155b156122915760405163d92e233d60e01b815260040160405180910390fd5b806101c001516001600160a01b03163b5f036122d2576101c081015160405163601c0c2160e01b81526001600160a01b039091166004820152602401610956565b80515f90815560208201516001556040820151600255606082015160035560a082015160045560c082015160055560e08201516006556101008201516007556101a0820151600b80546001600160a01b039283166001600160a01b0319918216179091556101c0840151600c8054919093169116179055610140820151600855610160820151600955805b8261012001515181101561242b5781836101200151828151811061238357612383613134565b6020026020010151116123cb5782610120015181815181106123a7576123a7613134565b6020026020010151604051632ab10b0b60e21b815260040161095691815260200190565b82610120015181815181106123e2576123e2613134565b602090810291909101015160148054600181810183555f929092527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec018290559092500161235d565b506101808201515f0361245157604051637c946ed760e01b815260040160405180910390fd5b610180820151600a55600554608083015161246c9190613148565b600d5560055460a08301516124819190613148565b600e5560e08201516020830151604084015161249d9190613148565b6124a79190613148565b601255505042601355565b5f6040516323b872dd60e01b5f5284600452836024528260445260205f60645f808a5af13d15601f3d1160015f511416171691505f60605280604052508061252f5760405163abae3d6d60e01b81526001600160a01b03808716600483015280861660248301528416604482015260648101839052608401610956565b5050505050565b82516060908267ffffffffffffffff81111561255457612554612df1565b60405190808252806020026020018201604052801561257d578160200160208202803683370190505b5091505f8367ffffffffffffffff81111561259a5761259a612df1565b6040519080825280602002602001820160405280156125c3578160200160208202803683370190505b5090505f8467ffffffffffffffff8111156125e0576125e0612df1565b604051908082528060200260200182016040528015612609578160200160208202803683370190505b5090505f8567ffffffffffffffff81111561262657612626612df1565b60405190808252806020026020018201604052801561264f578160200160208202803683370190505b5090505f8667ffffffffffffffff81111561266c5761266c612df1565b604051908082528060200260200182016040528015612695578160200160208202803683370190505b5090505f805f5b878110156127f1575f8c82815181106126b7576126b7613134565b602002602001015111156127e9578b81815181106126d7576126d7613134565b60200260200101519150818984815181106126f4576126f4613134565b6020908102919091018101919091525f838152601590915260409020600181015488516001600160a01b039091169089908690811061273557612735613134565b6001600160a01b0392831660209182029290920101528154885191169088908690811061276457612764613134565b60200260200101906001600160a01b031690816001600160a01b0316815250508b828151811061279657612796613134565b60200260200101518685815181106127b0576127b0613134565b602002602001018181525050818585815181106127cf576127cf613134565b6020908102919091010152836127e4816133bd565b945050505b60010161269c565b50885b801561289f5787612804816134f4565b98505f9050846128156001846133aa565b8151811061282557612825613134565b602002602001015190506016898154811061284257612842613134565b905f5260205f2001546016828154811061285e5761285e613134565b5f91825260209091200155601680548061287a5761287a613411565b600190038181905f5260205f20015f905590555080612898906134f4565b90506127f4565b50600f547fd19a3d42ed383465e4058c322d9411aeac76ddb8454d22e139fc99808bd56952898888886040516128d89493929190613541565b60405180910390a2505050505050509392505050565b8060105f8282546128ff91906133aa565b909155505060185461291b906001600160a01b03168383612b49565b816001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405161295691815260200190565b60405180910390a25050565b6040516001600160a01b03841660248201525f90606090829060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663d564c4bf60e01b179052600c5490519192505f9182916001600160a01b0316906129de908590613579565b5f60405180830381855afa9150503d805f8114612a16576040519150601f19603f3d011682016040523d82523d5f602084013e612a1b565b606091505b5091509150818015612a2e5750603f8151115b8015612a45575060208151612a43919061358f565b155b15612b3e5780806020019051810190612a5e9190613309565b9350838787604051602401612a75939291906135a2565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663184023a560e01b179052600c5490519194506001600160a01b031690612ad1908590613579565b5f60405180830381855afa9150503d805f8114612b09576040519150601f19603f3d011682016040523d82523d5f602084013e612b0e565b606091505b509092509050818015612b22575080516020145b15612b3e5780806020019051810190612b3b91906135d7565b94505b505050935093915050565b5f60405163a9059cbb60e01b5f52836004528260245260205f60445f80895af13d15601f3d1160015f511416171691505f606052806040525080612bc05760405163abae3d6d60e01b81526001600160a01b0380861660048301523060248301528416604482015260648101839052608401610956565b50505050565b828054828255905f5260205f20908101928215612bff579160200282015b82811115612bff578251825591602001919060010190612be4565b50612c0b929150612c2d565b5090565b5080545f8255905f5260205f2090810190612c2a9190612c2d565b50565b5b80821115612c0b575f8155600101612c2e565b6001600160a01b0381168114612c2a575f80fd5b8035612c6081612c41565b919050565b5f805f805f60808688031215612c79575f80fd5b8535612c8481612c41565b94506020860135612c9481612c41565b935060408601359250606086013567ffffffffffffffff80821115612cb7575f80fd5b818801915088601f830112612cca575f80fd5b813581811115612cd8575f80fd5b896020828501011115612ce9575f80fd5b9699959850939650602001949392505050565b5f60208284031215612d0c575f80fd5b5035919050565b602080825282516001600160a01b0390811683830152838201511660408084019190915283015160c06060840152805160e084018190525f929182019083906101008601905b80831015612d795783518252928401926001929092019190840190612d59565b5060608701516080870152608087015160a087015260a087015160c08701528094505050505092915050565b5f815180845260208085019450602084015f5b83811015612dd457815187529582019590820190600101612db8565b509495945050505050565b602081525f61073c6020830184612da5565b634e487b7160e01b5f52604160045260245ffd5b6040516101e0810167ffffffffffffffff81118282101715612e2957612e29612df1565b60405290565b604051610100810167ffffffffffffffff81118282101715612e2957612e29612df1565b604051601f8201601f1916810167ffffffffffffffff81118282101715612e7c57612e7c612df1565b604052919050565b5f67ffffffffffffffff821115612e9d57612e9d612df1565b5060051b60200190565b5f82601f830112612eb6575f80fd5b81356020612ecb612ec683612e84565b612e53565b8083825260208201915060208460051b870101935086841115612eec575f80fd5b602086015b84811015612f085780358352918301918301612ef1565b509695505050505050565b5f805f60608486031215612f25575f80fd5b833567ffffffffffffffff80821115612f3c575f80fd5b908501906101e08288031215612f50575f80fd5b612f58612e05565b823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013583811115612fc1575f80fd5b612fcd8a828701612ea7565b91830191909152506101408381013590820152610160808401359082015261018080840135908201526101a09150613006828401612c55565b828201526101c0915061301a828401612c55565b8282015280955050505061303060208501612c55565b915061303e60408501612c55565b90509250925092565b608081525f6130596080830187612da5565b828103602084015261306b8187612da5565b9050828103604084015261307f8186612da5565b905082810360608401526130938185612da5565b979650505050505050565b634e487b7160e01b5f52602160045260245ffd5b60208101600383106130d257634e487b7160e01b5f52602160045260245ffd5b91905290565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106405761064061310d565b634e487b7160e01b5f52603260045260245ffd5b80820281158282048414176106405761064061310d565b634e487b7160e01b5f52601260045260245ffd5b5f826131815761318161315f565b500490565b80516bffffffffffffffffffffffff81168114612c60575f80fd5b8051612c6081612c41565b805163ffffffff81168114612c60575f80fd5b805160068110612c60575f80fd5b5f82601f8301126131dc575f80fd5b815160206131ec612ec683612e84565b8083825260208201915060208460051b87010193508684111561320d575f80fd5b602086015b84811015612f0857613223816131ac565b8352918301918301613212565b5f60208284031215613240575f80fd5b815167ffffffffffffffff80821115613257575f80fd5b90830190610100828603121561326b575f80fd5b613273612e2f565b61327c83613186565b815261328a602084016131a1565b6020820152604083015160408201526132a5606084016131ac565b60608201526132b6608084016131ac565b60808201526132c760a084016131ac565b60a08201526132d860c084016131bf565b60c082015260e0830151828111156132ee575f80fd5b6132fa878286016131cd565b60e08301525095945050505050565b5f602080838503121561331a575f80fd5b825167ffffffffffffffff811115613330575f80fd5b8301601f81018513613340575f80fd5b805161334e612ec682612e84565b81815260059190911b8201830190838101908783111561336c575f80fd5b928401925b8284101561309357835182529284019290840190613371565b828152604060208201525f6133a26040830184612da5565b949350505050565b818103818111156106405761064061310d565b5f600182016133ce576133ce61310d565b5060010190565b848152608060208201525f6133ed6080830186612da5565b82810360408401526133ff8186612da5565b91505082606083015295945050505050565b634e487b7160e01b5f52603160045260245ffd5b848152608060208201525f61343d6080830186612da5565b6040830194909452506060015292915050565b5f60608201858352602060606020850152818654808452608086019150875f5260205f2093505f5b8181101561349457845483526001948501949284019201613478565b5050809350505050826040830152949350505050565b5f80604083850312156134bb575f80fd5b82516134c681612c41565b91506134d460208401613186565b90509250929050565b5f602082840312156134ed575f80fd5b5051919050565b5f816135025761350261310d565b505f190190565b5f815180845260208085019450602084015f5b83811015612dd45781516001600160a01b03168752958201959082019060010161351c565b608081525f6135536080830187612da5565b82810360208401526135658187613509565b9050828103604084015261307f8186613509565b5f82518060208501845e5f920191825250919050565b5f8261359d5761359d61315f565b500690565b606081525f6135b46060830186612da5565b82810360208401526135c68186612da5565b915050826040830152949350505050565b5f602082840312156135e7575f80fd5b8151801515811461073c575f80fdfea26469706673582212205776961a63fdaa13bebe3a0b2e71165c50721be211795e8926959409ae3d540364736f6c63430008190033",
1334
+ "linkReferences": {},
1335
+ "deployedLinkReferences": {}
1336
+ }