@etherisc/gif-next 0.0.2-c8acbd3-764 → 0.0.2-cc4a5cb-898
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +56 -0
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +405 -0
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +340 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +131 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +109 -18
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +194 -3
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +160 -21
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +592 -451
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +703 -514
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +50 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +50 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +41 -23
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +55 -54
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +56 -55
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensation.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensationModule.json → distribution/IDistribution.sol/IDistributionModule.json} +2 -2
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +61 -38
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +61 -38
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -5
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -5
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +104 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +209 -231
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +209 -231
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +29 -21
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +420 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +325 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +64 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +160 -7
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +84 -12
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +216 -31
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Proxy.sol/Proxy.dbg.json +4 -0
- package/artifacts/contracts/shared/Proxy.sol/Proxy.json +178 -0
- package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +4 -0
- package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.json +129 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +405 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +194 -3
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +209 -27
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +2 -2
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +2 -2
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +50 -11
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/components/BaseComponent.sol +7 -1
- package/contracts/components/Distribution.sol +132 -0
- package/contracts/components/IDistributionComponent.sol +47 -0
- package/contracts/components/IPoolComponent.sol +14 -0
- package/contracts/components/IProductComponent.sol +24 -5
- package/contracts/components/Pool.sol +64 -3
- package/contracts/components/Product.sol +123 -13
- package/contracts/instance/IInstance.sol +7 -6
- package/contracts/instance/Instance.sol +12 -6
- package/contracts/instance/base/IInstanceBase.sol +8 -0
- package/contracts/instance/base/IKeyValueStore.sol +4 -3
- package/contracts/instance/base/InstanceBase.sol +13 -2
- package/contracts/instance/base/KeyValueStore.sol +12 -7
- package/contracts/instance/base/Lifecycle.sol +15 -10
- package/contracts/instance/base/ModuleBase.sol +22 -17
- package/contracts/instance/module/access/Access.sol +3 -3
- package/contracts/instance/module/bundle/BundleModule.sol +10 -12
- package/contracts/instance/module/bundle/IBundle.sol +6 -11
- package/contracts/instance/module/component/ComponentModule.sol +29 -54
- package/contracts/instance/module/component/IComponent.sol +5 -30
- package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
- package/contracts/instance/module/distribution/IDistribution.sol +10 -0
- package/contracts/instance/module/policy/IPolicy.sol +12 -9
- package/contracts/instance/module/policy/PolicyModule.sol +35 -20
- package/contracts/instance/module/pool/IPoolModule.sol +0 -1
- package/contracts/instance/module/pool/PoolModule.sol +12 -9
- package/contracts/instance/module/risk/IRisk.sol +18 -2
- package/contracts/instance/module/risk/RiskModule.sol +56 -2
- package/contracts/instance/module/treasury/ITreasury.sol +29 -50
- package/contracts/instance/module/treasury/TreasuryModule.sol +71 -85
- package/contracts/instance/service/ComponentOwnerService.sol +29 -42
- package/contracts/instance/service/DistributionService.sol +59 -0
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +7 -0
- package/contracts/instance/service/IProductService.sol +56 -7
- package/contracts/instance/service/PoolService.sol +30 -4
- package/contracts/instance/service/ProductService.sol +230 -75
- package/contracts/registry/Registry.sol +3 -3
- package/contracts/shared/Proxy.sol +83 -0
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/test/TestDistribution.sol +21 -0
- package/contracts/test/TestPool.sol +5 -2
- package/contracts/test/TestProduct.sol +35 -7
- package/contracts/types/Fee.sol +8 -3
- package/contracts/types/ObjectType.sol +24 -8
- package/contracts/types/ReferralId.sol +48 -0
- package/contracts/types/RiskId.sol +43 -0
- package/contracts/types/RoleId.sol +2 -2
- package/package.json +1 -1
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
@@ -3,6 +3,8 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {Product} from "../../contracts/components/Product.sol";
|
5
5
|
import {NftId, toNftId} from "../../contracts/types/NftId.sol";
|
6
|
+
import {ReferralId} from "../types/ReferralId.sol";
|
7
|
+
import {RiskId} from "../../contracts/types/RiskId.sol";
|
6
8
|
import {Timestamp, blockTimestamp} from "../../contracts/types/Timestamp.sol";
|
7
9
|
import {Fee} from "../../contracts/types/Fee.sol";
|
8
10
|
|
@@ -10,26 +12,52 @@ contract TestProduct is Product {
|
|
10
12
|
|
11
13
|
event LogTestProductSender(address sender);
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
+
string public constant DEFAULT_RISK_NAME = "DEFAULT_RISK";
|
16
|
+
bool private defaultRiskCreated;
|
17
|
+
|
18
|
+
constructor(
|
19
|
+
address registry,
|
20
|
+
NftId instanceNftid,
|
21
|
+
address token,
|
22
|
+
address pool,
|
23
|
+
address distribution,
|
24
|
+
Fee memory productFee,
|
25
|
+
Fee memory processingFee
|
26
|
+
)
|
27
|
+
Product(registry, instanceNftid, token, pool, distribution, productFee, processingFee)
|
15
28
|
// solhint-disable-next-line no-empty-blocks
|
16
|
-
{
|
29
|
+
{
|
30
|
+
}
|
31
|
+
|
32
|
+
function getDefaultRiskId() public pure returns (RiskId) {
|
33
|
+
return _toRiskId(DEFAULT_RISK_NAME);
|
34
|
+
}
|
17
35
|
|
18
36
|
function applyForPolicy(
|
19
37
|
uint256 sumInsuredAmount,
|
20
|
-
uint256 premiumAmount,
|
21
38
|
uint256 lifetime,
|
22
|
-
NftId bundleNftId
|
39
|
+
NftId bundleNftId,
|
40
|
+
ReferralId referralId
|
23
41
|
)
|
24
42
|
external
|
25
43
|
returns(NftId nftId)
|
26
44
|
{
|
45
|
+
RiskId riskId = getDefaultRiskId();
|
46
|
+
bytes memory applicationData = "";
|
47
|
+
|
48
|
+
if (!defaultRiskCreated) {
|
49
|
+
_createRisk(riskId, "");
|
50
|
+
defaultRiskCreated = true;
|
51
|
+
}
|
52
|
+
|
27
53
|
nftId = _createApplication(
|
28
54
|
msg.sender, // policy holder
|
55
|
+
riskId,
|
29
56
|
sumInsuredAmount,
|
30
|
-
premiumAmount,
|
31
57
|
lifetime,
|
32
|
-
|
58
|
+
applicationData,
|
59
|
+
bundleNftId,
|
60
|
+
referralId
|
33
61
|
);
|
34
62
|
}
|
35
63
|
|
package/contracts/types/Fee.sol
CHANGED
@@ -11,8 +11,8 @@ struct Fee {
|
|
11
11
|
library FeeLib {
|
12
12
|
|
13
13
|
function calculateFee(
|
14
|
-
|
15
|
-
|
14
|
+
Fee memory fee,
|
15
|
+
uint256 amount
|
16
16
|
)
|
17
17
|
public
|
18
18
|
pure
|
@@ -35,7 +35,12 @@ library FeeLib {
|
|
35
35
|
return Fee(fractionalFee, fixedFee);
|
36
36
|
}
|
37
37
|
|
38
|
-
/// @dev Return the
|
38
|
+
/// @dev Return the percent fee struct (x%, 0)
|
39
|
+
function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
|
40
|
+
return Fee(UFixedMathLib.toUFixed(percent, -2), 0);
|
41
|
+
}
|
42
|
+
|
43
|
+
/// @dev Return a zero fee struct (0, 0)
|
39
44
|
function zeroFee() public pure returns (Fee memory fee) {
|
40
45
|
return Fee(UFixed.wrap(0), 0);
|
41
46
|
}
|
@@ -37,36 +37,52 @@ function STAKE() pure returns (ObjectType) {
|
|
37
37
|
return toObjectType(60);
|
38
38
|
}
|
39
39
|
|
40
|
-
function
|
40
|
+
function COMPONENT() pure returns (ObjectType) {
|
41
41
|
return toObjectType(100);
|
42
42
|
}
|
43
43
|
|
44
|
-
function
|
44
|
+
function TREASURY() pure returns (ObjectType) {
|
45
|
+
return toObjectType(101);
|
46
|
+
}
|
47
|
+
|
48
|
+
function PRODUCT() pure returns (ObjectType) {
|
45
49
|
return toObjectType(110);
|
46
50
|
}
|
47
51
|
|
48
|
-
function
|
52
|
+
function DISTRIBUTION() pure returns (ObjectType) {
|
49
53
|
return toObjectType(120);
|
50
54
|
}
|
51
55
|
|
52
|
-
function
|
56
|
+
function ORACLE() pure returns (ObjectType) {
|
53
57
|
return toObjectType(130);
|
54
58
|
}
|
55
59
|
|
56
|
-
function
|
60
|
+
function POOL() pure returns (ObjectType) {
|
61
|
+
return toObjectType(140);
|
62
|
+
}
|
63
|
+
|
64
|
+
function RISK() pure returns (ObjectType) {
|
57
65
|
return toObjectType(200);
|
58
66
|
}
|
59
67
|
|
60
|
-
function
|
68
|
+
function POLICY() pure returns (ObjectType) {
|
61
69
|
return toObjectType(210);
|
62
70
|
}
|
63
71
|
|
72
|
+
function REFERRAL() pure returns (ObjectType) {
|
73
|
+
return toObjectType(212);
|
74
|
+
}
|
75
|
+
|
64
76
|
function CLAIM() pure returns (ObjectType) {
|
65
|
-
return toObjectType(
|
77
|
+
return toObjectType(214);
|
66
78
|
}
|
67
79
|
|
68
80
|
function PAYOUT() pure returns (ObjectType) {
|
69
|
-
return toObjectType(
|
81
|
+
return toObjectType(216);
|
82
|
+
}
|
83
|
+
|
84
|
+
function BUNDLE() pure returns (ObjectType) {
|
85
|
+
return toObjectType(220);
|
70
86
|
}
|
71
87
|
|
72
88
|
/// @dev Converts the uint8 to a ObjectType.
|
@@ -0,0 +1,48 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {REFERRAL} from "./ObjectType.sol";
|
6
|
+
|
7
|
+
type ReferralId is bytes8;
|
8
|
+
|
9
|
+
// type bindings
|
10
|
+
using {
|
11
|
+
eqReferralId as ==,
|
12
|
+
neReferralId as !=,
|
13
|
+
ReferralIdLib.toKey32
|
14
|
+
} for ReferralId global;
|
15
|
+
|
16
|
+
// general pure free functions
|
17
|
+
|
18
|
+
// @dev Returns true iff risk ids a and b are identical
|
19
|
+
function eqReferralId(ReferralId a, ReferralId b) pure returns (bool isSame) {
|
20
|
+
return ReferralId.unwrap(a) == ReferralId.unwrap(b);
|
21
|
+
}
|
22
|
+
|
23
|
+
// @dev Returns true iff risk ids a and b are different
|
24
|
+
function neReferralId(ReferralId a, ReferralId b) pure returns (bool isDifferent) {
|
25
|
+
return ReferralId.unwrap(a) != ReferralId.unwrap(b);
|
26
|
+
}
|
27
|
+
|
28
|
+
library ReferralIdLib {
|
29
|
+
|
30
|
+
function zeroReferralId() public pure returns (ReferralId) {
|
31
|
+
return ReferralId.wrap(bytes8(0));
|
32
|
+
}
|
33
|
+
|
34
|
+
// @dev Converts a role string into a role id.
|
35
|
+
function toReferralId(string memory referral) public pure returns (ReferralId) {
|
36
|
+
return ReferralId.wrap(bytes8(keccak256(abi.encode(referral))));
|
37
|
+
}
|
38
|
+
|
39
|
+
/// @dev Returns the key32 value for the specified id
|
40
|
+
function toKey32(ReferralId id) public pure returns (Key32 key) {
|
41
|
+
return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
|
42
|
+
}
|
43
|
+
|
44
|
+
/// @dev Returns the key id value for the specified id
|
45
|
+
function toKeyId(ReferralId id) public pure returns (KeyId keyId) {
|
46
|
+
return KeyId.wrap(bytes31(ReferralId.unwrap(id)));
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {RISK} from "./ObjectType.sol";
|
6
|
+
|
7
|
+
type RiskId is bytes8;
|
8
|
+
|
9
|
+
// type bindings
|
10
|
+
using {
|
11
|
+
eqRiskId as ==,
|
12
|
+
neRiskId as !=,
|
13
|
+
RiskIdLib.toKey32
|
14
|
+
} for RiskId global;
|
15
|
+
|
16
|
+
// general pure free functions
|
17
|
+
|
18
|
+
// @dev Returns true iff risk ids a and b are identical
|
19
|
+
function eqRiskId(RiskId a, RiskId b) pure returns (bool isSame) {
|
20
|
+
return RiskId.unwrap(a) == RiskId.unwrap(b);
|
21
|
+
}
|
22
|
+
|
23
|
+
// @dev Returns true iff risk ids a and b are different
|
24
|
+
function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
|
25
|
+
return RiskId.unwrap(a) != RiskId.unwrap(b);
|
26
|
+
}
|
27
|
+
|
28
|
+
library RiskIdLib {
|
29
|
+
// @dev Converts a role string into a role id.
|
30
|
+
function toRiskId(string memory risk) public pure returns (RiskId) {
|
31
|
+
return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
|
32
|
+
}
|
33
|
+
|
34
|
+
/// @dev Returns the key32 value for the specified nft id and object type.
|
35
|
+
function toKey32(RiskId id) public pure returns (Key32 key) {
|
36
|
+
return Key32Lib.toKey32(RISK(), toKeyId(id));
|
37
|
+
}
|
38
|
+
|
39
|
+
/// @dev Returns the key id value for the specified nft id
|
40
|
+
function toKeyId(RiskId id) public pure returns (KeyId keyId) {
|
41
|
+
return KeyId.wrap(bytes31(RiskId.unwrap(id)));
|
42
|
+
}
|
43
|
+
}
|
@@ -10,12 +10,12 @@ using {
|
|
10
10
|
} for RoleId global;
|
11
11
|
|
12
12
|
// general pure free functions
|
13
|
-
function
|
13
|
+
function DISTRIBUTION_OWNER_ROLE_NAME() pure returns (string memory) { return "DistributionOwnerRole"; }
|
14
14
|
function ORACLE_OWNER_ROLE_NAME() pure returns (string memory) { return "OracleOwnerRole"; }
|
15
15
|
function POOL_OWNER_ROLE_NAME() pure returns (string memory) { return "PoolOwnerRole"; }
|
16
16
|
function PRODUCT_OWNER_ROLE_NAME() pure returns (string memory) { return "ProductOwnerRole"; }
|
17
17
|
|
18
|
-
function
|
18
|
+
function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("DistributionOwnerRole"); }
|
19
19
|
function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("OracleOwnerRole"); }
|
20
20
|
function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("PoolOwnerRole"); }
|
21
21
|
function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("ProductOwnerRole"); }
|
package/package.json
CHANGED
@@ -1,10 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"_format": "hh-sol-artifact-1",
|
3
|
-
"contractName": "CompensationModule",
|
4
|
-
"sourceName": "contracts/instance/module/compensation/CompensationModule.sol",
|
5
|
-
"abi": [],
|
6
|
-
"bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e083bd536daa38f4ab2da87a47489460180ca9e737890e3707e2279d6bddbb1d64736f6c63430008140033",
|
7
|
-
"deployedBytecode": "0x6080604052600080fdfea2646970667358221220e083bd536daa38f4ab2da87a47489460180ca9e737890e3707e2279d6bddbb1d64736f6c63430008140033",
|
8
|
-
"linkReferences": {},
|
9
|
-
"deployedLinkReferences": {}
|
10
|
-
}
|