@etherisc/gif-next 0.0.2-b7d6ed2-016 → 0.0.2-b7e6198-021
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 +12 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +100 -32
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +80 -34
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +52 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +267 -97
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +652 -36
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +222 -47
- 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 +175 -27
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +85 -12
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +52 -17
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +221 -60
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +20 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +368 -139
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +129 -67
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +19 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +228 -15
- 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 +81 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +220 -59
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +102 -51
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +220 -59
- 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 +74 -23
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +220 -59
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +34 -15
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +85 -50
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +220 -59
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +264 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +220 -59
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +336 -33
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +277 -3
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +349 -74
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +608 -295
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +242 -56
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +478 -290
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +303 -29
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +69 -31
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +148 -84
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- 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 +23 -4
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +234 -56
- 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 +19 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +85 -39
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +37 -26
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +220 -59
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +294 -117
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +113 -47
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +180 -27
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +19 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +19 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +88 -22
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +324 -65
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +110 -52
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +82 -32
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +220 -59
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +102 -64
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +508 -18
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +107 -61
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -72
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +89 -39
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +19 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +70 -32
- 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/IRegistry.sol/IRegistry.json +18 -7
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- 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 +56 -45
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +380 -238
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +261 -65
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +65 -27
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +384 -186
- 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 +131 -79
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +169 -174
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +98 -52
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +84 -105
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
- 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/INftOwnable.sol/INftOwnable.json +19 -0
- 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 +19 -0
- 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 +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
- 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 +21 -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 +19 -0
- 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 +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1383 -117
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +94 -114
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1473 -176
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +73 -72
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +113 -58
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -150
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +128 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -43
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1620 -820
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +142 -80
- 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 +2 -2
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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 +2 -2
- 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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +6 -6
- 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 +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- 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/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -17
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +2 -0
- package/contracts/authorization/AccessAdmin.sol +264 -188
- package/contracts/authorization/AccessAdminLib.sol +222 -9
- package/contracts/authorization/Authorization.sol +38 -234
- package/contracts/authorization/IAccess.sol +14 -4
- package/contracts/authorization/IAccessAdmin.sol +19 -45
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +2 -2
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +7 -4
- package/contracts/distribution/DistributionService.sol +98 -35
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +20 -8
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/IInstance.sol +44 -5
- package/contracts/instance/IInstanceService.sol +35 -6
- package/contracts/instance/Instance.sol +86 -43
- package/contracts/instance/InstanceAdmin.sol +162 -229
- package/contracts/instance/InstanceAuthorizationV3.sol +60 -29
- package/contracts/instance/InstanceReader.sol +371 -389
- package/contracts/instance/InstanceService.sol +123 -82
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/oracle/BasicOracle.sol +1 -1
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/Oracle.sol +2 -2
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +3 -14
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +4 -14
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +40 -181
- package/contracts/product/ApplicationService.sol +62 -9
- package/contracts/product/BasicProduct.sol +1 -1
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +56 -58
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +31 -50
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +22 -25
- package/contracts/product/Product.sol +38 -12
- package/contracts/product/RiskService.sol +48 -12
- package/contracts/registry/IRegistry.sol +11 -9
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +33 -100
- package/contracts/registry/RegistryAuthorization.sol +121 -52
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +42 -100
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +54 -53
- package/contracts/shared/Component.sol +6 -2
- package/contracts/shared/ComponentService.sol +234 -255
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +12 -13
- package/contracts/shared/IKeyValueStore.sol +1 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +4 -5
- package/contracts/shared/KeyValueStore.sol +3 -3
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +258 -70
- package/contracts/staking/IStakingService.sol +39 -84
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +467 -215
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +42 -185
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +16 -3
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +1 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +15 -3
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -2,7 +2,6 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IClaimService} from "./IClaimService.sol";
|
5
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
6
5
|
import {IInstance} from "../instance/IInstance.sol";
|
7
6
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
8
7
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
@@ -14,11 +13,10 @@ import {IRegistry} from "../registry/IRegistry.sol";
|
|
14
13
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
14
|
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
16
15
|
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
-
import {FeeLib} from "../type/Fee.sol";
|
18
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
17
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
20
18
|
import {NftId} from "../type/NftId.sol";
|
21
|
-
import {ObjectType,
|
19
|
+
import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
22
20
|
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
23
21
|
import {Service} from "../shared/Service.sol";
|
24
22
|
import {StateId} from "../type/StateId.sol";
|
@@ -68,14 +66,13 @@ contract ClaimService is
|
|
68
66
|
{
|
69
67
|
// checks
|
70
68
|
(
|
71
|
-
|
72
|
-
IInstance instance,,
|
69
|
+
,,,
|
73
70
|
InstanceStore instanceStore,
|
74
71
|
IPolicy.PolicyInfo memory policyInfo
|
75
72
|
) = _verifyCallerWithPolicy(policyNftId);
|
76
73
|
|
77
74
|
// check policy is in its active period
|
78
|
-
if(policyInfo.activatedAt.eqz() || TimestampLib.
|
75
|
+
if(policyInfo.activatedAt.eqz() || TimestampLib.current() >= policyInfo.expiredAt) {
|
79
76
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
80
77
|
}
|
81
78
|
|
@@ -114,6 +111,7 @@ contract ClaimService is
|
|
114
111
|
)
|
115
112
|
external
|
116
113
|
virtual
|
114
|
+
restricted()
|
117
115
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
118
116
|
{
|
119
117
|
// checks
|
@@ -142,7 +140,7 @@ contract ClaimService is
|
|
142
140
|
|
143
141
|
// should policy still be active it needs to become expired
|
144
142
|
if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
|
145
|
-
_policyService.expirePolicy(instance, policyNftId, TimestampLib.
|
143
|
+
_policyService.expirePolicy(instance, policyNftId, TimestampLib.current());
|
146
144
|
}
|
147
145
|
|
148
146
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
@@ -163,13 +161,13 @@ contract ClaimService is
|
|
163
161
|
)
|
164
162
|
external
|
165
163
|
virtual
|
164
|
+
restricted()
|
166
165
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
167
166
|
{
|
168
167
|
_checkNftType(policyNftId, POLICY());
|
169
168
|
|
170
169
|
(
|
171
|
-
|
172
|
-
IInstance instance,
|
170
|
+
,,
|
173
171
|
InstanceReader instanceReader,
|
174
172
|
InstanceStore instanceStore,
|
175
173
|
IPolicy.PolicyInfo memory policyInfo
|
@@ -178,7 +176,7 @@ contract ClaimService is
|
|
178
176
|
// check/update claim info
|
179
177
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
180
178
|
claimInfo.processData = data;
|
181
|
-
claimInfo.closedAt = TimestampLib.
|
179
|
+
claimInfo.closedAt = TimestampLib.current();
|
182
180
|
instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
183
181
|
|
184
182
|
// update and save policy info with instance
|
@@ -195,11 +193,11 @@ contract ClaimService is
|
|
195
193
|
)
|
196
194
|
external
|
197
195
|
virtual
|
196
|
+
restricted()
|
198
197
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
199
198
|
{
|
200
199
|
(
|
201
|
-
|
202
|
-
IInstance instance,
|
200
|
+
,,
|
203
201
|
InstanceReader instanceReader,
|
204
202
|
InstanceStore instanceStore,
|
205
203
|
IPolicy.PolicyInfo memory policyInfo
|
@@ -207,7 +205,7 @@ contract ClaimService is
|
|
207
205
|
|
208
206
|
// check/update claim info
|
209
207
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
210
|
-
claimInfo.closedAt = TimestampLib.
|
208
|
+
claimInfo.closedAt = TimestampLib.current();
|
211
209
|
instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
212
210
|
|
213
211
|
// update and save policy info with instance
|
@@ -218,22 +216,21 @@ contract ClaimService is
|
|
218
216
|
}
|
219
217
|
|
220
218
|
|
221
|
-
function
|
219
|
+
function cancelConfirmedClaim(
|
222
220
|
NftId policyNftId,
|
223
221
|
ClaimId claimId
|
224
222
|
)
|
225
223
|
external
|
226
224
|
virtual
|
225
|
+
restricted()
|
227
226
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
228
227
|
{
|
229
228
|
_checkNftType(policyNftId, POLICY());
|
230
229
|
|
231
230
|
(
|
232
|
-
|
233
|
-
IInstance instance,
|
231
|
+
,,
|
234
232
|
InstanceReader instanceReader,
|
235
233
|
InstanceStore instanceStore,
|
236
|
-
IPolicy.PolicyInfo memory policyInfo
|
237
234
|
) = _verifyCallerWithPolicy(policyNftId);
|
238
235
|
|
239
236
|
// check/update claim info
|
@@ -247,17 +244,10 @@ contract ClaimService is
|
|
247
244
|
claimInfo.openPayoutsCount);
|
248
245
|
}
|
249
246
|
|
250
|
-
|
251
|
-
|
252
|
-
revert ErrorClaimServiceClaimWithMissingPayouts(
|
253
|
-
policyNftId,
|
254
|
-
claimId,
|
255
|
-
claimInfo.claimAmount,
|
256
|
-
claimInfo.paidAmount);
|
257
|
-
}
|
247
|
+
claimInfo.closedAt = TimestampLib.current();
|
248
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CANCELLED());
|
258
249
|
|
259
|
-
|
260
|
-
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
250
|
+
emit LogClaimServiceClaimCancelled(policyNftId, claimId);
|
261
251
|
}
|
262
252
|
|
263
253
|
|
@@ -270,6 +260,7 @@ contract ClaimService is
|
|
270
260
|
)
|
271
261
|
external
|
272
262
|
virtual
|
263
|
+
restricted()
|
273
264
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
274
265
|
returns (PayoutId payoutId)
|
275
266
|
{
|
@@ -294,6 +285,7 @@ contract ClaimService is
|
|
294
285
|
)
|
295
286
|
external
|
296
287
|
virtual
|
288
|
+
restricted()
|
297
289
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
298
290
|
returns (PayoutId payoutId)
|
299
291
|
{
|
@@ -314,51 +306,58 @@ contract ClaimService is
|
|
314
306
|
)
|
315
307
|
external
|
316
308
|
virtual
|
309
|
+
restricted()
|
317
310
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
311
|
+
returns (Amount netPayoutAmount, Amount processingFeeAmount)
|
318
312
|
{
|
319
313
|
// checks
|
320
314
|
(
|
321
|
-
|
322
|
-
// IInstance instance,
|
315
|
+
,,
|
323
316
|
InstanceReader instanceReader,
|
324
317
|
InstanceStore instanceStore,
|
325
318
|
IPolicy.PolicyInfo memory policyInfo
|
326
319
|
) = _verifyCallerWithPolicy(policyNftId);
|
327
320
|
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
321
|
+
IPolicy.ClaimInfo memory claimInfo;
|
322
|
+
address payoutBeneficiary;
|
323
|
+
Amount payoutAmount;
|
324
|
+
|
325
|
+
{
|
326
|
+
// check that payout exists and is open
|
327
|
+
IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
|
328
|
+
payoutBeneficiary = payoutInfo.beneficiary;
|
329
|
+
payoutAmount = payoutInfo.amount;
|
330
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
331
|
+
if(payoutState != EXPECTED()) {
|
332
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
333
|
+
}
|
334
334
|
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
335
|
+
// check that payout amount does not violate claim amount
|
336
|
+
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
344
|
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
345
|
+
// effects
|
346
|
+
// update and save payout info with instance
|
347
|
+
payoutInfo.paidAt = TimestampLib.current();
|
348
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
349
|
+
}
|
349
350
|
|
350
351
|
// update and save claim info with instance
|
351
|
-
Amount payoutAmount = payoutInfo.amount;
|
352
352
|
{
|
353
353
|
ClaimId claimId = payoutId.toClaimId();
|
354
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
355
354
|
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
356
355
|
claimInfo.openPayoutsCount -= 1;
|
357
356
|
|
358
357
|
// check if this payout is closing the linked claim
|
359
358
|
// update claim and policy info accordingly
|
360
359
|
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
361
|
-
claimInfo.closedAt = TimestampLib.
|
360
|
+
claimInfo.closedAt = TimestampLib.current();
|
362
361
|
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
363
362
|
|
364
363
|
policyInfo.openClaimsCount -= 1;
|
@@ -375,7 +374,7 @@ contract ClaimService is
|
|
375
374
|
|
376
375
|
// effects + interactions (push tokens to beneficiary, product)
|
377
376
|
// delegate to pool to update book keeping and moving tokens payout
|
378
|
-
_poolService.processPayout(
|
377
|
+
(netPayoutAmount, processingFeeAmount) = _poolService.processPayout(
|
379
378
|
instanceReader,
|
380
379
|
instanceStore,
|
381
380
|
policyInfo.productNftId, // product nft id
|
@@ -383,7 +382,7 @@ contract ClaimService is
|
|
383
382
|
policyInfo.bundleNftId,
|
384
383
|
payoutId,
|
385
384
|
payoutAmount,
|
386
|
-
|
385
|
+
payoutBeneficiary);
|
387
386
|
}
|
388
387
|
|
389
388
|
function cancelPayout(
|
@@ -392,14 +391,13 @@ contract ClaimService is
|
|
392
391
|
)
|
393
392
|
external
|
394
393
|
virtual
|
394
|
+
restricted()
|
395
395
|
{
|
396
396
|
// checks
|
397
397
|
(
|
398
|
-
|
399
|
-
IInstance instance,
|
398
|
+
,,
|
400
399
|
InstanceReader instanceReader,
|
401
400
|
InstanceStore instanceStore,
|
402
|
-
IPolicy.PolicyInfo memory policyInfo
|
403
401
|
) = _verifyCallerWithPolicy(policyNftId);
|
404
402
|
|
405
403
|
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
@@ -522,7 +520,7 @@ contract ClaimService is
|
|
522
520
|
IPolicy.PolicyInfo memory policyInfo
|
523
521
|
)
|
524
522
|
{
|
525
|
-
(productNftId, instance) =
|
523
|
+
(productNftId, instance) = _getAndVerifyActiveProduct();
|
526
524
|
instanceReader = instance.getInstanceReader();
|
527
525
|
instanceStore = instance.getInstanceStore();
|
528
526
|
|
@@ -536,7 +534,7 @@ contract ClaimService is
|
|
536
534
|
}
|
537
535
|
|
538
536
|
|
539
|
-
function
|
537
|
+
function _getAndVerifyActiveProduct()
|
540
538
|
internal
|
541
539
|
view
|
542
540
|
returns (
|
@@ -6,7 +6,6 @@ import {IService} from "../shared/IService.sol";
|
|
6
6
|
|
7
7
|
import {Amount} from "../type/Amount.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
10
9
|
import {ReferralId} from "../type/Referral.sol";
|
11
10
|
import {RiskId} from "../type/RiskId.sol";
|
12
11
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -15,10 +14,30 @@ import {Seconds} from "../type/Seconds.sol";
|
|
15
14
|
/// only product components may call transaction functions
|
16
15
|
interface IApplicationService is IService {
|
17
16
|
|
17
|
+
event LogApplicationServiceApplicationCreated(
|
18
|
+
NftId applicationNftId,
|
19
|
+
NftId productNftId,
|
20
|
+
NftId bundleNftId,
|
21
|
+
RiskId riskId,
|
22
|
+
ReferralId referralId,
|
23
|
+
address applicationOwner,
|
24
|
+
Amount sumInsuredAmount,
|
25
|
+
Amount premiumAmount,
|
26
|
+
Seconds lifetime);
|
27
|
+
event LogApplicationServiceApplicationRenewed(NftId policyNftId, NftId bundleNftId);
|
28
|
+
event LogApplicationServiceApplicationAdjusted(
|
29
|
+
NftId applicationNftId,
|
30
|
+
NftId bundleNftId,
|
31
|
+
RiskId riskId,
|
32
|
+
ReferralId referralId,
|
33
|
+
Amount sumInsuredAmount,
|
34
|
+
Seconds lifetime);
|
35
|
+
event LogApplicationServiceApplicationRevoked(NftId applicationNftId);
|
36
|
+
|
18
37
|
// _checkLinkedApplicationParameters
|
19
38
|
error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
20
39
|
error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
|
21
|
-
error
|
40
|
+
error ErrorApplicationServiceRiskLocked(RiskId riskId, NftId productNftId);
|
22
41
|
error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
|
23
42
|
error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
|
24
43
|
error ErrorApplicationServiceReferralInvalid(NftId productNftId, NftId distributionNftId, ReferralId referralId);
|
@@ -23,7 +23,7 @@ interface IClaimService is
|
|
23
23
|
event LogClaimServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
|
24
24
|
event LogClaimServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
|
25
25
|
event LogClaimServiceClaimRevoked(NftId policyNftId, ClaimId claimId);
|
26
|
-
event
|
26
|
+
event LogClaimServiceClaimCancelled(NftId policyNftId, ClaimId claimId);
|
27
27
|
|
28
28
|
event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary);
|
29
29
|
event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount);
|
@@ -83,9 +83,10 @@ interface IClaimService is
|
|
83
83
|
) external;
|
84
84
|
|
85
85
|
|
86
|
-
/// @dev
|
86
|
+
/// @dev cancels a confirmed claim before it has been fully paid out.
|
87
|
+
/// Can only be called when there are not pending payouts
|
87
88
|
/// function can only be called by product, policy needs to match with calling product
|
88
|
-
function
|
89
|
+
function cancelConfirmedClaim(
|
89
90
|
NftId policyNftId,
|
90
91
|
ClaimId claimId
|
91
92
|
) external;
|
@@ -125,7 +126,7 @@ interface IClaimService is
|
|
125
126
|
function processPayout(
|
126
127
|
NftId policyNftId,
|
127
128
|
PayoutId payoutId
|
128
|
-
) external;
|
129
|
+
) external returns (Amount netPayoutAmount, Amount processingFeeAmount);
|
129
130
|
|
130
131
|
/// @dev cancels the specified payout. no tokens are moved, payout is set to cancelled.
|
131
132
|
function cancelPayout(
|
@@ -5,7 +5,6 @@ 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";
|
9
8
|
import {NftId} from "../type/NftId.sol";
|
10
9
|
import {StateId} from "../type/StateId.sol";
|
11
10
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -20,6 +19,7 @@ interface IPolicyService is IService {
|
|
20
19
|
event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
|
21
20
|
event LogPolicyServicePolicyClosed(NftId policyNftId);
|
22
21
|
|
22
|
+
error LogPolicyServiceMaxPremiumAmountExceeded(NftId policyNftId, Amount maxPremiumAmount, Amount premiumAmount);
|
23
23
|
error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
|
24
24
|
error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
|
25
25
|
error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
|
@@ -45,14 +45,21 @@ interface IPolicyService is IService {
|
|
45
45
|
error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
|
46
46
|
|
47
47
|
/// @dev creates the policy from {applicationNftId}.
|
48
|
+
/// @param applicationNftId the application NftId
|
49
|
+
/// @param activateAt the timestamp when the policy should be activated
|
50
|
+
/// @param maxPremiumAmount the maximum premium amount that the policy holder is willing to pay
|
51
|
+
/// During policy creation, the effective premium amount is calculated based on the provided parameters. If this
|
52
|
+
/// amount is higher than the maxPremiumAmount, the function will revert.
|
48
53
|
/// After successful completion of the function the policy can be referenced using the application NftId.
|
49
54
|
/// Locks the sum insured amount in the pool, but does not transfer tokens. Call collectPremium to transfer tokens.
|
50
55
|
/// Sets the policy state to collateralized.
|
51
56
|
/// Optionally activates the policy if activateAt is a non-zero timestamp.
|
52
57
|
/// only the related product may create a policy from an application
|
58
|
+
/// @return premiumAmount the effective premium amount
|
53
59
|
function createPolicy(
|
54
60
|
NftId applicationNftId,
|
55
|
-
Timestamp activateAt
|
61
|
+
Timestamp activateAt,
|
62
|
+
Amount maxPremiumAmount
|
56
63
|
)
|
57
64
|
external
|
58
65
|
returns (Amount premiumAmount);
|
@@ -9,7 +9,16 @@ import {StateId} from "../type/StateId.sol";
|
|
9
9
|
|
10
10
|
interface IRiskService is IService {
|
11
11
|
|
12
|
+
event LogRiskServiceRiskCreated(NftId productNftId, RiskId riskId);
|
13
|
+
event LogRiskServiceRiskUpdated(NftId productNftId, RiskId riskId);
|
14
|
+
event LogRiskServiceRiskLocked(NftId productNftId, RiskId riskId);
|
15
|
+
event LogRiskServiceRiskUnlocked(NftId productNftId, RiskId riskId);
|
16
|
+
event LogRiskServiceRiskClosed(NftId productNftId, RiskId riskId);
|
17
|
+
|
12
18
|
error ErrorRiskServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
19
|
+
error ErrorRiskServiceRiskNotActive(NftId productNftId, RiskId riskId);
|
20
|
+
error ErrorRiskServiceUnknownRisk(NftId productNftId, RiskId riskId);
|
21
|
+
error ErrorRiskServiceRiskNotLocked(NftId productNftId, RiskId riskId);
|
13
22
|
|
14
23
|
/// @dev Create a new risk with the given id and provided data.
|
15
24
|
/// The key of the risk derived from the risk id in comination with the product NftId.
|
@@ -25,9 +34,15 @@ interface IRiskService is IService {
|
|
25
34
|
bytes memory data
|
26
35
|
) external;
|
27
36
|
|
28
|
-
|
29
|
-
|
37
|
+
/// @dev Locks/unlocks the risk with the given id.
|
38
|
+
/// No new policies can be underwritten for a locked risk.
|
39
|
+
function setRiskLocked(
|
30
40
|
RiskId riskId,
|
31
|
-
|
41
|
+
bool locked
|
42
|
+
) external;
|
43
|
+
|
44
|
+
/// @dev Close the risk with the given id.
|
45
|
+
function closeRisk(
|
46
|
+
RiskId riskId
|
32
47
|
) external;
|
33
48
|
}
|
@@ -1,8 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
4
|
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
7
5
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
@@ -26,7 +24,6 @@ import {PolicyServiceLib} from "./PolicyServiceLib.sol";
|
|
26
24
|
import {ReferralId} from "../type/Referral.sol";
|
27
25
|
import {RiskId} from "../type/RiskId.sol";
|
28
26
|
import {Service} from "../shared/Service.sol";
|
29
|
-
import {StateId} from "../type/StateId.sol";
|
30
27
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
31
28
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
32
29
|
import {VersionPart} from "../type/Version.sol";
|
@@ -73,6 +70,7 @@ contract PolicyService is
|
|
73
70
|
)
|
74
71
|
external
|
75
72
|
virtual
|
73
|
+
restricted()
|
76
74
|
nonReentrant()
|
77
75
|
{
|
78
76
|
// checks
|
@@ -96,10 +94,12 @@ contract PolicyService is
|
|
96
94
|
/// @inheritdoc IPolicyService
|
97
95
|
function createPolicy(
|
98
96
|
NftId applicationNftId, // = policyNftId
|
99
|
-
Timestamp activateAt
|
97
|
+
Timestamp activateAt,
|
98
|
+
Amount maxPremiumAmount
|
100
99
|
)
|
101
100
|
external
|
102
101
|
virtual
|
102
|
+
restricted()
|
103
103
|
nonReentrant()
|
104
104
|
returns (Amount premiumAmount)
|
105
105
|
{
|
@@ -128,7 +128,7 @@ contract PolicyService is
|
|
128
128
|
|
129
129
|
// optional activation of policy
|
130
130
|
if(activateAt.gtz()) {
|
131
|
-
applicationInfo =
|
131
|
+
applicationInfo = PolicyServiceLib.activate(applicationNftId, applicationInfo, activateAt);
|
132
132
|
}
|
133
133
|
|
134
134
|
// update policy and set state to collateralized
|
@@ -150,7 +150,14 @@ contract PolicyService is
|
|
150
150
|
bundleNftId,
|
151
151
|
applicationInfo.referralId);
|
152
152
|
|
153
|
-
premiumAmount
|
153
|
+
if (premium.premiumAmount > maxPremiumAmount) {
|
154
|
+
revert LogPolicyServiceMaxPremiumAmountExceeded(
|
155
|
+
applicationNftId,
|
156
|
+
maxPremiumAmount,
|
157
|
+
premium.premiumAmount);
|
158
|
+
}
|
159
|
+
|
160
|
+
premiumAmount = premium.premiumAmount;
|
154
161
|
instance.getInstanceStore().createPremium(
|
155
162
|
applicationNftId,
|
156
163
|
premium);
|
@@ -186,6 +193,7 @@ contract PolicyService is
|
|
186
193
|
)
|
187
194
|
external
|
188
195
|
virtual
|
196
|
+
restricted()
|
189
197
|
nonReentrant()
|
190
198
|
{
|
191
199
|
// checks
|
@@ -202,7 +210,7 @@ contract PolicyService is
|
|
202
210
|
}
|
203
211
|
|
204
212
|
// check if premium has already been collected
|
205
|
-
if (instanceReader.
|
213
|
+
if (instanceReader.getPremiumState(policyNftId) == PAID()) {
|
206
214
|
revert ErrorPolicyServicePremiumAlreadyPaid(policyNftId);
|
207
215
|
}
|
208
216
|
|
@@ -232,7 +240,7 @@ contract PolicyService is
|
|
232
240
|
|
233
241
|
// optionally activate policy
|
234
242
|
if(activateAt.gtz()) {
|
235
|
-
policyInfo =
|
243
|
+
policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
|
236
244
|
}
|
237
245
|
|
238
246
|
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
@@ -250,6 +258,7 @@ contract PolicyService is
|
|
250
258
|
function activate(NftId policyNftId, Timestamp activateAt)
|
251
259
|
external
|
252
260
|
virtual
|
261
|
+
restricted()
|
253
262
|
nonReentrant()
|
254
263
|
{
|
255
264
|
// checks
|
@@ -259,7 +268,7 @@ contract PolicyService is
|
|
259
268
|
) = _getAndVerifyCallerForPolicy(policyNftId);
|
260
269
|
|
261
270
|
// effects
|
262
|
-
policyInfo =
|
271
|
+
policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
|
263
272
|
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
264
273
|
|
265
274
|
// log policy activation before interactions with policy holder
|
@@ -277,6 +286,7 @@ contract PolicyService is
|
|
277
286
|
)
|
278
287
|
external
|
279
288
|
virtual
|
289
|
+
restricted()
|
280
290
|
nonReentrant()
|
281
291
|
{
|
282
292
|
// checks
|
@@ -289,8 +299,8 @@ contract PolicyService is
|
|
289
299
|
revert ErrorPolicyServicePolicyNotActivated(policyNftId);
|
290
300
|
}
|
291
301
|
|
292
|
-
if (newActivateAt < TimestampLib.
|
293
|
-
revert ErrorPolicyServicePolicyActivationTooEarly(policyNftId, TimestampLib.
|
302
|
+
if (newActivateAt < TimestampLib.current()) {
|
303
|
+
revert ErrorPolicyServicePolicyActivationTooEarly(policyNftId, TimestampLib.current(), newActivateAt);
|
294
304
|
}
|
295
305
|
|
296
306
|
if (newActivateAt > policyInfo.expiredAt) {
|
@@ -317,6 +327,7 @@ contract PolicyService is
|
|
317
327
|
)
|
318
328
|
external
|
319
329
|
virtual
|
330
|
+
restricted()
|
320
331
|
nonReentrant()
|
321
332
|
returns (Timestamp expiredAt)
|
322
333
|
{
|
@@ -344,6 +355,7 @@ contract PolicyService is
|
|
344
355
|
)
|
345
356
|
external
|
346
357
|
virtual
|
358
|
+
restricted()
|
347
359
|
nonReentrant()
|
348
360
|
returns (Timestamp expiredAt)
|
349
361
|
{
|
@@ -368,6 +380,7 @@ contract PolicyService is
|
|
368
380
|
)
|
369
381
|
external
|
370
382
|
virtual
|
383
|
+
restricted()
|
371
384
|
nonReentrant()
|
372
385
|
{
|
373
386
|
// checks
|
@@ -387,7 +400,7 @@ contract PolicyService is
|
|
387
400
|
RiskId riskId = policyInfo.riskId;
|
388
401
|
NftId bundleNftId = policyInfo.bundleNftId;
|
389
402
|
|
390
|
-
if (instanceReader.
|
403
|
+
if (instanceReader.getPremiumState(policyNftId) != PAID()) {
|
391
404
|
revert ErrorPolicyServicePremiumNotPaid(policyNftId, policyInfo.premiumAmount);
|
392
405
|
}
|
393
406
|
|
@@ -401,7 +414,7 @@ contract PolicyService is
|
|
401
414
|
// TODO consider to also set expiredAt to current block timestamp if that timestamp is still in the futue
|
402
415
|
|
403
416
|
// update policy state to closed
|
404
|
-
policyInfo.closedAt = TimestampLib.
|
417
|
+
policyInfo.closedAt = TimestampLib.current();
|
405
418
|
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, CLOSED());
|
406
419
|
|
407
420
|
// unlink policy from risk and bundle
|
@@ -412,6 +425,7 @@ contract PolicyService is
|
|
412
425
|
emit LogPolicyServicePolicyClosed(policyNftId);
|
413
426
|
}
|
414
427
|
|
428
|
+
|
415
429
|
/// @dev shared functionality for expire() and policyExpire().
|
416
430
|
function _expire(
|
417
431
|
IInstance instance,
|
@@ -422,19 +436,12 @@ contract PolicyService is
|
|
422
436
|
internal
|
423
437
|
returns (Timestamp)
|
424
438
|
{
|
425
|
-
PolicyServiceLib.
|
426
|
-
|
439
|
+
policyInfo = PolicyServiceLib.expire(
|
440
|
+
instance.getInstanceReader(),
|
427
441
|
policyNftId,
|
428
|
-
|
429
|
-
|
442
|
+
policyInfo,
|
443
|
+
expireAt);
|
430
444
|
|
431
|
-
// effects
|
432
|
-
// update policyInfo with new expiredAt timestamp
|
433
|
-
if (expireAt.gtz()) {
|
434
|
-
policyInfo.expiredAt = expireAt;
|
435
|
-
} else {
|
436
|
-
policyInfo.expiredAt = TimestampLib.blockTimestamp();
|
437
|
-
}
|
438
445
|
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
439
446
|
|
440
447
|
emit LogPolicyServicePolicyExpirationUpdated(policyNftId, policyInfo.expiredAt);
|
@@ -446,32 +453,6 @@ contract PolicyService is
|
|
446
453
|
}
|
447
454
|
|
448
455
|
|
449
|
-
function _activate(
|
450
|
-
NftId policyNftId,
|
451
|
-
IPolicy.PolicyInfo memory policyInfo,
|
452
|
-
Timestamp activateAt
|
453
|
-
)
|
454
|
-
internal
|
455
|
-
virtual
|
456
|
-
view
|
457
|
-
returns (IPolicy.PolicyInfo memory)
|
458
|
-
{
|
459
|
-
// fail if policy has already been activated and activateAt is different
|
460
|
-
if(! policyInfo.activatedAt.eqz() && activateAt != policyInfo.activatedAt) {
|
461
|
-
revert ErrorPolicyServicePolicyAlreadyActivated(policyNftId);
|
462
|
-
}
|
463
|
-
|
464
|
-
// ignore if policy has already been activated and activateAt is the same
|
465
|
-
if (policyInfo.activatedAt == activateAt) {
|
466
|
-
return policyInfo;
|
467
|
-
}
|
468
|
-
|
469
|
-
policyInfo.activatedAt = activateAt;
|
470
|
-
policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
|
471
|
-
|
472
|
-
return policyInfo;
|
473
|
-
}
|
474
|
-
|
475
456
|
/// @dev update counters by calling the involved services
|
476
457
|
function _processSale(
|
477
458
|
InstanceReader instanceReader,
|