@etherisc/gif-next 0.0.2-f2df3e2-873 → 0.0.2-f398177-971
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/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +37 -6
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +44 -13
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +37 -6
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +44 -13
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +55 -24
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +52 -21
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +55 -24
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +52 -21
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +252 -2210
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +21 -38
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +346 -2685
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +67 -49
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +219 -53
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +59 -220
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +32 -117
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2788 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +37 -13
- 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 +2 -2
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- 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 +75 -217
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +33 -66
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +155 -133
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +35 -64
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +463 -119
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +109 -42
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +181 -399
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +81 -94
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +11 -145
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +79 -30
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +229 -88
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +23 -273
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +40 -326
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +265 -32
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.json +510 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +5 -13
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +213 -443
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +74 -75
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +439 -54
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +84 -37
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +688 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +55 -31
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +22 -35
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -13
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.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/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 -25
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +21 -34
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +2 -2
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +10 -23
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
- 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/INftOwnable.sol/INftOwnable.json +0 -13
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +5 -13
- 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 +6 -19
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +14 -27
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +6 -19
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +5 -13
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- 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 +6 -19
- 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 +17 -25
- 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/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 +1 -1
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +100 -4
- 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/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +2 -2
- 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 +42 -18
- 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/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 +2 -2
- 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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.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/Component.sol +21 -2
- package/contracts/components/Distribution.sol +5 -4
- package/contracts/components/IComponent.sol +16 -2
- package/contracts/components/IPoolComponent.sol +7 -6
- package/contracts/components/IProductComponent.sol +5 -4
- package/contracts/components/Pool.sol +8 -8
- package/contracts/components/Product.sol +21 -17
- package/contracts/instance/IInstance.sol +28 -53
- package/contracts/instance/IInstanceService.sol +15 -10
- package/contracts/instance/Instance.sol +90 -171
- package/contracts/instance/InstanceAccessManager.sol +35 -21
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +56 -5
- package/contracts/instance/InstanceService.sol +96 -266
- package/contracts/instance/InstanceStore.sol +212 -0
- package/contracts/instance/ObjectManager.sol +1 -1
- package/contracts/instance/base/ComponentService.sol +47 -20
- package/contracts/instance/base/KeyValueStore.sol +0 -31
- package/contracts/instance/base/Lifecycle.sol +7 -4
- package/contracts/instance/module/IComponents.sol +3 -3
- package/contracts/instance/module/IDistribution.sol +3 -2
- package/contracts/instance/module/IPolicy.sol +5 -5
- package/contracts/instance/service/ApplicationService.sol +58 -227
- package/contracts/instance/service/BundleService.sol +65 -119
- package/contracts/instance/service/ClaimService.sol +232 -34
- package/contracts/instance/service/DistributionService.sol +51 -134
- package/contracts/instance/service/IApplicationService.sol +5 -21
- package/contracts/instance/service/IBundleService.sol +32 -10
- package/contracts/instance/service/IClaimService.sol +37 -39
- package/contracts/instance/service/IDistributionService.sol +10 -22
- package/contracts/instance/service/IPolicyService.sol +15 -72
- package/contracts/instance/service/IPoolService.sol +18 -3
- package/contracts/instance/service/IPricingService.sol +37 -0
- package/contracts/instance/service/PolicyService.sol +112 -277
- package/contracts/instance/service/PoolService.sol +121 -21
- package/contracts/instance/service/PricingService.sol +275 -0
- package/contracts/instance/service/PricingServiceManager.sol +51 -0
- package/contracts/instance/service/ProductService.sol +10 -10
- package/contracts/registry/IRegistryService.sol +0 -2
- package/contracts/registry/RegistryService.sol +14 -10
- package/contracts/shared/IPolicyHolder.sol +23 -9
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +2 -0
- package/contracts/shared/NftOwnable.sol +0 -2
- package/contracts/shared/PolicyHolder.sol +30 -17
- package/contracts/shared/Registerable.sol +10 -9
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/TokenHandler.sol +4 -2
- package/contracts/types/Amount.sol +44 -0
- package/contracts/types/Fee.sol +7 -6
- package/contracts/types/ObjectType.sol +5 -1
- package/package.json +1 -1
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
@@ -4,6 +4,7 @@ pragma solidity ^0.8.19;
|
|
4
4
|
import {IRisk} from "../module/IRisk.sol";
|
5
5
|
import {IService} from "./IApplicationService.sol";
|
6
6
|
|
7
|
+
import {IComponents} from "../module/IComponents.sol";
|
7
8
|
import {IRegistry} from "../../registry/IRegistry.sol";
|
8
9
|
import {IProductComponent} from "../../components/IProductComponent.sol";
|
9
10
|
import {Product} from "../../components/Product.sol";
|
@@ -27,7 +28,7 @@ import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol"
|
|
27
28
|
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
28
29
|
import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
|
29
30
|
import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../../types/ObjectType.sol";
|
30
|
-
import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED} from "../../types/StateId.sol";
|
31
|
+
import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../../types/StateId.sol";
|
31
32
|
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
32
33
|
import {Fee, FeeLib} from "../../types/Fee.sol";
|
33
34
|
import {ReferralId} from "../../types/Referral.sol";
|
@@ -78,19 +79,37 @@ contract ClaimService is
|
|
78
79
|
return CLAIM();
|
79
80
|
}
|
80
81
|
|
81
|
-
|
82
82
|
function submit(
|
83
|
-
IInstance instance,
|
84
83
|
NftId policyNftId,
|
85
|
-
ClaimId claimId,
|
86
84
|
Amount claimAmount,
|
87
85
|
bytes memory claimData
|
88
86
|
)
|
89
87
|
external
|
90
88
|
virtual
|
91
|
-
|
89
|
+
returns (ClaimId claimId)
|
92
90
|
{
|
93
|
-
|
91
|
+
(
|
92
|
+
IInstance instance,
|
93
|
+
InstanceReader instanceReader,
|
94
|
+
IPolicy.PolicyInfo memory policyInfo
|
95
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
96
|
+
|
97
|
+
// check policy is in its active period
|
98
|
+
if(policyInfo.activatedAt.eqz() || TimestampLib.blockTimestamp() >= policyInfo.expiredAt) {
|
99
|
+
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
100
|
+
}
|
101
|
+
|
102
|
+
// check policy including this claim is still within sum insured
|
103
|
+
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
104
|
+
revert ErrorClaimServiceClaimExceedsSumInsured(
|
105
|
+
policyNftId,
|
106
|
+
policyInfo.sumInsuredAmount,
|
107
|
+
AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
|
108
|
+
}
|
109
|
+
|
110
|
+
// create new claim
|
111
|
+
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
112
|
+
instance.getInstanceStore().createClaim(
|
94
113
|
policyNftId,
|
95
114
|
claimId,
|
96
115
|
IPolicy.ClaimInfo(
|
@@ -100,48 +119,82 @@ contract ClaimService is
|
|
100
119
|
0, // openPayoutsCount
|
101
120
|
claimData,
|
102
121
|
TimestampLib.zero())); // closedAt
|
122
|
+
|
123
|
+
// update and save policy info with instance
|
124
|
+
policyInfo.claimsCount += 1;
|
125
|
+
policyInfo.openClaimsCount += 1;
|
126
|
+
// policy claim amount is only updated when claim is confirmed
|
127
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
128
|
+
|
129
|
+
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
103
130
|
}
|
104
131
|
|
105
132
|
|
106
133
|
function confirm(
|
107
|
-
IInstance instance,
|
108
|
-
InstanceReader instanceReader,
|
109
134
|
NftId policyNftId,
|
110
|
-
ClaimId claimId,
|
135
|
+
ClaimId claimId,
|
111
136
|
Amount confirmedAmount
|
112
137
|
)
|
113
138
|
external
|
114
139
|
virtual
|
115
140
|
{
|
141
|
+
(
|
142
|
+
IInstance instance,
|
143
|
+
InstanceReader instanceReader,
|
144
|
+
IPolicy.PolicyInfo memory policyInfo
|
145
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
146
|
+
|
147
|
+
// check/update claim info
|
116
148
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
117
149
|
claimInfo.claimAmount = confirmedAmount;
|
118
|
-
instance.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
150
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
151
|
+
|
152
|
+
// update and save policy info with instance
|
153
|
+
policyInfo.claimAmount = policyInfo.claimAmount.add(confirmedAmount);
|
154
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
155
|
+
|
156
|
+
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
119
157
|
}
|
120
158
|
|
121
159
|
function decline(
|
122
|
-
IInstance instance,
|
123
|
-
InstanceReader instanceReader,
|
124
160
|
NftId policyNftId,
|
125
161
|
ClaimId claimId
|
126
162
|
)
|
127
163
|
external
|
128
164
|
virtual
|
129
165
|
{
|
166
|
+
(
|
167
|
+
IInstance instance,
|
168
|
+
InstanceReader instanceReader,
|
169
|
+
IPolicy.PolicyInfo memory policyInfo
|
170
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
171
|
+
|
172
|
+
// check/update claim info
|
130
173
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
131
174
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
132
|
-
instance.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
133
|
-
}
|
175
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
134
176
|
|
177
|
+
// update and save policy info with instance
|
178
|
+
policyInfo.openClaimsCount -= 1;
|
179
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
180
|
+
|
181
|
+
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
182
|
+
}
|
135
183
|
|
136
184
|
function close(
|
137
|
-
IInstance instance,
|
138
|
-
InstanceReader instanceReader,
|
139
185
|
NftId policyNftId,
|
140
186
|
ClaimId claimId
|
141
187
|
)
|
142
188
|
external
|
143
189
|
virtual
|
144
190
|
{
|
191
|
+
(
|
192
|
+
IInstance instance,
|
193
|
+
InstanceReader instanceReader,
|
194
|
+
IPolicy.PolicyInfo memory policyInfo
|
195
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
196
|
+
|
197
|
+
// check/update claim info
|
145
198
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, CONFIRMED());
|
146
199
|
|
147
200
|
// check claim has no open payouts
|
@@ -162,52 +215,197 @@ contract ClaimService is
|
|
162
215
|
}
|
163
216
|
|
164
217
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
165
|
-
instance.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
218
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
166
219
|
}
|
167
220
|
|
168
221
|
|
169
222
|
function createPayout(
|
170
|
-
IInstance instance,
|
171
223
|
NftId policyNftId,
|
172
|
-
|
173
|
-
Amount
|
174
|
-
bytes
|
224
|
+
ClaimId claimId,
|
225
|
+
Amount amount,
|
226
|
+
bytes memory data
|
175
227
|
)
|
176
228
|
external
|
177
|
-
|
178
|
-
// TODO add restricted and grant to policy service
|
229
|
+
returns (PayoutId payoutId)
|
179
230
|
{
|
180
|
-
|
231
|
+
(
|
232
|
+
IInstance instance,
|
233
|
+
InstanceReader instanceReader,
|
234
|
+
IPolicy.PolicyInfo memory policyInfo
|
235
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
236
|
+
|
237
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
238
|
+
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
239
|
+
|
240
|
+
// TODO add checks
|
241
|
+
// claim needs to be open
|
242
|
+
// claim.paidAmount + amount <= claim.claimAmount
|
243
|
+
|
244
|
+
// check/update claim info
|
245
|
+
// create payout info with instance
|
246
|
+
uint8 claimNo = claimInfo.payoutsCount + 1;
|
247
|
+
payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
|
248
|
+
instance.getInstanceStore().createPayout(
|
181
249
|
policyNftId,
|
182
250
|
payoutId,
|
183
251
|
IPolicy.PayoutInfo(
|
184
252
|
payoutId.toClaimId(),
|
185
|
-
|
186
|
-
|
253
|
+
amount,
|
254
|
+
data,
|
187
255
|
TimestampLib.zero()));
|
256
|
+
|
257
|
+
// update and save claim info with instance
|
258
|
+
claimInfo.payoutsCount += 1;
|
259
|
+
claimInfo.openPayoutsCount += 1;
|
260
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
261
|
+
|
262
|
+
// update and save policy info with instance
|
263
|
+
policyInfo.payoutAmount.add(amount);
|
264
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
265
|
+
|
266
|
+
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount);
|
188
267
|
}
|
189
268
|
|
190
269
|
|
191
270
|
function processPayout(
|
192
|
-
IInstance instance,
|
193
|
-
InstanceReader instanceReader,
|
194
271
|
NftId policyNftId,
|
195
272
|
PayoutId payoutId
|
196
273
|
)
|
197
274
|
external
|
198
275
|
virtual
|
276
|
+
{
|
277
|
+
(
|
278
|
+
IInstance instance,
|
279
|
+
InstanceReader instanceReader,
|
280
|
+
IPolicy.PolicyInfo memory policyInfo
|
281
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
282
|
+
|
283
|
+
// TODO add check that payout exists and is open
|
284
|
+
IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
|
285
|
+
|
286
|
+
// update and save payout info with instance
|
287
|
+
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
288
|
+
instance.getInstanceStore().updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
289
|
+
|
290
|
+
// TODO update and save claim info with instance
|
291
|
+
ClaimId claimId = payoutId.toClaimId();
|
292
|
+
Amount payoutAmount = payoutInfo.amount;
|
293
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
294
|
+
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
295
|
+
claimInfo.openPayoutsCount -= 1;
|
296
|
+
|
297
|
+
// check if this payout is closing the linked claim
|
298
|
+
// update claim and policy info accordingly
|
299
|
+
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
300
|
+
claimInfo.closedAt == TimestampLib.blockTimestamp();
|
301
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
302
|
+
|
303
|
+
policyInfo.openClaimsCount -= 1;
|
304
|
+
} else {
|
305
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
306
|
+
}
|
307
|
+
|
308
|
+
// update and save policy info with instance
|
309
|
+
policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
|
310
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
311
|
+
|
312
|
+
// inform pool about payout
|
313
|
+
_poolService.reduceCollateral(instance, policyNftId, policyInfo, payoutAmount);
|
314
|
+
|
315
|
+
// transfer payout token and fee
|
316
|
+
(
|
317
|
+
Amount netPayoutAmount,
|
318
|
+
address beneficiary
|
319
|
+
) = _transferPayoutAmount(
|
320
|
+
instanceReader,
|
321
|
+
policyNftId,
|
322
|
+
policyInfo,
|
323
|
+
payoutInfo);
|
324
|
+
|
325
|
+
// TODO callback IPolicyHolder
|
326
|
+
|
327
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount);
|
328
|
+
}
|
329
|
+
|
330
|
+
// TODO create (I)TreasuryService that deals with all gif related token transfers
|
331
|
+
function _transferPayoutAmount(
|
332
|
+
InstanceReader instanceReader,
|
333
|
+
NftId policyNftId,
|
334
|
+
IPolicy.PolicyInfo memory policyInfo,
|
335
|
+
IPolicy.PayoutInfo memory payoutInfo
|
336
|
+
)
|
337
|
+
internal
|
199
338
|
returns (
|
200
|
-
Amount
|
201
|
-
|
339
|
+
Amount netPayoutAmount,
|
340
|
+
address beneficiary
|
202
341
|
)
|
203
|
-
// solhint-disable-next-line no-empty-blocks
|
204
342
|
{
|
343
|
+
Amount payoutAmount = payoutInfo.amount;
|
205
344
|
|
206
|
-
|
345
|
+
if(payoutAmount.gtz()) {
|
346
|
+
NftId productNftId = policyInfo.productNftId;
|
347
|
+
ISetup.ProductSetupInfo memory setupInfo = instanceReader.getProductSetupInfo(productNftId);
|
348
|
+
|
349
|
+
// get pool component info from policy or product
|
350
|
+
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
351
|
+
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
207
352
|
|
353
|
+
netPayoutAmount = payoutAmount;
|
354
|
+
beneficiary = _getBeneficiary(policyNftId, payoutInfo.claimId);
|
355
|
+
|
356
|
+
if(FeeLib.gtz(setupInfo.processingFee)) {
|
357
|
+
// TODO calculate net payout and processing fees
|
358
|
+
// TODO transfer processing fees to product wallet
|
359
|
+
// TODO inform product to update fee book keeping
|
360
|
+
}
|
361
|
+
|
362
|
+
poolInfo.tokenHandler.transfer(
|
363
|
+
poolInfo.wallet,
|
364
|
+
beneficiary,
|
365
|
+
netPayoutAmount);
|
366
|
+
}
|
367
|
+
}
|
208
368
|
|
209
369
|
// internal functions
|
210
370
|
|
371
|
+
function _getBeneficiary(
|
372
|
+
NftId policyNftId,
|
373
|
+
ClaimId claimId
|
374
|
+
)
|
375
|
+
internal
|
376
|
+
returns (address beneficiary)
|
377
|
+
{
|
378
|
+
// TODO check if owner is IPolicyHolder
|
379
|
+
// if so, obtain beneficiary from this contract
|
380
|
+
|
381
|
+
// default beneficiary is policy nft owner
|
382
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
383
|
+
}
|
384
|
+
|
385
|
+
|
386
|
+
function _verifyCallerWithPolicy(
|
387
|
+
NftId policyNftId
|
388
|
+
)
|
389
|
+
internal
|
390
|
+
returns (
|
391
|
+
IInstance instance,
|
392
|
+
InstanceReader instanceReader,
|
393
|
+
IPolicy.PolicyInfo memory policyInfo
|
394
|
+
)
|
395
|
+
{
|
396
|
+
NftId productNftId;
|
397
|
+
(productNftId,, instance) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
|
398
|
+
instanceReader = instance.getInstanceReader();
|
399
|
+
|
400
|
+
// check caller(product) policy match
|
401
|
+
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
402
|
+
if(policyInfo.productNftId != productNftId) {
|
403
|
+
revert ErrorClaimServicePolicyProductMismatch(policyNftId,
|
404
|
+
policyInfo.productNftId,
|
405
|
+
productNftId);
|
406
|
+
}
|
407
|
+
}
|
408
|
+
|
211
409
|
function _verifyClaim(
|
212
410
|
InstanceReader instanceReader,
|
213
411
|
NftId policyNftId,
|
@@ -233,7 +431,7 @@ contract ClaimService is
|
|
233
431
|
|
234
432
|
function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
|
235
433
|
IRegistry.ObjectInfo memory productInfo;
|
236
|
-
(, productInfo,) =
|
434
|
+
(, productInfo,) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
|
237
435
|
product = Product(productInfo.objectAddress);
|
238
436
|
}
|
239
|
-
}
|
437
|
+
}
|