@ensuro/core 1.2.7 → 2.0.0-beta10

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 (109) hide show
  1. package/README.md +63 -27
  2. package/build/contracts/AccessManager.sol/AccessManager.json +559 -0
  3. package/build/contracts/ERC4626AssetManager.sol/ERC4626AssetManager.json +219 -0
  4. package/build/contracts/EToken.sol/EToken.json +217 -190
  5. package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +17 -4
  6. package/build/contracts/{extras/IPriceRiskModule.sol/IPriceRiskModule.json → LiquidityThresholdAssetManager.sol/LiquidityThresholdAssetManager.json} +81 -131
  7. package/build/contracts/Policy.sol/Policy.json +2 -2
  8. package/build/contracts/PolicyPool.sol/PolicyPool.json +425 -295
  9. package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +15 -2
  10. package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +868 -0
  11. package/build/contracts/{BaseAssetManager.sol/BaseAssetManager.json → Reserve.sol/Reserve.json} +37 -166
  12. package/build/contracts/RiskModule.sol/RiskModule.json +85 -312
  13. package/build/contracts/SignedQuoteRiskModule.sol/SignedQuoteRiskModule.json +960 -0
  14. package/build/contracts/{DataTypes.sol/DataTypes.json → TimeScaled.sol/TimeScaled.json} +4 -4
  15. package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +134 -336
  16. package/build/contracts/dependencies/ERC1967Proxy.sol/ERC1967Proxy.json +64 -0
  17. package/build/{interfaces/IExchange.sol/IExchange.json → contracts/dependencies/IERC20Metadata.sol/IERC20Metadata.json} +83 -79
  18. package/build/contracts/{WadRayMath.sol → dependencies/WadRayMath.sol}/WadRayMath.json +3 -3
  19. package/build/{interfaces/IPolicyPoolConfig.sol/IPolicyPoolConfig.json → contracts/interfaces/IAccessManager.sol/IAccessManager.json} +79 -77
  20. package/build/contracts/interfaces/IAssetManager.sol/IAssetManager.json +109 -0
  21. package/build/{interfaces → contracts/interfaces}/IEToken.sol/IEToken.json +39 -91
  22. package/build/{interfaces → contracts/interfaces}/ILPWhitelist.sol/ILPWhitelist.json +1 -1
  23. package/build/{interfaces → contracts/interfaces}/IPolicyHolder.sol/IPolicyHolder.json +1 -1
  24. package/build/{interfaces → contracts/interfaces}/IPolicyPool.sol/IPolicyPool.json +137 -100
  25. package/build/{interfaces → contracts/interfaces}/IPolicyPoolComponent.sol/IPolicyPoolComponent.json +1 -1
  26. package/build/contracts/interfaces/IPremiumsAccount.sol/IPremiumsAccount.json +315 -0
  27. package/build/{interfaces → contracts/interfaces}/IRiskModule.sol/IRiskModule.json +58 -34
  28. package/build/contracts/mocks/FixedRateVault.sol/FixedRateVault.json +736 -0
  29. package/build/contracts/mocks/ForwardProxy.sol/ForwardProxy.json +43 -0
  30. package/build/{interfaces/IInsolvencyHook.sol/IInsolvencyHook.json → contracts/mocks/IMintableERC20.sol/IMintableERC20.json} +13 -8
  31. package/build/contracts/mocks/PolicyHolderMock.sol/PolicyHolderMock.json +228 -0
  32. package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +35 -0
  33. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +702 -0
  34. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +92 -0
  35. package/build/contracts/mocks/RiskModuleMock.sol/RiskModuleMock.json +764 -0
  36. package/build/contracts/mocks/TestCurrency.sol/TestCurrency.json +343 -0
  37. package/build/contracts/mocks/TestNFT.sol/TestNFT.json +388 -0
  38. package/contracts/AccessManager.sol +103 -0
  39. package/contracts/ERC4626AssetManager.sol +52 -0
  40. package/contracts/EToken.sol +254 -299
  41. package/contracts/LPManualWhitelist.sol +4 -4
  42. package/contracts/LiquidityThresholdAssetManager.sol +160 -0
  43. package/contracts/Policy.sol +49 -45
  44. package/contracts/PolicyPool.sol +379 -514
  45. package/contracts/PolicyPoolComponent.sol +41 -41
  46. package/contracts/PremiumsAccount.sol +480 -0
  47. package/contracts/Reserve.sol +213 -0
  48. package/contracts/RiskModule.sol +233 -174
  49. package/contracts/SignedQuoteRiskModule.sol +241 -0
  50. package/contracts/TimeScaled.sol +138 -0
  51. package/contracts/TrustfulRiskModule.sol +85 -23
  52. package/contracts/dependencies/ERC1967Proxy.sol +19 -0
  53. package/contracts/dependencies/IERC20Metadata.sol +19 -0
  54. package/contracts/dependencies/WadRayMath.sol +126 -0
  55. package/contracts/interfaces/IAccessManager.sol +148 -0
  56. package/contracts/interfaces/IAssetManager.sol +84 -0
  57. package/contracts/interfaces/IEToken.sol +195 -0
  58. package/contracts/interfaces/ILPWhitelist.sol +40 -0
  59. package/{interfaces → contracts/interfaces}/IPolicyHolder.sol +0 -0
  60. package/contracts/interfaces/IPolicyPool.sol +145 -0
  61. package/{interfaces → contracts/interfaces}/IPolicyPoolComponent.sol +3 -0
  62. package/contracts/interfaces/IPremiumsAccount.sol +76 -0
  63. package/contracts/interfaces/IRiskModule.sol +123 -0
  64. package/contracts/mocks/FixedRateVault.sol +85 -0
  65. package/contracts/mocks/ForwardProxy.sol +66 -0
  66. package/contracts/mocks/IMintableERC20.sol +13 -0
  67. package/contracts/mocks/PolicyHolderMock.sol +89 -0
  68. package/contracts/mocks/PolicyPoolComponentMock.sol +17 -0
  69. package/contracts/mocks/PolicyPoolMock.sol +148 -0
  70. package/contracts/mocks/RiskModuleMock.sol +75 -0
  71. package/contracts/mocks/TestCurrency.sol +35 -0
  72. package/contracts/mocks/TestNFT.sol +23 -0
  73. package/js/test-utils.js +356 -0
  74. package/package.json +2 -2
  75. package/build/contracts/AaveAssetManager.sol/AaveAssetManager.json +0 -742
  76. package/build/contracts/Exchange.sol/Exchange.json +0 -591
  77. package/build/contracts/FlightDelayRiskModule.sol/FlightDelayRiskModule.json +0 -1112
  78. package/build/contracts/PolicyNFT.sol/PolicyNFT.json +0 -570
  79. package/build/contracts/PolicyPoolConfig.sol/PolicyPoolConfig.json +0 -686
  80. package/build/contracts/dependencies/ChainlinkClientUpgradeable.sol/ChainlinkClientUpgradeable.json +0 -50
  81. package/build/contracts/extras/PriceRiskModule.sol/PriceRiskModule.json +0 -1055
  82. package/build/contracts/upgraded/IPolicyNFTv1.sol/IPolicyNFTv1.json +0 -322
  83. package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1.json +0 -571
  84. package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1_Upgrade.json +0 -602
  85. package/build/interfaces/IAssetManager.sol/IAssetManager.json +0 -31
  86. package/build/interfaces/IExchange.sol/IPriceOracle.json +0 -30
  87. package/build/interfaces/IPolicyNFT.sol/IPolicyNFT.json +0 -321
  88. package/contracts/AaveAssetManager.sol +0 -298
  89. package/contracts/BaseAssetManager.sol +0 -301
  90. package/contracts/DataTypes.sol +0 -287
  91. package/contracts/Exchange.sol +0 -189
  92. package/contracts/FlightDelayRiskModule.sol +0 -208
  93. package/contracts/PolicyNFT.sol +0 -96
  94. package/contracts/PolicyPoolConfig.sol +0 -247
  95. package/contracts/WadRayMath.sol +0 -135
  96. package/contracts/dependencies/ChainlinkClientUpgradeable.sol +0 -371
  97. package/contracts/extras/IPriceRiskModule.sol +0 -41
  98. package/contracts/extras/PriceRiskModule.sol +0 -243
  99. package/contracts/upgraded/IPolicyNFTv1.sol +0 -15
  100. package/contracts/upgraded/PolicyNFTv1.sol +0 -126
  101. package/interfaces/IAssetManager.sol +0 -23
  102. package/interfaces/IEToken.sol +0 -48
  103. package/interfaces/IExchange.sol +0 -59
  104. package/interfaces/IInsolvencyHook.sol +0 -27
  105. package/interfaces/ILPWhitelist.sol +0 -23
  106. package/interfaces/IPolicyNFT.sol +0 -15
  107. package/interfaces/IPolicyPool.sol +0 -44
  108. package/interfaces/IPolicyPoolConfig.sol +0 -87
  109. package/interfaces/IRiskModule.sol +0 -29
