@ensuro/core 2.8.3 → 2.9.0
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.
- package/README.md +2 -3
- package/build/contracts/AccessManager.sol/AccessManager.json +2 -15
- package/build/contracts/ERC4626AssetManager.sol/ERC4626AssetManager.json +2 -2
- package/build/contracts/ERC4626PlusVaultAssetManager.sol/ERC4626PlusVaultAssetManager.json +2 -2
- package/build/contracts/EToken.sol/EToken.json +7 -85
- package/build/contracts/FullSignedBucketRiskModule.sol/FullSignedBucketRiskModule.json +1484 -0
- package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +7 -85
- package/build/contracts/Policy.sol/Policy.json +2 -2
- package/build/contracts/PolicyPool.sol/PolicyPool.json +2 -15
- package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +5 -83
- package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +7 -85
- package/build/contracts/Reserve.sol/Reserve.json +5 -83
- package/build/contracts/RiskModule.sol/RiskModule.json +5 -96
- package/build/contracts/SignedBucketRiskModule.sol/SignedBucketRiskModule.json +7 -150
- package/build/contracts/SignedQuoteRiskModule.sol/SignedQuoteRiskModule.json +7 -98
- package/build/contracts/TimeScaled.sol/TimeScaled.json +2 -2
- package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +7 -98
- package/build/contracts/dependencies/WadRayMath.sol/WadRayMath.json +2 -2
- package/build/contracts/migration/LPManualWhitelistV20.sol/LPManualWhitelistV20.json +5 -83
- package/build/contracts/migration/LPManualWhitelistV20Upgraded.sol/LPManualWhitelistV20Upgraded.json +7 -85
- package/build/contracts/mocks/FixedRateVault.sol/FixedRateVault.json +2 -2
- package/build/contracts/mocks/ForwardProxy.sol/ForwardProxy.json +2 -2
- package/build/contracts/mocks/InterfaceIdCalculator.sol/InterfaceIdCalculator.json +2 -2
- package/build/contracts/mocks/PolicyHolderMock.sol/PolicyHolderMock.json +2 -2
- package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +2 -2
- package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +2 -2
- package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +2 -2
- package/build/contracts/mocks/RiskModuleMock.sol/RiskModuleMock.json +7 -98
- package/build/contracts/mocks/TestCurrency.sol/TestCurrency.json +2 -2
- package/build/contracts/mocks/TestNFT.sol/TestNFT.json +2 -2
- package/contracts/AccessManager.sol +0 -1
- package/contracts/EToken.sol +2 -20
- package/contracts/FullSignedBucketRiskModule.sol +204 -0
- package/contracts/PolicyPool.sol +0 -1
- package/contracts/PolicyPoolComponent.sol +7 -44
- package/contracts/PremiumsAccount.sol +3 -3
- package/contracts/RiskModule.sol +10 -21
- package/contracts/SignedBucketRiskModule.sol +15 -9
- package/contracts/SignedQuoteRiskModule.sol +7 -4
- package/js/test-utils.js +1 -2
- package/js/utils.js +65 -0
- package/package.json +1 -1
- package/scripts/deploySmokeTest-fork.sh +1 -1
- package/scripts/deploySmokeTest.sh +1 -1
package/js/test-utils.js
CHANGED
|
@@ -227,7 +227,6 @@ async function deployPool(options) {
|
|
|
227
227
|
if (options.dontGrantL123Roles === undefined) {
|
|
228
228
|
await grantRole(hre, accessManager, "LEVEL1_ROLE");
|
|
229
229
|
await grantRole(hre, accessManager, "LEVEL2_ROLE");
|
|
230
|
-
await grantRole(hre, accessManager, "LEVEL3_ROLE");
|
|
231
230
|
}
|
|
232
231
|
|
|
233
232
|
return policyPool;
|
|
@@ -304,7 +303,7 @@ const fork = {
|
|
|
304
303
|
},
|
|
305
304
|
};
|
|
306
305
|
|
|
307
|
-
if (process.env.ENABLE_HH_WARNINGS !== "yes") hre.upgrades.silenceWarnings();
|
|
306
|
+
if (process.env.ENABLE_HH_WARNINGS !== "yes" && hre.upgrades !== undefined) hre.upgrades.silenceWarnings();
|
|
308
307
|
|
|
309
308
|
module.exports = {
|
|
310
309
|
addEToken,
|
package/js/utils.js
CHANGED
|
@@ -203,6 +203,31 @@ function makeQuoteMessage({ rmAddress, payout, premium, lossProb, expiration, po
|
|
|
203
203
|
);
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
+
function paramsAsUint256(params) {
|
|
207
|
+
/* eslint no-bitwise: "off" */
|
|
208
|
+
return (
|
|
209
|
+
(params.moc << 240n) |
|
|
210
|
+
(params.jrCollRatio << 224n) |
|
|
211
|
+
(params.collRatio << 208n) |
|
|
212
|
+
(params.ensuroPpFee << 192n) |
|
|
213
|
+
(params.ensuroCocFee << 176n) |
|
|
214
|
+
(params.jrRoc << 160n) |
|
|
215
|
+
(params.srRoc << 144n)
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Create a packed quote message for later signing or hashing.
|
|
221
|
+
*
|
|
222
|
+
* Mimics the behaviour of the FullSignedBucketRiskModule._checkFullSignature method.
|
|
223
|
+
*/
|
|
224
|
+
function makeFullQuoteMessage({ rmAddress, payout, premium, lossProb, expiration, policyData, params, validUntil }) {
|
|
225
|
+
return ethers.solidityPacked(
|
|
226
|
+
["address", "uint256", "uint256", "uint256", "uint40", "bytes32", "uint256", "uint40"],
|
|
227
|
+
[rmAddress, payout, premium, lossProb, expiration, policyData, paramsAsUint256(params), validUntil]
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
|
|
206
231
|
/**
|
|
207
232
|
* Create a packed quote message for later signing or hashing.
|
|
208
233
|
*
|
|
@@ -263,6 +288,42 @@ async function defaultPolicyParams(
|
|
|
263
288
|
};
|
|
264
289
|
}
|
|
265
290
|
|
|
291
|
+
async function defaultPolicyParamsWithBucket(opts, _A = amountFunction(6)) {
|
|
292
|
+
const ret = await defaultPolicyParams(opts, _A);
|
|
293
|
+
return { bucketId: opts.bucketId || 0, ...ret };
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
async function defaultPolicyParamsWithParams(opts, _A = amountFunction(6)) {
|
|
297
|
+
const ret = await defaultPolicyParams(opts, _A);
|
|
298
|
+
// struct PackedParams {
|
|
299
|
+
// uint16 moc; // Margin Of Conservativism - factor that multiplies lossProb - 4 decimals
|
|
300
|
+
// uint16 jrCollRatio; // Collateralization Ratio to compute Junior solvency as % of payout - 4 decimals
|
|
301
|
+
// uint16 collRatio; // Collateralization Ratio to compute solvency requirement as % of payout - 4 decimals
|
|
302
|
+
// uint16 ensuroPpFee; // % of pure premium that will go for Ensuro treasury - 4 decimals
|
|
303
|
+
// uint16 ensuroCocFee; // % of CoC that will go for Ensuro treasury - 4 decimals
|
|
304
|
+
// uint16 jrRoc; // Return on Capital paid to Junior LPs - Annualized Percentage - 4 decimals
|
|
305
|
+
// uint16 srRoc; // Return on Capital paid to Senior LPs - Annualized Percentage - 4 decimals
|
|
306
|
+
// uint32 maxPayoutPerPolicy; // Max Payout per Policy - 2 decimals
|
|
307
|
+
// uint32 exposureLimit; // Max exposure (sum of payouts) to be allocated to this module - 0 decimals
|
|
308
|
+
// uint16 maxDuration; // Max policy duration (in hours)
|
|
309
|
+
// }
|
|
310
|
+
const optsParams = opts.params || {};
|
|
311
|
+
const wadTo4Decimals = 10n ** 14n;
|
|
312
|
+
const params = {
|
|
313
|
+
moc: (optsParams.moc || _W(1)) / wadTo4Decimals,
|
|
314
|
+
jrCollRatio: (optsParams.jrCollRatio || 0n) / wadTo4Decimals,
|
|
315
|
+
collRatio: (optsParams.collRatio || _W(1)) / wadTo4Decimals,
|
|
316
|
+
ensuroPpFee: (optsParams.ensuroPpFee || 0n) / wadTo4Decimals,
|
|
317
|
+
ensuroCocFee: (optsParams.ensuroCocFee || 0n) / wadTo4Decimals,
|
|
318
|
+
jrRoc: (optsParams.jrRoc || 0n) / wadTo4Decimals,
|
|
319
|
+
srRoc: (optsParams.srRoc || _W("0.1")) / wadTo4Decimals, // 10%
|
|
320
|
+
maxPayoutPerPolicy: 0n, // Not used
|
|
321
|
+
exposureLimit: 0n, // Not used
|
|
322
|
+
maxDuration: 0n, // Not used
|
|
323
|
+
};
|
|
324
|
+
return { params, ...ret };
|
|
325
|
+
}
|
|
326
|
+
|
|
266
327
|
function defaultBucketParams({ moc, jrCollRatio, collRatio, ensuroPpFee, ensuroCocFee, jrRoc, srRoc }) {
|
|
267
328
|
return {
|
|
268
329
|
moc: moc !== undefined ? moc : _W("1.1"),
|
|
@@ -299,6 +360,8 @@ module.exports = {
|
|
|
299
360
|
accessControlMessage,
|
|
300
361
|
amountFunction,
|
|
301
362
|
defaultPolicyParams,
|
|
363
|
+
defaultPolicyParamsWithBucket,
|
|
364
|
+
defaultPolicyParamsWithParams,
|
|
302
365
|
defaultBucketParams,
|
|
303
366
|
getAddress,
|
|
304
367
|
getComponentRole,
|
|
@@ -309,6 +372,8 @@ module.exports = {
|
|
|
309
372
|
grantComponentRole,
|
|
310
373
|
grantRole,
|
|
311
374
|
makeBucketQuoteMessage,
|
|
375
|
+
makeFullQuoteMessage,
|
|
376
|
+
paramsAsUint256,
|
|
312
377
|
makePolicyId,
|
|
313
378
|
makeQuoteMessage,
|
|
314
379
|
makeSignedQuote,
|
package/package.json
CHANGED
|
@@ -26,7 +26,7 @@ POOL=`readAddress POOL`
|
|
|
26
26
|
ACCESSMANAGER=`readAddress ACCESSMANAGER`
|
|
27
27
|
echo "PolicyPool = $POOL / AccessManager = $ACCESSMANAGER"
|
|
28
28
|
|
|
29
|
-
for ROLE in LEVEL1 LEVEL2
|
|
29
|
+
for ROLE in LEVEL1 LEVEL2; do
|
|
30
30
|
npx hardhat --network $NETWORK ens:grantRole --contract-address $ACCESSMANAGER \
|
|
31
31
|
--role ${ROLE}_ROLE || die "Error granting ${ROLE}_ROLE"
|
|
32
32
|
done
|
|
@@ -17,7 +17,7 @@ POOL=`readAddress POOL`
|
|
|
17
17
|
ACCESSMANAGER=`readAddress ACCESSMANAGER`
|
|
18
18
|
echo "PolicyPool = $POOL / AccessManager = $ACCESSMANAGER"
|
|
19
19
|
|
|
20
|
-
for ROLE in LEVEL1 LEVEL2
|
|
20
|
+
for ROLE in LEVEL1 LEVEL2; do
|
|
21
21
|
npx hardhat --network $NETWORK ens:grantRole --contract-address $ACCESSMANAGER \
|
|
22
22
|
--role ${ROLE}_ROLE || die "Error granting ${ROLE}_ROLE"
|
|
23
23
|
done
|