@etherisc/gif-next 0.0.2-952752e-374 → 0.0.2-957bd35-589
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 +63 -312
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +690 -296
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +438 -35
- 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 +529 -221
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +191 -21
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +66 -154
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +427 -53
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -98
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +512 -204
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +167 -77
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -97
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +358 -82
- 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 +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +401 -59
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -142
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +426 -52
- 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 +128 -178
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +426 -52
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +401 -59
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +360 -193
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +426 -52
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- 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/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +482 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +355 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +520 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1037 -437
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -71
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +674 -487
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +387 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1328 -2007
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- 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 +20 -20
- 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 +33 -45
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +425 -54
- 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 -31
- 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 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +401 -59
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +280 -209
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +134 -68
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +174 -87
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +306 -166
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +547 -340
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +162 -68
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +123 -41
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +426 -52
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +137 -139
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -82
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +45 -23
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +133 -65
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +231 -19
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +245 -161
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +146 -80
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +279 -43
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +111 -41
- 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 +52 -22
- 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 +90 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +824 -430
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- 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 +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +933 -457
- 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 +202 -126
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -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 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +206 -252
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -72
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
- 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 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +111 -157
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- 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/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 +19 -31
- 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 +62 -161
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1453 -153
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +187 -107
- 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 +1565 -239
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +146 -67
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +229 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +99 -45
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
- 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 +159 -87
- 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 +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -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 +93 -37
- 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 +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 +9 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- 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/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/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 +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
- 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 +81 -27
- 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 +4 -2
- package/contracts/authorization/AccessAdmin.sol +364 -344
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +23 -32
- package/contracts/authorization/Authorization.sol +161 -260
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +85 -83
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +14 -13
- package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
- package/contracts/distribution/Distribution.sol +22 -64
- package/contracts/distribution/DistributionService.sol +166 -75
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +34 -19
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +7 -12
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +94 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +103 -13
- package/contracts/instance/IInstanceService.sol +54 -7
- package/contracts/instance/Instance.sol +177 -61
- package/contracts/instance/InstanceAdmin.sol +199 -218
- package/contracts/instance/InstanceAuthorizationV3.sol +120 -70
- package/contracts/instance/InstanceReader.sol +392 -382
- package/contracts/instance/InstanceService.sol +283 -173
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -6
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +57 -96
- package/contracts/pool/IBundleService.sol +27 -32
- package/contracts/pool/IPoolService.sol +57 -40
- package/contracts/pool/Pool.sol +15 -29
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +189 -190
- package/contracts/product/ApplicationService.sol +85 -17
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +31 -9
- package/contracts/product/ClaimService.sol +112 -194
- package/contracts/product/IApplicationService.sol +24 -2
- package/contracts/product/IClaimService.sol +6 -6
- package/contracts/product/IPolicyService.sol +20 -8
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +110 -201
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PricingService.sol +33 -31
- package/contracts/product/Product.sol +61 -33
- package/contracts/product/RiskService.sol +63 -25
- package/contracts/registry/IRegistry.sol +17 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +19 -9
- package/contracts/registry/RegistryAdmin.sol +85 -256
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +70 -116
- package/contracts/registry/ReleaseRegistry.sol +57 -43
- package/contracts/registry/ServiceAuthorizationV3.sol +131 -31
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +19 -35
- package/contracts/shared/ComponentService.sol +281 -290
- package/contracts/shared/ContractLib.sol +137 -77
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -26
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +8 -13
- package/contracts/shared/NftOwnable.sol +4 -2
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/Service.sol +6 -4
- package/contracts/shared/TokenHandler.sol +44 -91
- package/contracts/staking/IStaking.sol +265 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +475 -204
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -180
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- 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 +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +69 -52
- package/contracts/type/RiskId.sol +4 -3
- package/contracts/type/RoleId.sol +60 -45
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/type/Version.sol +39 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- 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/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- 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,12 +13,12 @@ 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";
|
21
|
+
import {ProductStore} from "../instance/ProductStore.sol";
|
23
22
|
import {Service} from "../shared/Service.sol";
|
24
23
|
import {StateId} from "../type/StateId.sol";
|
25
24
|
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CANCELLED, CONFIRMED, CLOSED, EXPECTED, PAID} from "../type/StateId.sol";
|
@@ -68,14 +67,13 @@ contract ClaimService is
|
|
68
67
|
{
|
69
68
|
// checks
|
70
69
|
(
|
71
|
-
|
72
|
-
IInstance
|
73
|
-
InstanceStore instanceStore,
|
70
|
+
,,
|
71
|
+
IInstance.InstanceContracts memory instanceContracts,
|
74
72
|
IPolicy.PolicyInfo memory policyInfo
|
75
73
|
) = _verifyCallerWithPolicy(policyNftId);
|
76
74
|
|
77
75
|
// check policy is in its active period
|
78
|
-
if(policyInfo.activatedAt.eqz() || TimestampLib.
|
76
|
+
if(policyInfo.activatedAt.eqz() || TimestampLib.current() >= policyInfo.expiredAt) {
|
79
77
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
80
78
|
}
|
81
79
|
|
@@ -84,7 +82,7 @@ contract ClaimService is
|
|
84
82
|
// effects
|
85
83
|
// create new claim
|
86
84
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
87
|
-
|
85
|
+
instanceContracts.productStore.createClaim(
|
88
86
|
policyNftId,
|
89
87
|
claimId,
|
90
88
|
IPolicy.ClaimInfo({
|
@@ -100,7 +98,7 @@ contract ClaimService is
|
|
100
98
|
// policy claim amount is only updated when claim is confirmed
|
101
99
|
policyInfo.claimsCount += 1;
|
102
100
|
policyInfo.openClaimsCount += 1;
|
103
|
-
|
101
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
104
102
|
|
105
103
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
106
104
|
}
|
@@ -114,6 +112,7 @@ contract ClaimService is
|
|
114
112
|
)
|
115
113
|
external
|
116
114
|
virtual
|
115
|
+
restricted()
|
117
116
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
118
117
|
{
|
119
118
|
// checks
|
@@ -122,8 +121,7 @@ contract ClaimService is
|
|
122
121
|
(
|
123
122
|
NftId productNftId,
|
124
123
|
IInstance instance,
|
125
|
-
|
126
|
-
InstanceStore instanceStore,
|
124
|
+
IInstance.InstanceContracts memory instanceContracts,
|
127
125
|
IPolicy.PolicyInfo memory policyInfo
|
128
126
|
) = _verifyCallerWithPolicy(policyNftId);
|
129
127
|
|
@@ -131,25 +129,25 @@ contract ClaimService is
|
|
131
129
|
|
132
130
|
// effects
|
133
131
|
// check/update claim info
|
134
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
132
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
135
133
|
claimInfo.claimAmount = confirmedAmount;
|
136
134
|
claimInfo.processData = data;
|
137
|
-
|
135
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
138
136
|
|
139
137
|
// update and save policy info with instance
|
140
138
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
141
|
-
|
139
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
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);
|
149
147
|
|
150
148
|
// interactions
|
151
149
|
// callback to pool if applicable
|
152
|
-
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
150
|
+
_processConfirmedClaimByPool(instanceContracts.instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
153
151
|
|
154
152
|
// callback to policy holder if applicable
|
155
153
|
_policyHolderClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
@@ -163,27 +161,26 @@ 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
|
173
|
-
InstanceReader instanceReader,
|
174
|
-
InstanceStore instanceStore,
|
170
|
+
,,
|
171
|
+
IInstance.InstanceContracts memory instanceContracts,
|
175
172
|
IPolicy.PolicyInfo memory policyInfo
|
176
173
|
) = _verifyCallerWithPolicy(policyNftId);
|
177
174
|
|
178
175
|
// check/update claim info
|
179
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
176
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
180
177
|
claimInfo.processData = data;
|
181
|
-
claimInfo.closedAt = TimestampLib.
|
182
|
-
|
178
|
+
claimInfo.closedAt = TimestampLib.current();
|
179
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
183
180
|
|
184
181
|
// update and save policy info with instance
|
185
182
|
policyInfo.openClaimsCount -= 1;
|
186
|
-
|
183
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
187
184
|
|
188
185
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
189
186
|
}
|
@@ -195,49 +192,46 @@ contract ClaimService is
|
|
195
192
|
)
|
196
193
|
external
|
197
194
|
virtual
|
195
|
+
restricted()
|
198
196
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
199
197
|
{
|
200
198
|
(
|
201
|
-
|
202
|
-
IInstance
|
203
|
-
InstanceReader instanceReader,
|
204
|
-
InstanceStore instanceStore,
|
199
|
+
,,
|
200
|
+
IInstance.InstanceContracts memory instanceContracts,
|
205
201
|
IPolicy.PolicyInfo memory policyInfo
|
206
202
|
) = _verifyCallerWithPolicy(policyNftId);
|
207
203
|
|
208
204
|
// check/update claim info
|
209
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
210
|
-
claimInfo.closedAt = TimestampLib.
|
211
|
-
|
205
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
206
|
+
claimInfo.closedAt = TimestampLib.current();
|
207
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
212
208
|
|
213
209
|
// update and save policy info with instance
|
214
210
|
policyInfo.openClaimsCount -= 1;
|
215
|
-
|
211
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
216
212
|
|
217
213
|
emit LogClaimServiceClaimRevoked(policyNftId, claimId);
|
218
214
|
}
|
219
215
|
|
220
216
|
|
221
|
-
function
|
217
|
+
function cancelConfirmedClaim(
|
222
218
|
NftId policyNftId,
|
223
219
|
ClaimId claimId
|
224
220
|
)
|
225
221
|
external
|
226
222
|
virtual
|
223
|
+
restricted()
|
227
224
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
228
225
|
{
|
229
226
|
_checkNftType(policyNftId, POLICY());
|
230
227
|
|
231
228
|
(
|
232
|
-
|
233
|
-
IInstance
|
234
|
-
InstanceReader instanceReader,
|
235
|
-
InstanceStore instanceStore,
|
236
|
-
IPolicy.PolicyInfo memory policyInfo
|
229
|
+
,,
|
230
|
+
IInstance.InstanceContracts memory instanceContracts,
|
237
231
|
) = _verifyCallerWithPolicy(policyNftId);
|
238
232
|
|
239
233
|
// check/update claim info
|
240
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, CONFIRMED());
|
234
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, CONFIRMED());
|
241
235
|
|
242
236
|
// check claim has no open payouts
|
243
237
|
if(claimInfo.openPayoutsCount > 0) {
|
@@ -247,17 +241,10 @@ contract ClaimService is
|
|
247
241
|
claimInfo.openPayoutsCount);
|
248
242
|
}
|
249
243
|
|
250
|
-
|
251
|
-
|
252
|
-
revert ErrorClaimServiceClaimWithMissingPayouts(
|
253
|
-
policyNftId,
|
254
|
-
claimId,
|
255
|
-
claimInfo.claimAmount,
|
256
|
-
claimInfo.paidAmount);
|
257
|
-
}
|
244
|
+
claimInfo.closedAt = TimestampLib.current();
|
245
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CANCELLED());
|
258
246
|
|
259
|
-
|
260
|
-
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
247
|
+
emit LogClaimServiceClaimCancelled(policyNftId, claimId);
|
261
248
|
}
|
262
249
|
|
263
250
|
|
@@ -270,6 +257,7 @@ contract ClaimService is
|
|
270
257
|
)
|
271
258
|
external
|
272
259
|
virtual
|
260
|
+
restricted()
|
273
261
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
274
262
|
returns (PayoutId payoutId)
|
275
263
|
{
|
@@ -294,6 +282,7 @@ contract ClaimService is
|
|
294
282
|
)
|
295
283
|
external
|
296
284
|
virtual
|
285
|
+
restricted()
|
297
286
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
298
287
|
returns (PayoutId payoutId)
|
299
288
|
{
|
@@ -314,98 +303,82 @@ contract ClaimService is
|
|
314
303
|
)
|
315
304
|
external
|
316
305
|
virtual
|
306
|
+
restricted()
|
317
307
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
308
|
+
returns (Amount netPayoutAmount, Amount processingFeeAmount)
|
318
309
|
{
|
319
310
|
// checks
|
320
311
|
(
|
321
|
-
|
322
|
-
IInstance
|
323
|
-
InstanceReader instanceReader,
|
324
|
-
InstanceStore instanceStore,
|
312
|
+
,,
|
313
|
+
IInstance.InstanceContracts memory instanceContracts,
|
325
314
|
IPolicy.PolicyInfo memory policyInfo
|
326
315
|
) = _verifyCallerWithPolicy(policyNftId);
|
327
316
|
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
policyNftId,
|
340
|
-
|
341
|
-
claimInfo.claimAmount,
|
342
|
-
claimInfo.paidAmount + payoutInfo.amount);
|
343
|
-
}
|
317
|
+
IPolicy.ClaimInfo memory claimInfo;
|
318
|
+
address payoutBeneficiary;
|
319
|
+
Amount payoutAmount;
|
320
|
+
|
321
|
+
{
|
322
|
+
// check that payout exists and is open
|
323
|
+
IPolicy.PayoutInfo memory payoutInfo = instanceContracts.instanceReader.getPayoutInfo(policyNftId, payoutId);
|
324
|
+
payoutBeneficiary = payoutInfo.beneficiary;
|
325
|
+
payoutAmount = payoutInfo.amount;
|
326
|
+
StateId payoutState = instanceContracts.instanceReader.getPayoutState(policyNftId, payoutId);
|
327
|
+
if(payoutState != EXPECTED()) {
|
328
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
329
|
+
}
|
344
330
|
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
331
|
+
// check that payout amount does not violate claim amount
|
332
|
+
claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
333
|
+
if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
|
334
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
335
|
+
policyNftId,
|
336
|
+
payoutId.toClaimId(),
|
337
|
+
claimInfo.claimAmount,
|
338
|
+
claimInfo.paidAmount + payoutInfo.amount);
|
339
|
+
}
|
349
340
|
|
350
|
-
|
341
|
+
// effects
|
342
|
+
// update and save payout info with instance
|
343
|
+
payoutInfo.paidAt = TimestampLib.current();
|
344
|
+
instanceContracts.productStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
345
|
+
}
|
351
346
|
|
347
|
+
// update and save claim info with instance
|
352
348
|
{
|
353
349
|
ClaimId claimId = payoutId.toClaimId();
|
354
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
355
350
|
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
356
351
|
claimInfo.openPayoutsCount -= 1;
|
357
352
|
|
358
353
|
// check if this payout is closing the linked claim
|
359
354
|
// update claim and policy info accordingly
|
360
355
|
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
361
|
-
claimInfo.closedAt = TimestampLib.
|
362
|
-
|
356
|
+
claimInfo.closedAt = TimestampLib.current();
|
357
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
363
358
|
|
364
359
|
policyInfo.openClaimsCount -= 1;
|
365
360
|
} else {
|
366
|
-
|
361
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
367
362
|
}
|
368
363
|
}
|
369
364
|
|
370
365
|
// update and save policy info with instance
|
371
366
|
policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
|
372
|
-
|
367
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
373
368
|
|
374
|
-
|
375
|
-
_poolService.processPayout(
|
376
|
-
instance,
|
377
|
-
address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
|
378
|
-
policyNftId,
|
379
|
-
policyInfo,
|
380
|
-
payoutAmount);
|
381
|
-
|
382
|
-
// transfer payout token and fee
|
383
|
-
{
|
384
|
-
(
|
385
|
-
Amount netPayoutAmount,
|
386
|
-
Amount processingFeeAmount,
|
387
|
-
address beneficiary
|
388
|
-
) = _calculatePayoutAmount(
|
389
|
-
instanceReader,
|
390
|
-
policyNftId,
|
391
|
-
policyInfo,
|
392
|
-
payoutInfo);
|
393
|
-
|
394
|
-
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount, processingFeeAmount);
|
395
|
-
|
396
|
-
{
|
397
|
-
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
398
|
-
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
399
|
-
poolInfo.tokenHandler.pushToken(
|
400
|
-
beneficiary,
|
401
|
-
netPayoutAmount);
|
402
|
-
|
403
|
-
// TODO add 2nd token tx if processingFeeAmount > 0
|
404
|
-
}
|
369
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
|
405
370
|
|
406
|
-
|
407
|
-
|
408
|
-
|
371
|
+
// effects + interactions (push tokens to beneficiary, product)
|
372
|
+
// delegate to pool to update book keeping and moving tokens payout
|
373
|
+
(netPayoutAmount, processingFeeAmount) = _poolService.processPayout(
|
374
|
+
instanceContracts.instanceReader,
|
375
|
+
instanceContracts.instanceStore,
|
376
|
+
policyInfo.productNftId, // product nft id
|
377
|
+
policyNftId,
|
378
|
+
policyInfo.bundleNftId,
|
379
|
+
payoutId,
|
380
|
+
payoutAmount,
|
381
|
+
payoutBeneficiary);
|
409
382
|
}
|
410
383
|
|
411
384
|
function cancelPayout(
|
@@ -414,30 +387,28 @@ contract ClaimService is
|
|
414
387
|
)
|
415
388
|
external
|
416
389
|
virtual
|
390
|
+
restricted()
|
417
391
|
{
|
418
392
|
// checks
|
419
393
|
(
|
420
|
-
|
421
|
-
IInstance
|
422
|
-
InstanceReader instanceReader,
|
423
|
-
InstanceStore instanceStore,
|
424
|
-
IPolicy.PolicyInfo memory policyInfo
|
394
|
+
,,
|
395
|
+
IInstance.InstanceContracts memory instanceContracts,
|
425
396
|
) = _verifyCallerWithPolicy(policyNftId);
|
426
397
|
|
427
|
-
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
398
|
+
StateId payoutState = instanceContracts.instanceReader.getPayoutState(policyNftId, payoutId);
|
428
399
|
if (payoutState != EXPECTED()) {
|
429
400
|
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
430
401
|
}
|
431
402
|
|
432
403
|
// effects
|
433
404
|
// update and save payout info with instance
|
434
|
-
|
405
|
+
instanceContracts.productStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
|
435
406
|
|
436
407
|
{
|
437
408
|
ClaimId claimId = payoutId.toClaimId();
|
438
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
409
|
+
IPolicy.ClaimInfo memory claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, claimId);
|
439
410
|
claimInfo.openPayoutsCount -= 1;
|
440
|
-
|
411
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
441
412
|
}
|
442
413
|
|
443
414
|
emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
|
@@ -480,18 +451,16 @@ contract ClaimService is
|
|
480
451
|
{
|
481
452
|
// checks
|
482
453
|
(
|
483
|
-
|
484
|
-
,
|
485
|
-
|
486
|
-
InstanceStore instanceStore,
|
487
|
-
IPolicy.PolicyInfo memory policyInfo
|
454
|
+
,,
|
455
|
+
IInstance.InstanceContracts memory instanceContracts,
|
456
|
+
// IPolicy.PolicyInfo memory policyInfo
|
488
457
|
) = _verifyCallerWithPolicy(policyNftId);
|
489
458
|
|
490
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
459
|
+
IPolicy.ClaimInfo memory claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, claimId);
|
491
460
|
|
492
461
|
{
|
493
462
|
// check claim state
|
494
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
463
|
+
StateId claimState = instanceContracts.instanceReader.getClaimState(policyNftId, claimId);
|
495
464
|
if (claimState != CONFIRMED()) {
|
496
465
|
revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
|
497
466
|
}
|
@@ -512,7 +481,7 @@ contract ClaimService is
|
|
512
481
|
beneficiary = getRegistry().ownerOf(policyNftId);
|
513
482
|
}
|
514
483
|
|
515
|
-
|
484
|
+
instanceContracts.productStore.createPayout(
|
516
485
|
policyNftId,
|
517
486
|
payoutId,
|
518
487
|
IPolicy.PayoutInfo({
|
@@ -525,51 +494,14 @@ contract ClaimService is
|
|
525
494
|
// update and save claim info with instance
|
526
495
|
claimInfo.payoutsCount += 1;
|
527
496
|
claimInfo.openPayoutsCount += 1;
|
528
|
-
|
497
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
529
498
|
|
530
499
|
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
531
500
|
}
|
532
501
|
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
NftId policyNftId,
|
537
|
-
IPolicy.PolicyInfo memory policyInfo,
|
538
|
-
IPolicy.PayoutInfo memory payoutInfo
|
539
|
-
)
|
540
|
-
internal
|
541
|
-
view
|
542
|
-
returns (
|
543
|
-
Amount netPayoutAmount,
|
544
|
-
Amount processingFeeAmount,
|
545
|
-
address beneficiary
|
546
|
-
)
|
547
|
-
{
|
548
|
-
Amount payoutAmount = payoutInfo.amount;
|
549
|
-
|
550
|
-
if(payoutAmount.gtz()) {
|
551
|
-
NftId productNftId = policyInfo.productNftId;
|
552
|
-
|
553
|
-
// get pool component info from policy or product
|
554
|
-
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
555
|
-
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
556
|
-
|
557
|
-
netPayoutAmount = payoutAmount;
|
558
|
-
|
559
|
-
if (payoutInfo.beneficiary == address(0)) {
|
560
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
561
|
-
} else {
|
562
|
-
beneficiary = payoutInfo.beneficiary;
|
563
|
-
}
|
564
|
-
|
565
|
-
IComponents.FeeInfo memory feeInfo = instanceReader.getFeeInfo(productNftId);
|
566
|
-
if(FeeLib.gtz(feeInfo.processingFee)) {
|
567
|
-
// TODO calculate and set net payout and processing fees
|
568
|
-
}
|
569
|
-
}
|
570
|
-
}
|
571
|
-
|
572
|
-
|
502
|
+
/// @dev Verifies the caller is a product and the policy is active.
|
503
|
+
/// Returns the product nft id, instance, instance contracts and policy info.
|
504
|
+
/// in InstanceContracts only the contracts instanceReader, instanceStore and productStore are set.
|
573
505
|
function _verifyCallerWithPolicy(
|
574
506
|
NftId policyNftId
|
575
507
|
)
|
@@ -579,17 +511,17 @@ contract ClaimService is
|
|
579
511
|
returns (
|
580
512
|
NftId productNftId,
|
581
513
|
IInstance instance,
|
582
|
-
|
583
|
-
InstanceStore instanceStore,
|
514
|
+
IInstance.InstanceContracts memory instanceContracts,
|
584
515
|
IPolicy.PolicyInfo memory policyInfo
|
585
516
|
)
|
586
517
|
{
|
587
|
-
(productNftId, instance) =
|
588
|
-
instanceReader = instance.getInstanceReader();
|
589
|
-
instanceStore = instance.getInstanceStore();
|
518
|
+
(productNftId, instance) = _getAndVerifyActiveProduct();
|
519
|
+
instanceContracts.instanceReader = InstanceReader(instance.getInstanceReader());
|
520
|
+
instanceContracts.instanceStore = InstanceStore(instance.getInstanceStore());
|
521
|
+
instanceContracts.productStore = ProductStore(instance.getProductStore());
|
590
522
|
|
591
523
|
// check caller(product) policy match
|
592
|
-
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
524
|
+
policyInfo = instanceContracts.instanceReader.getPolicyInfo(policyNftId);
|
593
525
|
if(policyInfo.productNftId != productNftId) {
|
594
526
|
revert ErrorClaimServicePolicyProductMismatch(policyNftId,
|
595
527
|
policyInfo.productNftId,
|
@@ -597,7 +529,8 @@ contract ClaimService is
|
|
597
529
|
}
|
598
530
|
}
|
599
531
|
|
600
|
-
|
532
|
+
|
533
|
+
function _getAndVerifyActiveProduct()
|
601
534
|
internal
|
602
535
|
view
|
603
536
|
returns (
|
@@ -672,22 +605,7 @@ contract ClaimService is
|
|
672
605
|
}
|
673
606
|
}
|
674
607
|
|
675
|
-
|
676
|
-
function _policyHolderPayoutExecuted(
|
677
|
-
NftId policyNftId,
|
678
|
-
PayoutId payoutId,
|
679
|
-
address beneficiary,
|
680
|
-
Amount payoutAmount
|
681
|
-
)
|
682
|
-
internal
|
683
|
-
{
|
684
|
-
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
685
|
-
if(address(policyHolder) != address(0)) {
|
686
|
-
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
687
|
-
}
|
688
|
-
}
|
689
|
-
|
690
|
-
|
608
|
+
// TODO: move to policy helper lib or something
|
691
609
|
function _getPolicyHolder(NftId policyNftId)
|
692
610
|
internal
|
693
611
|
view
|
@@ -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,11 +14,34 @@ 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
|
38
|
+
error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
19
39
|
error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
|
20
|
-
error
|
40
|
+
error ErrorApplicationServiceRiskLocked(RiskId riskId, NftId productNftId);
|
21
41
|
error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
|
22
42
|
error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
|
43
|
+
error ErrorApplicationServiceReferralInvalid(NftId productNftId, NftId distributionNftId, ReferralId referralId);
|
44
|
+
|
23
45
|
|
24
46
|
/// @dev creates a new application based on the specified attributes
|
25
47
|
/// may only be called by a product component
|
@@ -19,15 +19,14 @@ 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);
|
26
25
|
event LogClaimServiceClaimRevoked(NftId policyNftId, ClaimId claimId);
|
27
|
-
event
|
26
|
+
event LogClaimServiceClaimCancelled(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);
|
31
30
|
event LogClaimServicePayoutCancelled(NftId policyNftId, PayoutId payoutId);
|
32
31
|
|
33
32
|
error ErrorClaimServiceBeneficiarySet(NftId policyNftId, PayoutId payoutId, address beneficiary);
|
@@ -84,9 +83,10 @@ interface IClaimService is
|
|
84
83
|
) external;
|
85
84
|
|
86
85
|
|
87
|
-
/// @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
|
88
88
|
/// function can only be called by product, policy needs to match with calling product
|
89
|
-
function
|
89
|
+
function cancelConfirmedClaim(
|
90
90
|
NftId policyNftId,
|
91
91
|
ClaimId claimId
|
92
92
|
) external;
|
@@ -126,7 +126,7 @@ interface IClaimService is
|
|
126
126
|
function processPayout(
|
127
127
|
NftId policyNftId,
|
128
128
|
PayoutId payoutId
|
129
|
-
) external;
|
129
|
+
) external returns (Amount netPayoutAmount, Amount processingFeeAmount);
|
130
130
|
|
131
131
|
/// @dev cancels the specified payout. no tokens are moved, payout is set to cancelled.
|
132
132
|
function cancelPayout(
|