@@ -0,0 +1,702 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PolicyPoolMock",
4
+ "sourceName": "contracts/mocks/PolicyPoolMock.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract IERC20Metadata",
10
+ "name": "currency_",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "contract IAccessManager",
15
+ "name": "access_",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "anonymous": false,
24
+ "inputs": [
25
+ {
26
+ "indexed": true,
27
+ "internalType": "contract IRiskModule",
28
+ "name": "riskModule",
29
+ "type": "address"
30
+ },
31
+ {
32
+ "components": [
33
+ {
34
+ "internalType": "uint256",
35
+ "name": "id",
36
+ "type": "uint256"
37
+ },
38
+ {
39
+ "internalType": "uint256",
40
+ "name": "payout",
41
+ "type": "uint256"
42
+ },
43
+ {
44
+ "internalType": "uint256",
45
+ "name": "premium",
46
+ "type": "uint256"
47
+ },
48
+ {
49
+ "internalType": "uint256",
50
+ "name": "jrScr",
51
+ "type": "uint256"
52
+ },
53
+ {
54
+ "internalType": "uint256",
55
+ "name": "srScr",
56
+ "type": "uint256"
57
+ },
58
+ {
59
+ "internalType": "uint256",
60
+ "name": "lossProb",
61
+ "type": "uint256"
62
+ },
63
+ {
64
+ "internalType": "uint256",
65
+ "name": "purePremium",
66
+ "type": "uint256"
67
+ },
68
+ {
69
+ "internalType": "uint256",
70
+ "name": "ensuroCommission",
71
+ "type": "uint256"
72
+ },
73
+ {
74
+ "internalType": "uint256",
75
+ "name": "partnerCommission",
76
+ "type": "uint256"
77
+ },
78
+ {
79
+ "internalType": "uint256",
80
+ "name": "jrCoc",
81
+ "type": "uint256"
82
+ },
83
+ {
84
+ "internalType": "uint256",
85
+ "name": "srCoc",
86
+ "type": "uint256"
87
+ },
88
+ {
89
+ "internalType": "contract IRiskModule",
90
+ "name": "riskModule",
91
+ "type": "address"
92
+ },
93
+ {
94
+ "internalType": "uint40",
95
+ "name": "start",
96
+ "type": "uint40"
97
+ },
98
+ {
99
+ "internalType": "uint40",
100
+ "name": "expiration",
101
+ "type": "uint40"
102
+ }
103
+ ],
104
+ "indexed": false,
105
+ "internalType": "struct Policy.PolicyData",
106
+ "name": "policy",
107
+ "type": "tuple"
108
+ }
109
+ ],
110
+ "name": "NewPolicy",
111
+ "type": "event"
112
+ },
113
+ {
114
+ "anonymous": false,
115
+ "inputs": [
116
+ {
117
+ "indexed": true,
118
+ "internalType": "contract IRiskModule",
119
+ "name": "riskModule",
120
+ "type": "address"
121
+ },
122
+ {
123
+ "indexed": true,
124
+ "internalType": "uint256",
125
+ "name": "policyId",
126
+ "type": "uint256"
127
+ },
128
+ {
129
+ "indexed": false,
130
+ "internalType": "uint256",
131
+ "name": "payout",
132
+ "type": "uint256"
133
+ }
134
+ ],
135
+ "name": "PolicyResolved",
136
+ "type": "event"
137
+ },
138
+ {
139
+ "inputs": [],
140
+ "name": "MAX_INT",
141
+ "outputs": [
142
+ {
143
+ "internalType": "uint256",
144
+ "name": "",
145
+ "type": "uint256"
146
+ }
147
+ ],
148
+ "stateMutability": "view",
149
+ "type": "function"
150
+ },
151
+ {
152
+ "inputs": [],
153
+ "name": "access",
154
+ "outputs": [
155
+ {
156
+ "internalType": "contract IAccessManager",
157
+ "name": "",
158
+ "type": "address"
159
+ }
160
+ ],
161
+ "stateMutability": "view",
162
+ "type": "function"
163
+ },
164
+ {
165
+ "inputs": [],
166
+ "name": "currency",
167
+ "outputs": [
168
+ {
169
+ "internalType": "contract IERC20Metadata",
170
+ "name": "",
171
+ "type": "address"
172
+ }
173
+ ],
174
+ "stateMutability": "view",
175
+ "type": "function"
176
+ },
177
+ {
178
+ "inputs": [
179
+ {
180
+ "internalType": "contract IEToken",
181
+ "name": "",
182
+ "type": "address"
183
+ },
184
+ {
185
+ "internalType": "uint256",
186
+ "name": "",
187
+ "type": "uint256"
188
+ }
189
+ ],
190
+ "name": "deposit",
191
+ "outputs": [],
192
+ "stateMutability": "pure",
193
+ "type": "function"
194
+ },
195
+ {
196
+ "inputs": [
197
+ {
198
+ "components": [
199
+ {
200
+ "internalType": "uint256",
201
+ "name": "id",
202
+ "type": "uint256"
203
+ },
204
+ {
205
+ "internalType": "uint256",
206
+ "name": "payout",
207
+ "type": "uint256"
208
+ },
209
+ {
210
+ "internalType": "uint256",
211
+ "name": "premium",
212
+ "type": "uint256"
213
+ },
214
+ {
215
+ "internalType": "uint256",
216
+ "name": "jrScr",
217
+ "type": "uint256"
218
+ },
219
+ {
220
+ "internalType": "uint256",
221
+ "name": "srScr",
222
+ "type": "uint256"
223
+ },
224
+ {
225
+ "internalType": "uint256",
226
+ "name": "lossProb",
227
+ "type": "uint256"
228
+ },
229
+ {
230
+ "internalType": "uint256",
231
+ "name": "purePremium",
232
+ "type": "uint256"
233
+ },
234
+ {
235
+ "internalType": "uint256",
236
+ "name": "ensuroCommission",
237
+ "type": "uint256"
238
+ },
239
+ {
240
+ "internalType": "uint256",
241
+ "name": "partnerCommission",
242
+ "type": "uint256"
243
+ },
244
+ {
245
+ "internalType": "uint256",
246
+ "name": "jrCoc",
247
+ "type": "uint256"
248
+ },
249
+ {
250
+ "internalType": "uint256",
251
+ "name": "srCoc",
252
+ "type": "uint256"
253
+ },
254
+ {
255
+ "internalType": "contract IRiskModule",
256
+ "name": "riskModule",
257
+ "type": "address"
258
+ },
259
+ {
260
+ "internalType": "uint40",
261
+ "name": "start",
262
+ "type": "uint40"
263
+ },
264
+ {
265
+ "internalType": "uint40",
266
+ "name": "expiration",
267
+ "type": "uint40"
268
+ }
269
+ ],
270
+ "internalType": "struct Policy.PolicyData",
271
+ "name": "policy",
272
+ "type": "tuple"
273
+ }
274
+ ],
275
+ "name": "expirePolicy",
276
+ "outputs": [],
277
+ "stateMutability": "nonpayable",
278
+ "type": "function"
279
+ },
280
+ {
281
+ "inputs": [
282
+ {
283
+ "internalType": "contract IRiskModule",
284
+ "name": "riskModule",
285
+ "type": "address"
286
+ },
287
+ {
288
+ "components": [
289
+ {
290
+ "internalType": "uint256",
291
+ "name": "moc",
292
+ "type": "uint256"
293
+ },
294
+ {
295
+ "internalType": "uint256",
296
+ "name": "jrCollRatio",
297
+ "type": "uint256"
298
+ },
299
+ {
300
+ "internalType": "uint256",
301
+ "name": "collRatio",
302
+ "type": "uint256"
303
+ },
304
+ {
305
+ "internalType": "uint256",
306
+ "name": "ensuroPpFee",
307
+ "type": "uint256"
308
+ },
309
+ {
310
+ "internalType": "uint256",
311
+ "name": "ensuroCocFee",
312
+ "type": "uint256"
313
+ },
314
+ {
315
+ "internalType": "uint256",
316
+ "name": "jrRoc",
317
+ "type": "uint256"
318
+ },
319
+ {
320
+ "internalType": "uint256",
321
+ "name": "srRoc",
322
+ "type": "uint256"
323
+ }
324
+ ],
325
+ "internalType": "struct IRiskModule.Params",
326
+ "name": "rmParams",
327
+ "type": "tuple"
328
+ },
329
+ {
330
+ "internalType": "uint256",
331
+ "name": "premium",
332
+ "type": "uint256"
333
+ },
334
+ {
335
+ "internalType": "uint256",
336
+ "name": "payout",
337
+ "type": "uint256"
338
+ },
339
+ {
340
+ "internalType": "uint256",
341
+ "name": "lossProb",
342
+ "type": "uint256"
343
+ },
344
+ {
345
+ "internalType": "uint40",
346
+ "name": "expiration",
347
+ "type": "uint40"
348
+ }
349
+ ],
350
+ "name": "initializeAndEmitPolicy",
351
+ "outputs": [],
352
+ "stateMutability": "nonpayable",
353
+ "type": "function"
354
+ },
355
+ {
356
+ "inputs": [
357
+ {
358
+ "internalType": "uint256",
359
+ "name": "policyId",
360
+ "type": "uint256"
361
+ }
362
+ ],
363
+ "name": "isActive",
364
+ "outputs": [
365
+ {
366
+ "internalType": "bool",
367
+ "name": "",
368
+ "type": "bool"
369
+ }
370
+ ],
371
+ "stateMutability": "view",
372
+ "type": "function"
373
+ },
374
+ {
375
+ "inputs": [
376
+ {
377
+ "components": [
378
+ {
379
+ "internalType": "uint256",
380
+ "name": "id",
381
+ "type": "uint256"
382
+ },
383
+ {
384
+ "internalType": "uint256",
385
+ "name": "payout",
386
+ "type": "uint256"
387
+ },
388
+ {
389
+ "internalType": "uint256",
390
+ "name": "premium",
391
+ "type": "uint256"
392
+ },
393
+ {
394
+ "internalType": "uint256",
395
+ "name": "jrScr",
396
+ "type": "uint256"
397
+ },
398
+ {
399
+ "internalType": "uint256",
400
+ "name": "srScr",
401
+ "type": "uint256"
402
+ },
403
+ {
404
+ "internalType": "uint256",
405
+ "name": "lossProb",
406
+ "type": "uint256"
407
+ },
408
+ {
409
+ "internalType": "uint256",
410
+ "name": "purePremium",
411
+ "type": "uint256"
412
+ },
413
+ {
414
+ "internalType": "uint256",
415
+ "name": "ensuroCommission",
416
+ "type": "uint256"
417
+ },
418
+ {
419
+ "internalType": "uint256",
420
+ "name": "partnerCommission",
421
+ "type": "uint256"
422
+ },
423
+ {
424
+ "internalType": "uint256",
425
+ "name": "jrCoc",
426
+ "type": "uint256"
427
+ },
428
+ {
429
+ "internalType": "uint256",
430
+ "name": "srCoc",
431
+ "type": "uint256"
432
+ },
433
+ {
434
+ "internalType": "contract IRiskModule",
435
+ "name": "riskModule",
436
+ "type": "address"
437
+ },
438
+ {
439
+ "internalType": "uint40",
440
+ "name": "start",
441
+ "type": "uint40"
442
+ },
443
+ {
444
+ "internalType": "uint40",
445
+ "name": "expiration",
446
+ "type": "uint40"
447
+ }
448
+ ],
449
+ "internalType": "struct Policy.PolicyData",
450
+ "name": "policy",
451
+ "type": "tuple"
452
+ },
453
+ {
454
+ "internalType": "address",
455
+ "name": "",
456
+ "type": "address"
457
+ },
458
+ {
459
+ "internalType": "address",
460
+ "name": "",
461
+ "type": "address"
462
+ },
463
+ {
464
+ "internalType": "uint96",
465
+ "name": "internalId",
466
+ "type": "uint96"
467
+ }
468
+ ],
469
+ "name": "newPolicy",
470
+ "outputs": [
471
+ {
472
+ "internalType": "uint256",
473
+ "name": "",
474
+ "type": "uint256"
475
+ }
476
+ ],
477
+ "stateMutability": "nonpayable",
478
+ "type": "function"
479
+ },
480
+ {
481
+ "inputs": [
482
+ {
483
+ "components": [
484
+ {
485
+ "internalType": "uint256",
486
+ "name": "id",
487
+ "type": "uint256"
488
+ },
489
+ {
490
+ "internalType": "uint256",
491
+ "name": "payout",
492
+ "type": "uint256"
493
+ },
494
+ {
495
+ "internalType": "uint256",
496
+ "name": "premium",
497
+ "type": "uint256"
498
+ },
499
+ {
500
+ "internalType": "uint256",
501
+ "name": "jrScr",
502
+ "type": "uint256"
503
+ },
504
+ {
505
+ "internalType": "uint256",
506
+ "name": "srScr",
507
+ "type": "uint256"
508
+ },
509
+ {
510
+ "internalType": "uint256",
511
+ "name": "lossProb",
512
+ "type": "uint256"
513
+ },
514
+ {
515
+ "internalType": "uint256",
516
+ "name": "purePremium",
517
+ "type": "uint256"
518
+ },
519
+ {
520
+ "internalType": "uint256",
521
+ "name": "ensuroCommission",
522
+ "type": "uint256"
523
+ },
524
+ {
525
+ "internalType": "uint256",
526
+ "name": "partnerCommission",
527
+ "type": "uint256"
528
+ },
529
+ {
530
+ "internalType": "uint256",
531
+ "name": "jrCoc",
532
+ "type": "uint256"
533
+ },
534
+ {
535
+ "internalType": "uint256",
536
+ "name": "srCoc",
537
+ "type": "uint256"
538
+ },
539
+ {
540
+ "internalType": "contract IRiskModule",
541
+ "name": "riskModule",
542
+ "type": "address"
543
+ },
544
+ {
545
+ "internalType": "uint40",
546
+ "name": "start",
547
+ "type": "uint40"
548
+ },
549
+ {
550
+ "internalType": "uint40",
551
+ "name": "expiration",
552
+ "type": "uint40"
553
+ }
554
+ ],
555
+ "internalType": "struct Policy.PolicyData",
556
+ "name": "policy",
557
+ "type": "tuple"
558
+ },
559
+ {
560
+ "internalType": "uint256",
561
+ "name": "payout",
562
+ "type": "uint256"
563
+ }
564
+ ],
565
+ "name": "resolvePolicy",
566
+ "outputs": [],
567
+ "stateMutability": "nonpayable",
568
+ "type": "function"
569
+ },
570
+ {
571
+ "inputs": [
572
+ {
573
+ "components": [
574
+ {
575
+ "internalType": "uint256",
576
+ "name": "id",
577
+ "type": "uint256"
578
+ },
579
+ {
580
+ "internalType": "uint256",
581
+ "name": "payout",
582
+ "type": "uint256"
583
+ },
584
+ {
585
+ "internalType": "uint256",
586
+ "name": "premium",
587
+ "type": "uint256"
588
+ },
589
+ {
590
+ "internalType": "uint256",
591
+ "name": "jrScr",
592
+ "type": "uint256"
593
+ },
594
+ {
595
+ "internalType": "uint256",
596
+ "name": "srScr",
597
+ "type": "uint256"
598
+ },
599
+ {
600
+ "internalType": "uint256",
601
+ "name": "lossProb",
602
+ "type": "uint256"
603
+ },
604
+ {
605
+ "internalType": "uint256",
606
+ "name": "purePremium",
607
+ "type": "uint256"
608
+ },
609
+ {
610
+ "internalType": "uint256",
611
+ "name": "ensuroCommission",
612
+ "type": "uint256"
613
+ },
614
+ {
615
+ "internalType": "uint256",
616
+ "name": "partnerCommission",
617
+ "type": "uint256"
618
+ },
619
+ {
620
+ "internalType": "uint256",
621
+ "name": "jrCoc",
622
+ "type": "uint256"
623
+ },
624
+ {
625
+ "internalType": "uint256",
626
+ "name": "srCoc",
627
+ "type": "uint256"
628
+ },
629
+ {
630
+ "internalType": "contract IRiskModule",
631
+ "name": "riskModule",
632
+ "type": "address"
633
+ },
634
+ {
635
+ "internalType": "uint40",
636
+ "name": "start",
637
+ "type": "uint40"
638
+ },
639
+ {
640
+ "internalType": "uint40",
641
+ "name": "expiration",
642
+ "type": "uint40"
643
+ }
644
+ ],
645
+ "internalType": "struct Policy.PolicyData",
646
+ "name": "policy",
647
+ "type": "tuple"
648
+ },
649
+ {
650
+ "internalType": "bool",
651
+ "name": "customerWon",
652
+ "type": "bool"
653
+ }
654
+ ],
655
+ "name": "resolvePolicyFullPayout",
656
+ "outputs": [],
657
+ "stateMutability": "nonpayable",
658
+ "type": "function"
659
+ },
660
+ {
661
+ "inputs": [],
662
+ "name": "treasury",
663
+ "outputs": [
664
+ {
665
+ "internalType": "address",
666
+ "name": "",
667
+ "type": "address"
668
+ }
669
+ ],
670
+ "stateMutability": "pure",
671
+ "type": "function"
672
+ },
673
+ {
674
+ "inputs": [
675
+ {
676
+ "internalType": "contract IEToken",
677
+ "name": "",
678
+ "type": "address"
679
+ },
680
+ {
681
+ "internalType": "uint256",
682
+ "name": "",
683
+ "type": "uint256"
684
+ }
685
+ ],
686
+ "name": "withdraw",
687
+ "outputs": [
688
+ {
689
+ "internalType": "uint256",
690
+ "name": "",
691
+ "type": "uint256"
692
+ }
693
+ ],
694
+ "stateMutability": "pure",
695
+ "type": "function"
696
+ }
697
+ ],
698
+ "bytecode": "0x608060405234801561001057600080fd5b50604051610f81380380610f8183398101604081905261002f91610078565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100b2565b6001600160a01b038116811461007557600080fd5b50565b6000806040838503121561008b57600080fd5b825161009681610060565b60208401519092506100a781610060565b809150509250929050565b610ec0806100c16000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637a702b3c116100715780637a702b3c1461013c57806382afd23b1461014f57806392be297014610181578063e5a6b10f14610194578063f3fef3a3146101a5578063ffa600e3146101b857600080fd5b8063098d3228146100b957806347e7ef24146100d557806361d027b3146100ea5780636769a76f146101055780636af6f1ef1461011857806371907f171461012b575b600080fd5b6100c260001981565b6040519081526020015b60405180910390f35b6100e86100e3366004610999565b6101cb565b005b60005b6040516001600160a01b0390911681526020016100cc565b6100c2610113366004610b1a565b610218565b6100e8610126366004610ba3565b6102a9565b6001546001600160a01b03166100ed565b6100e861014a366004610bc7565b6102c5565b61017161015d366004610bf4565b600090815260036020526040902054151590565b60405190151581526020016100cc565b6100e861018f366004610c0d565b6102e1565b6000546001600160a01b03166100ed565b6100c26101b3366004610999565b61033d565b6100e86101c6366004610cc8565b610388565b60405162461bcd60e51b815260206004820152601760248201527f4e6f7420496d706c656d656e746564206465706f73697400000000000000000060448201526064015b60405180910390fd5b6000816bffffffffffffffffffffffff1660608661016001516001600160a01b0316901b6102469190610d1d565b8552610251856103b0565b855160009081526003602052604090819020919091555133907f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b90610297908890610d36565b60405180910390a25050915192915050565b6102c26102bb36839003830183610df4565b60006103e0565b50565b6102dd6102d736849003840184610df4565b826103e0565b5050565b60006102f18787878787876105b9565b9050866001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b8260405161032c9190610d36565b60405180910390a250505050505050565b60405162461bcd60e51b815260206004820152601860248201527f4e6f7420496d706c656d656e7465642077697468647261770000000000000000604482015260009060640161020f565b6102dd61039a36849003840184610df4565b826103a65760006103e0565b83602001356103e0565b6000816040516020016103c39190610d36565b604051602081830303815290604052805190602001209050919050565b81516000036104245760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b604482015260640161020f565b815160009081526003602052604090205461043e836103b0565b146104805760405162461bcd60e51b8152602060048201526012602482015271090c2e6d040c8decae6dc4ee840dac2e8c6d60731b604482015260640161020f565b8161016001516001600160a01b0316336001600160a01b0316146105025760405162461bcd60e51b815260206004820152603360248201527f4f6e6c79207269736b4d6f64756c6520697320617574686f72697a656420746f604482015272207265736f6c76652074686520706f6c69637960681b606482015260840161020f565b81516000908152600260208181526040808420848155600181018590559283018490556003808401859055600484018590556005840185905560068401859055600784018590556008840185905560098401859055600a8401859055600b90930180546001600160f01b0319169055855184529181528183209290925583519051838152909133917f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e910160405180910390a35050565b6105c16108fe565b8385111561061c5760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b606482015260840161020f565b6106246108fe565b6001600160a01b038816610160820152604081018690526020810185905260a0810184905264ffffffffff42811661018083015283166101a08201528651610678906106719086906108c6565b86906108c6565b60c0820152602087015161068d9086906108c6565b6060820181905260c082015110156106bd578060c00151816060018181516106b59190610e11565b9052506106c5565b600060608201525b60408701516106d59086906108c6565b6080820152606081015160c08201516106ee9190610d1d565b816080015111156107265780606001518160c0015161070d9190610d1d565b8160800181815161071e9190610e11565b90525061072e565b600060808201525b6107776301e13380826101800151836101a0015161074c9190610e24565b64ffffffffff168960a001516107629190610e49565b61076c9190610e68565b6060830151906108c6565b6101208201526101808101516101a08201516107c8916301e133809161079d9190610e24565b64ffffffffff168960c001516107b39190610e49565b6107bd9190610e68565b6080830151906108c6565b61014082018190526101208201516000916107e291610d1d565b90506107fb8860800151826108c690919063ffffffff16565b606089015160c084015161080e916108c6565b6108189190610d1d565b60e0830181905260c0830151889183916108329190610d1d565b61083c9190610d1d565b111561088a5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d00000000000000604482015260640161020f565b8160e00151818360c00151896108a09190610e11565b6108aa9190610e11565b6108b49190610e11565b61010083015250979650505050505050565b600081156706f05b59d3b2000019839004841115176108e457600080fd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b604051806101c00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600064ffffffffff168152602001600064ffffffffff1681525090565b6001600160a01b03811681146102c257600080fd5b600080604083850312156109ac57600080fd5b82356109b781610984565b946020939093013593505050565b6040516101c0810167ffffffffffffffff811182821017156109f757634e487b7160e01b600052604160045260246000fd5b60405290565b60405160e0810167ffffffffffffffff811182821017156109f757634e487b7160e01b600052604160045260246000fd5b8035610a3981610984565b919050565b803564ffffffffff81168114610a3957600080fd5b60006101c08284031215610a6657600080fd5b610a6e6109c5565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301358183015250610140808301358183015250610160610aec818401610a2e565b90820152610180610afe838201610a3e565b908201526101a0610b10838201610a3e565b9082015292915050565b6000806000806102208587031215610b3157600080fd5b610b3b8686610a53565b93506101c0850135610b4c81610984565b92506101e0850135610b5d81610984565b91506102008501356bffffffffffffffffffffffff81168114610b7f57600080fd5b939692955090935050565b60006101c08284031215610b9d57600080fd5b50919050565b60006101c08284031215610bb657600080fd5b610bc08383610b8a565b9392505050565b6000806101e08385031215610bdb57600080fd5b610be58484610b8a565b946101c0939093013593505050565b600060208284031215610c0657600080fd5b5035919050565b600080600080600080868803610180811215610c2857600080fd5b8735610c3381610984565b965060e0601f1982011215610c4757600080fd5b50610c506109fd565b6020880135815260408801356020820152606088013560408201526080880135606082015260a0880135608082015260c088013560a082015260e088013560c082015280955050610100870135935061012087013592506101408701359150610cbc6101608801610a3e565b90509295509295509295565b6000806101e08385031215610cdc57600080fd5b610ce68484610b8a565b91506101c08301358015158114610cfc57600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d3057610d30610d07565b92915050565b60006101c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525061016080840151610dc8828501826001600160a01b03169052565b50506101808381015164ffffffffff908116918401919091526101a09384015116929091019190915290565b60006101c08284031215610e0757600080fd5b610bc08383610a53565b81810381811115610d3057610d30610d07565b64ffffffffff828116828216039080821115610e4257610e42610d07565b5092915050565b6000816000190483118215151615610e6357610e63610d07565b500290565b600082610e8557634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122068c181cf2a2880160ac66a7b592c48c826c83711bafa79bc907fab3fde7c9a1364736f6c63430008100033",
699
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637a702b3c116100715780637a702b3c1461013c57806382afd23b1461014f57806392be297014610181578063e5a6b10f14610194578063f3fef3a3146101a5578063ffa600e3146101b857600080fd5b8063098d3228146100b957806347e7ef24146100d557806361d027b3146100ea5780636769a76f146101055780636af6f1ef1461011857806371907f171461012b575b600080fd5b6100c260001981565b6040519081526020015b60405180910390f35b6100e86100e3366004610999565b6101cb565b005b60005b6040516001600160a01b0390911681526020016100cc565b6100c2610113366004610b1a565b610218565b6100e8610126366004610ba3565b6102a9565b6001546001600160a01b03166100ed565b6100e861014a366004610bc7565b6102c5565b61017161015d366004610bf4565b600090815260036020526040902054151590565b60405190151581526020016100cc565b6100e861018f366004610c0d565b6102e1565b6000546001600160a01b03166100ed565b6100c26101b3366004610999565b61033d565b6100e86101c6366004610cc8565b610388565b60405162461bcd60e51b815260206004820152601760248201527f4e6f7420496d706c656d656e746564206465706f73697400000000000000000060448201526064015b60405180910390fd5b6000816bffffffffffffffffffffffff1660608661016001516001600160a01b0316901b6102469190610d1d565b8552610251856103b0565b855160009081526003602052604090819020919091555133907f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b90610297908890610d36565b60405180910390a25050915192915050565b6102c26102bb36839003830183610df4565b60006103e0565b50565b6102dd6102d736849003840184610df4565b826103e0565b5050565b60006102f18787878787876105b9565b9050866001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b8260405161032c9190610d36565b60405180910390a250505050505050565b60405162461bcd60e51b815260206004820152601860248201527f4e6f7420496d706c656d656e7465642077697468647261770000000000000000604482015260009060640161020f565b6102dd61039a36849003840184610df4565b826103a65760006103e0565b83602001356103e0565b6000816040516020016103c39190610d36565b604051602081830303815290604052805190602001209050919050565b81516000036104245760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b604482015260640161020f565b815160009081526003602052604090205461043e836103b0565b146104805760405162461bcd60e51b8152602060048201526012602482015271090c2e6d040c8decae6dc4ee840dac2e8c6d60731b604482015260640161020f565b8161016001516001600160a01b0316336001600160a01b0316146105025760405162461bcd60e51b815260206004820152603360248201527f4f6e6c79207269736b4d6f64756c6520697320617574686f72697a656420746f604482015272207265736f6c76652074686520706f6c69637960681b606482015260840161020f565b81516000908152600260208181526040808420848155600181018590559283018490556003808401859055600484018590556005840185905560068401859055600784018590556008840185905560098401859055600a8401859055600b90930180546001600160f01b0319169055855184529181528183209290925583519051838152909133917f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e910160405180910390a35050565b6105c16108fe565b8385111561061c5760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b606482015260840161020f565b6106246108fe565b6001600160a01b038816610160820152604081018690526020810185905260a0810184905264ffffffffff42811661018083015283166101a08201528651610678906106719086906108c6565b86906108c6565b60c0820152602087015161068d9086906108c6565b6060820181905260c082015110156106bd578060c00151816060018181516106b59190610e11565b9052506106c5565b600060608201525b60408701516106d59086906108c6565b6080820152606081015160c08201516106ee9190610d1d565b816080015111156107265780606001518160c0015161070d9190610d1d565b8160800181815161071e9190610e11565b90525061072e565b600060808201525b6107776301e13380826101800151836101a0015161074c9190610e24565b64ffffffffff168960a001516107629190610e49565b61076c9190610e68565b6060830151906108c6565b6101208201526101808101516101a08201516107c8916301e133809161079d9190610e24565b64ffffffffff168960c001516107b39190610e49565b6107bd9190610e68565b6080830151906108c6565b61014082018190526101208201516000916107e291610d1d565b90506107fb8860800151826108c690919063ffffffff16565b606089015160c084015161080e916108c6565b6108189190610d1d565b60e0830181905260c0830151889183916108329190610d1d565b61083c9190610d1d565b111561088a5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d00000000000000604482015260640161020f565b8160e00151818360c00151896108a09190610e11565b6108aa9190610e11565b6108b49190610e11565b61010083015250979650505050505050565b600081156706f05b59d3b2000019839004841115176108e457600080fd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b604051806101c00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600064ffffffffff168152602001600064ffffffffff1681525090565b6001600160a01b03811681146102c257600080fd5b600080604083850312156109ac57600080fd5b82356109b781610984565b946020939093013593505050565b6040516101c0810167ffffffffffffffff811182821017156109f757634e487b7160e01b600052604160045260246000fd5b60405290565b60405160e0810167ffffffffffffffff811182821017156109f757634e487b7160e01b600052604160045260246000fd5b8035610a3981610984565b919050565b803564ffffffffff81168114610a3957600080fd5b60006101c08284031215610a6657600080fd5b610a6e6109c5565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301358183015250610140808301358183015250610160610aec818401610a2e565b90820152610180610afe838201610a3e565b908201526101a0610b10838201610a3e565b9082015292915050565b6000806000806102208587031215610b3157600080fd5b610b3b8686610a53565b93506101c0850135610b4c81610984565b92506101e0850135610b5d81610984565b91506102008501356bffffffffffffffffffffffff81168114610b7f57600080fd5b939692955090935050565b60006101c08284031215610b9d57600080fd5b50919050565b60006101c08284031215610bb657600080fd5b610bc08383610b8a565b9392505050565b6000806101e08385031215610bdb57600080fd5b610be58484610b8a565b946101c0939093013593505050565b600060208284031215610c0657600080fd5b5035919050565b600080600080600080868803610180811215610c2857600080fd5b8735610c3381610984565b965060e0601f1982011215610c4757600080fd5b50610c506109fd565b6020880135815260408801356020820152606088013560408201526080880135606082015260a0880135608082015260c088013560a082015260e088013560c082015280955050610100870135935061012087013592506101408701359150610cbc6101608801610a3e565b90509295509295509295565b6000806101e08385031215610cdc57600080fd5b610ce68484610b8a565b91506101c08301358015158114610cfc57600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d3057610d30610d07565b92915050565b60006101c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525061016080840151610dc8828501826001600160a01b03169052565b50506101808381015164ffffffffff908116918401919091526101a09384015116929091019190915290565b60006101c08284031215610e0757600080fd5b610bc08383610a53565b81810381811115610d3057610d30610d07565b64ffffffffff828116828216039080821115610e4257610e42610d07565b5092915050565b6000816000190483118215151615610e6357610e63610d07565b500290565b600082610e8557634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122068c181cf2a2880160ac66a7b592c48c826c83711bafa79bc907fab3fde7c9a1364736f6c63430008100033",
700
+ "linkReferences": {},
701
+ "deployedLinkReferences": {}
702
+ }