@etherisc/gif-next 0.0.2-f29e479-370 → 0.0.2-f2df3e2-873
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 +78 -89
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +139 -140
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +156 -64
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +181 -112
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +353 -176
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +162 -138
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +299 -245
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +83 -162
- 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 +527 -400
- 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 +500 -612
- 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 +253 -236
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +305 -211
- 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 +86 -31
- 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 +291 -100
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +46 -22
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +422 -252
- 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 +373 -87
- 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 +579 -123
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +71 -47
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +200 -46
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +241 -188
- 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 +444 -25
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +430 -76
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +511 -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 +544 -153
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +51 -27
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +562 -52
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +24 -12
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +115 -52
- 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 +18 -37
- 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 +3 -3
- 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 +87 -16
- 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 +3 -3
- 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 +102 -27
- 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 +185 -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 +23 -4
- 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 +4 -0
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
- 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 +38 -7
- 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 +99 -87
- package/contracts/components/Distribution.sol +18 -21
- package/contracts/components/IComponent.sol +40 -18
- package/contracts/components/IDistributionComponent.sol +1 -22
- package/contracts/components/IPoolComponent.sol +73 -47
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +178 -130
- package/contracts/components/Product.sol +157 -71
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +10 -9
- 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 -191
- 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 +8 -5
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IPolicy.sol +37 -7
- package/contracts/instance/module/ISetup.sol +7 -22
- package/contracts/instance/service/ApplicationService.sol +137 -50
- package/contracts/instance/service/BundleService.sol +221 -83
- package/contracts/instance/service/ClaimService.sol +114 -26
- package/contracts/instance/service/DistributionService.sol +174 -118
- package/contracts/instance/service/IApplicationService.sol +9 -13
- package/contracts/instance/service/IBundleService.sol +68 -26
- package/contracts/instance/service/IClaimService.sol +46 -15
- package/contracts/instance/service/IDistributionService.sol +20 -4
- package/contracts/instance/service/IPolicyService.sol +69 -21
- package/contracts/instance/service/IPoolService.sol +82 -3
- package/contracts/instance/service/PolicyService.sol +297 -232
- package/contracts/instance/service/PoolService.sol +214 -20
- 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 +15 -16
- package/contracts/registry/ReleaseManager.sol +20 -18
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/Registerable.sol +2 -2
- 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 +65 -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/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +13 -6
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +7 -2
- package/contracts/types/Timestamp.sol +18 -13
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +1 -0
- package/package.json +1 -1
@@ -10,6 +10,7 @@ import {Product} from "../../components/Product.sol";
|
|
10
10
|
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
11
11
|
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
12
12
|
import {IInstance} from "../IInstance.sol";
|
13
|
+
import {IComponents} from "../module/IComponents.sol";
|
13
14
|
import {IPolicy} from "../module/IPolicy.sol";
|
14
15
|
import {IRisk} from "../module/IRisk.sol";
|
15
16
|
import {IBundle} from "../module/IBundle.sol";
|
@@ -22,11 +23,13 @@ import {TokenHandler} from "../../shared/TokenHandler.sol";
|
|
22
23
|
import {IVersionable} from "../../shared/IVersionable.sol";
|
23
24
|
import {Versionable} from "../../shared/Versionable.sol";
|
24
25
|
|
26
|
+
import {AmountLib} from "../../types/Amount.sol";
|
27
|
+
import {Seconds} from "../../types/Seconds.sol";
|
25
28
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
|
26
29
|
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
27
30
|
import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
|
28
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, BUNDLE} from "../../types/ObjectType.sol";
|
29
|
-
import {APPLIED, REVOKED,
|
31
|
+
import {ObjectType, DISTRIBUTION, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, BUNDLE} from "../../types/ObjectType.sol";
|
32
|
+
import {APPLIED, REVOKED, ACTIVE, KEEP_STATE} from "../../types/StateId.sol";
|
30
33
|
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
31
34
|
import {Fee, FeeLib} from "../../types/Fee.sol";
|
32
35
|
import {ReferralId} from "../../types/Referral.sol";
|
@@ -38,6 +41,7 @@ import {ComponentService} from "../base/ComponentService.sol";
|
|
38
41
|
import {InstanceReader} from "../InstanceReader.sol";
|
39
42
|
import {IApplicationService} from "./IApplicationService.sol";
|
40
43
|
import {IBundleService} from "./IBundleService.sol";
|
44
|
+
import {IDistributionService} from "./IDistributionService.sol";
|
41
45
|
import {IPoolService} from "./IPoolService.sol";
|
42
46
|
import {IService} from "../../shared/IService.sol";
|
43
47
|
import {Service} from "../../shared/Service.sol";
|
@@ -47,6 +51,7 @@ contract ApplicationService is
|
|
47
51
|
ComponentService,
|
48
52
|
IApplicationService
|
49
53
|
{
|
54
|
+
IDistributionService internal _distributionService;
|
50
55
|
|
51
56
|
function _initialize(
|
52
57
|
address owner,
|
@@ -61,12 +66,14 @@ contract ApplicationService is
|
|
61
66
|
address initialOwner;
|
62
67
|
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
63
68
|
|
64
|
-
initializeService(registryAddress, owner);
|
69
|
+
initializeService(registryAddress, address(0), owner);
|
65
70
|
registerInterface(type(IApplicationService).interfaceId);
|
71
|
+
|
72
|
+
_distributionService = IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), getVersion().toMajorPart()));
|
66
73
|
}
|
67
74
|
|
68
75
|
|
69
|
-
function getDomain() public pure override
|
76
|
+
function getDomain() public pure override returns(ObjectType) {
|
70
77
|
return APPLICATION();
|
71
78
|
}
|
72
79
|
|
@@ -75,7 +82,7 @@ contract ApplicationService is
|
|
75
82
|
address applicationOwner,
|
76
83
|
RiskId riskId,
|
77
84
|
uint256 sumInsuredAmount,
|
78
|
-
|
85
|
+
Seconds lifetime,
|
79
86
|
NftId bundleNftId,
|
80
87
|
ReferralId referralId,
|
81
88
|
bytes memory applicationData
|
@@ -84,13 +91,13 @@ contract ApplicationService is
|
|
84
91
|
virtual
|
85
92
|
returns (NftId applicationNftId)
|
86
93
|
{
|
87
|
-
(
|
94
|
+
(NftId productNftId,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
88
95
|
// TODO: add validations (see create bundle in pool service)
|
89
96
|
|
90
97
|
applicationNftId = getRegistryService().registerPolicy(
|
91
98
|
IRegistry.ObjectInfo(
|
92
99
|
zeroNftId(),
|
93
|
-
|
100
|
+
productNftId,
|
94
101
|
POLICY(),
|
95
102
|
false, // intercepting property for policies is defined on product
|
96
103
|
address(0),
|
@@ -99,7 +106,9 @@ contract ApplicationService is
|
|
99
106
|
)
|
100
107
|
);
|
101
108
|
|
102
|
-
(uint256 premiumAmount
|
109
|
+
// (uint256 premiumAmount,,,,,) = calculatePremium(
|
110
|
+
IPolicy.Premium memory premium = calculatePremium(
|
111
|
+
productNftId,
|
103
112
|
riskId,
|
104
113
|
sumInsuredAmount,
|
105
114
|
lifetime,
|
@@ -109,26 +118,25 @@ contract ApplicationService is
|
|
109
118
|
);
|
110
119
|
|
111
120
|
IPolicy.PolicyInfo memory policyInfo = IPolicy.PolicyInfo(
|
112
|
-
|
121
|
+
productNftId,
|
113
122
|
bundleNftId,
|
114
123
|
referralId,
|
115
124
|
riskId,
|
116
125
|
sumInsuredAmount,
|
117
|
-
premiumAmount,
|
126
|
+
premium.premiumAmount,
|
118
127
|
0,
|
119
128
|
lifetime,
|
120
129
|
applicationData,
|
121
130
|
"",
|
122
131
|
0,
|
123
132
|
0,
|
124
|
-
|
133
|
+
AmountLib.zero(),
|
125
134
|
zeroTimestamp(),
|
126
135
|
zeroTimestamp(),
|
127
136
|
zeroTimestamp()
|
128
137
|
);
|
129
138
|
|
130
139
|
instance.createApplication(applicationNftId, policyInfo);
|
131
|
-
instance.updateApplicationState(applicationNftId, APPLIED());
|
132
140
|
|
133
141
|
// TODO: add logging
|
134
142
|
}
|
@@ -165,15 +173,16 @@ contract ApplicationService is
|
|
165
173
|
external
|
166
174
|
virtual override
|
167
175
|
{
|
168
|
-
(
|
176
|
+
(,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
169
177
|
instance.updateApplicationState(applicationNftId, REVOKED());
|
170
178
|
}
|
171
179
|
|
172
|
-
|
180
|
+
// TODO: maybe move this to a pricing service later
|
173
181
|
function calculatePremium(
|
182
|
+
NftId productNftId,
|
174
183
|
RiskId riskId,
|
175
184
|
uint256 sumInsuredAmount,
|
176
|
-
|
185
|
+
Seconds lifetime,
|
177
186
|
bytes memory applicationData,
|
178
187
|
NftId bundleNftId,
|
179
188
|
ReferralId referralId
|
@@ -182,42 +191,36 @@ contract ApplicationService is
|
|
182
191
|
view
|
183
192
|
virtual override
|
184
193
|
returns (
|
185
|
-
|
186
|
-
uint256 distributionFeeAmount,
|
187
|
-
uint256 productFeeAmount,
|
188
|
-
uint256 poolFeeAmount,
|
189
|
-
uint256 bundleFeeAmount
|
194
|
+
IPolicy.Premium memory premium
|
190
195
|
)
|
191
196
|
{
|
192
|
-
|
193
|
-
uint256 netPremiumAmount = product.calculateNetPremium(
|
197
|
+
uint256 netPremiumAmount = _getAndVerifyProduct(productNftId).calculateNetPremium(
|
194
198
|
sumInsuredAmount,
|
195
199
|
riskId,
|
196
200
|
lifetime,
|
197
201
|
applicationData
|
198
202
|
);
|
199
203
|
|
200
|
-
(
|
201
|
-
productFeeAmount,
|
202
|
-
poolFeeAmount,
|
203
|
-
bundleFeeAmount,
|
204
|
-
distributionFeeAmount
|
205
|
-
) = _calculateFeeAmounts(
|
204
|
+
premium = _getFixedFeeAmounts(
|
206
205
|
netPremiumAmount,
|
207
|
-
|
206
|
+
_getAndVerifyProduct(productNftId),
|
208
207
|
bundleNftId,
|
209
208
|
referralId
|
210
209
|
);
|
211
210
|
|
212
|
-
|
213
|
-
|
214
|
-
|
211
|
+
(
|
212
|
+
premium
|
213
|
+
) = _calculateVariableFeeAmounts(
|
214
|
+
premium,
|
215
|
+
_getAndVerifyProduct(productNftId),
|
216
|
+
bundleNftId,
|
217
|
+
referralId
|
218
|
+
);
|
215
219
|
}
|
216
220
|
|
217
221
|
|
218
222
|
// internal functions
|
219
|
-
|
220
|
-
function _calculateFeeAmounts(
|
223
|
+
function _getFixedFeeAmounts(
|
221
224
|
uint256 netPremiumAmount,
|
222
225
|
Product product,
|
223
226
|
NftId bundleNftId,
|
@@ -226,10 +229,7 @@ contract ApplicationService is
|
|
226
229
|
internal
|
227
230
|
view
|
228
231
|
returns (
|
229
|
-
|
230
|
-
uint256 poolFeeAmount,
|
231
|
-
uint256 bundleFeeAmount,
|
232
|
-
uint256 distributionFeeAmount
|
232
|
+
IPolicy.Premium memory premium
|
233
233
|
)
|
234
234
|
{
|
235
235
|
InstanceReader instanceReader;
|
@@ -239,30 +239,117 @@ contract ApplicationService is
|
|
239
239
|
}
|
240
240
|
|
241
241
|
NftId poolNftId = product.getPoolNftId();
|
242
|
-
|
243
|
-
|
242
|
+
premium = IPolicy.Premium(
|
243
|
+
netPremiumAmount, // net premium
|
244
|
+
netPremiumAmount, // full premium
|
245
|
+
0, // premium
|
246
|
+
0, 0, 0, 0, // fix fees
|
247
|
+
0, 0, 0, 0, // variable fees
|
248
|
+
0, 0, 0, 0); // distribution owner fee/commission/discount
|
244
249
|
|
245
250
|
{
|
246
|
-
|
247
|
-
|
251
|
+
{
|
252
|
+
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
|
253
|
+
uint256 t = productSetupInfo.productFee.fixedFee;
|
254
|
+
premium.productFeeFixAmount = t;
|
255
|
+
premium.fullPremiumAmount += t;
|
256
|
+
}
|
257
|
+
{
|
258
|
+
bytes memory componentData = instanceReader.getComponentInfo(poolNftId).data;
|
259
|
+
uint256 t = abi.decode(componentData, (IComponents.PoolInfo)).poolFee.fixedFee;
|
260
|
+
premium.poolFeeFixAmount = t;
|
261
|
+
premium.fullPremiumAmount += t;
|
262
|
+
}
|
263
|
+
{
|
264
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
265
|
+
if(bundleInfo.poolNftId != poolNftId) {
|
266
|
+
revert ErrorApplicationServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
267
|
+
}
|
268
|
+
uint256 t = bundleInfo.fee.fixedFee;
|
269
|
+
premium.bundleFeeFixAmount = t;
|
270
|
+
premium.fullPremiumAmount += t;
|
271
|
+
}
|
272
|
+
{
|
273
|
+
ISetup.DistributionSetupInfo memory distInto = instanceReader.getDistributionSetupInfo(product.getDistributionNftId());
|
274
|
+
uint256 t = distInto.distributionFee.fixedFee;
|
275
|
+
premium.distributionFeeFixAmount = t;
|
276
|
+
premium.fullPremiumAmount += t;
|
277
|
+
}
|
248
278
|
}
|
279
|
+
|
280
|
+
}
|
281
|
+
|
282
|
+
function _calculateVariableFeeAmounts(
|
283
|
+
IPolicy.Premium memory premium,
|
284
|
+
Product product,
|
285
|
+
NftId bundleNftId,
|
286
|
+
ReferralId referralId
|
287
|
+
)
|
288
|
+
internal
|
289
|
+
view
|
290
|
+
returns (
|
291
|
+
IPolicy.Premium memory finalPremium
|
292
|
+
)
|
293
|
+
{
|
294
|
+
InstanceReader instanceReader;
|
249
295
|
{
|
250
|
-
|
251
|
-
|
296
|
+
IInstance instance = product.getInstance();
|
297
|
+
instanceReader = instance.getInstanceReader();
|
252
298
|
}
|
299
|
+
|
300
|
+
NftId poolNftId = product.getPoolNftId();
|
301
|
+
uint256 netPremiumAmount = premium.netPremiumAmount;
|
302
|
+
|
253
303
|
{
|
254
|
-
|
255
|
-
|
256
|
-
|
304
|
+
{
|
305
|
+
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
|
306
|
+
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * productSetupInfo.productFee.fractionalFee).toInt();
|
307
|
+
premium.productFeeVarAmount = t;
|
308
|
+
premium.fullPremiumAmount += t;
|
309
|
+
}
|
310
|
+
{
|
311
|
+
bytes memory componentData = instanceReader.getComponentInfo(poolNftId).data;
|
312
|
+
UFixed poolFractionalFee = abi.decode(componentData, (IComponents.PoolInfo)).poolFee.fractionalFee;
|
313
|
+
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * poolFractionalFee).toInt();
|
314
|
+
premium.poolFeeVarAmount = t;
|
315
|
+
premium.fullPremiumAmount += t;
|
316
|
+
}
|
317
|
+
{
|
318
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
319
|
+
if(bundleInfo.poolNftId != poolNftId) {
|
320
|
+
revert ErrorApplicationServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
321
|
+
}
|
322
|
+
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * bundleInfo.fee.fractionalFee).toInt();
|
323
|
+
premium.bundleFeeVarAmount = t;
|
324
|
+
premium.fullPremiumAmount += t;
|
325
|
+
}
|
326
|
+
{
|
327
|
+
premium = _distributionService.calculateFeeAmount(
|
328
|
+
product.getDistributionNftId(),
|
329
|
+
referralId,
|
330
|
+
premium
|
331
|
+
);
|
332
|
+
}
|
257
333
|
}
|
258
|
-
|
259
|
-
|
334
|
+
|
335
|
+
return premium;
|
260
336
|
}
|
261
337
|
|
262
338
|
|
263
339
|
function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
|
264
340
|
IRegistry.ObjectInfo memory productInfo;
|
265
|
-
(productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
341
|
+
(, productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
342
|
+
product = Product(productInfo.objectAddress);
|
343
|
+
}
|
344
|
+
|
345
|
+
function _getAndVerifyProduct(NftId productNftId) internal view returns (Product product) {
|
346
|
+
IRegistry registry = getRegistry();
|
347
|
+
IRegistry.ObjectInfo memory productInfo = registry.getObjectInfo(productNftId);
|
348
|
+
|
349
|
+
if(productInfo.objectType != PRODUCT()) {
|
350
|
+
revert ErrorApplicationServiceNotProduct(productNftId, productInfo.objectType);
|
351
|
+
}
|
352
|
+
|
266
353
|
product = Product(productInfo.objectAddress);
|
267
354
|
}
|
268
355
|
}
|