@etherisc/gif-next 0.0.2-f761c0d-394 → 0.0.2-f78c672-338
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 +58 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +203 -77
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
- 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 +142 -44
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +176 -451
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +125 -365
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +469 -283
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +151 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -183
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +314 -86
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1431 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +164 -63
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +108 -106
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +201 -161
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +447 -144
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1026 -298
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +134 -269
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +640 -493
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +139 -335
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
- 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 +128 -126
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +115 -303
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +162 -387
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +331 -204
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +206 -29
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +143 -195
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -312
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +128 -370
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +653 -532
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +194 -178
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +100 -90
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +258 -396
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +250 -198
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +459 -309
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +253 -306
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +123 -121
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +256 -394
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +370 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +597 -80
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +351 -169
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +579 -495
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +143 -107
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +547 -224
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +117 -126
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -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 +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +104 -303
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +122 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +99 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +156 -110
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- 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 +7 -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 +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- 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 +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -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/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +66 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +232 -134
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +321 -202
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +17 -10
- package/contracts/authorization/IAuthorization.sol +27 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +18 -25
- package/contracts/distribution/BasicDistributionAuthorization.sol +26 -9
- package/contracts/distribution/Distribution.sol +41 -74
- package/contracts/distribution/DistributionService.sol +191 -108
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +9 -14
- package/contracts/distribution/IDistributionService.sol +40 -22
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +437 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +25 -41
- package/contracts/instance/IInstanceService.sol +13 -33
- package/contracts/instance/Instance.sol +60 -67
- package/contracts/instance/InstanceAdmin.sol +258 -87
- package/contracts/instance/InstanceAuthorizationV3.sol +64 -53
- package/contracts/instance/InstanceReader.sol +288 -43
- package/contracts/instance/InstanceService.sol +129 -168
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +24 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +14 -15
- package/contracts/instance/module/IDistribution.sol +5 -3
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +21 -22
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +38 -27
- package/contracts/pool/BasicPoolAuthorization.sol +36 -9
- package/contracts/pool/BundleService.sol +204 -105
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -10
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +145 -111
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +546 -241
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +98 -78
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +13 -44
- package/contracts/product/BasicProductAuthorization.sol +25 -9
- package/contracts/product/ClaimService.sol +365 -175
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +28 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +476 -269
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +71 -62
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +169 -92
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +74 -29
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -216
- package/contracts/registry/RegistryAdmin.sol +185 -196
- package/contracts/registry/RegistryService.sol +41 -66
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +511 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +99 -52
- package/contracts/registry/TokenRegistry.sol +8 -10
- package/contracts/shared/Component.sol +74 -128
- package/contracts/shared/ComponentService.sol +453 -342
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +253 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +49 -39
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +81 -35
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +18 -36
- package/contracts/shared/TokenHandler.sol +309 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +8 -11
- package/contracts/staking/IStakingService.sol +20 -8
- package/contracts/staking/StakeManagerLib.sol +19 -26
- package/contracts/staking/Staking.sol +86 -73
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +24 -21
- package/contracts/staking/StakingService.sol +54 -35
- package/contracts/staking/StakingServiceManager.sol +8 -7
- package/contracts/staking/StakingStore.sol +12 -22
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +55 -27
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +35 -122
- package/contracts/type/Version.sol +18 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +7 -6
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
- 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/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/base/ObjectManager.sol +0 -79
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -487
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,55 +1,37 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {IService} from "./IApplicationService.sol";
|
6
|
-
|
4
|
+
import {IClaimService} from "./IClaimService.sol";
|
7
5
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
import {IProductComponent} from "./IProductComponent.sol";
|
10
|
-
import {Product} from "./Product.sol";
|
11
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
12
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
13
6
|
import {IInstance} from "../instance/IInstance.sol";
|
14
7
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {
|
18
|
-
|
19
|
-
import {
|
20
|
-
|
21
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
22
|
-
import {Versionable} from "../shared/Versionable.sol";
|
8
|
+
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
9
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
10
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
11
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
12
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
23
13
|
|
24
14
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
25
|
-
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
26
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
27
|
-
import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
|
28
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../type/ObjectType.sol";
|
29
|
-
import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
30
|
-
import {NftId, NftIdLib} from "../type/NftId.sol";
|
31
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
32
|
-
import {ReferralId} from "../type/Referral.sol";
|
33
|
-
import {RiskId} from "../type/RiskId.sol";
|
34
|
-
import {StateId} from "../type/StateId.sol";
|
35
15
|
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
36
|
-
import {
|
37
|
-
import {
|
38
|
-
|
39
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
+
import {FeeLib} from "../type/Fee.sol";
|
40
18
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
|
-
import {
|
42
|
-
import {
|
43
|
-
import {
|
44
|
-
import {
|
19
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
20
|
+
import {NftId} from "../type/NftId.sol";
|
21
|
+
import {ObjectType, COMPONENT, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
22
|
+
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
45
23
|
import {Service} from "../shared/Service.sol";
|
24
|
+
import {StateId} from "../type/StateId.sol";
|
25
|
+
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CANCELLED, CONFIRMED, CLOSED, EXPECTED, PAID} from "../type/StateId.sol";
|
26
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
46
27
|
|
47
28
|
|
48
29
|
contract ClaimService is
|
49
|
-
|
30
|
+
Service,
|
50
31
|
IClaimService
|
51
32
|
{
|
52
33
|
|
34
|
+
IPolicyService internal _policyService;
|
53
35
|
IPoolService internal _poolService;
|
54
36
|
|
55
37
|
function _initialize(
|
@@ -61,16 +43,16 @@ contract ClaimService is
|
|
61
43
|
initializer()
|
62
44
|
{
|
63
45
|
(
|
64
|
-
address
|
65
|
-
|
66
|
-
|
67
|
-
) = abi.decode(data, (address, address, address));
|
46
|
+
address authority,
|
47
|
+
address registry
|
48
|
+
) = abi.decode(data, (address, address));
|
68
49
|
|
69
|
-
|
50
|
+
__Service_init(authority, registry, owner);
|
70
51
|
|
52
|
+
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
71
53
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
72
54
|
|
73
|
-
|
55
|
+
_registerInterface(type(IClaimService).interfaceId);
|
74
56
|
}
|
75
57
|
|
76
58
|
function submit(
|
@@ -80,11 +62,15 @@ contract ClaimService is
|
|
80
62
|
)
|
81
63
|
external
|
82
64
|
virtual
|
65
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
66
|
+
restricted()
|
83
67
|
returns (ClaimId claimId)
|
84
68
|
{
|
69
|
+
// checks
|
85
70
|
(
|
86
|
-
|
87
|
-
|
71
|
+
,
|
72
|
+
IInstance instance,,
|
73
|
+
InstanceStore instanceStore,
|
88
74
|
IPolicy.PolicyInfo memory policyInfo
|
89
75
|
) = _verifyCallerWithPolicy(policyNftId);
|
90
76
|
|
@@ -93,33 +79,28 @@ contract ClaimService is
|
|
93
79
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
94
80
|
}
|
95
81
|
|
96
|
-
|
97
|
-
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
98
|
-
revert ErrorClaimServiceClaimExceedsSumInsured(
|
99
|
-
policyNftId,
|
100
|
-
policyInfo.sumInsuredAmount,
|
101
|
-
AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
|
102
|
-
}
|
82
|
+
_checkClaimAmount(policyNftId, policyInfo, claimAmount);
|
103
83
|
|
84
|
+
// effects
|
104
85
|
// create new claim
|
105
86
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
106
|
-
|
87
|
+
instanceStore.createClaim(
|
107
88
|
policyNftId,
|
108
89
|
claimId,
|
109
|
-
IPolicy.ClaimInfo(
|
110
|
-
claimAmount,
|
111
|
-
AmountLib.zero(),
|
112
|
-
0,
|
113
|
-
0,
|
114
|
-
claimData,
|
115
|
-
"",
|
116
|
-
TimestampLib.zero()));
|
90
|
+
IPolicy.ClaimInfo({
|
91
|
+
claimAmount: claimAmount,
|
92
|
+
paidAmount: AmountLib.zero(),
|
93
|
+
payoutsCount: 0,
|
94
|
+
openPayoutsCount: 0,
|
95
|
+
submissionData: claimData,
|
96
|
+
processData: "",
|
97
|
+
closedAt: TimestampLib.zero()}));
|
117
98
|
|
118
99
|
// update and save policy info with instance
|
100
|
+
// policy claim amount is only updated when claim is confirmed
|
119
101
|
policyInfo.claimsCount += 1;
|
120
102
|
policyInfo.openClaimsCount += 1;
|
121
|
-
|
122
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
103
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
123
104
|
|
124
105
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
125
106
|
}
|
@@ -133,26 +114,48 @@ contract ClaimService is
|
|
133
114
|
)
|
134
115
|
external
|
135
116
|
virtual
|
117
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
136
118
|
{
|
119
|
+
// checks
|
120
|
+
_checkNftType(policyNftId, POLICY());
|
121
|
+
|
137
122
|
(
|
123
|
+
NftId productNftId,
|
138
124
|
IInstance instance,
|
139
125
|
InstanceReader instanceReader,
|
126
|
+
InstanceStore instanceStore,
|
140
127
|
IPolicy.PolicyInfo memory policyInfo
|
141
128
|
) = _verifyCallerWithPolicy(policyNftId);
|
142
129
|
|
130
|
+
_checkClaimAmount(policyNftId, policyInfo, confirmedAmount);
|
131
|
+
|
132
|
+
// effects
|
143
133
|
// check/update claim info
|
144
134
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
145
135
|
claimInfo.claimAmount = confirmedAmount;
|
146
136
|
claimInfo.processData = data;
|
147
|
-
|
137
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
148
138
|
|
149
139
|
// update and save policy info with instance
|
150
140
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
151
|
-
|
141
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
142
|
+
|
143
|
+
// should policy still be active it needs to become expired
|
144
|
+
if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
|
145
|
+
_policyService.expirePolicy(instance, policyNftId, TimestampLib.blockTimestamp());
|
146
|
+
}
|
152
147
|
|
153
148
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
149
|
+
|
150
|
+
// interactions
|
151
|
+
// callback to pool if applicable
|
152
|
+
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
153
|
+
|
154
|
+
// callback to policy holder if applicable
|
155
|
+
_policyHolderClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
154
156
|
}
|
155
157
|
|
158
|
+
|
156
159
|
function decline(
|
157
160
|
NftId policyNftId,
|
158
161
|
ClaimId claimId,
|
@@ -160,10 +163,15 @@ contract ClaimService is
|
|
160
163
|
)
|
161
164
|
external
|
162
165
|
virtual
|
166
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
163
167
|
{
|
168
|
+
_checkNftType(policyNftId, POLICY());
|
169
|
+
|
164
170
|
(
|
171
|
+
,
|
165
172
|
IInstance instance,
|
166
173
|
InstanceReader instanceReader,
|
174
|
+
InstanceStore instanceStore,
|
167
175
|
IPolicy.PolicyInfo memory policyInfo
|
168
176
|
) = _verifyCallerWithPolicy(policyNftId);
|
169
177
|
|
@@ -171,25 +179,60 @@ contract ClaimService is
|
|
171
179
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
172
180
|
claimInfo.processData = data;
|
173
181
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
174
|
-
|
182
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
175
183
|
|
176
184
|
// update and save policy info with instance
|
177
185
|
policyInfo.openClaimsCount -= 1;
|
178
|
-
|
186
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
179
187
|
|
180
188
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
181
189
|
}
|
182
190
|
|
191
|
+
|
192
|
+
function revoke(
|
193
|
+
NftId policyNftId,
|
194
|
+
ClaimId claimId
|
195
|
+
)
|
196
|
+
external
|
197
|
+
virtual
|
198
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
199
|
+
{
|
200
|
+
(
|
201
|
+
,
|
202
|
+
IInstance instance,
|
203
|
+
InstanceReader instanceReader,
|
204
|
+
InstanceStore instanceStore,
|
205
|
+
IPolicy.PolicyInfo memory policyInfo
|
206
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
207
|
+
|
208
|
+
// check/update claim info
|
209
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
210
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
211
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
212
|
+
|
213
|
+
// update and save policy info with instance
|
214
|
+
policyInfo.openClaimsCount -= 1;
|
215
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
216
|
+
|
217
|
+
emit LogClaimServiceClaimRevoked(policyNftId, claimId);
|
218
|
+
}
|
219
|
+
|
220
|
+
|
183
221
|
function close(
|
184
222
|
NftId policyNftId,
|
185
223
|
ClaimId claimId
|
186
224
|
)
|
187
225
|
external
|
188
226
|
virtual
|
227
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
189
228
|
{
|
229
|
+
_checkNftType(policyNftId, POLICY());
|
230
|
+
|
190
231
|
(
|
232
|
+
,
|
191
233
|
IInstance instance,
|
192
234
|
InstanceReader instanceReader,
|
235
|
+
InstanceStore instanceStore,
|
193
236
|
IPolicy.PolicyInfo memory policyInfo
|
194
237
|
) = _verifyCallerWithPolicy(policyNftId);
|
195
238
|
|
@@ -214,55 +257,54 @@ contract ClaimService is
|
|
214
257
|
}
|
215
258
|
|
216
259
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
217
|
-
|
260
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
218
261
|
}
|
219
262
|
|
220
263
|
|
221
|
-
function
|
264
|
+
function createPayoutForBeneficiary(
|
222
265
|
NftId policyNftId,
|
223
266
|
ClaimId claimId,
|
224
267
|
Amount amount,
|
268
|
+
address beneficiary,
|
225
269
|
bytes memory data
|
226
270
|
)
|
227
271
|
external
|
272
|
+
virtual
|
273
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
228
274
|
returns (PayoutId payoutId)
|
229
275
|
{
|
230
|
-
(
|
231
|
-
|
232
|
-
|
233
|
-
IPolicy.PolicyInfo memory policyInfo
|
234
|
-
) = _verifyCallerWithPolicy(policyNftId);
|
235
|
-
|
236
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
237
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
238
|
-
|
239
|
-
// TODO add checks
|
240
|
-
// claim needs to be open
|
241
|
-
// claim.paidAmount + amount <= claim.claimAmount
|
276
|
+
if (beneficiary == address(0)) {
|
277
|
+
revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
|
278
|
+
}
|
242
279
|
|
243
|
-
|
244
|
-
// create payout info with instance
|
245
|
-
uint8 claimNo = claimInfo.payoutsCount + 1;
|
246
|
-
payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
|
247
|
-
instance.getInstanceStore().createPayout(
|
280
|
+
return _createPayout(
|
248
281
|
policyNftId,
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
TimestampLib.zero()));
|
255
|
-
|
256
|
-
// update and save claim info with instance
|
257
|
-
claimInfo.payoutsCount += 1;
|
258
|
-
claimInfo.openPayoutsCount += 1;
|
259
|
-
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
282
|
+
claimId,
|
283
|
+
amount,
|
284
|
+
beneficiary,
|
285
|
+
data);
|
286
|
+
}
|
260
287
|
|
261
|
-
// update and save policy info with instance
|
262
|
-
policyInfo.payoutAmount.add(amount);
|
263
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
264
288
|
|
265
|
-
|
289
|
+
function createPayout(
|
290
|
+
NftId policyNftId,
|
291
|
+
ClaimId claimId,
|
292
|
+
Amount amount,
|
293
|
+
bytes memory data
|
294
|
+
)
|
295
|
+
external
|
296
|
+
virtual
|
297
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
298
|
+
returns (PayoutId payoutId)
|
299
|
+
{
|
300
|
+
_checkNftType(policyNftId, POLICY());
|
301
|
+
|
302
|
+
return _createPayout(
|
303
|
+
policyNftId,
|
304
|
+
claimId,
|
305
|
+
amount,
|
306
|
+
address(0), // defaults to owner of policy nft
|
307
|
+
data);
|
266
308
|
}
|
267
309
|
|
268
310
|
|
@@ -272,118 +314,197 @@ contract ClaimService is
|
|
272
314
|
)
|
273
315
|
external
|
274
316
|
virtual
|
317
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
275
318
|
{
|
319
|
+
// checks
|
276
320
|
(
|
277
|
-
|
321
|
+
NftId productNftId,,
|
322
|
+
// IInstance instance,
|
278
323
|
InstanceReader instanceReader,
|
324
|
+
InstanceStore instanceStore,
|
279
325
|
IPolicy.PolicyInfo memory policyInfo
|
280
326
|
) = _verifyCallerWithPolicy(policyNftId);
|
281
327
|
|
282
|
-
//
|
328
|
+
// check that payout exists and is open
|
283
329
|
IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
|
330
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
331
|
+
if(payoutState != EXPECTED()) {
|
332
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
333
|
+
}
|
334
|
+
|
335
|
+
// check that payout amount does not violate claim amount
|
336
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
337
|
+
if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
|
338
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
339
|
+
policyNftId,
|
340
|
+
payoutId.toClaimId(),
|
341
|
+
claimInfo.claimAmount,
|
342
|
+
claimInfo.paidAmount + payoutInfo.amount);
|
343
|
+
}
|
284
344
|
|
345
|
+
// effects
|
285
346
|
// update and save payout info with instance
|
286
347
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
287
|
-
|
348
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
288
349
|
|
289
|
-
//
|
290
|
-
ClaimId claimId = payoutId.toClaimId();
|
350
|
+
// update and save claim info with instance
|
291
351
|
Amount payoutAmount = payoutInfo.amount;
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
352
|
+
{
|
353
|
+
ClaimId claimId = payoutId.toClaimId();
|
354
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
355
|
+
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
356
|
+
claimInfo.openPayoutsCount -= 1;
|
357
|
+
|
358
|
+
// check if this payout is closing the linked claim
|
359
|
+
// update claim and policy info accordingly
|
360
|
+
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
361
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
362
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
363
|
+
|
364
|
+
policyInfo.openClaimsCount -= 1;
|
365
|
+
} else {
|
366
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
367
|
+
}
|
305
368
|
}
|
306
369
|
|
307
370
|
// update and save policy info with instance
|
308
|
-
policyInfo.payoutAmount = policyInfo.payoutAmount
|
309
|
-
|
371
|
+
policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
|
372
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
310
373
|
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
374
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
|
375
|
+
|
376
|
+
// effects + interactions (push tokens to beneficiary, product)
|
377
|
+
// delegate to pool to update book keeping and moving tokens payout
|
378
|
+
_poolService.processPayout(
|
379
|
+
instanceReader,
|
380
|
+
instanceStore,
|
381
|
+
policyInfo.productNftId, // product nft id
|
315
382
|
policyNftId,
|
316
|
-
policyInfo,
|
317
|
-
|
383
|
+
policyInfo.bundleNftId,
|
384
|
+
payoutId,
|
385
|
+
payoutAmount,
|
386
|
+
payoutInfo.beneficiary);
|
387
|
+
}
|
318
388
|
|
319
|
-
|
389
|
+
function cancelPayout(
|
390
|
+
NftId policyNftId,
|
391
|
+
PayoutId payoutId
|
392
|
+
)
|
393
|
+
external
|
394
|
+
virtual
|
395
|
+
{
|
396
|
+
// checks
|
320
397
|
(
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
398
|
+
,
|
399
|
+
IInstance instance,
|
400
|
+
InstanceReader instanceReader,
|
401
|
+
InstanceStore instanceStore,
|
402
|
+
IPolicy.PolicyInfo memory policyInfo
|
403
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
404
|
+
|
405
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
406
|
+
if (payoutState != EXPECTED()) {
|
407
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
408
|
+
}
|
409
|
+
|
410
|
+
// effects
|
411
|
+
// update and save payout info with instance
|
412
|
+
instanceStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
|
328
413
|
|
329
|
-
|
414
|
+
{
|
415
|
+
ClaimId claimId = payoutId.toClaimId();
|
416
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
417
|
+
claimInfo.openPayoutsCount -= 1;
|
418
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
419
|
+
}
|
330
420
|
|
331
|
-
emit
|
421
|
+
emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
|
332
422
|
}
|
333
423
|
|
334
|
-
//
|
335
|
-
|
336
|
-
|
424
|
+
// internal functions
|
425
|
+
|
426
|
+
function _checkClaimAmount(
|
337
427
|
NftId policyNftId,
|
338
428
|
IPolicy.PolicyInfo memory policyInfo,
|
339
|
-
|
429
|
+
Amount claimAmount
|
340
430
|
)
|
341
431
|
internal
|
342
|
-
|
343
|
-
Amount netPayoutAmount,
|
344
|
-
address beneficiary
|
345
|
-
)
|
432
|
+
pure
|
346
433
|
{
|
347
|
-
|
434
|
+
// check claim amount > 0
|
435
|
+
if (claimAmount.eqz()) {
|
436
|
+
revert ErrorClaimServiceClaimAmountIsZero(policyNftId);
|
437
|
+
}
|
348
438
|
|
349
|
-
|
350
|
-
|
439
|
+
// check policy including this claim is still within sum insured
|
440
|
+
if(policyInfo.claimAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
441
|
+
revert ErrorClaimServiceClaimExceedsSumInsured(
|
442
|
+
policyNftId,
|
443
|
+
policyInfo.sumInsuredAmount,
|
444
|
+
policyInfo.payoutAmount + claimAmount);
|
445
|
+
}
|
446
|
+
}
|
351
447
|
|
352
|
-
|
353
|
-
|
354
|
-
|
448
|
+
function _createPayout(
|
449
|
+
NftId policyNftId,
|
450
|
+
ClaimId claimId,
|
451
|
+
Amount amount,
|
452
|
+
address beneficiary,
|
453
|
+
bytes memory data
|
454
|
+
)
|
455
|
+
internal
|
456
|
+
virtual
|
457
|
+
returns (PayoutId payoutId)
|
458
|
+
{
|
459
|
+
// checks
|
460
|
+
(
|
461
|
+
,,
|
462
|
+
InstanceReader instanceReader,
|
463
|
+
InstanceStore instanceStore,
|
464
|
+
// IPolicy.PolicyInfo memory policyInfo
|
465
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
355
466
|
|
356
|
-
|
357
|
-
beneficiary = _getBeneficiary(policyNftId, payoutInfo.claimId);
|
467
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
358
468
|
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
469
|
+
{
|
470
|
+
// check claim state
|
471
|
+
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
472
|
+
if (claimState != CONFIRMED()) {
|
473
|
+
revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
|
364
474
|
}
|
365
475
|
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
476
|
+
// check total payout amount remains within claim limit
|
477
|
+
Amount newPaidAmount = claimInfo.paidAmount + amount;
|
478
|
+
if (newPaidAmount > claimInfo.claimAmount) {
|
479
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
480
|
+
policyNftId, claimId, claimInfo.claimAmount, newPaidAmount);
|
481
|
+
}
|
370
482
|
}
|
371
|
-
}
|
372
483
|
|
373
|
-
|
484
|
+
// effects
|
485
|
+
// create payout info with instance
|
486
|
+
uint24 payoutNo = claimInfo.payoutsCount + 1;
|
487
|
+
payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
|
488
|
+
if (beneficiary == address(0)) {
|
489
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
490
|
+
}
|
374
491
|
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
492
|
+
instanceStore.createPayout(
|
493
|
+
policyNftId,
|
494
|
+
payoutId,
|
495
|
+
IPolicy.PayoutInfo({
|
496
|
+
claimId: payoutId.toClaimId(),
|
497
|
+
amount: amount,
|
498
|
+
beneficiary: beneficiary,
|
499
|
+
data: data,
|
500
|
+
paidAt: TimestampLib.zero()}));
|
501
|
+
|
502
|
+
// update and save claim info with instance
|
503
|
+
claimInfo.payoutsCount += 1;
|
504
|
+
claimInfo.openPayoutsCount += 1;
|
505
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
384
506
|
|
385
|
-
|
386
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
507
|
+
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
387
508
|
}
|
388
509
|
|
389
510
|
|
@@ -394,14 +515,16 @@ contract ClaimService is
|
|
394
515
|
view
|
395
516
|
virtual
|
396
517
|
returns (
|
518
|
+
NftId productNftId,
|
397
519
|
IInstance instance,
|
398
520
|
InstanceReader instanceReader,
|
521
|
+
InstanceStore instanceStore,
|
399
522
|
IPolicy.PolicyInfo memory policyInfo
|
400
523
|
)
|
401
524
|
{
|
402
|
-
|
403
|
-
(productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
525
|
+
(productNftId, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
404
526
|
instanceReader = instance.getInstanceReader();
|
527
|
+
instanceStore = instance.getInstanceStore();
|
405
528
|
|
406
529
|
// check caller(product) policy match
|
407
530
|
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -412,6 +535,29 @@ contract ClaimService is
|
|
412
535
|
}
|
413
536
|
}
|
414
537
|
|
538
|
+
|
539
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
540
|
+
internal
|
541
|
+
view
|
542
|
+
returns (
|
543
|
+
NftId productNftId,
|
544
|
+
IInstance instance
|
545
|
+
)
|
546
|
+
{
|
547
|
+
(
|
548
|
+
IRegistry.ObjectInfo memory info,
|
549
|
+
address instanceAddress
|
550
|
+
) = ContractLib.getAndVerifyComponent(
|
551
|
+
getRegistry(),
|
552
|
+
msg.sender, // caller
|
553
|
+
PRODUCT(),
|
554
|
+
true); // isActive
|
555
|
+
|
556
|
+
// get component nft id and instance
|
557
|
+
productNftId = info.nftId;
|
558
|
+
instance = IInstance(instanceAddress);
|
559
|
+
}
|
560
|
+
|
415
561
|
function _verifyClaim(
|
416
562
|
InstanceReader instanceReader,
|
417
563
|
NftId policyNftId,
|
@@ -435,6 +581,50 @@ contract ClaimService is
|
|
435
581
|
claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
436
582
|
}
|
437
583
|
|
584
|
+
function _processConfirmedClaimByPool(
|
585
|
+
InstanceReader instanceReader,
|
586
|
+
NftId productNftId,
|
587
|
+
NftId policyNftId,
|
588
|
+
ClaimId claimId,
|
589
|
+
Amount amount
|
590
|
+
)
|
591
|
+
internal
|
592
|
+
{
|
593
|
+
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
594
|
+
if (instanceReader.getPoolInfo(poolNftId).isProcessingConfirmedClaims) {
|
595
|
+
address poolAddress = getRegistry().getObjectAddress(poolNftId);
|
596
|
+
IPoolComponent(poolAddress).processConfirmedClaim(policyNftId, claimId, amount);
|
597
|
+
}
|
598
|
+
}
|
599
|
+
|
600
|
+
|
601
|
+
function _policyHolderClaimConfirmed(
|
602
|
+
NftId policyNftId,
|
603
|
+
ClaimId claimId,
|
604
|
+
Amount confirmedAmount
|
605
|
+
)
|
606
|
+
internal
|
607
|
+
{
|
608
|
+
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
609
|
+
if(address(policyHolder) != address(0)) {
|
610
|
+
policyHolder.claimConfirmed(policyNftId, claimId, confirmedAmount);
|
611
|
+
}
|
612
|
+
}
|
613
|
+
|
614
|
+
// TODO: move to policy helper lib or something
|
615
|
+
function _getPolicyHolder(NftId policyNftId)
|
616
|
+
internal
|
617
|
+
view
|
618
|
+
returns (IPolicyHolder policyHolder)
|
619
|
+
{
|
620
|
+
address policyHolderAddress = getRegistry().ownerOf(policyNftId);
|
621
|
+
policyHolder = IPolicyHolder(policyHolderAddress);
|
622
|
+
|
623
|
+
if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
|
624
|
+
policyHolder = IPolicyHolder(address(0));
|
625
|
+
}
|
626
|
+
}
|
627
|
+
|
438
628
|
|
439
629
|
function _getDomain() internal pure override returns(ObjectType) {
|
440
630
|
return CLAIM();
|