@venusprotocol/venus-periphery 1.2.0-slim-dev.8 → 1.2.0-slim-dev.10

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.
@@ -0,0 +1,599 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "Executor",
4
+ "sourceName": "contracts/Executor/Executor.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract IEBrake",
10
+ "name": "eBrake_",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "contract ICorePoolComptroller",
15
+ "name": "comptroller_",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "bool",
20
+ "name": "isCorePool_",
21
+ "type": "bool"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "adjustedCap",
32
+ "type": "uint256"
33
+ },
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "minCap",
37
+ "type": "uint256"
38
+ }
39
+ ],
40
+ "name": "CapBelowMinimum",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [],
45
+ "name": "CapNotBreached",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "address",
52
+ "name": "market",
53
+ "type": "address"
54
+ }
55
+ ],
56
+ "name": "MarketDisabled",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "address",
63
+ "name": "market",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "name": "MarketNotConfigured",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "market",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "MarketNotListed",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "address",
85
+ "name": "sender",
86
+ "type": "address"
87
+ },
88
+ {
89
+ "internalType": "address",
90
+ "name": "calledContract",
91
+ "type": "address"
92
+ },
93
+ {
94
+ "internalType": "string",
95
+ "name": "methodSignature",
96
+ "type": "string"
97
+ }
98
+ ],
99
+ "name": "Unauthorized",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "ZeroAddress",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "anonymous": false,
109
+ "inputs": [
110
+ {
111
+ "indexed": true,
112
+ "internalType": "address",
113
+ "name": "caller",
114
+ "type": "address"
115
+ },
116
+ {
117
+ "indexed": true,
118
+ "internalType": "address",
119
+ "name": "market",
120
+ "type": "address"
121
+ }
122
+ ],
123
+ "name": "BorrowCapExceeding",
124
+ "type": "event"
125
+ },
126
+ {
127
+ "anonymous": false,
128
+ "inputs": [
129
+ {
130
+ "indexed": true,
131
+ "internalType": "address",
132
+ "name": "caller",
133
+ "type": "address"
134
+ },
135
+ {
136
+ "indexed": true,
137
+ "internalType": "address",
138
+ "name": "market",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "indexed": false,
143
+ "internalType": "enum IExecutor.CapType",
144
+ "name": "capType",
145
+ "type": "uint8"
146
+ },
147
+ {
148
+ "indexed": false,
149
+ "internalType": "uint256",
150
+ "name": "oldCap",
151
+ "type": "uint256"
152
+ },
153
+ {
154
+ "indexed": false,
155
+ "internalType": "uint256",
156
+ "name": "newCap",
157
+ "type": "uint256"
158
+ }
159
+ ],
160
+ "name": "CapAdjusted",
161
+ "type": "event"
162
+ },
163
+ {
164
+ "anonymous": false,
165
+ "inputs": [
166
+ {
167
+ "indexed": true,
168
+ "internalType": "address",
169
+ "name": "caller",
170
+ "type": "address"
171
+ },
172
+ {
173
+ "indexed": true,
174
+ "internalType": "address",
175
+ "name": "market",
176
+ "type": "address"
177
+ }
178
+ ],
179
+ "name": "HaltedWithoutCapCheck",
180
+ "type": "event"
181
+ },
182
+ {
183
+ "anonymous": false,
184
+ "inputs": [
185
+ {
186
+ "indexed": false,
187
+ "internalType": "uint8",
188
+ "name": "version",
189
+ "type": "uint8"
190
+ }
191
+ ],
192
+ "name": "Initialized",
193
+ "type": "event"
194
+ },
195
+ {
196
+ "anonymous": false,
197
+ "inputs": [
198
+ {
199
+ "indexed": true,
200
+ "internalType": "address",
201
+ "name": "caller",
202
+ "type": "address"
203
+ },
204
+ {
205
+ "indexed": true,
206
+ "internalType": "address",
207
+ "name": "market",
208
+ "type": "address"
209
+ },
210
+ {
211
+ "indexed": false,
212
+ "internalType": "uint256",
213
+ "name": "newLTV",
214
+ "type": "uint256"
215
+ }
216
+ ],
217
+ "name": "LTVAdjusted",
218
+ "type": "event"
219
+ },
220
+ {
221
+ "anonymous": false,
222
+ "inputs": [
223
+ {
224
+ "indexed": true,
225
+ "internalType": "address",
226
+ "name": "market",
227
+ "type": "address"
228
+ },
229
+ {
230
+ "components": [
231
+ {
232
+ "internalType": "uint256",
233
+ "name": "minBorrowCap",
234
+ "type": "uint256"
235
+ },
236
+ {
237
+ "internalType": "uint256",
238
+ "name": "minSupplyCap",
239
+ "type": "uint256"
240
+ },
241
+ {
242
+ "internalType": "bool",
243
+ "name": "enabled",
244
+ "type": "bool"
245
+ }
246
+ ],
247
+ "indexed": false,
248
+ "internalType": "struct IExecutor.MarketConfig",
249
+ "name": "config",
250
+ "type": "tuple"
251
+ }
252
+ ],
253
+ "name": "MarketConfigSet",
254
+ "type": "event"
255
+ },
256
+ {
257
+ "anonymous": false,
258
+ "inputs": [
259
+ {
260
+ "indexed": false,
261
+ "internalType": "address",
262
+ "name": "oldAccessControlManager",
263
+ "type": "address"
264
+ },
265
+ {
266
+ "indexed": false,
267
+ "internalType": "address",
268
+ "name": "newAccessControlManager",
269
+ "type": "address"
270
+ }
271
+ ],
272
+ "name": "NewAccessControlManager",
273
+ "type": "event"
274
+ },
275
+ {
276
+ "anonymous": false,
277
+ "inputs": [
278
+ {
279
+ "indexed": true,
280
+ "internalType": "address",
281
+ "name": "previousOwner",
282
+ "type": "address"
283
+ },
284
+ {
285
+ "indexed": true,
286
+ "internalType": "address",
287
+ "name": "newOwner",
288
+ "type": "address"
289
+ }
290
+ ],
291
+ "name": "OwnershipTransferStarted",
292
+ "type": "event"
293
+ },
294
+ {
295
+ "anonymous": false,
296
+ "inputs": [
297
+ {
298
+ "indexed": true,
299
+ "internalType": "address",
300
+ "name": "previousOwner",
301
+ "type": "address"
302
+ },
303
+ {
304
+ "indexed": true,
305
+ "internalType": "address",
306
+ "name": "newOwner",
307
+ "type": "address"
308
+ }
309
+ ],
310
+ "name": "OwnershipTransferred",
311
+ "type": "event"
312
+ },
313
+ {
314
+ "anonymous": false,
315
+ "inputs": [
316
+ {
317
+ "indexed": true,
318
+ "internalType": "address",
319
+ "name": "caller",
320
+ "type": "address"
321
+ },
322
+ {
323
+ "indexed": true,
324
+ "internalType": "address",
325
+ "name": "market",
326
+ "type": "address"
327
+ }
328
+ ],
329
+ "name": "SupplyCapExceeding",
330
+ "type": "event"
331
+ },
332
+ {
333
+ "inputs": [],
334
+ "name": "COMPTROLLER",
335
+ "outputs": [
336
+ {
337
+ "internalType": "contract ICorePoolComptroller",
338
+ "name": "",
339
+ "type": "address"
340
+ }
341
+ ],
342
+ "stateMutability": "view",
343
+ "type": "function"
344
+ },
345
+ {
346
+ "inputs": [],
347
+ "name": "EBRAKE",
348
+ "outputs": [
349
+ {
350
+ "internalType": "contract IEBrake",
351
+ "name": "",
352
+ "type": "address"
353
+ }
354
+ ],
355
+ "stateMutability": "view",
356
+ "type": "function"
357
+ },
358
+ {
359
+ "inputs": [],
360
+ "name": "IS_CORE_POOL",
361
+ "outputs": [
362
+ {
363
+ "internalType": "bool",
364
+ "name": "",
365
+ "type": "bool"
366
+ }
367
+ ],
368
+ "stateMutability": "view",
369
+ "type": "function"
370
+ },
371
+ {
372
+ "inputs": [],
373
+ "name": "acceptOwnership",
374
+ "outputs": [],
375
+ "stateMutability": "nonpayable",
376
+ "type": "function"
377
+ },
378
+ {
379
+ "inputs": [],
380
+ "name": "accessControlManager",
381
+ "outputs": [
382
+ {
383
+ "internalType": "contract IAccessControlManagerV8",
384
+ "name": "",
385
+ "type": "address"
386
+ }
387
+ ],
388
+ "stateMutability": "view",
389
+ "type": "function"
390
+ },
391
+ {
392
+ "inputs": [
393
+ {
394
+ "internalType": "address",
395
+ "name": "market",
396
+ "type": "address"
397
+ }
398
+ ],
399
+ "name": "handleBorrowCapExceeding",
400
+ "outputs": [],
401
+ "stateMutability": "nonpayable",
402
+ "type": "function"
403
+ },
404
+ {
405
+ "inputs": [
406
+ {
407
+ "internalType": "address",
408
+ "name": "market",
409
+ "type": "address"
410
+ },
411
+ {
412
+ "internalType": "enum IExecutor.CapType",
413
+ "name": "capType",
414
+ "type": "uint8"
415
+ },
416
+ {
417
+ "internalType": "uint256",
418
+ "name": "adjustedCap",
419
+ "type": "uint256"
420
+ }
421
+ ],
422
+ "name": "handleCapAdjust",
423
+ "outputs": [],
424
+ "stateMutability": "nonpayable",
425
+ "type": "function"
426
+ },
427
+ {
428
+ "inputs": [
429
+ {
430
+ "internalType": "address",
431
+ "name": "market",
432
+ "type": "address"
433
+ },
434
+ {
435
+ "internalType": "uint256",
436
+ "name": "adjustedLTV",
437
+ "type": "uint256"
438
+ }
439
+ ],
440
+ "name": "handleLTVAdjust",
441
+ "outputs": [],
442
+ "stateMutability": "nonpayable",
443
+ "type": "function"
444
+ },
445
+ {
446
+ "inputs": [
447
+ {
448
+ "internalType": "address",
449
+ "name": "market",
450
+ "type": "address"
451
+ }
452
+ ],
453
+ "name": "handleSupplyCapExceeding",
454
+ "outputs": [],
455
+ "stateMutability": "nonpayable",
456
+ "type": "function"
457
+ },
458
+ {
459
+ "inputs": [
460
+ {
461
+ "internalType": "address",
462
+ "name": "accessControlManager_",
463
+ "type": "address"
464
+ }
465
+ ],
466
+ "name": "initialize",
467
+ "outputs": [],
468
+ "stateMutability": "nonpayable",
469
+ "type": "function"
470
+ },
471
+ {
472
+ "inputs": [
473
+ {
474
+ "internalType": "address",
475
+ "name": "",
476
+ "type": "address"
477
+ }
478
+ ],
479
+ "name": "marketConfigs",
480
+ "outputs": [
481
+ {
482
+ "internalType": "uint256",
483
+ "name": "minBorrowCap",
484
+ "type": "uint256"
485
+ },
486
+ {
487
+ "internalType": "uint256",
488
+ "name": "minSupplyCap",
489
+ "type": "uint256"
490
+ },
491
+ {
492
+ "internalType": "bool",
493
+ "name": "enabled",
494
+ "type": "bool"
495
+ }
496
+ ],
497
+ "stateMutability": "view",
498
+ "type": "function"
499
+ },
500
+ {
501
+ "inputs": [],
502
+ "name": "owner",
503
+ "outputs": [
504
+ {
505
+ "internalType": "address",
506
+ "name": "",
507
+ "type": "address"
508
+ }
509
+ ],
510
+ "stateMutability": "view",
511
+ "type": "function"
512
+ },
513
+ {
514
+ "inputs": [],
515
+ "name": "pendingOwner",
516
+ "outputs": [
517
+ {
518
+ "internalType": "address",
519
+ "name": "",
520
+ "type": "address"
521
+ }
522
+ ],
523
+ "stateMutability": "view",
524
+ "type": "function"
525
+ },
526
+ {
527
+ "inputs": [],
528
+ "name": "renounceOwnership",
529
+ "outputs": [],
530
+ "stateMutability": "nonpayable",
531
+ "type": "function"
532
+ },
533
+ {
534
+ "inputs": [
535
+ {
536
+ "internalType": "address",
537
+ "name": "accessControlManager_",
538
+ "type": "address"
539
+ }
540
+ ],
541
+ "name": "setAccessControlManager",
542
+ "outputs": [],
543
+ "stateMutability": "nonpayable",
544
+ "type": "function"
545
+ },
546
+ {
547
+ "inputs": [
548
+ {
549
+ "internalType": "address",
550
+ "name": "market",
551
+ "type": "address"
552
+ },
553
+ {
554
+ "components": [
555
+ {
556
+ "internalType": "uint256",
557
+ "name": "minBorrowCap",
558
+ "type": "uint256"
559
+ },
560
+ {
561
+ "internalType": "uint256",
562
+ "name": "minSupplyCap",
563
+ "type": "uint256"
564
+ },
565
+ {
566
+ "internalType": "bool",
567
+ "name": "enabled",
568
+ "type": "bool"
569
+ }
570
+ ],
571
+ "internalType": "struct IExecutor.MarketConfig",
572
+ "name": "config",
573
+ "type": "tuple"
574
+ }
575
+ ],
576
+ "name": "setMarketConfig",
577
+ "outputs": [],
578
+ "stateMutability": "nonpayable",
579
+ "type": "function"
580
+ },
581
+ {
582
+ "inputs": [
583
+ {
584
+ "internalType": "address",
585
+ "name": "newOwner",
586
+ "type": "address"
587
+ }
588
+ ],
589
+ "name": "transferOwnership",
590
+ "outputs": [],
591
+ "stateMutability": "nonpayable",
592
+ "type": "function"
593
+ }
594
+ ],
595
+ "bytecode": "0x60e0346101b957601f611a9538819003918201601f19168301916001600160401b038311848410176101bd578084926060946040528339810103126101b95780516001600160a01b03811691908281036101b9576020820151916001600160a01b038316908184036101b957604001519384151585036101b957156101aa57156101aa5760805260a05260c0525f5460ff8160081c166101555760ff8082160361011b575b6040516118c390816101d2823960805181818161061b01528181610b9e01528181610e0201528181610f0d0152818161136c01526114cf015260a05181818161057b015281816107a1015281816109a301528181610b6301528181610ed3015261129f015260c05181818161076e0152610a9c0152f35b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100a4565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b63d92e233d60e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f5f3560e01c80630e32cb8614611081578063159854e214610e315780631a8e624214610dec5780633aea79e214610ac1578063464aa37c14610a8457806354d31bcd146106df57806359f6c629146105aa5780635f82c67e146105655780636056527f1461050f578063692b377b146104c7578063715018a61461046057806379ba5097146103d85780638da5cb5b146103af578063b4a0bdf314610386578063c4d66de81461016e578063e30c3978146101455763f2fde38b146100d5575f80fd5b34610142576020366003190112610142576100ee611100565b6100f66115dd565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346101425780600319360112610142576065546040516001600160a01b039091168152602090f35b503461014257602036600319011261014257610188611100565b815460ff8160081c161590818092610379575b8015610362575b156103065760ff1981166001178455816102f5575b506101da60ff845460081c166101cc8161182d565b6101d58161182d565b61182d565b6101e3336117da565b82549160ff8360081c16906101f78261182d565b6001600160a01b03169081156102a2577f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa060406102609360975490806001600160601b0360a01b83161760975582519160018060a01b031682526020820152a16101d58161182d565b600160c95561026d575080f35b61ff00191681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b60405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608490fd5b61ffff19166101011783555f6101b7565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156101a25750600160ff8216146101a2565b50600160ff82161061019b565b50346101425780600319360112610142576097546040516001600160a01b039091168152602090f35b50346101425780600319360112610142576033546040516001600160a01b039091168152602090f35b5034610142578060031936011261014257606554336001600160a01b039091160361040957610406336117da565b80f35b60405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608490fd5b50346101425780600319360112610142576104796115dd565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610142576060366003190112610142576104e1611100565b60243590600282101561050b57610503916104fa611635565b6044359161123b565b600160c95580f35b8280fd5b5034610142576020366003190112610142576060906040906001600160a01b03610537611100565b16815260fb6020522080549060ff600260018301549201541690604051928352602083015215156040820152f35b50346101425780600319360112610142576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610142576040366003190112610142576105c4611100565b6024356105cf611635565b61060f6040516105e0604082611116565b602081527f68616e646c654c545641646a75737428616464726573732c75696e743235362960208201526116af565b61061882611776565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316918390833b156106db5781809160446040518094819363aff860df60e01b835260018060a01b0316988960048401528860248401525af180156106d0576106bb575b50506040519081527f4743d766eaf2c63f7e9f04580e23ac13d623db894f5cb46170194f2a76470cad60203392a3600160c95580f35b816106c591611116565b61050b57825f610685565b6040513d84823e3d90fd5b5080fd5b5034610142576080366003190112610142576106f9611100565b60603660231901126106db5761075d604051610716606082611116565b602f81527f7365744d61726b6574436f6e66696728616464726573732c2875696e7432353660208201526e2c75696e743235362c626f6f6c292960881b60408201526116af565b6001600160a01b03168015610a75577f00000000000000000000000000000000000000000000000000000000000000001561098757604051633518d95360e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa90811561097c578491610930575b506001600160601b03604460e0926040519485938492631849e08f60e11b84521660048301528660248301525afa9081156109255783916108c4575b50156108b2575b80825260fc60205260408220600160ff1982541617905580825260fb6020526040822060243580825560026044359283600182015501906064358015158091036108ae577f875e71817611862400508bc4e43ef623821e87c2a8d308b99640aded0e7084049360609360ff1981541660ff841617905560405192835260208301526040820152a280f35b8580fd5b635a9a1eb960e11b8252600452602490fd5b905060e0813d60e01161091d575b816108df60e09383611116565b8101031261050b5761091660c06108f58361114c565b926109026040820161114c565b5061090f60a08201611159565b500161114c565b505f61081d565b3d91506108d2565b6040513d85823e3d90fd5b90506020813d602011610974575b8161094b60209383611116565b81010312610970576001600160601b03604461096860e093611159565b9250506107e1565b8380fd5b3d915061093e565b6040513d86823e3d90fd5b604051638e8f294b60e01b8152600481018290526060816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156109255783916109f3575b505161082457635a9a1eb960e11b8252600452602490fd5b90506060813d606011610a6d575b81610a0e60609383611116565b8101031261050b57604051906060820182811067ffffffffffffffff821117610a5957906040918252610a408161114c565b835260208101516020840152015160408201525f6109db565b634e487b7160e01b85526041600452602485fd5b3d9150610a01565b63d92e233d60e01b8252600482fd5b503461014257806003193601126101425760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b503461014257602036600319011261014257610adb611100565b610ae3611635565b610b2d604051610af4606082611116565b602181527f68616e646c65537570706c79436170457863656564696e6728616464726573736020820152602960f81b60408201526116af565b610b3681611776565b506040516302c3bcbb60e01b81526001600160a01b039182166004820181905291602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610925578391610dba575b5080610c89575b50817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156106db576040516372f262b960e01b815260048101849052828160248183865af1908115610925578391610c74575b5050803b156106db5781809160446040518094819363aff860df60e01b83528860048401528160248401525af180156106d057610c5f575b5050337f8a25b351c66d027f53fe93816fde70121ea618f1a66fcd29793d741a55fa2c858380a3600160c95580f35b81610c6991611116565b6106db57815f610c30565b81610c7e91611116565b6106db57815f610bf8565b60405163bd6d894d60e01b815260208160048187875af1849181610d86575b50610cdc57505080337f89a4065be7a86f7a5565505c2f69bc39b7c8dafff3f1858da002b6f44588e4868480a35b5f610b9a565b6040516318160ddd60e01b8152602081600481875afa908115610d7b578591610d45575b50818102918183041490151715610d3157670de0b6b3a764000090041015610cd657632b77275d60e21b8252600482fd5b634e487b7160e01b84526011600452602484fd5b90506020813d602011610d73575b81610d6060209383611116565b81010312610d6f57515f610d00565b5f80fd5b3d9150610d53565b6040513d87823e3d90fd5b9091506020813d602011610db2575b81610da260209383611116565b81010312610d6f5751905f610ca8565b3d9150610d95565b90506020813d602011610de4575b81610dd560209383611116565b81010312610d6f57515f610b93565b3d9150610dc8565b50346101425780600319360112610142576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610d6f576020366003190112610d6f57610e4b611100565b610e53611635565b610e9d604051610e64606082611116565b602181527f68616e646c65426f72726f77436170457863656564696e6728616464726573736020820152602960f81b60408201526116af565b610ea681611776565b5060405163252c221960e11b81526001600160a01b039182166004820181905291602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610fa8575f9161104f575b5080610fb3575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610d6f575f80916024604051809481936319ab27d560e11b83528760048401525af18015610fa857610f93575b50337f8160c15984c097773db2da8fb9c29fbec35a393d015cec4747652316ba2cdbd58380a3600160c95580f35b610fa09192505f90611116565b5f905f610f65565b6040513d5f823e3d90fd5b604051630e759dd360e31b81526020816004815f875af15f918161101b575b5061100657505080337f89a4065be7a86f7a5565505c2f69bc39b7c8dafff3f1858da002b6f44588e4865f80a35b5f610f0a565b101561100057632b77275d60e21b5f5260045ffd5b9091506020813d602011611047575b8161103760209383611116565b81010312610d6f5751905f610fd2565b3d915061102a565b90506020813d602011611079575b8161106a60209383611116565b81010312610d6f57515f610f03565b3d915061105d565b34610d6f576020366003190112610d6f5761109a611100565b6110a26115dd565b6001600160a01b031680156102a25760407f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09160975490806001600160601b0360a01b83161760975582519160018060a01b031682526020820152a1005b600435906001600160a01b0382168203610d6f57565b90601f8019910116810190811067ffffffffffffffff82111761113857604052565b634e487b7160e01b5f52604160045260245ffd5b51908115158203610d6f57565b51906001600160601b0382168203610d6f57565b80511561117a5760200190565b634e487b7160e01b5f52603260045260245ffd5b604081016040825282518091526020606083019301905f5b8181106111ea575050506020818303910152602080835192838152019201905f5b8181106111d45750505090565b82518452602093840193909201916001016111c7565b82516001600160a01b03168552602094850194909201916001016111a6565b60608101949392600283101561122757604092825260208201520152565b634e487b7160e01b5f52602160045260245ffd5b915f61128c60405161124e606082611116565b602681527f68616e646c6543617041646a75737428616464726573732c75696e74382c75696020820152656e743235362960d01b60408201526116af565b61129584611776565b60408051909291907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112d18583611116565b60018252601f19850192833660208501376112eb8361116d565b6001600160a01b03909916988990528551936113078786611116565b600185523660208601378661131b8561116d565b5260028810156112275787611486575480871061146f575090602085949392602496519687809263252c221960e11b82528c60048301525afa948515611465578395611431575b50848614611427577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610970579183916113bf9383875180968195829463186db48f60e01b84526004840161118e565b03925af1801561141d57611408575b5050906114037fb9a77d50c368e2b06f99a3acd2f13fecbb342e1ccd603e1b714d161f9b2392a0939251928392339684611209565b0390a3565b611413828092611116565b61014257806113ce565b83513d84823e3d90fd5b5050505050505050565b9094506020813d60201161145d575b8161144d60209383611116565b81010312610d6f5751935f611362565b3d9150611440565b84513d85823e3d90fd5b637cbdc51d60e11b85526004879052602452604484fd5b6001919293945001548086106115c7575090602084939260249551958680926302c3bcbb60e01b82528b60048301525afa9384156115bd575f94611589575b50838514611580577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b15610d6f57611521925f9283865180968195829463344dabd160e21b84526004840161118e565b03925af180156115765791611403917fb9a77d50c368e2b06f99a3acd2f13fecbb342e1ccd603e1b714d161f9b2392a0959493611566575b5051928392339684611209565b5f61157091611116565b5f611559565b82513d5f823e3d90fd5b50505050505050565b9093506020813d6020116115b5575b816115a560209383611116565b81010312610d6f5751925f6114c5565b3d9150611598565b83513d5f823e3d90fd5b85637cbdc51d60e11b5f5260045260245260445ffd5b6033546001600160a01b031633036115f157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b600260c9541461164657600260c955565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b609754604080516318c5e8ab60e01b815233600482015260248101919091529060209082906001600160a01b031681806116ec604482018861168b565b03915afa908115610fa8575f9161173c575b50156117075750565b604051634a3fa29360e01b81523360048201523060248201526060604482015290819061173890606483019061168b565b0390fd5b90506020813d60201161176e575b8161175760209383611116565b81010312610d6f576117689061114c565b5f6116fe565b3d915061174a565b6001600160a01b03165f81815260fc602052604090205490919060ff16156117c757815f5260fb60205260405f209160ff600284015416156117b55750565b634e09b1e760e11b5f5260045260245ffd5b50637ac98f7f60e01b5f5260045260245ffd5b606580546001600160a01b0319908116909155603380549182166001600160a01b0393841690811790915591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b1561183457565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fdfea2646970667358221220948ec740ee434f24fc488229cf3edf2d85677f52e2404276f5990f9c7bdc83f664736f6c634300081c0033",
596
+ "deployedBytecode": "0x60806040526004361015610011575f80fd5b5f5f3560e01c80630e32cb8614611081578063159854e214610e315780631a8e624214610dec5780633aea79e214610ac1578063464aa37c14610a8457806354d31bcd146106df57806359f6c629146105aa5780635f82c67e146105655780636056527f1461050f578063692b377b146104c7578063715018a61461046057806379ba5097146103d85780638da5cb5b146103af578063b4a0bdf314610386578063c4d66de81461016e578063e30c3978146101455763f2fde38b146100d5575f80fd5b34610142576020366003190112610142576100ee611100565b6100f66115dd565b606580546001600160a01b0319166001600160a01b039283169081179091556033549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346101425780600319360112610142576065546040516001600160a01b039091168152602090f35b503461014257602036600319011261014257610188611100565b815460ff8160081c161590818092610379575b8015610362575b156103065760ff1981166001178455816102f5575b506101da60ff845460081c166101cc8161182d565b6101d58161182d565b61182d565b6101e3336117da565b82549160ff8360081c16906101f78261182d565b6001600160a01b03169081156102a2577f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa060406102609360975490806001600160601b0360a01b83161760975582519160018060a01b031682526020820152a16101d58161182d565b600160c95561026d575080f35b61ff00191681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b60405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608490fd5b61ffff19166101011783555f6101b7565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156101a25750600160ff8216146101a2565b50600160ff82161061019b565b50346101425780600319360112610142576097546040516001600160a01b039091168152602090f35b50346101425780600319360112610142576033546040516001600160a01b039091168152602090f35b5034610142578060031936011261014257606554336001600160a01b039091160361040957610406336117da565b80f35b60405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608490fd5b50346101425780600319360112610142576104796115dd565b606580546001600160a01b031990811690915560338054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610142576060366003190112610142576104e1611100565b60243590600282101561050b57610503916104fa611635565b6044359161123b565b600160c95580f35b8280fd5b5034610142576020366003190112610142576060906040906001600160a01b03610537611100565b16815260fb6020522080549060ff600260018301549201541690604051928352602083015215156040820152f35b50346101425780600319360112610142576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610142576040366003190112610142576105c4611100565b6024356105cf611635565b61060f6040516105e0604082611116565b602081527f68616e646c654c545641646a75737428616464726573732c75696e743235362960208201526116af565b61061882611776565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316918390833b156106db5781809160446040518094819363aff860df60e01b835260018060a01b0316988960048401528860248401525af180156106d0576106bb575b50506040519081527f4743d766eaf2c63f7e9f04580e23ac13d623db894f5cb46170194f2a76470cad60203392a3600160c95580f35b816106c591611116565b61050b57825f610685565b6040513d84823e3d90fd5b5080fd5b5034610142576080366003190112610142576106f9611100565b60603660231901126106db5761075d604051610716606082611116565b602f81527f7365744d61726b6574436f6e66696728616464726573732c2875696e7432353660208201526e2c75696e743235362c626f6f6c292960881b60408201526116af565b6001600160a01b03168015610a75577f00000000000000000000000000000000000000000000000000000000000000001561098757604051633518d95360e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa90811561097c578491610930575b506001600160601b03604460e0926040519485938492631849e08f60e11b84521660048301528660248301525afa9081156109255783916108c4575b50156108b2575b80825260fc60205260408220600160ff1982541617905580825260fb6020526040822060243580825560026044359283600182015501906064358015158091036108ae577f875e71817611862400508bc4e43ef623821e87c2a8d308b99640aded0e7084049360609360ff1981541660ff841617905560405192835260208301526040820152a280f35b8580fd5b635a9a1eb960e11b8252600452602490fd5b905060e0813d60e01161091d575b816108df60e09383611116565b8101031261050b5761091660c06108f58361114c565b926109026040820161114c565b5061090f60a08201611159565b500161114c565b505f61081d565b3d91506108d2565b6040513d85823e3d90fd5b90506020813d602011610974575b8161094b60209383611116565b81010312610970576001600160601b03604461096860e093611159565b9250506107e1565b8380fd5b3d915061093e565b6040513d86823e3d90fd5b604051638e8f294b60e01b8152600481018290526060816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156109255783916109f3575b505161082457635a9a1eb960e11b8252600452602490fd5b90506060813d606011610a6d575b81610a0e60609383611116565b8101031261050b57604051906060820182811067ffffffffffffffff821117610a5957906040918252610a408161114c565b835260208101516020840152015160408201525f6109db565b634e487b7160e01b85526041600452602485fd5b3d9150610a01565b63d92e233d60e01b8252600482fd5b503461014257806003193601126101425760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b503461014257602036600319011261014257610adb611100565b610ae3611635565b610b2d604051610af4606082611116565b602181527f68616e646c65537570706c79436170457863656564696e6728616464726573736020820152602960f81b60408201526116af565b610b3681611776565b506040516302c3bcbb60e01b81526001600160a01b039182166004820181905291602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610925578391610dba575b5080610c89575b50817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156106db576040516372f262b960e01b815260048101849052828160248183865af1908115610925578391610c74575b5050803b156106db5781809160446040518094819363aff860df60e01b83528860048401528160248401525af180156106d057610c5f575b5050337f8a25b351c66d027f53fe93816fde70121ea618f1a66fcd29793d741a55fa2c858380a3600160c95580f35b81610c6991611116565b6106db57815f610c30565b81610c7e91611116565b6106db57815f610bf8565b60405163bd6d894d60e01b815260208160048187875af1849181610d86575b50610cdc57505080337f89a4065be7a86f7a5565505c2f69bc39b7c8dafff3f1858da002b6f44588e4868480a35b5f610b9a565b6040516318160ddd60e01b8152602081600481875afa908115610d7b578591610d45575b50818102918183041490151715610d3157670de0b6b3a764000090041015610cd657632b77275d60e21b8252600482fd5b634e487b7160e01b84526011600452602484fd5b90506020813d602011610d73575b81610d6060209383611116565b81010312610d6f57515f610d00565b5f80fd5b3d9150610d53565b6040513d87823e3d90fd5b9091506020813d602011610db2575b81610da260209383611116565b81010312610d6f5751905f610ca8565b3d9150610d95565b90506020813d602011610de4575b81610dd560209383611116565b81010312610d6f57515f610b93565b3d9150610dc8565b50346101425780600319360112610142576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610d6f576020366003190112610d6f57610e4b611100565b610e53611635565b610e9d604051610e64606082611116565b602181527f68616e646c65426f72726f77436170457863656564696e6728616464726573736020820152602960f81b60408201526116af565b610ea681611776565b5060405163252c221960e11b81526001600160a01b039182166004820181905291602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610fa8575f9161104f575b5080610fb3575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610d6f575f80916024604051809481936319ab27d560e11b83528760048401525af18015610fa857610f93575b50337f8160c15984c097773db2da8fb9c29fbec35a393d015cec4747652316ba2cdbd58380a3600160c95580f35b610fa09192505f90611116565b5f905f610f65565b6040513d5f823e3d90fd5b604051630e759dd360e31b81526020816004815f875af15f918161101b575b5061100657505080337f89a4065be7a86f7a5565505c2f69bc39b7c8dafff3f1858da002b6f44588e4865f80a35b5f610f0a565b101561100057632b77275d60e21b5f5260045ffd5b9091506020813d602011611047575b8161103760209383611116565b81010312610d6f5751905f610fd2565b3d915061102a565b90506020813d602011611079575b8161106a60209383611116565b81010312610d6f57515f610f03565b3d915061105d565b34610d6f576020366003190112610d6f5761109a611100565b6110a26115dd565b6001600160a01b031680156102a25760407f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09160975490806001600160601b0360a01b83161760975582519160018060a01b031682526020820152a1005b600435906001600160a01b0382168203610d6f57565b90601f8019910116810190811067ffffffffffffffff82111761113857604052565b634e487b7160e01b5f52604160045260245ffd5b51908115158203610d6f57565b51906001600160601b0382168203610d6f57565b80511561117a5760200190565b634e487b7160e01b5f52603260045260245ffd5b604081016040825282518091526020606083019301905f5b8181106111ea575050506020818303910152602080835192838152019201905f5b8181106111d45750505090565b82518452602093840193909201916001016111c7565b82516001600160a01b03168552602094850194909201916001016111a6565b60608101949392600283101561122757604092825260208201520152565b634e487b7160e01b5f52602160045260245ffd5b915f61128c60405161124e606082611116565b602681527f68616e646c6543617041646a75737428616464726573732c75696e74382c75696020820152656e743235362960d01b60408201526116af565b61129584611776565b60408051909291907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112d18583611116565b60018252601f19850192833660208501376112eb8361116d565b6001600160a01b03909916988990528551936113078786611116565b600185523660208601378661131b8561116d565b5260028810156112275787611486575480871061146f575090602085949392602496519687809263252c221960e11b82528c60048301525afa948515611465578395611431575b50848614611427577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610970579183916113bf9383875180968195829463186db48f60e01b84526004840161118e565b03925af1801561141d57611408575b5050906114037fb9a77d50c368e2b06f99a3acd2f13fecbb342e1ccd603e1b714d161f9b2392a0939251928392339684611209565b0390a3565b611413828092611116565b61014257806113ce565b83513d84823e3d90fd5b5050505050505050565b9094506020813d60201161145d575b8161144d60209383611116565b81010312610d6f5751935f611362565b3d9150611440565b84513d85823e3d90fd5b637cbdc51d60e11b85526004879052602452604484fd5b6001919293945001548086106115c7575090602084939260249551958680926302c3bcbb60e01b82528b60048301525afa9384156115bd575f94611589575b50838514611580577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b15610d6f57611521925f9283865180968195829463344dabd160e21b84526004840161118e565b03925af180156115765791611403917fb9a77d50c368e2b06f99a3acd2f13fecbb342e1ccd603e1b714d161f9b2392a0959493611566575b5051928392339684611209565b5f61157091611116565b5f611559565b82513d5f823e3d90fd5b50505050505050565b9093506020813d6020116115b5575b816115a560209383611116565b81010312610d6f5751925f6114c5565b3d9150611598565b83513d5f823e3d90fd5b85637cbdc51d60e11b5f5260045260245260445ffd5b6033546001600160a01b031633036115f157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b600260c9541461164657600260c955565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b609754604080516318c5e8ab60e01b815233600482015260248101919091529060209082906001600160a01b031681806116ec604482018861168b565b03915afa908115610fa8575f9161173c575b50156117075750565b604051634a3fa29360e01b81523360048201523060248201526060604482015290819061173890606483019061168b565b0390fd5b90506020813d60201161176e575b8161175760209383611116565b81010312610d6f576117689061114c565b5f6116fe565b3d915061174a565b6001600160a01b03165f81815260fc602052604090205490919060ff16156117c757815f5260fb60205260405f209160ff600284015416156117b55750565b634e09b1e760e11b5f5260045260245ffd5b50637ac98f7f60e01b5f5260045260245ffd5b606580546001600160a01b0319908116909155603380549182166001600160a01b0393841690811790915591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b1561183457565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fdfea2646970667358221220948ec740ee434f24fc488229cf3edf2d85677f52e2404276f5990f9c7bdc83f664736f6c634300081c0033",
597
+ "linkReferences": {},
598
+ "deployedLinkReferences": {}
599
+ }