@etherisc/gif-next 0.0.2-770fd3b-604 → 0.0.2-77a1ccf-469
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 +8 -8
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +22 -145
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +79 -233
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +19 -92
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +57 -178
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +239 -104
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +23 -164
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +240 -155
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +27 -218
- 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 +343 -308
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +19 -184
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +469 -466
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +2 -2
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +79 -110
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +70 -284
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +196 -113
- 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 +18 -220
- 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/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 +182 -331
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +54 -276
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +182 -107
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +645 -268
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +300 -109
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +124 -206
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +26 -191
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +409 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +369 -167
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +25 -290
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +12 -177
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +12 -177
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +65 -443
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +188 -141
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +42 -272
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +179 -104
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +42 -272
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +179 -104
- 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 +71 -180
- 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 +7 -7
- 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 +90 -264
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +182 -113
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +11 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +34 -67
- 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/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +4 -30
- 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/IRegisterable.sol/IRegisterable.json +4 -30
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -21
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +12 -177
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -150
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +10 -62
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -23
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +171 -88
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +11 -74
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -23
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +13 -215
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- 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/shared/Versionable.sol/Versionable.json +0 -150
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +11 -74
- 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 +31 -269
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +6 -188
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
- 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/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 +4 -0
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
- 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 +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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +25 -7
- 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 +69 -84
- package/contracts/components/Distribution.sol +26 -31
- package/contracts/components/IComponent.sol +34 -16
- package/contracts/components/IDistributionComponent.sol +1 -22
- package/contracts/components/IPoolComponent.sol +89 -25
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +216 -92
- package/contracts/components/Product.sol +36 -25
- package/contracts/instance/BundleManager.sol +1 -1
- package/contracts/instance/IInstance.sol +7 -1
- package/contracts/instance/Instance.sol +17 -7
- package/contracts/instance/InstanceService.sol +67 -10
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/module/IBundle.sol +2 -1
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +30 -3
- package/contracts/instance/module/ISetup.sol +5 -6
- package/contracts/instance/service/ApplicationService.sol +138 -57
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +4 -3
- package/contracts/instance/service/BundleServiceManager.sol +1 -1
- package/contracts/instance/service/ClaimService.sol +151 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +146 -26
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +9 -9
- package/contracts/instance/service/IBundleService.sol +3 -2
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +23 -2
- package/contracts/instance/service/IPolicyService.sol +17 -35
- package/contracts/instance/service/PolicyService.sol +47 -169
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/IRegistryService.sol +10 -8
- package/contracts/registry/Registry.sol +3 -1
- package/contracts/registry/RegistryService.sol +62 -40
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +18 -28
- package/contracts/registry/TokenRegistry.sol +13 -10
- package/contracts/shared/ERC165.sol +2 -1
- package/contracts/shared/INftOwnable.sol +4 -9
- package/contracts/shared/IRegistryLinked.sol +0 -3
- package/contracts/shared/IService.sol +2 -0
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +10 -80
- package/contracts/shared/ProxyManager.sol +98 -24
- package/contracts/shared/Registerable.sol +3 -10
- package/contracts/shared/RegistryLinked.sol +10 -26
- package/contracts/shared/Service.sol +10 -12
- package/contracts/shared/Versionable.sol +1 -90
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/ObjectType.sol +4 -4
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/RoleId.sol +10 -5
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/Timestamp.sol +12 -13
- package/package.json +1 -1
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
@@ -22,11 +22,12 @@ import {TokenHandler} from "../../shared/TokenHandler.sol";
|
|
22
22
|
import {IVersionable} from "../../shared/IVersionable.sol";
|
23
23
|
import {Versionable} from "../../shared/Versionable.sol";
|
24
24
|
|
25
|
+
import {Seconds} from "../../types/Seconds.sol";
|
25
26
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
|
26
27
|
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
27
28
|
import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
|
28
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, BUNDLE} from "../../types/ObjectType.sol";
|
29
|
-
import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
|
29
|
+
import {ObjectType, DISTRIBUTION, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, BUNDLE} from "../../types/ObjectType.sol";
|
30
|
+
import {APPLIED, REVOKED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
|
30
31
|
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
31
32
|
import {Fee, FeeLib} from "../../types/Fee.sol";
|
32
33
|
import {ReferralId} from "../../types/Referral.sol";
|
@@ -38,6 +39,7 @@ import {ComponentService} from "../base/ComponentService.sol";
|
|
38
39
|
import {InstanceReader} from "../InstanceReader.sol";
|
39
40
|
import {IApplicationService} from "./IApplicationService.sol";
|
40
41
|
import {IBundleService} from "./IBundleService.sol";
|
42
|
+
import {IDistributionService} from "./IDistributionService.sol";
|
41
43
|
import {IPoolService} from "./IPoolService.sol";
|
42
44
|
import {IService} from "../../shared/IService.sol";
|
43
45
|
import {Service} from "../../shared/Service.sol";
|
@@ -47,14 +49,14 @@ contract ApplicationService is
|
|
47
49
|
ComponentService,
|
48
50
|
IApplicationService
|
49
51
|
{
|
52
|
+
IDistributionService internal _distributionService;
|
50
53
|
|
51
|
-
|
52
|
-
function initialize(
|
54
|
+
function _initialize(
|
53
55
|
address owner,
|
54
56
|
bytes memory data
|
55
57
|
)
|
56
|
-
|
57
|
-
virtual
|
58
|
+
internal
|
59
|
+
virtual override
|
58
60
|
initializer()
|
59
61
|
{
|
60
62
|
// TODO check this, might no longer be the way, refactor if necessary
|
@@ -64,20 +66,27 @@ contract ApplicationService is
|
|
64
66
|
|
65
67
|
initializeService(registryAddress, owner);
|
66
68
|
registerInterface(type(IApplicationService).interfaceId);
|
69
|
+
|
70
|
+
_distributionService = IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), getMajorVersion()));
|
71
|
+
}
|
72
|
+
|
73
|
+
|
74
|
+
function getDomain() public pure override(IService, Service) returns(ObjectType) {
|
75
|
+
return APPLICATION();
|
67
76
|
}
|
68
77
|
|
69
78
|
|
70
79
|
function create(
|
71
80
|
address applicationOwner,
|
72
81
|
RiskId riskId,
|
82
|
+
uint256 sumInsuredAmount,
|
83
|
+
Seconds lifetime,
|
73
84
|
NftId bundleNftId,
|
74
85
|
ReferralId referralId,
|
75
|
-
uint256 sumInsuredAmount,
|
76
|
-
uint256 lifetime,
|
77
86
|
bytes memory applicationData
|
78
87
|
)
|
79
88
|
external
|
80
|
-
virtual
|
89
|
+
virtual
|
81
90
|
returns (NftId applicationNftId)
|
82
91
|
{
|
83
92
|
(IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
@@ -95,7 +104,9 @@ contract ApplicationService is
|
|
95
104
|
)
|
96
105
|
);
|
97
106
|
|
98
|
-
(uint256 premiumAmount
|
107
|
+
// (uint256 premiumAmount,,,,,) = calculatePremium(
|
108
|
+
IPolicy.Premium memory premium = calculatePremium(
|
109
|
+
productInfo.nftId,
|
99
110
|
riskId,
|
100
111
|
sumInsuredAmount,
|
101
112
|
lifetime,
|
@@ -110,7 +121,7 @@ contract ApplicationService is
|
|
110
121
|
referralId,
|
111
122
|
riskId,
|
112
123
|
sumInsuredAmount,
|
113
|
-
premiumAmount,
|
124
|
+
premium.premiumAmount,
|
114
125
|
0,
|
115
126
|
lifetime,
|
116
127
|
applicationData,
|
@@ -123,8 +134,8 @@ contract ApplicationService is
|
|
123
134
|
zeroTimestamp()
|
124
135
|
);
|
125
136
|
|
126
|
-
instance.
|
127
|
-
instance.
|
137
|
+
instance.createApplication(applicationNftId, policyInfo);
|
138
|
+
instance.updateApplicationState(applicationNftId, APPLIED());
|
128
139
|
|
129
140
|
// TODO: add logging
|
130
141
|
}
|
@@ -142,7 +153,7 @@ contract ApplicationService is
|
|
142
153
|
}
|
143
154
|
|
144
155
|
|
145
|
-
function
|
156
|
+
function adjust(
|
146
157
|
NftId applicationNftId,
|
147
158
|
RiskId riskId,
|
148
159
|
NftId bundleNftId,
|
@@ -157,18 +168,20 @@ contract ApplicationService is
|
|
157
168
|
|
158
169
|
}
|
159
170
|
|
160
|
-
function revoke(NftId
|
171
|
+
function revoke(NftId applicationNftId)
|
161
172
|
external
|
162
173
|
virtual override
|
163
174
|
{
|
164
|
-
|
175
|
+
(, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
176
|
+
instance.updateApplicationState(applicationNftId, REVOKED());
|
165
177
|
}
|
166
178
|
|
167
|
-
|
179
|
+
// TODO: maybe move this to a pricing service later
|
168
180
|
function calculatePremium(
|
181
|
+
NftId productNftId,
|
169
182
|
RiskId riskId,
|
170
183
|
uint256 sumInsuredAmount,
|
171
|
-
|
184
|
+
Seconds lifetime,
|
172
185
|
bytes memory applicationData,
|
173
186
|
NftId bundleNftId,
|
174
187
|
ReferralId referralId
|
@@ -177,47 +190,36 @@ contract ApplicationService is
|
|
177
190
|
view
|
178
191
|
virtual override
|
179
192
|
returns (
|
180
|
-
|
181
|
-
uint256 distributionFeeAmount,
|
182
|
-
uint256 productFeeAmount,
|
183
|
-
uint256 poolFeeAmount,
|
184
|
-
uint256 bundleFeeAmount
|
193
|
+
IPolicy.Premium memory premium
|
185
194
|
)
|
186
195
|
{
|
187
|
-
|
188
|
-
uint256 netPremiumAmount = product.calculateNetPremium(
|
196
|
+
uint256 netPremiumAmount = _getAndVerifyProduct(productNftId).calculateNetPremium(
|
189
197
|
sumInsuredAmount,
|
190
198
|
riskId,
|
191
199
|
lifetime,
|
192
200
|
applicationData
|
193
201
|
);
|
194
202
|
|
195
|
-
(
|
196
|
-
productFeeAmount,
|
197
|
-
poolFeeAmount,
|
198
|
-
bundleFeeAmount,
|
199
|
-
distributionFeeAmount
|
200
|
-
) = _calculateFeeAmounts(
|
203
|
+
premium = _getFixedFeeAmounts(
|
201
204
|
netPremiumAmount,
|
202
|
-
|
205
|
+
_getAndVerifyProduct(productNftId),
|
203
206
|
bundleNftId,
|
204
207
|
referralId
|
205
208
|
);
|
206
209
|
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
210
|
+
(
|
211
|
+
premium
|
212
|
+
) = _calculateVariableFeeAmounts(
|
213
|
+
premium,
|
214
|
+
_getAndVerifyProduct(productNftId),
|
215
|
+
bundleNftId,
|
216
|
+
referralId
|
217
|
+
);
|
215
218
|
}
|
216
219
|
|
217
220
|
|
218
221
|
// internal functions
|
219
|
-
|
220
|
-
function _calculateFeeAmounts(
|
222
|
+
function _getFixedFeeAmounts(
|
221
223
|
uint256 netPremiumAmount,
|
222
224
|
Product product,
|
223
225
|
NftId bundleNftId,
|
@@ -226,10 +228,7 @@ contract ApplicationService is
|
|
226
228
|
internal
|
227
229
|
view
|
228
230
|
returns (
|
229
|
-
|
230
|
-
uint256 poolFeeAmount,
|
231
|
-
uint256 bundleFeeAmount,
|
232
|
-
uint256 distributionFeeAmount
|
231
|
+
IPolicy.Premium memory premium
|
233
232
|
)
|
234
233
|
{
|
235
234
|
InstanceReader instanceReader;
|
@@ -239,24 +238,99 @@ contract ApplicationService is
|
|
239
238
|
}
|
240
239
|
|
241
240
|
NftId poolNftId = product.getPoolNftId();
|
242
|
-
|
243
|
-
|
241
|
+
premium = IPolicy.Premium(
|
242
|
+
netPremiumAmount, // net premium
|
243
|
+
netPremiumAmount, // full premium
|
244
|
+
0, // premium
|
245
|
+
0, 0, 0, 0, // fix fees
|
246
|
+
0, 0, 0, 0, // variable fees
|
247
|
+
0, 0, 0, 0); // distribution owner fee/commission/discount
|
244
248
|
|
245
249
|
{
|
246
|
-
|
247
|
-
|
250
|
+
{
|
251
|
+
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
|
252
|
+
uint256 t = productSetupInfo.productFee.fixedFee;
|
253
|
+
premium.productFeeFixAmount = t;
|
254
|
+
premium.fullPremiumAmount += t;
|
255
|
+
}
|
256
|
+
{
|
257
|
+
ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
|
258
|
+
uint256 t = poolSetupInfo.poolFee.fixedFee;
|
259
|
+
premium.poolFeeFixAmount = t;
|
260
|
+
premium.fullPremiumAmount += t;
|
261
|
+
}
|
262
|
+
{
|
263
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
264
|
+
if(bundleInfo.poolNftId != poolNftId) {
|
265
|
+
revert IApplicationServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
266
|
+
}
|
267
|
+
uint256 t = bundleInfo.fee.fixedFee;
|
268
|
+
premium.bundleFeeFixAmount = t;
|
269
|
+
premium.fullPremiumAmount += t;
|
270
|
+
}
|
271
|
+
{
|
272
|
+
ISetup.DistributionSetupInfo memory distInto = instanceReader.getDistributionSetupInfo(product.getDistributionNftId());
|
273
|
+
uint256 t = distInto.distributionFee.fixedFee;
|
274
|
+
premium.distributionFeeFixAmount = t;
|
275
|
+
premium.fullPremiumAmount += t;
|
276
|
+
}
|
248
277
|
}
|
278
|
+
|
279
|
+
}
|
280
|
+
|
281
|
+
function _calculateVariableFeeAmounts(
|
282
|
+
IPolicy.Premium memory premium,
|
283
|
+
Product product,
|
284
|
+
NftId bundleNftId,
|
285
|
+
ReferralId referralId
|
286
|
+
)
|
287
|
+
internal
|
288
|
+
view
|
289
|
+
returns (
|
290
|
+
IPolicy.Premium memory finalPremium
|
291
|
+
)
|
292
|
+
{
|
293
|
+
InstanceReader instanceReader;
|
249
294
|
{
|
250
|
-
|
251
|
-
|
295
|
+
IInstance instance = product.getInstance();
|
296
|
+
instanceReader = instance.getInstanceReader();
|
252
297
|
}
|
298
|
+
|
299
|
+
NftId poolNftId = product.getPoolNftId();
|
300
|
+
uint256 netPremiumAmount = premium.netPremiumAmount;
|
301
|
+
|
253
302
|
{
|
254
|
-
|
255
|
-
|
256
|
-
|
303
|
+
{
|
304
|
+
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
|
305
|
+
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * productSetupInfo.productFee.fractionalFee).toInt();
|
306
|
+
premium.productFeeVarAmount = t;
|
307
|
+
premium.fullPremiumAmount += t;
|
308
|
+
}
|
309
|
+
{
|
310
|
+
ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
|
311
|
+
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * poolSetupInfo.poolFee.fractionalFee).toInt();
|
312
|
+
premium.poolFeeVarAmount = t;
|
313
|
+
premium.fullPremiumAmount += t;
|
314
|
+
}
|
315
|
+
{
|
316
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
317
|
+
if(bundleInfo.poolNftId != poolNftId) {
|
318
|
+
revert IApplicationServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
319
|
+
}
|
320
|
+
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * bundleInfo.fee.fractionalFee).toInt();
|
321
|
+
premium.bundleFeeVarAmount = t;
|
322
|
+
premium.fullPremiumAmount += t;
|
323
|
+
}
|
324
|
+
{
|
325
|
+
premium = _distributionService.calculateFeeAmount(
|
326
|
+
product.getDistributionNftId(),
|
327
|
+
referralId,
|
328
|
+
premium
|
329
|
+
);
|
330
|
+
}
|
257
331
|
}
|
258
|
-
|
259
|
-
|
332
|
+
|
333
|
+
return premium;
|
260
334
|
}
|
261
335
|
|
262
336
|
|
@@ -265,4 +339,11 @@ contract ApplicationService is
|
|
265
339
|
(productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
266
340
|
product = Product(productInfo.objectAddress);
|
267
341
|
}
|
342
|
+
|
343
|
+
function _getAndVerifyProduct(NftId productNftId) internal view returns (Product product) {
|
344
|
+
IRegistry registry = getRegistry();
|
345
|
+
IRegistry.ObjectInfo memory productInfo = registry.getObjectInfo(productNftId);
|
346
|
+
require(productInfo.objectType == PRODUCT(), "OBJECT_TYPE_INVALID");
|
347
|
+
product = Product(productInfo.objectAddress);
|
348
|
+
}
|
268
349
|
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IVersionable} from "../../shared/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../../shared/ProxyManager.sol";
|
6
|
+
import {ApplicationService} from "./ApplicationService.sol";
|
7
|
+
|
8
|
+
contract ApplicationServiceManager is ProxyManager {
|
9
|
+
|
10
|
+
ApplicationService private _applicationService;
|
11
|
+
|
12
|
+
/// @dev initializes proxy manager with service implementation
|
13
|
+
constructor(
|
14
|
+
address registryAddress
|
15
|
+
)
|
16
|
+
ProxyManager(registryAddress)
|
17
|
+
{
|
18
|
+
ApplicationService svc = new ApplicationService();
|
19
|
+
bytes memory data = abi.encode(registryAddress, address(this));
|
20
|
+
IVersionable versionable = deploy(
|
21
|
+
address(svc),
|
22
|
+
data);
|
23
|
+
|
24
|
+
_applicationService = ApplicationService(address(versionable));
|
25
|
+
}
|
26
|
+
|
27
|
+
//--- view functions ----------------------------------------------------//
|
28
|
+
function getApplicationService()
|
29
|
+
external
|
30
|
+
view
|
31
|
+
returns (ApplicationService)
|
32
|
+
{
|
33
|
+
return _applicationService;
|
34
|
+
}
|
35
|
+
}
|
@@ -10,16 +10,17 @@ import {ISetup} from "../module/ISetup.sol";
|
|
10
10
|
import {IPolicy} from "../module/IPolicy.sol";
|
11
11
|
|
12
12
|
import {IVersionable} from "../../shared/IVersionable.sol";
|
13
|
-
import {Versionable} from "../../shared/Versionable.sol";
|
14
13
|
import {INftOwnable} from "../../shared/INftOwnable.sol";
|
15
14
|
|
16
15
|
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
17
16
|
import {ObjectType, POOL, BUNDLE} from "../../types/ObjectType.sol";
|
18
17
|
import {POOL_OWNER_ROLE, RoleId} from "../../types/RoleId.sol";
|
19
18
|
import {Fee, FeeLib} from "../../types/Fee.sol";
|
20
|
-
import {Version, VersionLib} from "../../types/Version.sol";
|
21
19
|
import {KEEP_STATE, StateId} from "../../types/StateId.sol";
|
20
|
+
import {Seconds} from "../../types/Seconds.sol";
|
22
21
|
import {TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
|
22
|
+
import {Version, VersionLib} from "../../types/Version.sol";
|
23
|
+
import {Versionable} from "../../shared/Versionable.sol";
|
23
24
|
|
24
25
|
import {IService} from "../../shared/IService.sol";
|
25
26
|
import {Service} from "../../shared/Service.sol";
|
@@ -67,7 +68,7 @@ contract BundleService is
|
|
67
68
|
address owner,
|
68
69
|
Fee memory fee,
|
69
70
|
uint256 stakingAmount,
|
70
|
-
|
71
|
+
Seconds lifetime,
|
71
72
|
bytes calldata filter
|
72
73
|
)
|
73
74
|
external
|
@@ -16,7 +16,7 @@ contract BundleServiceManager is ProxyManager {
|
|
16
16
|
constructor(
|
17
17
|
address registryAddress
|
18
18
|
)
|
19
|
-
ProxyManager()
|
19
|
+
ProxyManager(registryAddress)
|
20
20
|
{
|
21
21
|
BundleService bundleSrv = new BundleService();
|
22
22
|
bytes memory data = abi.encode(registryAddress, address(this));
|
@@ -0,0 +1,151 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {IRisk} from "../module/IRisk.sol";
|
5
|
+
import {IService} from "./IApplicationService.sol";
|
6
|
+
|
7
|
+
import {IRegistry} from "../../registry/IRegistry.sol";
|
8
|
+
import {IProductComponent} from "../../components/IProductComponent.sol";
|
9
|
+
import {Product} from "../../components/Product.sol";
|
10
|
+
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
11
|
+
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
12
|
+
import {IInstance} from "../IInstance.sol";
|
13
|
+
import {IPolicy} from "../module/IPolicy.sol";
|
14
|
+
import {IRisk} from "../module/IRisk.sol";
|
15
|
+
import {IBundle} from "../module/IBundle.sol";
|
16
|
+
import {IProductService} from "./IProductService.sol";
|
17
|
+
import {ITreasury} from "../module/ITreasury.sol";
|
18
|
+
import {ISetup} from "../module/ISetup.sol";
|
19
|
+
|
20
|
+
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
21
|
+
|
22
|
+
import {IVersionable} from "../../shared/IVersionable.sol";
|
23
|
+
import {Versionable} from "../../shared/Versionable.sol";
|
24
|
+
|
25
|
+
import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
|
26
|
+
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
27
|
+
import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
|
28
|
+
import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../../types/ObjectType.sol";
|
29
|
+
import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
|
30
|
+
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
31
|
+
import {Fee, FeeLib} from "../../types/Fee.sol";
|
32
|
+
import {ReferralId} from "../../types/Referral.sol";
|
33
|
+
import {RiskId} from "../../types/RiskId.sol";
|
34
|
+
import {StateId} from "../../types/StateId.sol";
|
35
|
+
import {ClaimId} from "../../types/ClaimId.sol";
|
36
|
+
import {PayoutId} from "../../types/PayoutId.sol";
|
37
|
+
import {Version, VersionLib} from "../../types/Version.sol";
|
38
|
+
|
39
|
+
import {ComponentService} from "../base/ComponentService.sol";
|
40
|
+
import {InstanceReader} from "../InstanceReader.sol";
|
41
|
+
import {IBundleService} from "./IBundleService.sol";
|
42
|
+
import {IClaimService} from "./IClaimService.sol";
|
43
|
+
import {IPoolService} from "./IPoolService.sol";
|
44
|
+
import {IService} from "../../shared/IService.sol";
|
45
|
+
import {Service} from "../../shared/Service.sol";
|
46
|
+
|
47
|
+
|
48
|
+
contract ClaimService is
|
49
|
+
ComponentService,
|
50
|
+
IClaimService
|
51
|
+
{
|
52
|
+
|
53
|
+
|
54
|
+
function _initialize(
|
55
|
+
address owner,
|
56
|
+
bytes memory data
|
57
|
+
)
|
58
|
+
internal
|
59
|
+
virtual override
|
60
|
+
initializer()
|
61
|
+
{
|
62
|
+
// TODO check this, might no longer be the way, refactor if necessary
|
63
|
+
address registryAddress;
|
64
|
+
address initialOwner;
|
65
|
+
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
66
|
+
|
67
|
+
initializeService(registryAddress, owner);
|
68
|
+
registerInterface(type(IClaimService).interfaceId);
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
function getDomain() public pure override(IService, Service) returns(ObjectType) {
|
73
|
+
return CLAIM();
|
74
|
+
}
|
75
|
+
|
76
|
+
|
77
|
+
function createClaim(
|
78
|
+
NftId policyNftId,
|
79
|
+
uint256 claimAmount,
|
80
|
+
bytes memory claimData
|
81
|
+
)
|
82
|
+
external
|
83
|
+
virtual
|
84
|
+
returns (ClaimId)
|
85
|
+
{
|
86
|
+
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
function confirmClaim(NftId policyNftId, ClaimId claimId, uint256 claimAmount)
|
91
|
+
external
|
92
|
+
virtual
|
93
|
+
// solhint-disable-next-line no-empty-blocks
|
94
|
+
{
|
95
|
+
|
96
|
+
}
|
97
|
+
|
98
|
+
|
99
|
+
function declineClaim(NftId policyNftId, ClaimId claimId)
|
100
|
+
external
|
101
|
+
virtual
|
102
|
+
// solhint-disable-next-line no-empty-blocks
|
103
|
+
{
|
104
|
+
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
function closeClaim(NftId policyNftId, ClaimId claimId)
|
109
|
+
external
|
110
|
+
virtual
|
111
|
+
// solhint-disable-next-line no-empty-blocks
|
112
|
+
{
|
113
|
+
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
function createPayout(
|
118
|
+
NftId policyNftId,
|
119
|
+
ClaimId claimId,
|
120
|
+
uint256 payoutAmount,
|
121
|
+
bytes calldata payoutData
|
122
|
+
)
|
123
|
+
external
|
124
|
+
virtual
|
125
|
+
returns(PayoutId payoutId)
|
126
|
+
// solhint-disable-next-line no-empty-blocks
|
127
|
+
{
|
128
|
+
|
129
|
+
}
|
130
|
+
|
131
|
+
|
132
|
+
function payoutExecuted(
|
133
|
+
NftId policyNftId,
|
134
|
+
PayoutId payoutId
|
135
|
+
)
|
136
|
+
external
|
137
|
+
virtual
|
138
|
+
// solhint-disable-next-line no-empty-blocks
|
139
|
+
{
|
140
|
+
|
141
|
+
}
|
142
|
+
|
143
|
+
|
144
|
+
// internal functions
|
145
|
+
|
146
|
+
function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
|
147
|
+
IRegistry.ObjectInfo memory productInfo;
|
148
|
+
(productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
149
|
+
product = Product(productInfo.objectAddress);
|
150
|
+
}
|
151
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IVersionable} from "../../shared/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../../shared/ProxyManager.sol";
|
6
|
+
import {ClaimService} from "./ClaimService.sol";
|
7
|
+
|
8
|
+
contract ClaimServiceManager is ProxyManager {
|
9
|
+
|
10
|
+
ClaimService private _claimService;
|
11
|
+
|
12
|
+
/// @dev initializes proxy manager with service implementation
|
13
|
+
constructor(
|
14
|
+
address registryAddress
|
15
|
+
)
|
16
|
+
ProxyManager(registryAddress)
|
17
|
+
{
|
18
|
+
ClaimService svc = new ClaimService();
|
19
|
+
bytes memory data = abi.encode(registryAddress, address(this));
|
20
|
+
IVersionable versionable = deploy(
|
21
|
+
address(svc),
|
22
|
+
data);
|
23
|
+
|
24
|
+
_claimService = ClaimService(address(versionable));
|
25
|
+
}
|
26
|
+
|
27
|
+
//--- view functions ----------------------------------------------------//
|
28
|
+
function getClaimService()
|
29
|
+
external
|
30
|
+
view
|
31
|
+
returns (ClaimService)
|
32
|
+
{
|
33
|
+
return _claimService;
|
34
|
+
}
|
35
|
+
}
|