@etherisc/gif-next 0.0.2-ce87da3-250 → 0.0.2-ceb30b2-601
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 -102
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +139 -153
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +155 -76
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +181 -125
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +342 -178
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +162 -151
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +286 -245
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +83 -175
- 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 +707 -463
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +167 -76
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +630 -625
- 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 +258 -236
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +291 -238
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +79 -48
- 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 +114 -35
- 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 +322 -99
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +59 -44
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +459 -242
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +90 -39
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +646 -84
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +119 -32
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +673 -129
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +96 -69
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +205 -59
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +253 -185
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +373 -51
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +480 -37
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +170 -102
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +776 -46
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +85 -27
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +255 -222
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +37 -78
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +929 -58
- 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/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +145 -58
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +28 -37
- 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 +5 -37
- 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 +23 -50
- 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 +23 -11
- 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/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 +45 -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 +85 -27
- 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 +47 -24
- 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 +7 -20
- 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 +92 -29
- 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 +7 -20
- 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 +107 -40
- 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 +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 +39 -27
- package/contracts/instance/IInstanceService.sol +16 -12
- package/contracts/instance/Instance.sol +125 -98
- package/contracts/instance/InstanceAccessManager.sol +388 -158
- package/contracts/instance/InstanceReader.sol +36 -12
- package/contracts/instance/InstanceService.sol +220 -212
- package/contracts/instance/ObjectManager.sol +6 -8
- package/contracts/instance/base/ComponentService.sol +28 -32
- package/contracts/instance/base/KeyValueStore.sol +13 -36
- 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 +38 -7
- package/contracts/instance/module/ISetup.sol +7 -22
- package/contracts/instance/service/ApplicationService.sol +138 -50
- package/contracts/instance/service/BundleService.sol +228 -83
- package/contracts/instance/service/ClaimService.sol +240 -30
- package/contracts/instance/service/DistributionService.sol +179 -114
- package/contracts/instance/service/IApplicationService.sol +9 -13
- package/contracts/instance/service/IBundleService.sol +74 -26
- package/contracts/instance/service/IClaimService.sol +52 -23
- package/contracts/instance/service/IDistributionService.sol +21 -3
- package/contracts/instance/service/IPolicyService.sol +20 -29
- package/contracts/instance/service/IPoolService.sol +127 -3
- package/contracts/instance/service/PolicyService.sol +133 -251
- package/contracts/instance/service/PoolService.sol +258 -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 +2 -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/IPolicyHolder.sol +20 -8
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +6 -6
- package/contracts/shared/NftOwnable.sol +0 -2
- package/contracts/shared/PolicyHolder.sol +14 -8
- package/contracts/shared/Registerable.sol +12 -11
- package/contracts/shared/RegistryLinked.sol +0 -5
- 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/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,26 @@ 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(),
|
134
|
+
AmountLib.zero(),
|
125
135
|
zeroTimestamp(),
|
126
136
|
zeroTimestamp(),
|
127
137
|
zeroTimestamp()
|
128
138
|
);
|
129
139
|
|
130
140
|
instance.createApplication(applicationNftId, policyInfo);
|
131
|
-
instance.updateApplicationState(applicationNftId, APPLIED());
|
132
141
|
|
133
142
|
// TODO: add logging
|
134
143
|
}
|
@@ -165,15 +174,16 @@ contract ApplicationService is
|
|
165
174
|
external
|
166
175
|
virtual override
|
167
176
|
{
|
168
|
-
(
|
177
|
+
(,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
169
178
|
instance.updateApplicationState(applicationNftId, REVOKED());
|
170
179
|
}
|
171
180
|
|
172
|
-
|
181
|
+
// TODO: maybe move this to a pricing service later
|
173
182
|
function calculatePremium(
|
183
|
+
NftId productNftId,
|
174
184
|
RiskId riskId,
|
175
185
|
uint256 sumInsuredAmount,
|
176
|
-
|
186
|
+
Seconds lifetime,
|
177
187
|
bytes memory applicationData,
|
178
188
|
NftId bundleNftId,
|
179
189
|
ReferralId referralId
|
@@ -182,42 +192,36 @@ contract ApplicationService is
|
|
182
192
|
view
|
183
193
|
virtual override
|
184
194
|
returns (
|
185
|
-
|
186
|
-
uint256 distributionFeeAmount,
|
187
|
-
uint256 productFeeAmount,
|
188
|
-
uint256 poolFeeAmount,
|
189
|
-
uint256 bundleFeeAmount
|
195
|
+
IPolicy.Premium memory premium
|
190
196
|
)
|
191
197
|
{
|
192
|
-
|
193
|
-
uint256 netPremiumAmount = product.calculateNetPremium(
|
198
|
+
uint256 netPremiumAmount = _getAndVerifyProduct(productNftId).calculateNetPremium(
|
194
199
|
sumInsuredAmount,
|
195
200
|
riskId,
|
196
201
|
lifetime,
|
197
202
|
applicationData
|
198
203
|
);
|
199
204
|
|
200
|
-
(
|
201
|
-
productFeeAmount,
|
202
|
-
poolFeeAmount,
|
203
|
-
bundleFeeAmount,
|
204
|
-
distributionFeeAmount
|
205
|
-
) = _calculateFeeAmounts(
|
205
|
+
premium = _getFixedFeeAmounts(
|
206
206
|
netPremiumAmount,
|
207
|
-
|
207
|
+
_getAndVerifyProduct(productNftId),
|
208
208
|
bundleNftId,
|
209
209
|
referralId
|
210
210
|
);
|
211
211
|
|
212
|
-
|
213
|
-
|
214
|
-
|
212
|
+
(
|
213
|
+
premium
|
214
|
+
) = _calculateVariableFeeAmounts(
|
215
|
+
premium,
|
216
|
+
_getAndVerifyProduct(productNftId),
|
217
|
+
bundleNftId,
|
218
|
+
referralId
|
219
|
+
);
|
215
220
|
}
|
216
221
|
|
217
222
|
|
218
223
|
// internal functions
|
219
|
-
|
220
|
-
function _calculateFeeAmounts(
|
224
|
+
function _getFixedFeeAmounts(
|
221
225
|
uint256 netPremiumAmount,
|
222
226
|
Product product,
|
223
227
|
NftId bundleNftId,
|
@@ -226,10 +230,7 @@ contract ApplicationService is
|
|
226
230
|
internal
|
227
231
|
view
|
228
232
|
returns (
|
229
|
-
|
230
|
-
uint256 poolFeeAmount,
|
231
|
-
uint256 bundleFeeAmount,
|
232
|
-
uint256 distributionFeeAmount
|
233
|
+
IPolicy.Premium memory premium
|
233
234
|
)
|
234
235
|
{
|
235
236
|
InstanceReader instanceReader;
|
@@ -239,30 +240,117 @@ contract ApplicationService is
|
|
239
240
|
}
|
240
241
|
|
241
242
|
NftId poolNftId = product.getPoolNftId();
|
242
|
-
|
243
|
-
|
243
|
+
premium = IPolicy.Premium(
|
244
|
+
netPremiumAmount, // net premium
|
245
|
+
netPremiumAmount, // full premium
|
246
|
+
0, // premium
|
247
|
+
0, 0, 0, 0, // fix fees
|
248
|
+
0, 0, 0, 0, // variable fees
|
249
|
+
0, 0, 0, 0); // distribution owner fee/commission/discount
|
244
250
|
|
245
251
|
{
|
246
|
-
|
247
|
-
|
252
|
+
{
|
253
|
+
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
|
254
|
+
uint256 t = productSetupInfo.productFee.fixedFee;
|
255
|
+
premium.productFeeFixAmount = t;
|
256
|
+
premium.fullPremiumAmount += t;
|
257
|
+
}
|
258
|
+
{
|
259
|
+
bytes memory componentData = instanceReader.getComponentInfo(poolNftId).data;
|
260
|
+
uint256 t = abi.decode(componentData, (IComponents.PoolInfo)).poolFee.fixedFee;
|
261
|
+
premium.poolFeeFixAmount = t;
|
262
|
+
premium.fullPremiumAmount += t;
|
263
|
+
}
|
264
|
+
{
|
265
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
266
|
+
if(bundleInfo.poolNftId != poolNftId) {
|
267
|
+
revert ErrorApplicationServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
268
|
+
}
|
269
|
+
uint256 t = bundleInfo.fee.fixedFee;
|
270
|
+
premium.bundleFeeFixAmount = t;
|
271
|
+
premium.fullPremiumAmount += t;
|
272
|
+
}
|
273
|
+
{
|
274
|
+
ISetup.DistributionSetupInfo memory distInto = instanceReader.getDistributionSetupInfo(product.getDistributionNftId());
|
275
|
+
uint256 t = distInto.distributionFee.fixedFee;
|
276
|
+
premium.distributionFeeFixAmount = t;
|
277
|
+
premium.fullPremiumAmount += t;
|
278
|
+
}
|
248
279
|
}
|
280
|
+
|
281
|
+
}
|
282
|
+
|
283
|
+
function _calculateVariableFeeAmounts(
|
284
|
+
IPolicy.Premium memory premium,
|
285
|
+
Product product,
|
286
|
+
NftId bundleNftId,
|
287
|
+
ReferralId referralId
|
288
|
+
)
|
289
|
+
internal
|
290
|
+
view
|
291
|
+
returns (
|
292
|
+
IPolicy.Premium memory finalPremium
|
293
|
+
)
|
294
|
+
{
|
295
|
+
InstanceReader instanceReader;
|
249
296
|
{
|
250
|
-
|
251
|
-
|
297
|
+
IInstance instance = product.getInstance();
|
298
|
+
instanceReader = instance.getInstanceReader();
|
252
299
|
}
|
300
|
+
|
301
|
+
NftId poolNftId = product.getPoolNftId();
|
302
|
+
uint256 netPremiumAmount = premium.netPremiumAmount;
|
303
|
+
|
253
304
|
{
|
254
|
-
|
255
|
-
|
256
|
-
|
305
|
+
{
|
306
|
+
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
|
307
|
+
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * productSetupInfo.productFee.fractionalFee).toInt();
|
308
|
+
premium.productFeeVarAmount = t;
|
309
|
+
premium.fullPremiumAmount += t;
|
310
|
+
}
|
311
|
+
{
|
312
|
+
bytes memory componentData = instanceReader.getComponentInfo(poolNftId).data;
|
313
|
+
UFixed poolFractionalFee = abi.decode(componentData, (IComponents.PoolInfo)).poolFee.fractionalFee;
|
314
|
+
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * poolFractionalFee).toInt();
|
315
|
+
premium.poolFeeVarAmount = t;
|
316
|
+
premium.fullPremiumAmount += t;
|
317
|
+
}
|
318
|
+
{
|
319
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
320
|
+
if(bundleInfo.poolNftId != poolNftId) {
|
321
|
+
revert ErrorApplicationServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
322
|
+
}
|
323
|
+
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * bundleInfo.fee.fractionalFee).toInt();
|
324
|
+
premium.bundleFeeVarAmount = t;
|
325
|
+
premium.fullPremiumAmount += t;
|
326
|
+
}
|
327
|
+
{
|
328
|
+
premium = _distributionService.calculateFeeAmount(
|
329
|
+
product.getDistributionNftId(),
|
330
|
+
referralId,
|
331
|
+
premium
|
332
|
+
);
|
333
|
+
}
|
257
334
|
}
|
258
|
-
|
259
|
-
|
335
|
+
|
336
|
+
return premium;
|
260
337
|
}
|
261
338
|
|
262
339
|
|
263
340
|
function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
|
264
341
|
IRegistry.ObjectInfo memory productInfo;
|
265
|
-
(productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
342
|
+
(, productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
343
|
+
product = Product(productInfo.objectAddress);
|
344
|
+
}
|
345
|
+
|
346
|
+
function _getAndVerifyProduct(NftId productNftId) internal view returns (Product product) {
|
347
|
+
IRegistry registry = getRegistry();
|
348
|
+
IRegistry.ObjectInfo memory productInfo = registry.getObjectInfo(productNftId);
|
349
|
+
|
350
|
+
if(productInfo.objectType != PRODUCT()) {
|
351
|
+
revert ErrorApplicationServiceNotProduct(productNftId, productInfo.objectType);
|
352
|
+
}
|
353
|
+
|
266
354
|
product = Product(productInfo.objectAddress);
|
267
355
|
}
|
268
356
|
}
|