@etherisc/gif-next 0.0.2-e922e07-736 → 0.0.2-e94f4c7-084
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 +6 -83
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +68 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +84 -0
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +158 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +158 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +184 -149
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +158 -0
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +114 -189
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +68 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -50
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +457 -268
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +175 -51
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +426 -476
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +472 -126
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +217 -169
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +304 -210
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +71 -23
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -13
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +85 -30
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +56 -73
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +175 -83
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +29 -13
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +426 -233
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +78 -14
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +372 -86
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +55 -7
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +189 -139
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +48 -56
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +111 -40
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +246 -170
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +251 -58
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +101 -24
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +470 -41
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +627 -14
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +80 -14
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +607 -85
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +71 -19
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +777 -55
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +72 -12
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +114 -51
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +16 -12
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +19 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -24
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +31 -12
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +17 -36
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +7 -7
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +23 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +80 -14
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +86 -15
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- 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/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 +6 -6
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +101 -26
- 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/TestVersion.sol/TestVersion.json +2 -2
- 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/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +209 -0
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +83 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +40 -9
- 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 +17 -4
- 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/NumberId.sol/NumberIdLib.dbg.json +1 -1
- 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/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +116 -7
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- 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/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
- package/contracts/components/Component.sol +42 -10
- package/contracts/components/Distribution.sol +6 -2
- package/contracts/components/IComponent.sol +9 -1
- package/contracts/components/IPoolComponent.sol +6 -44
- package/contracts/components/Pool.sol +50 -126
- package/contracts/components/Product.sol +141 -59
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +9 -8
- package/contracts/instance/Cloneable.sol +7 -2
- package/contracts/instance/IInstance.sol +37 -27
- package/contracts/instance/IInstanceService.sol +18 -9
- package/contracts/instance/Instance.sol +117 -98
- package/contracts/instance/InstanceAccessManager.sol +388 -158
- package/contracts/instance/InstanceReader.sol +36 -12
- package/contracts/instance/InstanceService.sol +193 -204
- package/contracts/instance/ObjectManager.sol +6 -8
- package/contracts/instance/base/ComponentService.sol +17 -30
- package/contracts/instance/base/KeyValueStore.sol +13 -5
- package/contracts/instance/base/Lifecycle.sol +23 -6
- package/contracts/instance/module/IAccess.sol +21 -14
- package/contracts/instance/module/IBundle.sol +6 -4
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IPolicy.sol +11 -6
- package/contracts/instance/module/ISetup.sol +3 -16
- package/contracts/instance/service/ApplicationService.sol +25 -19
- package/contracts/instance/service/BundleService.sol +224 -80
- package/contracts/instance/service/ClaimService.sol +114 -26
- package/contracts/instance/service/DistributionService.sol +58 -77
- package/contracts/instance/service/IApplicationService.sol +3 -7
- package/contracts/instance/service/IBundleService.sol +72 -25
- package/contracts/instance/service/IClaimService.sol +46 -15
- package/contracts/instance/service/IDistributionService.sol +1 -0
- package/contracts/instance/service/IPolicyService.sol +72 -5
- package/contracts/instance/service/IPoolService.sol +85 -3
- package/contracts/instance/service/PolicyService.sol +320 -143
- package/contracts/instance/service/PoolService.sol +245 -18
- package/contracts/instance/service/ProductService.sol +31 -54
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +2 -0
- package/contracts/registry/IRegistryService.sol +4 -3
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +23 -20
- package/contracts/registry/RegistryService.sol +10 -11
- package/contracts/registry/ReleaseManager.sol +20 -18
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/Service.sol +21 -7
- package/contracts/shared/TokenHandler.sol +11 -5
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/Amount.sol +70 -0
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +25 -2
- package/contracts/types/Fee.sol +13 -5
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/ObjectType.sol +6 -5
- package/contracts/types/PayoutId.sol +33 -5
- package/contracts/types/RoleId.sol +6 -4
- package/contracts/types/StateId.sol +7 -2
- package/contracts/types/Timestamp.sol +6 -0
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +1 -0
- package/package.json +1 -1
@@ -1,14 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IInstance} from "../IInstance.sol";
|
5
|
+
import {InstanceReader} from "../InstanceReader.sol";
|
5
6
|
import {IService} from "../../shared/IService.sol";
|
6
7
|
|
8
|
+
import {Amount} from "../../types/Amount.sol";
|
7
9
|
import {ClaimId} from "../../types/ClaimId.sol";
|
8
10
|
import {PayoutId} from "../../types/PayoutId.sol";
|
9
11
|
import {NftId} from "../../types/NftId.sol";
|
10
|
-
import {ReferralId} from "../../types/Referral.sol";
|
11
|
-
import {RiskId} from "../../types/RiskId.sol";
|
12
12
|
import {StateId} from "../../types/StateId.sol";
|
13
13
|
import {Timestamp} from "../../types/Timestamp.sol";
|
14
14
|
import {UFixed} from "../../types/UFixed.sol";
|
@@ -20,42 +20,73 @@ interface IClaimService is
|
|
20
20
|
IService
|
21
21
|
{
|
22
22
|
|
23
|
+
error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint8 openPayouts);
|
24
|
+
error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
|
25
|
+
error ErrorClaimServiceClaimNotInExpectedState(NftId policyNftId, ClaimId claimId, StateId expectedState, StateId actualState);
|
26
|
+
|
23
27
|
/// @dev create a new claim for the specified policy
|
24
28
|
/// function can only be called by product, policy needs to match with calling product
|
25
|
-
function
|
29
|
+
function submit(
|
30
|
+
IInstance instance,
|
26
31
|
NftId policyNftId,
|
27
|
-
|
32
|
+
ClaimId claimId,
|
33
|
+
Amount claimAmount,
|
28
34
|
bytes memory claimData
|
29
|
-
) external
|
35
|
+
) external;
|
30
36
|
|
31
37
|
/// @dev confirms the specified claim and fixes the final claim amount
|
32
38
|
/// function can only be called by product, policy needs to match with calling product
|
33
|
-
function
|
39
|
+
function confirm(
|
40
|
+
IInstance instance,
|
41
|
+
InstanceReader instanceReader,
|
42
|
+
NftId policyNftId,
|
43
|
+
ClaimId claimId,
|
44
|
+
Amount claimAmount
|
45
|
+
) external;
|
34
46
|
|
35
47
|
/// @dev declares the claim as invalid, no payout(s) will be made
|
36
48
|
/// function can only be called by product, policy needs to match with calling product
|
37
|
-
function
|
49
|
+
function decline(
|
50
|
+
IInstance instance,
|
51
|
+
InstanceReader instanceReader,
|
52
|
+
NftId policyNftId,
|
53
|
+
ClaimId claimId
|
54
|
+
) external;
|
38
55
|
|
39
56
|
/// @dev closes the claim
|
40
57
|
/// a claim may only be closed once all existing payouts have been executed and the sum of the paid out amounts has reached the claim amount
|
41
58
|
/// function can only be called by product, policy needs to match with calling product
|
42
|
-
function
|
59
|
+
function close(
|
60
|
+
IInstance instance,
|
61
|
+
InstanceReader instanceReader,
|
62
|
+
NftId policyNftId,
|
63
|
+
ClaimId claimId
|
64
|
+
) external;
|
43
65
|
|
44
|
-
/// @dev create a new payout for the specified policy
|
66
|
+
/// @dev create a new payout for the specified policy
|
67
|
+
/// payoutId may be constructed using PayoutIdLib(claimId, payoutNo)
|
45
68
|
/// function can only be called by product, policy needs to match with calling product
|
46
69
|
function createPayout(
|
70
|
+
IInstance instance,
|
47
71
|
NftId policyNftId,
|
48
|
-
|
49
|
-
|
72
|
+
PayoutId payoutId,
|
73
|
+
Amount payoutAmount,
|
50
74
|
bytes calldata payoutData
|
51
|
-
) external
|
75
|
+
) external;
|
52
76
|
|
53
77
|
/// @dev callback function to confirm transfer of payout token to beneficiary
|
54
78
|
/// allows claim service to update claims/payout book keeping
|
55
79
|
/// only pool service can confirm executed payout
|
56
|
-
function
|
80
|
+
function processPayout(
|
81
|
+
IInstance instance,
|
82
|
+
InstanceReader instanceReader,
|
57
83
|
NftId policyNftId,
|
58
84
|
PayoutId payoutId
|
59
|
-
)
|
85
|
+
)
|
86
|
+
external
|
87
|
+
returns (
|
88
|
+
Amount amount,
|
89
|
+
bool payoutIsClosingClaim
|
90
|
+
);
|
60
91
|
|
61
92
|
}
|
@@ -12,6 +12,7 @@ import {Timestamp} from "../../types/Timestamp.sol";
|
|
12
12
|
|
13
13
|
|
14
14
|
interface IDistributionService is IService {
|
15
|
+
error ErrorDistributionServiceCallerNotRegistered(address caller);
|
15
16
|
error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
|
16
17
|
error ErrorIDistributionServiceCallerNotDistributor(address caller);
|
17
18
|
error ErrorIDistributionServiceInvalidReferralId(ReferralId referralId);
|
@@ -4,7 +4,10 @@ pragma solidity ^0.8.19;
|
|
4
4
|
import {IRisk} from "../module/IRisk.sol";
|
5
5
|
import {IService} from "../../shared/IService.sol";
|
6
6
|
|
7
|
+
import {Amount} from "../../types/Amount.sol";
|
8
|
+
import {ClaimId} from "../../types/ClaimId.sol";
|
7
9
|
import {NftId} from "../../types/NftId.sol";
|
10
|
+
import {PayoutId} from "../../types/PayoutId.sol";
|
8
11
|
import {ReferralId} from "../../types/Referral.sol";
|
9
12
|
import {RiskId} from "../../types/RiskId.sol";
|
10
13
|
import {Seconds} from "../../types/Seconds.sol";
|
@@ -14,7 +17,20 @@ import {UFixed} from "../../types/UFixed.sol";
|
|
14
17
|
import {Fee} from "../../types/Fee.sol";
|
15
18
|
|
16
19
|
interface IPolicyService is IService {
|
17
|
-
|
20
|
+
|
21
|
+
event LogPolicyServiceClaimSubmitted(NftId policyNftId, ClaimId claimId, Amount claimAmount);
|
22
|
+
event LogPolicyServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
|
23
|
+
event LogPolicyServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
|
24
|
+
event LogPolicyServiceClaimClosed(NftId policyNftId, ClaimId claimId);
|
25
|
+
|
26
|
+
event LogPolicyServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount);
|
27
|
+
event LogPolicyServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount);
|
28
|
+
|
29
|
+
error ErrorPolicyServiceProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
|
30
|
+
error ErrorPolicyServicePolicyNotOpen(NftId policyNftId);
|
31
|
+
error ErrorPolicyServiceClaimExceedsSumInsured(NftId policyNftId, Amount sumInsured, Amount payoutsIncludingClaimAmount);
|
32
|
+
error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
|
33
|
+
|
18
34
|
error ErrorIPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
|
19
35
|
error ErrorIPolicyServicePremiumAlreadyPaid(NftId policyNftId, uint256 premiumPaidAmount);
|
20
36
|
error ErrorIPolicyServicePolicyNotActivated(NftId policyNftId);
|
@@ -24,22 +40,23 @@ interface IPolicyService is IService {
|
|
24
40
|
error ErrorIPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
|
25
41
|
error ErrorIPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
|
26
42
|
|
27
|
-
error ErrorIPolicyServicePremiumMismatch(NftId policyNftId, uint256
|
43
|
+
error ErrorIPolicyServicePremiumMismatch(NftId policyNftId, uint256 expectedPremiumAmount, uint256 recalculatedPremiumAmount);
|
44
|
+
error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, uint256 expectedPremiumAmount, uint256 transferredPremiumAmount);
|
28
45
|
|
29
46
|
/// @dev declines an application represented by {policyNftId}
|
30
47
|
/// an application can only be declined in applied state
|
31
48
|
/// only the related product may decline an application
|
32
49
|
function decline(NftId policyNftId) external;
|
33
50
|
|
34
|
-
/// @dev
|
51
|
+
/// @dev collateralizes the policy represented by {policyNftId}
|
35
52
|
/// sets the policy state to underwritten
|
36
53
|
/// may set the policy state to activated and set the activation date
|
37
54
|
/// optionally collects premiums and activates the policy.
|
38
55
|
/// - premium payment is only attempted if requirePremiumPayment is set to true
|
39
56
|
/// - activation is only done if activateAt is a non-zero timestamp
|
40
57
|
/// an application can only be underwritten in applied state
|
41
|
-
/// only the related product may
|
42
|
-
function
|
58
|
+
/// only the related product may collateralize an application
|
59
|
+
function collateralize(
|
43
60
|
NftId policyNftId,
|
44
61
|
bool requirePremiumPayment,
|
45
62
|
Timestamp activateAt
|
@@ -63,6 +80,56 @@ interface IPolicyService is IService {
|
|
63
80
|
/// this function can only be called by a product. the policy needs to match with the calling product
|
64
81
|
function close(NftId policyNftId) external;
|
65
82
|
|
83
|
+
/// @dev create a new claim for the specified policy
|
84
|
+
/// returns the id of the newly created claim
|
85
|
+
/// function can only be called by product, policy needs to match with calling product
|
86
|
+
function submitClaim(
|
87
|
+
NftId policyNftId,
|
88
|
+
Amount claimAmount,
|
89
|
+
bytes memory claimData
|
90
|
+
) external returns (ClaimId claimId);
|
91
|
+
|
92
|
+
/// @dev declines the specified claim
|
93
|
+
/// function can only be called by product, policy needs to match with calling product
|
94
|
+
function declineClaim(
|
95
|
+
NftId policyNftId,
|
96
|
+
ClaimId claimId) external;
|
97
|
+
|
98
|
+
/// @dev confirms the specified claim and specifies the payout amount
|
99
|
+
/// function can only be called by product, policy needs to match with calling product
|
100
|
+
function confirmClaim(
|
101
|
+
NftId policyNftId,
|
102
|
+
ClaimId claimId,
|
103
|
+
Amount confirmedAmount
|
104
|
+
) external;
|
105
|
+
|
106
|
+
/// @dev closes the specified claim
|
107
|
+
/// function can only be called by product, policy needs to match with calling product
|
108
|
+
function closeClaim(
|
109
|
+
NftId policyNftId,
|
110
|
+
ClaimId claimId
|
111
|
+
) external;
|
112
|
+
|
113
|
+
/// @dev creates a new payout for the specified claim
|
114
|
+
/// returns the id of the newly created payout, this id is unique for the specified policy
|
115
|
+
/// function can only be called by product, policy needs to match with calling product
|
116
|
+
function createPayout(
|
117
|
+
NftId policyNftId,
|
118
|
+
ClaimId claimId,
|
119
|
+
Amount amount,
|
120
|
+
bytes memory data
|
121
|
+
)
|
122
|
+
external
|
123
|
+
returns (PayoutId payoutId);
|
124
|
+
|
125
|
+
/// @dev processes the specified payout
|
126
|
+
/// this includes moving the payout token to the beneficiary (default: policy holder)
|
127
|
+
/// function can only be called by product, policy needs to match with calling product
|
128
|
+
function processPayout(
|
129
|
+
NftId policyNftId,
|
130
|
+
PayoutId payoutId
|
131
|
+
) external;
|
132
|
+
|
66
133
|
// TODO move function to pool service
|
67
134
|
function calculateRequiredCollateral(
|
68
135
|
UFixed collateralizationLevel,
|
@@ -1,20 +1,102 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {Amount} from "../../types/Amount.sol";
|
5
5
|
import {Fee} from "../../types/Fee.sol";
|
6
|
-
import {
|
7
|
-
import {IService} from "../../shared/IService.sol";
|
6
|
+
import {NftId} from "../../types/NftId.sol";
|
8
7
|
import {IBundle} from "../module/IBundle.sol";
|
9
8
|
import {IInstance} from "../../instance/IInstance.sol";
|
9
|
+
import {IPolicy} from "../module/IPolicy.sol";
|
10
|
+
import {IService} from "../../shared/IService.sol";
|
11
|
+
import {RoleId} from "../../types/RoleId.sol";
|
12
|
+
import {Seconds} from "../../types/Seconds.sol";
|
13
|
+
import {StateId} from "../../types/StateId.sol";
|
10
14
|
|
11
15
|
interface IPoolService is IService {
|
12
16
|
|
17
|
+
event LogPoolServiceMaxCapitalAmountUpdated(NftId poolNftId, uint256 previousMaxCapitalAmount, uint256 currentMaxCapitalAmount);
|
18
|
+
event LogPoolServiceBundleOwnerRoleSet(NftId poolNftId, RoleId bundleOwnerRole);
|
19
|
+
|
20
|
+
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
21
|
+
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
22
|
+
|
23
|
+
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
24
|
+
error ErrorPoolServiceBundlePoolMismatch(NftId bundlePoolNftId, NftId productPoolNftId);
|
25
|
+
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
26
|
+
|
27
|
+
/// @dev registers a new pool with the registry service
|
13
28
|
function register(address poolAddress) external returns(NftId);
|
14
29
|
|
30
|
+
/// @dev defines the required role for bundle owners for the calling pool
|
31
|
+
/// default implementation returns PUBLIC ROLE
|
32
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
33
|
+
|
34
|
+
/// @dev sets the max capital amount for the calling pool
|
35
|
+
function setMaxCapitalAmount(uint256 maxCapitalAmount) external;
|
36
|
+
|
37
|
+
/// @dev set pool sepecific fees
|
15
38
|
function setFees(
|
16
39
|
Fee memory poolFee,
|
17
40
|
Fee memory stakingFee,
|
18
41
|
Fee memory performanceFee
|
19
42
|
) external;
|
43
|
+
|
44
|
+
|
45
|
+
/// @dev locks required collateral to cover the specified application (and turn it into a policy)
|
46
|
+
/// - retention level == 1: the full collateral amount will be locked by the specified bundle
|
47
|
+
/// - retention level < 1: a part of the coverage is provided by the specified bundle, the rest by the pool component
|
48
|
+
/// in which case the pool component might hold a re-insurance policy
|
49
|
+
/// may only be called by the policy service for unlocked pool components
|
50
|
+
function lockCollateral(
|
51
|
+
IInstance instance,
|
52
|
+
NftId productNftId,
|
53
|
+
NftId applicationNftId,
|
54
|
+
IPolicy.PolicyInfo memory applicationInfo,
|
55
|
+
uint256 premiumAmount
|
56
|
+
) external;
|
57
|
+
|
58
|
+
|
59
|
+
/// @dev releases the remaining collateral linked to the specified policy
|
60
|
+
/// may only be called by the policy service for unlocked pool components
|
61
|
+
function releaseCollateral(
|
62
|
+
IInstance instance,
|
63
|
+
NftId policyNftId,
|
64
|
+
IPolicy.PolicyInfo memory policyInfo
|
65
|
+
) external;
|
66
|
+
|
67
|
+
|
68
|
+
/// @dev create a new bundle for the provided parameters
|
69
|
+
/// staking fees will be deducted by the pool service from the staking amount
|
70
|
+
/// may only be called by registered and unlocked pool components
|
71
|
+
function createBundle(
|
72
|
+
address owner, // initial bundle owner
|
73
|
+
Fee memory fee, // fees deducted from premium that go to bundle owner
|
74
|
+
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
75
|
+
Seconds lifetime, // initial duration for which new policies are covered
|
76
|
+
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
77
|
+
)
|
78
|
+
external
|
79
|
+
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
80
|
+
|
81
|
+
|
82
|
+
/// @dev closes the specified bundle
|
83
|
+
/// only open bundles (active or locked) may be closed
|
84
|
+
/// to close a bundle it may not have any non-closed polices attached to it
|
85
|
+
/// bundle fees and remaining capital (after deduction of the performance fee) will be transferred to the bundle owner
|
86
|
+
/// may only be called by registered and unlocked pool components
|
87
|
+
function closeBundle(NftId bundleNftId) external;
|
88
|
+
|
89
|
+
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
90
|
+
function processSale(NftId bundleNftId, IPolicy.Premium memory premium, uint256 actualAmountTransferred) external;
|
91
|
+
|
92
|
+
/// @dev increase stakes for bundle
|
93
|
+
/// staking fees will be deducted by the pool service from the staking amount
|
94
|
+
/// may only be called by registered and unlocked pool components
|
95
|
+
// function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
96
|
+
|
97
|
+
|
98
|
+
/// @dev decrease stakes for bundle
|
99
|
+
/// performance fees will be deducted by the pool service from the staking amount
|
100
|
+
/// may only be called by registered and unlocked pool components
|
101
|
+
// function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
20
102
|
}
|