@etherisc/gif-next 0.0.2-ba07940-332 → 0.0.2-ba4eef0-232
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 +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +449 -248
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +222 -21
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +348 -184
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +100 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +92 -285
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +207 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +44 -162
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +309 -168
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +89 -51
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +31 -131
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +177 -67
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +93 -139
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +188 -46
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +247 -287
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +207 -33
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +161 -244
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +76 -155
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -131
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +288 -226
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +184 -22
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +112 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +221 -39
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +700 -317
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +201 -46
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +619 -219
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +138 -85
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +46 -34
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +421 -371
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +66 -167
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +189 -35
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +36 -71
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +50 -103
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +49 -102
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +188 -46
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +127 -331
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -87
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +56 -136
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +36 -95
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +163 -226
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +49 -126
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +302 -363
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -51
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +165 -57
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +54 -24
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +155 -193
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +207 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -179
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +74 -64
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +103 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +142 -162
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +211 -180
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +76 -50
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +120 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +155 -193
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +143 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +66 -24
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- 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 +88 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +556 -424
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +324 -54
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +49 -88
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +228 -440
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +65 -63
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +509 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +36 -57
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +123 -262
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -71
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.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/IRegisterable.sol/IRegisterable.json +120 -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 +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +49 -102
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- 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/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- 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 +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +116 -90
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +127 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +193 -193
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +61 -45
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +30 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +180 -49
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +50 -24
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +143 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +33 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +300 -192
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +307 -231
- package/contracts/authorization/IAccessAdmin.sol +69 -36
- package/contracts/authorization/IAuthorization.sol +21 -1
- package/contracts/distribution/BasicDistribution.sol +18 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +36 -77
- package/contracts/distribution/DistributionService.sol +84 -53
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/distribution/IDistributionService.sol +22 -20
- package/contracts/examples/fire/FirePool.sol +10 -11
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +16 -11
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +26 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +36 -8
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +56 -17
- package/contracts/instance/IInstanceService.sol +22 -10
- package/contracts/instance/Instance.sol +93 -29
- package/contracts/instance/InstanceAdmin.sol +279 -106
- package/contracts/instance/InstanceAuthorizationV3.sol +87 -46
- package/contracts/instance/InstanceReader.sol +187 -32
- package/contracts/instance/InstanceService.sol +167 -115
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +3 -4
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +19 -2
- package/contracts/pool/BasicPoolAuthorization.sol +22 -14
- package/contracts/pool/BundleService.sol +88 -154
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -5
- package/contracts/pool/IPoolService.sol +58 -62
- package/contracts/pool/Pool.sol +95 -81
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +418 -211
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +39 -16
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -2
- package/contracts/product/BasicProductAuthorization.sol +24 -10
- package/contracts/product/ClaimService.sol +177 -136
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +244 -263
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +32 -20
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +59 -23
- package/contracts/product/RiskService.sol +89 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +10 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +16 -3
- package/contracts/registry/RegistryAdmin.sol +145 -335
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +150 -134
- package/contracts/registry/ServiceAuthorizationV3.sol +177 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +52 -107
- package/contracts/shared/ComponentService.sol +264 -291
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +16 -14
- package/contracts/shared/ContractLib.sol +246 -3
- package/contracts/shared/IComponent.sol +1 -17
- package/contracts/shared/IComponentService.sol +18 -26
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +4 -22
- package/contracts/shared/NftOwnable.sol +10 -6
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +275 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +17 -10
- package/contracts/staking/IStakingService.sol +16 -1
- package/contracts/staking/Staking.sol +95 -46
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +6 -16
- package/contracts/staking/StakingService.sol +85 -14
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +53 -35
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +4 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,19 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {TimestampLib} from "../type/Timestamp.sol";
|
6
|
-
import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
7
|
-
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
8
|
-
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {FeeLib} from "../type/Fee.sol";
|
10
|
-
import {StateId} from "../type/StateId.sol";
|
11
|
-
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
12
|
-
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
13
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
14
|
-
import {ContractLib} from "../shared/ContractLib.sol";
|
15
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
16
|
-
import {InstanceStore} from "../instance/InstanceStore.sol";
|
17
4
|
import {IClaimService} from "./IClaimService.sol";
|
18
5
|
import {IComponents} from "../instance/module/IComponents.sol";
|
19
6
|
import {IInstance} from "../instance/IInstance.sol";
|
@@ -22,10 +9,25 @@ import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
|
22
9
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
23
10
|
import {IPolicyService} from "../product/IPolicyService.sol";
|
24
11
|
import {IPoolService} from "../pool/IPoolService.sol";
|
12
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
+
|
14
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
|
+
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
+
import {FeeLib} from "../type/Fee.sol";
|
18
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
20
|
+
import {NftId} from "../type/NftId.sol";
|
21
|
+
import {ObjectType, COMPONENT, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
22
|
+
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
23
|
+
import {Service} from "../shared/Service.sol";
|
24
|
+
import {StateId} from "../type/StateId.sol";
|
25
|
+
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CANCELLED, CONFIRMED, CLOSED, EXPECTED, PAID} from "../type/StateId.sol";
|
26
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
25
27
|
|
26
28
|
|
27
29
|
contract ClaimService is
|
28
|
-
|
30
|
+
Service,
|
29
31
|
IClaimService
|
30
32
|
{
|
31
33
|
|
@@ -41,11 +43,11 @@ contract ClaimService is
|
|
41
43
|
initializer()
|
42
44
|
{
|
43
45
|
(
|
44
|
-
address
|
45
|
-
address
|
46
|
+
address authority,
|
47
|
+
address registry
|
46
48
|
) = abi.decode(data, (address, address));
|
47
49
|
|
48
|
-
|
50
|
+
__Service_init(authority, registry, owner);
|
49
51
|
|
50
52
|
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
51
53
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
@@ -61,8 +63,10 @@ contract ClaimService is
|
|
61
63
|
external
|
62
64
|
virtual
|
63
65
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
66
|
+
restricted()
|
64
67
|
returns (ClaimId claimId)
|
65
68
|
{
|
69
|
+
// checks
|
66
70
|
(
|
67
71
|
,
|
68
72
|
IInstance instance,,
|
@@ -75,15 +79,9 @@ contract ClaimService is
|
|
75
79
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
76
80
|
}
|
77
81
|
|
78
|
-
|
79
|
-
// check policy including this claim is still within sum insured
|
80
|
-
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
81
|
-
revert ErrorClaimServiceClaimExceedsSumInsured(
|
82
|
-
policyNftId,
|
83
|
-
policyInfo.sumInsuredAmount,
|
84
|
-
AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
|
85
|
-
}
|
82
|
+
_checkClaimAmount(policyNftId, policyInfo, claimAmount);
|
86
83
|
|
84
|
+
// effects
|
87
85
|
// create new claim
|
88
86
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
89
87
|
instanceStore.createClaim(
|
@@ -118,6 +116,9 @@ contract ClaimService is
|
|
118
116
|
virtual
|
119
117
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
120
118
|
{
|
119
|
+
// checks
|
120
|
+
_checkNftType(policyNftId, POLICY());
|
121
|
+
|
121
122
|
(
|
122
123
|
NftId productNftId,
|
123
124
|
IInstance instance,
|
@@ -126,8 +127,9 @@ contract ClaimService is
|
|
126
127
|
IPolicy.PolicyInfo memory policyInfo
|
127
128
|
) = _verifyCallerWithPolicy(policyNftId);
|
128
129
|
|
129
|
-
|
130
|
+
_checkClaimAmount(policyNftId, policyInfo, confirmedAmount);
|
130
131
|
|
132
|
+
// effects
|
131
133
|
// check/update claim info
|
132
134
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
133
135
|
claimInfo.claimAmount = confirmedAmount;
|
@@ -145,6 +147,7 @@ contract ClaimService is
|
|
145
147
|
|
146
148
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
147
149
|
|
150
|
+
// interactions
|
148
151
|
// callback to pool if applicable
|
149
152
|
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
150
153
|
|
@@ -162,6 +165,8 @@ contract ClaimService is
|
|
162
165
|
virtual
|
163
166
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
164
167
|
{
|
168
|
+
_checkNftType(policyNftId, POLICY());
|
169
|
+
|
165
170
|
(
|
166
171
|
,
|
167
172
|
IInstance instance,
|
@@ -184,7 +189,6 @@ contract ClaimService is
|
|
184
189
|
}
|
185
190
|
|
186
191
|
|
187
|
-
// TODO add test case
|
188
192
|
function revoke(
|
189
193
|
NftId policyNftId,
|
190
194
|
ClaimId claimId
|
@@ -192,7 +196,7 @@ contract ClaimService is
|
|
192
196
|
external
|
193
197
|
virtual
|
194
198
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
195
|
-
{
|
199
|
+
{
|
196
200
|
(
|
197
201
|
,
|
198
202
|
IInstance instance,
|
@@ -222,6 +226,8 @@ contract ClaimService is
|
|
222
226
|
virtual
|
223
227
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
224
228
|
{
|
229
|
+
_checkNftType(policyNftId, POLICY());
|
230
|
+
|
225
231
|
(
|
226
232
|
,
|
227
233
|
IInstance instance,
|
@@ -291,6 +297,8 @@ contract ClaimService is
|
|
291
297
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
292
298
|
returns (PayoutId payoutId)
|
293
299
|
{
|
300
|
+
_checkNftType(policyNftId, POLICY());
|
301
|
+
|
294
302
|
return _createPayout(
|
295
303
|
policyNftId,
|
296
304
|
claimId,
|
@@ -308,77 +316,134 @@ contract ClaimService is
|
|
308
316
|
virtual
|
309
317
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
310
318
|
{
|
319
|
+
// checks
|
311
320
|
(
|
312
|
-
|
313
|
-
IInstance instance,
|
321
|
+
NftId productNftId,,
|
322
|
+
// IInstance instance,
|
314
323
|
InstanceReader instanceReader,
|
315
324
|
InstanceStore instanceStore,
|
316
325
|
IPolicy.PolicyInfo memory policyInfo
|
317
326
|
) = _verifyCallerWithPolicy(policyNftId);
|
318
327
|
|
319
|
-
//
|
328
|
+
// check that payout exists and is open
|
320
329
|
IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
|
330
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
331
|
+
if(payoutState != EXPECTED()) {
|
332
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
333
|
+
}
|
321
334
|
|
335
|
+
// check that payout amount does not violate claim amount
|
336
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
337
|
+
if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
|
338
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
339
|
+
policyNftId,
|
340
|
+
payoutId.toClaimId(),
|
341
|
+
claimInfo.claimAmount,
|
342
|
+
claimInfo.paidAmount + payoutInfo.amount);
|
343
|
+
}
|
344
|
+
|
345
|
+
// effects
|
322
346
|
// update and save payout info with instance
|
323
347
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
324
348
|
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
325
349
|
|
326
|
-
|
350
|
+
// update and save claim info with instance
|
327
351
|
Amount payoutAmount = payoutInfo.amount;
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
352
|
+
{
|
353
|
+
ClaimId claimId = payoutId.toClaimId();
|
354
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
355
|
+
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
356
|
+
claimInfo.openPayoutsCount -= 1;
|
357
|
+
|
358
|
+
// check if this payout is closing the linked claim
|
359
|
+
// update claim and policy info accordingly
|
360
|
+
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
361
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
362
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
363
|
+
|
364
|
+
policyInfo.openClaimsCount -= 1;
|
365
|
+
} else {
|
366
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
367
|
+
}
|
341
368
|
}
|
342
369
|
|
343
370
|
// update and save policy info with instance
|
344
|
-
policyInfo.payoutAmount = policyInfo.payoutAmount
|
371
|
+
policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
|
345
372
|
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
346
373
|
|
347
|
-
|
374
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
|
375
|
+
|
376
|
+
// effects + interactions (push tokens to beneficiary, product)
|
377
|
+
// delegate to pool to update book keeping and moving tokens payout
|
348
378
|
_poolService.processPayout(
|
349
|
-
|
350
|
-
|
379
|
+
instanceReader,
|
380
|
+
instanceStore,
|
381
|
+
policyInfo.productNftId, // product nft id
|
351
382
|
policyNftId,
|
352
|
-
policyInfo,
|
353
|
-
|
354
|
-
|
355
|
-
|
383
|
+
policyInfo.bundleNftId,
|
384
|
+
payoutId,
|
385
|
+
payoutAmount,
|
386
|
+
payoutInfo.beneficiary);
|
387
|
+
}
|
388
|
+
|
389
|
+
function cancelPayout(
|
390
|
+
NftId policyNftId,
|
391
|
+
PayoutId payoutId
|
392
|
+
)
|
393
|
+
external
|
394
|
+
virtual
|
395
|
+
{
|
396
|
+
// checks
|
356
397
|
(
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
policyInfo,
|
364
|
-
payoutInfo);
|
398
|
+
,
|
399
|
+
IInstance instance,
|
400
|
+
InstanceReader instanceReader,
|
401
|
+
InstanceStore instanceStore,
|
402
|
+
IPolicy.PolicyInfo memory policyInfo
|
403
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
365
404
|
|
366
|
-
|
405
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
406
|
+
if (payoutState != EXPECTED()) {
|
407
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
408
|
+
}
|
367
409
|
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
poolInfo.tokenHandler.distributeTokens(poolInfo.wallet, beneficiary, netPayoutAmount);
|
410
|
+
// effects
|
411
|
+
// update and save payout info with instance
|
412
|
+
instanceStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
|
372
413
|
|
373
|
-
|
414
|
+
{
|
415
|
+
ClaimId claimId = payoutId.toClaimId();
|
416
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
417
|
+
claimInfo.openPayoutsCount -= 1;
|
418
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
374
419
|
}
|
375
420
|
|
376
|
-
|
377
|
-
_policyHolderPayoutExecuted(policyNftId, payoutId, beneficiary, payoutAmount);
|
421
|
+
emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
|
378
422
|
}
|
379
423
|
|
380
424
|
// internal functions
|
381
425
|
|
426
|
+
function _checkClaimAmount(
|
427
|
+
NftId policyNftId,
|
428
|
+
IPolicy.PolicyInfo memory policyInfo,
|
429
|
+
Amount claimAmount
|
430
|
+
)
|
431
|
+
internal
|
432
|
+
pure
|
433
|
+
{
|
434
|
+
// check claim amount > 0
|
435
|
+
if (claimAmount.eqz()) {
|
436
|
+
revert ErrorClaimServiceClaimAmountIsZero(policyNftId);
|
437
|
+
}
|
438
|
+
|
439
|
+
// check policy including this claim is still within sum insured
|
440
|
+
if(policyInfo.claimAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
441
|
+
revert ErrorClaimServiceClaimExceedsSumInsured(
|
442
|
+
policyNftId,
|
443
|
+
policyInfo.sumInsuredAmount,
|
444
|
+
policyInfo.payoutAmount + claimAmount);
|
445
|
+
}
|
446
|
+
}
|
382
447
|
|
383
448
|
function _createPayout(
|
384
449
|
NftId policyNftId,
|
@@ -391,22 +456,32 @@ contract ClaimService is
|
|
391
456
|
virtual
|
392
457
|
returns (PayoutId payoutId)
|
393
458
|
{
|
459
|
+
// checks
|
394
460
|
(
|
395
|
-
|
396
|
-
,
|
461
|
+
,,
|
397
462
|
InstanceReader instanceReader,
|
398
463
|
InstanceStore instanceStore,
|
399
|
-
IPolicy.PolicyInfo memory policyInfo
|
464
|
+
// IPolicy.PolicyInfo memory policyInfo
|
400
465
|
) = _verifyCallerWithPolicy(policyNftId);
|
401
466
|
|
402
467
|
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
403
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
404
468
|
|
405
|
-
|
406
|
-
|
407
|
-
|
469
|
+
{
|
470
|
+
// check claim state
|
471
|
+
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
472
|
+
if (claimState != CONFIRMED()) {
|
473
|
+
revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
|
474
|
+
}
|
408
475
|
|
409
|
-
|
476
|
+
// check total payout amount remains within claim limit
|
477
|
+
Amount newPaidAmount = claimInfo.paidAmount + amount;
|
478
|
+
if (newPaidAmount > claimInfo.claimAmount) {
|
479
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
480
|
+
policyNftId, claimId, claimInfo.claimAmount, newPaidAmount);
|
481
|
+
}
|
482
|
+
}
|
483
|
+
|
484
|
+
// effects
|
410
485
|
// create payout info with instance
|
411
486
|
uint24 payoutNo = claimInfo.payoutsCount + 1;
|
412
487
|
payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
|
@@ -429,52 +504,10 @@ contract ClaimService is
|
|
429
504
|
claimInfo.openPayoutsCount += 1;
|
430
505
|
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
431
506
|
|
432
|
-
// update and save policy info with instance
|
433
|
-
policyInfo.payoutAmount.add(amount);
|
434
|
-
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
435
|
-
|
436
507
|
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
437
508
|
}
|
438
509
|
|
439
510
|
|
440
|
-
function _calculatePayoutAmount(
|
441
|
-
InstanceReader instanceReader,
|
442
|
-
NftId policyNftId,
|
443
|
-
IPolicy.PolicyInfo memory policyInfo,
|
444
|
-
IPolicy.PayoutInfo memory payoutInfo
|
445
|
-
)
|
446
|
-
internal
|
447
|
-
returns (
|
448
|
-
Amount netPayoutAmount,
|
449
|
-
Amount processingFeeAmount,
|
450
|
-
address beneficiary
|
451
|
-
)
|
452
|
-
{
|
453
|
-
Amount payoutAmount = payoutInfo.amount;
|
454
|
-
|
455
|
-
if(payoutAmount.gtz()) {
|
456
|
-
NftId productNftId = policyInfo.productNftId;
|
457
|
-
|
458
|
-
// get pool component info from policy or product
|
459
|
-
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
460
|
-
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
461
|
-
|
462
|
-
netPayoutAmount = payoutAmount;
|
463
|
-
|
464
|
-
if (payoutInfo.beneficiary == address(0)) {
|
465
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
466
|
-
} else {
|
467
|
-
beneficiary = payoutInfo.beneficiary;
|
468
|
-
}
|
469
|
-
|
470
|
-
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
471
|
-
if(FeeLib.gtz(productInfo.processingFee)) {
|
472
|
-
// TODO calculate and set net payout and processing fees
|
473
|
-
}
|
474
|
-
}
|
475
|
-
}
|
476
|
-
|
477
|
-
|
478
511
|
function _verifyCallerWithPolicy(
|
479
512
|
NftId policyNftId
|
480
513
|
)
|
@@ -489,7 +522,7 @@ contract ClaimService is
|
|
489
522
|
IPolicy.PolicyInfo memory policyInfo
|
490
523
|
)
|
491
524
|
{
|
492
|
-
(productNftId
|
525
|
+
(productNftId, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
493
526
|
instanceReader = instance.getInstanceReader();
|
494
527
|
instanceStore = instance.getInstanceStore();
|
495
528
|
|
@@ -502,6 +535,29 @@ contract ClaimService is
|
|
502
535
|
}
|
503
536
|
}
|
504
537
|
|
538
|
+
|
539
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
540
|
+
internal
|
541
|
+
view
|
542
|
+
returns (
|
543
|
+
NftId productNftId,
|
544
|
+
IInstance instance
|
545
|
+
)
|
546
|
+
{
|
547
|
+
(
|
548
|
+
IRegistry.ObjectInfo memory info,
|
549
|
+
address instanceAddress
|
550
|
+
) = ContractLib.getAndVerifyComponent(
|
551
|
+
getRegistry(),
|
552
|
+
msg.sender, // caller
|
553
|
+
PRODUCT(),
|
554
|
+
true); // isActive
|
555
|
+
|
556
|
+
// get component nft id and instance
|
557
|
+
productNftId = info.nftId;
|
558
|
+
instance = IInstance(instanceAddress);
|
559
|
+
}
|
560
|
+
|
505
561
|
function _verifyClaim(
|
506
562
|
InstanceReader instanceReader,
|
507
563
|
NftId policyNftId,
|
@@ -555,22 +611,7 @@ contract ClaimService is
|
|
555
611
|
}
|
556
612
|
}
|
557
613
|
|
558
|
-
|
559
|
-
function _policyHolderPayoutExecuted(
|
560
|
-
NftId policyNftId,
|
561
|
-
PayoutId payoutId,
|
562
|
-
address beneficiary,
|
563
|
-
Amount payoutAmount
|
564
|
-
)
|
565
|
-
internal
|
566
|
-
{
|
567
|
-
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
568
|
-
if(address(policyHolder) != address(0)) {
|
569
|
-
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
570
|
-
}
|
571
|
-
}
|
572
|
-
|
573
|
-
|
614
|
+
// TODO: move to policy helper lib or something
|
574
615
|
function _getPolicyHolder(NftId policyNftId)
|
575
616
|
internal
|
576
617
|
view
|
@@ -17,7 +17,7 @@ contract ClaimServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
ClaimService svc = new ClaimService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -15,8 +15,14 @@ import {Seconds} from "../type/Seconds.sol";
|
|
15
15
|
/// only product components may call transaction functions
|
16
16
|
interface IApplicationService is IService {
|
17
17
|
|
18
|
-
|
19
|
-
error
|
18
|
+
// _checkLinkedApplicationParameters
|
19
|
+
error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
20
|
+
error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
|
21
|
+
error ErrorApplicationServiceRiskPaused(RiskId riskId, NftId productNftId);
|
22
|
+
error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
|
23
|
+
error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
|
24
|
+
error ErrorApplicationServiceReferralInvalid(NftId productNftId, NftId distributionNftId, ReferralId referralId);
|
25
|
+
|
20
26
|
|
21
27
|
/// @dev creates a new application based on the specified attributes
|
22
28
|
/// may only be called by a product component
|
@@ -19,7 +19,6 @@ import {Fee} from "../type/Fee.sol";
|
|
19
19
|
interface IClaimService is
|
20
20
|
IService
|
21
21
|
{
|
22
|
-
|
23
22
|
event LogClaimServiceClaimSubmitted(NftId policyNftId, ClaimId claimId, Amount claimAmount);
|
24
23
|
event LogClaimServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
|
25
24
|
event LogClaimServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
|
@@ -27,11 +26,14 @@ interface IClaimService is
|
|
27
26
|
event LogClaimServiceClaimClosed(NftId policyNftId, ClaimId claimId);
|
28
27
|
|
29
28
|
event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary);
|
30
|
-
event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount
|
29
|
+
event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount);
|
30
|
+
event LogClaimServicePayoutCancelled(NftId policyNftId, PayoutId payoutId);
|
31
|
+
|
31
32
|
error ErrorClaimServiceBeneficiarySet(NftId policyNftId, PayoutId payoutId, address beneficiary);
|
32
33
|
|
33
34
|
error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
|
34
35
|
error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
|
36
|
+
error ErrorClaimServiceClaimAmountIsZero(NftId policyNftId);
|
35
37
|
error ErrorClaimServiceClaimExceedsSumInsured(NftId policyNftId, Amount sumInsured, Amount payoutsIncludingClaimAmount);
|
36
38
|
error ErrorClaimServiceBeneficiaryIsZero(NftId policyNftId, ClaimId claimId);
|
37
39
|
error ErrorClaimsServicePayoutAmountIsZero(NftId policyNftId, PayoutId payoutId);
|
@@ -40,6 +42,10 @@ interface IClaimService is
|
|
40
42
|
error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
|
41
43
|
error ErrorClaimServiceClaimNotInExpectedState(NftId policyNftId, ClaimId claimId, StateId expectedState, StateId actualState);
|
42
44
|
|
45
|
+
error ErrorClaimServiceClaimNotConfirmed(NftId policyNftId, ClaimId claimId, StateId actualState);
|
46
|
+
error ErrorClaimServicePayoutExceedsClaimAmount(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount totalPayoutAmount);
|
47
|
+
error ErrorClaimServicePayoutNotExpected(NftId policyNftId, PayoutId payoutId, StateId actualState);
|
48
|
+
|
43
49
|
/// @dev create a new claim for the specified policy
|
44
50
|
/// returns the id of the newly created claim
|
45
51
|
/// function can only be called by product, policy needs to match with calling product
|
@@ -120,4 +126,10 @@ interface IClaimService is
|
|
120
126
|
NftId policyNftId,
|
121
127
|
PayoutId payoutId
|
122
128
|
) external;
|
129
|
+
|
130
|
+
/// @dev cancels the specified payout. no tokens are moved, payout is set to cancelled.
|
131
|
+
function cancelPayout(
|
132
|
+
NftId policyNftId,
|
133
|
+
PayoutId payoutId
|
134
|
+
) external;
|
123
135
|
}
|
@@ -5,6 +5,7 @@ import {IService} from "../shared/IService.sol";
|
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
7
|
import {IInstance} from "../instance/IInstance.sol";
|
8
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
8
9
|
import {NftId} from "../type/NftId.sol";
|
9
10
|
import {StateId} from "../type/StateId.sol";
|
10
11
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -15,7 +16,8 @@ interface IPolicyService is IService {
|
|
15
16
|
event LogPolicyServicePolicyDeclined(NftId policyNftId);
|
16
17
|
event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
|
17
18
|
event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
|
18
|
-
event
|
19
|
+
event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
|
20
|
+
event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
|
19
21
|
event LogPolicyServicePolicyClosed(NftId policyNftId);
|
20
22
|
|
21
23
|
error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
|
@@ -23,13 +25,15 @@ interface IPolicyService is IService {
|
|
23
25
|
error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
|
24
26
|
error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
|
25
27
|
|
26
|
-
error
|
27
|
-
error
|
28
|
-
|
28
|
+
error ErrorPolicyServicePolicyNotActivated(NftId policyNftId);
|
29
|
+
error ErrorPolicyServicePolicyActivationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp activatedAt);
|
30
|
+
error ErrorPolicyServicePolicyActivationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp activatedAt);
|
31
|
+
|
29
32
|
error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
|
30
33
|
error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId);
|
31
|
-
|
32
|
-
error
|
34
|
+
|
35
|
+
error ErrorPolicyServicePolicyNotCloseable(NftId policyNftId);
|
36
|
+
|
33
37
|
error ErrorPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
|
34
38
|
error ErrorPolicyServicePremiumNotPaid(NftId policyNftId, Amount premiumAmount);
|
35
39
|
error ErrorPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
|
@@ -49,7 +53,9 @@ interface IPolicyService is IService {
|
|
49
53
|
function createPolicy(
|
50
54
|
NftId applicationNftId,
|
51
55
|
Timestamp activateAt
|
52
|
-
)
|
56
|
+
)
|
57
|
+
external
|
58
|
+
returns (Amount premiumAmount);
|
53
59
|
|
54
60
|
/// @dev declines an application represented by {policyNftId}
|
55
61
|
/// an application can only be declined in applied state
|
@@ -63,18 +69,27 @@ interface IPolicyService is IService {
|
|
63
69
|
/// to activate a policy it needs to be in underwritten state
|
64
70
|
function activate(NftId policyNftId, Timestamp activateAt) external;
|
65
71
|
|
66
|
-
/// @dev
|
72
|
+
/// @dev adjusts the activation date of the specified policy and sets the new activation date in the policy metadata
|
73
|
+
/// to adjust the activation date of a policy it needs to have an activation date set.
|
74
|
+
/// the new activation date must not be before the current block timestamp or after the expiry date
|
75
|
+
function adjustActivation(NftId policyNftId, Timestamp newActivateAt) external;
|
76
|
+
|
77
|
+
/// @dev Expires the specified policy and sets the expiry date in the policy metadata.
|
78
|
+
/// Function consumers are products.
|
79
|
+
/// If expiry date is set to 0, then the earliest possible expiry date (current blocktime) is set
|
67
80
|
/// to expire a policy it must be in active state, policies may be expired even when the predefined expiry date is still in the future
|
68
81
|
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
69
82
|
/// this function can only be called by a product. the policy needs to match with the calling product
|
70
83
|
/// @return expiredAt the effective expiry date
|
71
84
|
function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
|
72
85
|
|
73
|
-
|
74
|
-
|
75
|
-
/// @dev closes the specified policy and sets the closed data in the policy metadata
|
86
|
+
/// @dev Closes the specified policy and sets the closed data in the policy metadata
|
76
87
|
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
77
88
|
/// this function can only be called by a product. the policy needs to match with the calling product
|
78
89
|
function close(NftId policyNftId) external;
|
79
90
|
|
91
|
+
/// @dev Expires the specified policy and sets the expiry date in the policy metadata.
|
92
|
+
/// Function consumers is claim service.
|
93
|
+
function expirePolicy(IInstance instance, NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
|
94
|
+
|
80
95
|
}
|
@@ -14,6 +14,7 @@ interface IPricingService is IService
|
|
14
14
|
{
|
15
15
|
|
16
16
|
error ErrorPricingServiceTargetWalletAmountsMismatch();
|
17
|
+
error ErrorPricingServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
17
18
|
error ErrorPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
|
18
19
|
error ErrorPricingServiceFeeCalculationMismatch(
|
19
20
|
Amount distributionFeeFixAmount,
|
@@ -53,7 +53,10 @@ interface IProductComponent is
|
|
53
53
|
) external view returns (Amount netPremiumAmount);
|
54
54
|
|
55
55
|
|
56
|
-
/// @dev returns initial
|
56
|
+
/// @dev returns initial product specific infos
|
57
57
|
function getInitialProductInfo() external view returns (IComponents.ProductInfo memory info);
|
58
|
+
|
59
|
+
/// @dev returns initial fee infos
|
60
|
+
function getInitialFeeInfo() external view returns (IComponents.FeeInfo memory info);
|
58
61
|
|
59
62
|
}
|