@ensuro/core 2.8.1 → 2.8.2

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 (41) hide show
  1. package/build/contracts/AccessManager.sol/AccessManager.json +618 -0
  2. package/build/contracts/ERC4626AssetManager.sol/ERC4626AssetManager.json +238 -0
  3. package/build/contracts/EToken.sol/EToken.json +1287 -0
  4. package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +657 -0
  5. package/build/contracts/LiquidityThresholdAssetManager.sol/LiquidityThresholdAssetManager.json +222 -0
  6. package/build/contracts/Policy.sol/Policy.json +10 -0
  7. package/build/contracts/PolicyPool.sol/PolicyPool.json +1775 -0
  8. package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +342 -0
  9. package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +1142 -0
  10. package/build/contracts/Reserve.sol/Reserve.json +413 -0
  11. package/build/contracts/RiskModule.sol/RiskModule.json +589 -0
  12. package/build/contracts/SignedBucketRiskModule.sol/SignedBucketRiskModule.json +1251 -0
  13. package/build/contracts/SignedQuoteRiskModule.sol/SignedQuoteRiskModule.json +1145 -0
  14. package/build/contracts/TimeScaled.sol/TimeScaled.json +10 -0
  15. package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +1143 -0
  16. package/build/contracts/dependencies/WadRayMath.sol/WadRayMath.json +10 -0
  17. package/build/contracts/interfaces/IAccessManager.sol/IAccessManager.json +343 -0
  18. package/build/contracts/interfaces/IAssetManager.sol/IAssetManager.json +128 -0
  19. package/build/contracts/interfaces/IEToken.sol/IEToken.json +460 -0
  20. package/build/contracts/interfaces/ILPWhitelist.sol/ILPWhitelist.json +103 -0
  21. package/build/contracts/interfaces/IPolicyHolder.sol/IPolicyHolder.json +108 -0
  22. package/build/contracts/interfaces/IPolicyHolderV2.sol/IPolicyHolderV2.json +142 -0
  23. package/build/contracts/interfaces/IPolicyPool.sol/IPolicyPool.json +820 -0
  24. package/build/contracts/interfaces/IPolicyPoolComponent.sol/IPolicyPoolComponent.json +43 -0
  25. package/build/contracts/interfaces/IPremiumsAccount.sol/IPremiumsAccount.json +477 -0
  26. package/build/contracts/interfaces/IRiskModule.sol/IRiskModule.json +165 -0
  27. package/build/contracts/migration/LPManualWhitelistV20.sol/LPManualWhitelistV20.json +491 -0
  28. package/build/contracts/migration/LPManualWhitelistV20Upgraded.sol/LPManualWhitelistV20Upgraded.json +502 -0
  29. package/build/contracts/mocks/FixedRateVault.sol/FixedRateVault.json +736 -0
  30. package/build/contracts/mocks/ForwardProxy.sol/ForwardProxy.json +43 -0
  31. package/build/contracts/mocks/IMintableERC20.sol/IMintableERC20.json +47 -0
  32. package/build/contracts/mocks/InterfaceIdCalculator.sol/InterfaceIdCalculator.json +193 -0
  33. package/build/contracts/mocks/PolicyHolderMock.sol/PolicyHolderMock.json +457 -0
  34. package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +54 -0
  35. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +929 -0
  36. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +92 -0
  37. package/build/contracts/mocks/RiskModuleMock.sol/RiskModuleMock.json +1316 -0
  38. package/build/contracts/mocks/TestCurrency.sol/TestCurrency.json +343 -0
  39. package/build/contracts/mocks/TestNFT.sol/TestNFT.json +388 -0
  40. package/js/deploy.js +6 -25
  41. package/package.json +3 -5
@@ -0,0 +1,502 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LPManualWhitelistV20Upgraded",
4
+ "sourceName": "contracts/migration/LPManualWhitelistV20Upgraded.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract IPolicyPool",
10
+ "name": "policyPool_",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "inputs": [],
19
+ "name": "NoZeroPolicyPool",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "UpgradeCannotChangePolicyPool",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "anonymous": false,
29
+ "inputs": [
30
+ {
31
+ "indexed": false,
32
+ "internalType": "address",
33
+ "name": "previousAdmin",
34
+ "type": "address"
35
+ },
36
+ {
37
+ "indexed": false,
38
+ "internalType": "address",
39
+ "name": "newAdmin",
40
+ "type": "address"
41
+ }
42
+ ],
43
+ "name": "AdminChanged",
44
+ "type": "event"
45
+ },
46
+ {
47
+ "anonymous": false,
48
+ "inputs": [
49
+ {
50
+ "indexed": true,
51
+ "internalType": "address",
52
+ "name": "beacon",
53
+ "type": "address"
54
+ }
55
+ ],
56
+ "name": "BeaconUpgraded",
57
+ "type": "event"
58
+ },
59
+ {
60
+ "anonymous": false,
61
+ "inputs": [
62
+ {
63
+ "indexed": true,
64
+ "internalType": "enum IAccessManager.GovernanceActions",
65
+ "name": "action",
66
+ "type": "uint8"
67
+ },
68
+ {
69
+ "indexed": false,
70
+ "internalType": "address",
71
+ "name": "value",
72
+ "type": "address"
73
+ }
74
+ ],
75
+ "name": "ComponentChanged",
76
+ "type": "event"
77
+ },
78
+ {
79
+ "anonymous": false,
80
+ "inputs": [
81
+ {
82
+ "indexed": true,
83
+ "internalType": "enum IAccessManager.GovernanceActions",
84
+ "name": "action",
85
+ "type": "uint8"
86
+ },
87
+ {
88
+ "indexed": false,
89
+ "internalType": "uint256",
90
+ "name": "value",
91
+ "type": "uint256"
92
+ }
93
+ ],
94
+ "name": "GovernanceAction",
95
+ "type": "event"
96
+ },
97
+ {
98
+ "anonymous": false,
99
+ "inputs": [
100
+ {
101
+ "indexed": false,
102
+ "internalType": "uint8",
103
+ "name": "version",
104
+ "type": "uint8"
105
+ }
106
+ ],
107
+ "name": "Initialized",
108
+ "type": "event"
109
+ },
110
+ {
111
+ "anonymous": false,
112
+ "inputs": [
113
+ {
114
+ "indexed": false,
115
+ "internalType": "address",
116
+ "name": "provider",
117
+ "type": "address"
118
+ },
119
+ {
120
+ "indexed": false,
121
+ "internalType": "bool",
122
+ "name": "whitelisted",
123
+ "type": "bool"
124
+ }
125
+ ],
126
+ "name": "LPWhitelisted",
127
+ "type": "event"
128
+ },
129
+ {
130
+ "anonymous": false,
131
+ "inputs": [
132
+ {
133
+ "indexed": false,
134
+ "internalType": "address",
135
+ "name": "account",
136
+ "type": "address"
137
+ }
138
+ ],
139
+ "name": "Paused",
140
+ "type": "event"
141
+ },
142
+ {
143
+ "anonymous": false,
144
+ "inputs": [
145
+ {
146
+ "indexed": false,
147
+ "internalType": "address",
148
+ "name": "account",
149
+ "type": "address"
150
+ }
151
+ ],
152
+ "name": "Unpaused",
153
+ "type": "event"
154
+ },
155
+ {
156
+ "anonymous": false,
157
+ "inputs": [
158
+ {
159
+ "indexed": true,
160
+ "internalType": "address",
161
+ "name": "implementation",
162
+ "type": "address"
163
+ }
164
+ ],
165
+ "name": "Upgraded",
166
+ "type": "event"
167
+ },
168
+ {
169
+ "inputs": [],
170
+ "name": "GUARDIAN_ROLE",
171
+ "outputs": [
172
+ {
173
+ "internalType": "bytes32",
174
+ "name": "",
175
+ "type": "bytes32"
176
+ }
177
+ ],
178
+ "stateMutability": "view",
179
+ "type": "function"
180
+ },
181
+ {
182
+ "inputs": [],
183
+ "name": "LEVEL1_ROLE",
184
+ "outputs": [
185
+ {
186
+ "internalType": "bytes32",
187
+ "name": "",
188
+ "type": "bytes32"
189
+ }
190
+ ],
191
+ "stateMutability": "view",
192
+ "type": "function"
193
+ },
194
+ {
195
+ "inputs": [],
196
+ "name": "LEVEL2_ROLE",
197
+ "outputs": [
198
+ {
199
+ "internalType": "bytes32",
200
+ "name": "",
201
+ "type": "bytes32"
202
+ }
203
+ ],
204
+ "stateMutability": "view",
205
+ "type": "function"
206
+ },
207
+ {
208
+ "inputs": [],
209
+ "name": "LEVEL3_ROLE",
210
+ "outputs": [
211
+ {
212
+ "internalType": "bytes32",
213
+ "name": "",
214
+ "type": "bytes32"
215
+ }
216
+ ],
217
+ "stateMutability": "view",
218
+ "type": "function"
219
+ },
220
+ {
221
+ "inputs": [],
222
+ "name": "LP_WHITELIST_ROLE",
223
+ "outputs": [
224
+ {
225
+ "internalType": "bytes32",
226
+ "name": "",
227
+ "type": "bytes32"
228
+ }
229
+ ],
230
+ "stateMutability": "view",
231
+ "type": "function"
232
+ },
233
+ {
234
+ "inputs": [],
235
+ "name": "TWEAK_EXPIRATION",
236
+ "outputs": [
237
+ {
238
+ "internalType": "uint40",
239
+ "name": "",
240
+ "type": "uint40"
241
+ }
242
+ ],
243
+ "stateMutability": "view",
244
+ "type": "function"
245
+ },
246
+ {
247
+ "inputs": [
248
+ {
249
+ "internalType": "contract IEToken",
250
+ "name": "",
251
+ "type": "address"
252
+ },
253
+ {
254
+ "internalType": "address",
255
+ "name": "provider",
256
+ "type": "address"
257
+ },
258
+ {
259
+ "internalType": "uint256",
260
+ "name": "",
261
+ "type": "uint256"
262
+ }
263
+ ],
264
+ "name": "acceptsDeposit",
265
+ "outputs": [
266
+ {
267
+ "internalType": "bool",
268
+ "name": "",
269
+ "type": "bool"
270
+ }
271
+ ],
272
+ "stateMutability": "view",
273
+ "type": "function"
274
+ },
275
+ {
276
+ "inputs": [
277
+ {
278
+ "internalType": "contract IEToken",
279
+ "name": "",
280
+ "type": "address"
281
+ },
282
+ {
283
+ "internalType": "address",
284
+ "name": "",
285
+ "type": "address"
286
+ },
287
+ {
288
+ "internalType": "address",
289
+ "name": "providerTo",
290
+ "type": "address"
291
+ },
292
+ {
293
+ "internalType": "uint256",
294
+ "name": "",
295
+ "type": "uint256"
296
+ }
297
+ ],
298
+ "name": "acceptsTransfer",
299
+ "outputs": [
300
+ {
301
+ "internalType": "bool",
302
+ "name": "",
303
+ "type": "bool"
304
+ }
305
+ ],
306
+ "stateMutability": "view",
307
+ "type": "function"
308
+ },
309
+ {
310
+ "inputs": [
311
+ {
312
+ "internalType": "contract IEToken",
313
+ "name": "etk",
314
+ "type": "address"
315
+ },
316
+ {
317
+ "internalType": "address",
318
+ "name": "provider",
319
+ "type": "address"
320
+ },
321
+ {
322
+ "internalType": "uint256",
323
+ "name": "amount",
324
+ "type": "uint256"
325
+ }
326
+ ],
327
+ "name": "acceptsWithdrawal",
328
+ "outputs": [
329
+ {
330
+ "internalType": "bool",
331
+ "name": "",
332
+ "type": "bool"
333
+ }
334
+ ],
335
+ "stateMutability": "view",
336
+ "type": "function"
337
+ },
338
+ {
339
+ "inputs": [],
340
+ "name": "currency",
341
+ "outputs": [
342
+ {
343
+ "internalType": "contract IERC20Metadata",
344
+ "name": "",
345
+ "type": "address"
346
+ }
347
+ ],
348
+ "stateMutability": "view",
349
+ "type": "function"
350
+ },
351
+ {
352
+ "inputs": [],
353
+ "name": "initialize",
354
+ "outputs": [],
355
+ "stateMutability": "nonpayable",
356
+ "type": "function"
357
+ },
358
+ {
359
+ "inputs": [],
360
+ "name": "lastTweak",
361
+ "outputs": [
362
+ {
363
+ "internalType": "uint40",
364
+ "name": "",
365
+ "type": "uint40"
366
+ },
367
+ {
368
+ "internalType": "uint56",
369
+ "name": "",
370
+ "type": "uint56"
371
+ }
372
+ ],
373
+ "stateMutability": "view",
374
+ "type": "function"
375
+ },
376
+ {
377
+ "inputs": [],
378
+ "name": "pause",
379
+ "outputs": [],
380
+ "stateMutability": "nonpayable",
381
+ "type": "function"
382
+ },
383
+ {
384
+ "inputs": [],
385
+ "name": "paused",
386
+ "outputs": [
387
+ {
388
+ "internalType": "bool",
389
+ "name": "",
390
+ "type": "bool"
391
+ }
392
+ ],
393
+ "stateMutability": "view",
394
+ "type": "function"
395
+ },
396
+ {
397
+ "inputs": [],
398
+ "name": "policyPool",
399
+ "outputs": [
400
+ {
401
+ "internalType": "contract IPolicyPool",
402
+ "name": "",
403
+ "type": "address"
404
+ }
405
+ ],
406
+ "stateMutability": "view",
407
+ "type": "function"
408
+ },
409
+ {
410
+ "inputs": [],
411
+ "name": "proxiableUUID",
412
+ "outputs": [
413
+ {
414
+ "internalType": "bytes32",
415
+ "name": "",
416
+ "type": "bytes32"
417
+ }
418
+ ],
419
+ "stateMutability": "view",
420
+ "type": "function"
421
+ },
422
+ {
423
+ "inputs": [
424
+ {
425
+ "internalType": "bytes4",
426
+ "name": "interfaceId",
427
+ "type": "bytes4"
428
+ }
429
+ ],
430
+ "name": "supportsInterface",
431
+ "outputs": [
432
+ {
433
+ "internalType": "bool",
434
+ "name": "",
435
+ "type": "bool"
436
+ }
437
+ ],
438
+ "stateMutability": "view",
439
+ "type": "function"
440
+ },
441
+ {
442
+ "inputs": [],
443
+ "name": "unpause",
444
+ "outputs": [],
445
+ "stateMutability": "nonpayable",
446
+ "type": "function"
447
+ },
448
+ {
449
+ "inputs": [
450
+ {
451
+ "internalType": "address",
452
+ "name": "newImplementation",
453
+ "type": "address"
454
+ }
455
+ ],
456
+ "name": "upgradeTo",
457
+ "outputs": [],
458
+ "stateMutability": "nonpayable",
459
+ "type": "function"
460
+ },
461
+ {
462
+ "inputs": [
463
+ {
464
+ "internalType": "address",
465
+ "name": "newImplementation",
466
+ "type": "address"
467
+ },
468
+ {
469
+ "internalType": "bytes",
470
+ "name": "data",
471
+ "type": "bytes"
472
+ }
473
+ ],
474
+ "name": "upgradeToAndCall",
475
+ "outputs": [],
476
+ "stateMutability": "payable",
477
+ "type": "function"
478
+ },
479
+ {
480
+ "inputs": [
481
+ {
482
+ "internalType": "address",
483
+ "name": "provider",
484
+ "type": "address"
485
+ },
486
+ {
487
+ "internalType": "bool",
488
+ "name": "whitelisted",
489
+ "type": "bool"
490
+ }
491
+ ],
492
+ "name": "whitelistAddress",
493
+ "outputs": [],
494
+ "stateMutability": "nonpayable",
495
+ "type": "function"
496
+ }
497
+ ],
498
+ "bytecode": "0x60c0604052306080523480156200001557600080fd5b5060405162001b1a38038062001b1a833981016040819052620000389162000142565b80806001600160a01b0381166200006257604051636b23cf0160e01b815260040160405180910390fd5b6200006c62000081565b6001600160a01b031660a05250620001749050565b600054610100900460ff1615620000ee5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000140576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200015557600080fd5b81516001600160a01b03811681146200016d57600080fd5b9392505050565b60805160a05161193a620001e060003960008181610286015281816105ac0152818161097901528181610b1d01528181610cac01528181610d9901526110d301526000818161049c015281816104e5015281816106be015281816106fe015261078d015261193a6000f3fe60806040526004361061012a5760003560e01c80635b494dd5116100ab5780638456cb591161006f5780638456cb59146103945780639051c763146103a9578063aad4148c146103c9578063b9a45aac146103fd578063e5a6b10f1461041d578063f67b2bad1461043257600080fd5b80635b494dd5146102e65780635c975abb1461031a5780635fcdca37146103325780637ed5acfa146103525780638129fc1c1461037f57600080fd5b8063468a8c9f116100f2578063468a8c9f146102075780634a47a3e0146102435780634d15eb03146102775780634f1ef286146102be57806352d1902d146102d157600080fd5b806301ffc9a71461012f57806324ea54f4146101645780633659cfe61461019457806337ee20dd146101b65780633f4ba83a146101f2575b600080fd5b34801561013b57600080fd5b5061014f61014a3660046114e5565b610466565b60405190151581526020015b60405180910390f35b34801561017057600080fd5b506101866000805160206118e583398151915281565b60405190815260200161015b565b3480156101a057600080fd5b506101b46101af366004611524565b610492565b005b3480156101c257600080fd5b5061014f6101d1366004611541565b506001600160a01b0316600090815260fb602052604090205460ff16919050565b3480156101fe57600080fd5b506101b461057a565b34801561021357600080fd5b5060c9546040805164ffffffffff831681526501000000000090920466ffffffffffffff1660208301520161015b565b34801561024f57600080fd5b506101867fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b34801561028357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161015b565b6101b46102cc366004611598565b6106b4565b3480156102dd57600080fd5b50610186610780565b3480156102f257600080fd5b506101867f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561032657600080fd5b5060975460ff1661014f565b34801561033e57600080fd5b5061014f61034d36600461165c565b610833565b34801561035e57600080fd5b506103696201518081565b60405164ffffffffff909116815260200161015b565b34801561038b57600080fd5b506101b4610858565b3480156103a057600080fd5b506101b4610968565b3480156103b557600080fd5b5061014f6103c4366004611541565b610a80565b3480156103d557600080fd5b506101867fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b34801561040957600080fd5b506101b46104183660046116bb565b610afa565b34801561042957600080fd5b506102a6610ca8565b34801561043e57600080fd5b506101867fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b600061047182610d31565b8061048c57506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104e35760405162461bcd60e51b81526004016104da906116f4565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661052c60008051602061189e833981519152546001600160a01b031690565b6001600160a01b0316146105525760405162461bcd60e51b81526004016104da90611740565b61055b81610d67565b6040805160008082526020820190925261057791839190610e9e565b50565b6000805160206118e58339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062c919061178c565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506106b0611009565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106fc5760405162461bcd60e51b81526004016104da906116f4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661074560008051602061189e833981519152546001600160a01b031690565b6001600160a01b03161461076b5760405162461bcd60e51b81526004016104da90611740565b61077482610d67565b6106b082826001610e9e565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108205760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104da565b5060008051602061189e83398151915290565b6001600160a01b038216600090815260fb602052604090205460ff165b949350505050565b600054610100900460ff16158080156108785750600054600160ff909116105b806108925750303b158015610892575060005460ff166001145b6108f55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104da565b6000805460ff191660011790558015610918576000805461ff0019166101001790555b61092061105b565b8015610577576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000805160206118e58339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f9919061178c565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925290911660448201526001606482015260840160006040518083038186803b158015610a6057600080fd5b505afa158015610a74573d6000803e3d6000fd5b50505050610577611094565b6040516337ee20dd60e01b81526001600160a01b038085166004830152831660248201526044810182905260009030906337ee20dd90606401602060405180830381865afa158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085091906117a9565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9d919061178c565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925290911660448201526000606482015260840160006040518083038186803b158015610c0457600080fd5b505afa158015610c18573d6000803e3d6000fd5b5050506001600160a01b038416600090815260fb602052604090205460ff161515831515149050610ca3576001600160a01b038316600081815260fb6020908152604091829020805460ff19168615159081179091558251938452908301527f8ef34cf5cfaa6ce2f80f1ba2912749c912a8b07c4fb8e9949e928e7cb592918f910160405180910390a15b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c919061178c565b905090565b60006001600160e01b031982166301ffc9a760e01b148061048c57506001600160e01b03198216634d15eb0360e01b1492915050565b6000805160206118e58339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e19919061178c565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b158015610e7d57600080fd5b505afa158015610e91573d6000803e3d6000fd5b50505050610ca3836110d1565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610ed157610ca383611184565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f2b575060408051601f3d908101601f19168201909252610f28918101906117c6565b60015b610f8e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104da565b60008051602061189e8339815191528114610ffd5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104da565b50610ca3838383611220565b61101161124b565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166110825760405162461bcd60e51b81526004016104da906117df565b61108a611294565b6110926112bb565b565b61109c6112ea565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861103e3390565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115d919061178c565b6001600160a01b0316146105775760405163d2b3d33f60e01b815260040160405180910390fd5b6001600160a01b0381163b6111f15760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104da565b60008051602061189e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61122983611330565b6000825111806112365750805b15610ca3576112458383611370565b50505050565b60975460ff166110925760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104da565b600054610100900460ff166110925760405162461bcd60e51b81526004016104da906117df565b600054610100900460ff166112e25760405162461bcd60e51b81526004016104da906117df565b61109261139c565b60975460ff16156110925760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104da565b61133981611184565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061139583836040518060600160405280602781526020016118be602791396113cf565b9392505050565b600054610100900460ff166113c35760405162461bcd60e51b81526004016104da906117df565b6097805460ff19169055565b6060600080856001600160a01b0316856040516113ec919061184e565b600060405180830381855af49150503d8060008114611427576040519150601f19603f3d011682016040523d82523d6000602084013e61142c565b606091505b509150915061143d86838387611447565b9695505050505050565b606083156114b65782516000036114af576001600160a01b0385163b6114af5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104da565b5081610850565b61085083838151156114cb5781518083602001fd5b8060405162461bcd60e51b81526004016104da919061186a565b6000602082840312156114f757600080fd5b81356001600160e01b03198116811461139557600080fd5b6001600160a01b038116811461057757600080fd5b60006020828403121561153657600080fd5b81356113958161150f565b60008060006060848603121561155657600080fd5b83356115618161150f565b925060208401356115718161150f565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115ab57600080fd5b82356115b68161150f565b9150602083013567ffffffffffffffff808211156115d357600080fd5b818501915085601f8301126115e757600080fd5b8135818111156115f9576115f9611582565b604051601f8201601f19908116603f0116810190838211818310171561162157611621611582565b8160405282815288602084870101111561163a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806000806080858703121561167257600080fd5b843561167d8161150f565b9350602085013561168d8161150f565b9250604085013561169d8161150f565b9396929550929360600135925050565b801515811461057757600080fd5b600080604083850312156116ce57600080fd5b82356116d98161150f565b915060208301356116e9816116ad565b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561179e57600080fd5b81516113958161150f565b6000602082840312156117bb57600080fd5b8151611395816116ad565b6000602082840312156117d857600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b8381101561184557818101518382015260200161182d565b50506000910152565b6000825161186081846020870161182a565b9190910192915050565b602081526000825180602084015261188981604085016020870161182a565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220b1b2e9612a45e6f567d717cfd8477fe0f9ed78b106297b457bb9efeadeacb21a64736f6c63430008100033",
499
+ "deployedBytecode": "0x60806040526004361061012a5760003560e01c80635b494dd5116100ab5780638456cb591161006f5780638456cb59146103945780639051c763146103a9578063aad4148c146103c9578063b9a45aac146103fd578063e5a6b10f1461041d578063f67b2bad1461043257600080fd5b80635b494dd5146102e65780635c975abb1461031a5780635fcdca37146103325780637ed5acfa146103525780638129fc1c1461037f57600080fd5b8063468a8c9f116100f2578063468a8c9f146102075780634a47a3e0146102435780634d15eb03146102775780634f1ef286146102be57806352d1902d146102d157600080fd5b806301ffc9a71461012f57806324ea54f4146101645780633659cfe61461019457806337ee20dd146101b65780633f4ba83a146101f2575b600080fd5b34801561013b57600080fd5b5061014f61014a3660046114e5565b610466565b60405190151581526020015b60405180910390f35b34801561017057600080fd5b506101866000805160206118e583398151915281565b60405190815260200161015b565b3480156101a057600080fd5b506101b46101af366004611524565b610492565b005b3480156101c257600080fd5b5061014f6101d1366004611541565b506001600160a01b0316600090815260fb602052604090205460ff16919050565b3480156101fe57600080fd5b506101b461057a565b34801561021357600080fd5b5060c9546040805164ffffffffff831681526501000000000090920466ffffffffffffff1660208301520161015b565b34801561024f57600080fd5b506101867fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b34801561028357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161015b565b6101b46102cc366004611598565b6106b4565b3480156102dd57600080fd5b50610186610780565b3480156102f257600080fd5b506101867f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561032657600080fd5b5060975460ff1661014f565b34801561033e57600080fd5b5061014f61034d36600461165c565b610833565b34801561035e57600080fd5b506103696201518081565b60405164ffffffffff909116815260200161015b565b34801561038b57600080fd5b506101b4610858565b3480156103a057600080fd5b506101b4610968565b3480156103b557600080fd5b5061014f6103c4366004611541565b610a80565b3480156103d557600080fd5b506101867fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b34801561040957600080fd5b506101b46104183660046116bb565b610afa565b34801561042957600080fd5b506102a6610ca8565b34801561043e57600080fd5b506101867fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b600061047182610d31565b8061048c57506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104e35760405162461bcd60e51b81526004016104da906116f4565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661052c60008051602061189e833981519152546001600160a01b031690565b6001600160a01b0316146105525760405162461bcd60e51b81526004016104da90611740565b61055b81610d67565b6040805160008082526020820190925261057791839190610e9e565b50565b6000805160206118e58339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062c919061178c565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506106b0611009565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106fc5760405162461bcd60e51b81526004016104da906116f4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661074560008051602061189e833981519152546001600160a01b031690565b6001600160a01b03161461076b5760405162461bcd60e51b81526004016104da90611740565b61077482610d67565b6106b082826001610e9e565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108205760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104da565b5060008051602061189e83398151915290565b6001600160a01b038216600090815260fb602052604090205460ff165b949350505050565b600054610100900460ff16158080156108785750600054600160ff909116105b806108925750303b158015610892575060005460ff166001145b6108f55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104da565b6000805460ff191660011790558015610918576000805461ff0019166101001790555b61092061105b565b8015610577576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000805160206118e58339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f9919061178c565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925290911660448201526001606482015260840160006040518083038186803b158015610a6057600080fd5b505afa158015610a74573d6000803e3d6000fd5b50505050610577611094565b6040516337ee20dd60e01b81526001600160a01b038085166004830152831660248201526044810182905260009030906337ee20dd90606401602060405180830381865afa158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085091906117a9565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9d919061178c565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925290911660448201526000606482015260840160006040518083038186803b158015610c0457600080fd5b505afa158015610c18573d6000803e3d6000fd5b5050506001600160a01b038416600090815260fb602052604090205460ff161515831515149050610ca3576001600160a01b038316600081815260fb6020908152604091829020805460ff19168615159081179091558251938452908301527f8ef34cf5cfaa6ce2f80f1ba2912749c912a8b07c4fb8e9949e928e7cb592918f910160405180910390a15b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c919061178c565b905090565b60006001600160e01b031982166301ffc9a760e01b148061048c57506001600160e01b03198216634d15eb0360e01b1492915050565b6000805160206118e58339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e19919061178c565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b158015610e7d57600080fd5b505afa158015610e91573d6000803e3d6000fd5b50505050610ca3836110d1565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610ed157610ca383611184565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f2b575060408051601f3d908101601f19168201909252610f28918101906117c6565b60015b610f8e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104da565b60008051602061189e8339815191528114610ffd5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104da565b50610ca3838383611220565b61101161124b565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166110825760405162461bcd60e51b81526004016104da906117df565b61108a611294565b6110926112bb565b565b61109c6112ea565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861103e3390565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115d919061178c565b6001600160a01b0316146105775760405163d2b3d33f60e01b815260040160405180910390fd5b6001600160a01b0381163b6111f15760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104da565b60008051602061189e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61122983611330565b6000825111806112365750805b15610ca3576112458383611370565b50505050565b60975460ff166110925760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104da565b600054610100900460ff166110925760405162461bcd60e51b81526004016104da906117df565b600054610100900460ff166112e25760405162461bcd60e51b81526004016104da906117df565b61109261139c565b60975460ff16156110925760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104da565b61133981611184565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061139583836040518060600160405280602781526020016118be602791396113cf565b9392505050565b600054610100900460ff166113c35760405162461bcd60e51b81526004016104da906117df565b6097805460ff19169055565b6060600080856001600160a01b0316856040516113ec919061184e565b600060405180830381855af49150503d8060008114611427576040519150601f19603f3d011682016040523d82523d6000602084013e61142c565b606091505b509150915061143d86838387611447565b9695505050505050565b606083156114b65782516000036114af576001600160a01b0385163b6114af5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104da565b5081610850565b61085083838151156114cb5781518083602001fd5b8060405162461bcd60e51b81526004016104da919061186a565b6000602082840312156114f757600080fd5b81356001600160e01b03198116811461139557600080fd5b6001600160a01b038116811461057757600080fd5b60006020828403121561153657600080fd5b81356113958161150f565b60008060006060848603121561155657600080fd5b83356115618161150f565b925060208401356115718161150f565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115ab57600080fd5b82356115b68161150f565b9150602083013567ffffffffffffffff808211156115d357600080fd5b818501915085601f8301126115e757600080fd5b8135818111156115f9576115f9611582565b604051601f8201601f19908116603f0116810190838211818310171561162157611621611582565b8160405282815288602084870101111561163a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806000806080858703121561167257600080fd5b843561167d8161150f565b9350602085013561168d8161150f565b9250604085013561169d8161150f565b9396929550929360600135925050565b801515811461057757600080fd5b600080604083850312156116ce57600080fd5b82356116d98161150f565b915060208301356116e9816116ad565b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561179e57600080fd5b81516113958161150f565b6000602082840312156117bb57600080fd5b8151611395816116ad565b6000602082840312156117d857600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b8381101561184557818101518382015260200161182d565b50506000910152565b6000825161186081846020870161182a565b9190910192915050565b602081526000825180602084015261188981604085016020870161182a565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220b1b2e9612a45e6f567d717cfd8477fe0f9ed78b106297b457bb9efeadeacb21a64736f6c63430008100033",
500
+ "linkReferences": {},
501
+ "deployedLinkReferences": {}
502
+ }