@etherisc/gif-next 0.0.2-ff282a4-523 → 0.0.2-ffa91a6-022
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 +77 -10
- 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 +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1209 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +152 -598
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +470 -446
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +200 -112
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +164 -335
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +340 -109
- 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 +1445 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -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 +1388 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +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 +262 -79
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +274 -88
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +278 -196
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1386 -502
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +308 -239
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +161 -83
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1417 -536
- 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 +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +333 -360
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +196 -92
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +215 -70
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +214 -423
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +509 -356
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +223 -624
- 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 +641 -689
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +202 -102
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +205 -244
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +170 -78
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +442 -332
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -104
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +155 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +327 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +399 -69
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +195 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +367 -231
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -62
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +446 -394
- 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 +183 -115
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +265 -318
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +193 -97
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +403 -503
- 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 +462 -56
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +251 -127
- 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 +905 -121
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +303 -245
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -81
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +315 -139
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +109 -296
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1172 -247
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -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 +116 -141
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1196 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +154 -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 +74 -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 +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -90
- 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 +67 -102
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +615 -6
- 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 +1301 -119
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +684 -62
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1567 -176
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +232 -63
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +762 -179
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +177 -73
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -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 +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
- 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 +66 -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 +153 -4
- 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 +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- 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 +283 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -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 +120 -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/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- 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 +704 -0
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +365 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +170 -0
- package/contracts/authorization/IAuthorization.sol +80 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +134 -175
- package/contracts/distribution/DistributionService.sol +233 -197
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +22 -50
- package/contracts/distribution/IDistributionService.sol +45 -29
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +76 -48
- package/contracts/instance/IInstanceService.sol +48 -37
- package/contracts/instance/Instance.sol +195 -128
- package/contracts/instance/InstanceAdmin.sol +450 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +358 -76
- package/contracts/instance/InstanceService.sol +327 -173
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +151 -64
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +24 -15
- package/contracts/instance/module/IDistribution.sol +5 -3
- package/contracts/instance/module/IPolicy.sol +33 -26
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +237 -224
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +35 -38
- package/contracts/pool/IPoolComponent.sol +23 -75
- package/contracts/pool/IPoolService.sol +107 -56
- package/contracts/pool/Pool.sol +209 -168
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +608 -256
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +173 -85
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +373 -183
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +10 -3
- package/contracts/product/IClaimService.sol +48 -6
- package/contracts/product/IPolicyService.sol +54 -39
- package/contracts/product/IPricingService.sol +14 -11
- package/contracts/product/IProductComponent.sol +31 -10
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +522 -234
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +117 -83
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +236 -148
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -39
- package/contracts/registry/IRegistry.sol +90 -34
- package/contracts/registry/IRegistryService.sol +28 -35
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +444 -219
- package/contracts/registry/RegistryAdmin.sol +258 -0
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +74 -137
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
- package/contracts/registry/TokenRegistry.sol +261 -64
- package/contracts/shared/Component.sol +122 -183
- package/contracts/shared/ComponentService.sol +655 -97
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +17 -49
- package/contracts/shared/IComponentService.sol +112 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +11 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
- package/contracts/shared/InstanceLinkedComponent.sol +195 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +33 -24
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +54 -23
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +33 -40
- package/contracts/shared/TokenHandler.sol +320 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +166 -6
- package/contracts/staking/IStakingService.sol +107 -40
- package/contracts/staking/Staking.sol +509 -27
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +24 -16
- package/contracts/staking/StakingReader.sol +180 -0
- package/contracts/staking/StakingService.sol +308 -48
- package/contracts/staking/StakingServiceManager.sol +12 -8
- package/contracts/staking/StakingStore.sol +606 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +44 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +21 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +191 -63
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +39 -7
- package/contracts/type/RoleId.sol +118 -68
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +16 -7
- package/contracts/type/UFixed.sol +40 -121
- package/contracts/type/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +12 -8
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- 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 -864
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -620
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- 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/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- 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/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -54
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/IProductService.sol +0 -40
- package/contracts/product/ProductService.sol +0 -210
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -207
- package/contracts/registry/ReleaseManager.sol +0 -360
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,57 +1,37 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
3
|
-
|
4
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
5
|
-
import {IService} from "./IApplicationService.sol";
|
2
|
+
pragma solidity ^0.8.20;
|
6
3
|
|
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
|
-
import {
|
19
|
-
import {
|
20
|
-
|
21
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
22
|
-
|
23
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
24
|
-
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";
|
25
13
|
|
26
14
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
27
|
-
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
28
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
29
|
-
import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
|
30
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../type/ObjectType.sol";
|
31
|
-
import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
32
|
-
import {NftId, NftIdLib, zeroNftId} from "../type/NftId.sol";
|
33
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
34
|
-
import {ReferralId} from "../type/Referral.sol";
|
35
|
-
import {RiskId} from "../type/RiskId.sol";
|
36
|
-
import {StateId} from "../type/StateId.sol";
|
37
15
|
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
38
|
-
import {
|
39
|
-
import {
|
40
|
-
|
41
|
-
import {ComponentService} from "../shared/ComponentService.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
+
import {FeeLib} from "../type/Fee.sol";
|
42
18
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
43
|
-
import {
|
44
|
-
import {
|
45
|
-
import {
|
46
|
-
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";
|
47
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";
|
48
27
|
|
49
28
|
|
50
29
|
contract ClaimService is
|
51
|
-
|
30
|
+
Service,
|
52
31
|
IClaimService
|
53
32
|
{
|
54
33
|
|
34
|
+
IPolicyService internal _policyService;
|
55
35
|
IPoolService internal _poolService;
|
56
36
|
|
57
37
|
function _initialize(
|
@@ -62,21 +42,17 @@ contract ClaimService is
|
|
62
42
|
virtual override
|
63
43
|
initializer()
|
64
44
|
{
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
45
|
+
(
|
46
|
+
address authority,
|
47
|
+
address registry
|
48
|
+
) = abi.decode(data, (address, address));
|
69
49
|
|
70
|
-
|
50
|
+
__Service_init(authority, registry, owner);
|
71
51
|
|
52
|
+
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
72
53
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
73
54
|
|
74
|
-
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
|
-
function getDomain() public pure override returns(ObjectType) {
|
79
|
-
return CLAIM();
|
55
|
+
_registerInterface(type(IClaimService).interfaceId);
|
80
56
|
}
|
81
57
|
|
82
58
|
function submit(
|
@@ -86,11 +62,15 @@ contract ClaimService is
|
|
86
62
|
)
|
87
63
|
external
|
88
64
|
virtual
|
65
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
66
|
+
restricted()
|
89
67
|
returns (ClaimId claimId)
|
90
68
|
{
|
69
|
+
// checks
|
91
70
|
(
|
92
|
-
|
93
|
-
|
71
|
+
,
|
72
|
+
IInstance instance,,
|
73
|
+
InstanceStore instanceStore,
|
94
74
|
IPolicy.PolicyInfo memory policyInfo
|
95
75
|
) = _verifyCallerWithPolicy(policyNftId);
|
96
76
|
|
@@ -99,33 +79,28 @@ contract ClaimService is
|
|
99
79
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
100
80
|
}
|
101
81
|
|
102
|
-
|
103
|
-
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
104
|
-
revert ErrorClaimServiceClaimExceedsSumInsured(
|
105
|
-
policyNftId,
|
106
|
-
policyInfo.sumInsuredAmount,
|
107
|
-
AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
|
108
|
-
}
|
82
|
+
_checkClaimAmount(policyNftId, policyInfo, claimAmount);
|
109
83
|
|
84
|
+
// effects
|
110
85
|
// create new claim
|
111
86
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
112
|
-
|
87
|
+
instanceStore.createClaim(
|
113
88
|
policyNftId,
|
114
89
|
claimId,
|
115
|
-
IPolicy.ClaimInfo(
|
116
|
-
claimAmount,
|
117
|
-
AmountLib.zero(),
|
118
|
-
0,
|
119
|
-
0,
|
120
|
-
claimData,
|
121
|
-
"",
|
122
|
-
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()}));
|
123
98
|
|
124
99
|
// update and save policy info with instance
|
100
|
+
// policy claim amount is only updated when claim is confirmed
|
125
101
|
policyInfo.claimsCount += 1;
|
126
102
|
policyInfo.openClaimsCount += 1;
|
127
|
-
|
128
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
103
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
129
104
|
|
130
105
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
131
106
|
}
|
@@ -139,26 +114,48 @@ contract ClaimService is
|
|
139
114
|
)
|
140
115
|
external
|
141
116
|
virtual
|
117
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
142
118
|
{
|
119
|
+
// checks
|
120
|
+
_checkNftType(policyNftId, POLICY());
|
121
|
+
|
143
122
|
(
|
123
|
+
NftId productNftId,
|
144
124
|
IInstance instance,
|
145
125
|
InstanceReader instanceReader,
|
126
|
+
InstanceStore instanceStore,
|
146
127
|
IPolicy.PolicyInfo memory policyInfo
|
147
128
|
) = _verifyCallerWithPolicy(policyNftId);
|
148
129
|
|
130
|
+
_checkClaimAmount(policyNftId, policyInfo, confirmedAmount);
|
131
|
+
|
132
|
+
// effects
|
149
133
|
// check/update claim info
|
150
134
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
151
135
|
claimInfo.claimAmount = confirmedAmount;
|
152
136
|
claimInfo.processData = data;
|
153
|
-
|
137
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
154
138
|
|
155
139
|
// update and save policy info with instance
|
156
140
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
157
|
-
|
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
|
+
}
|
158
147
|
|
159
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);
|
160
156
|
}
|
161
157
|
|
158
|
+
|
162
159
|
function decline(
|
163
160
|
NftId policyNftId,
|
164
161
|
ClaimId claimId,
|
@@ -166,10 +163,15 @@ contract ClaimService is
|
|
166
163
|
)
|
167
164
|
external
|
168
165
|
virtual
|
166
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
169
167
|
{
|
168
|
+
_checkNftType(policyNftId, POLICY());
|
169
|
+
|
170
170
|
(
|
171
|
+
,
|
171
172
|
IInstance instance,
|
172
173
|
InstanceReader instanceReader,
|
174
|
+
InstanceStore instanceStore,
|
173
175
|
IPolicy.PolicyInfo memory policyInfo
|
174
176
|
) = _verifyCallerWithPolicy(policyNftId);
|
175
177
|
|
@@ -177,25 +179,60 @@ contract ClaimService is
|
|
177
179
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
178
180
|
claimInfo.processData = data;
|
179
181
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
180
|
-
|
182
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
181
183
|
|
182
184
|
// update and save policy info with instance
|
183
185
|
policyInfo.openClaimsCount -= 1;
|
184
|
-
|
186
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
185
187
|
|
186
188
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
187
189
|
}
|
188
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
|
+
|
189
221
|
function close(
|
190
222
|
NftId policyNftId,
|
191
223
|
ClaimId claimId
|
192
224
|
)
|
193
225
|
external
|
194
226
|
virtual
|
227
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
195
228
|
{
|
229
|
+
_checkNftType(policyNftId, POLICY());
|
230
|
+
|
196
231
|
(
|
232
|
+
,
|
197
233
|
IInstance instance,
|
198
234
|
InstanceReader instanceReader,
|
235
|
+
InstanceStore instanceStore,
|
199
236
|
IPolicy.PolicyInfo memory policyInfo
|
200
237
|
) = _verifyCallerWithPolicy(policyNftId);
|
201
238
|
|
@@ -220,55 +257,54 @@ contract ClaimService is
|
|
220
257
|
}
|
221
258
|
|
222
259
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
223
|
-
|
260
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
224
261
|
}
|
225
262
|
|
226
263
|
|
227
|
-
function
|
264
|
+
function createPayoutForBeneficiary(
|
228
265
|
NftId policyNftId,
|
229
266
|
ClaimId claimId,
|
230
267
|
Amount amount,
|
268
|
+
address beneficiary,
|
231
269
|
bytes memory data
|
232
270
|
)
|
233
271
|
external
|
272
|
+
virtual
|
273
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
234
274
|
returns (PayoutId payoutId)
|
235
275
|
{
|
236
|
-
(
|
237
|
-
|
238
|
-
|
239
|
-
IPolicy.PolicyInfo memory policyInfo
|
240
|
-
) = _verifyCallerWithPolicy(policyNftId);
|
241
|
-
|
242
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
243
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
244
|
-
|
245
|
-
// TODO add checks
|
246
|
-
// claim needs to be open
|
247
|
-
// claim.paidAmount + amount <= claim.claimAmount
|
276
|
+
if (beneficiary == address(0)) {
|
277
|
+
revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
|
278
|
+
}
|
248
279
|
|
249
|
-
|
250
|
-
// create payout info with instance
|
251
|
-
uint8 claimNo = claimInfo.payoutsCount + 1;
|
252
|
-
payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
|
253
|
-
instance.getInstanceStore().createPayout(
|
280
|
+
return _createPayout(
|
254
281
|
policyNftId,
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
TimestampLib.zero()));
|
261
|
-
|
262
|
-
// update and save claim info with instance
|
263
|
-
claimInfo.payoutsCount += 1;
|
264
|
-
claimInfo.openPayoutsCount += 1;
|
265
|
-
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
282
|
+
claimId,
|
283
|
+
amount,
|
284
|
+
beneficiary,
|
285
|
+
data);
|
286
|
+
}
|
266
287
|
|
267
|
-
// update and save policy info with instance
|
268
|
-
policyInfo.payoutAmount.add(amount);
|
269
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
270
288
|
|
271
|
-
|
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);
|
272
308
|
}
|
273
309
|
|
274
310
|
|
@@ -278,113 +314,197 @@ contract ClaimService is
|
|
278
314
|
)
|
279
315
|
external
|
280
316
|
virtual
|
317
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
281
318
|
{
|
319
|
+
// checks
|
282
320
|
(
|
283
|
-
|
321
|
+
NftId productNftId,,
|
322
|
+
// IInstance instance,
|
284
323
|
InstanceReader instanceReader,
|
324
|
+
InstanceStore instanceStore,
|
285
325
|
IPolicy.PolicyInfo memory policyInfo
|
286
326
|
) = _verifyCallerWithPolicy(policyNftId);
|
287
327
|
|
288
|
-
//
|
328
|
+
// check that payout exists and is open
|
289
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
|
+
}
|
290
344
|
|
345
|
+
// effects
|
291
346
|
// update and save payout info with instance
|
292
347
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
293
|
-
|
348
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
294
349
|
|
295
|
-
//
|
296
|
-
ClaimId claimId = payoutId.toClaimId();
|
350
|
+
// update and save claim info with instance
|
297
351
|
Amount payoutAmount = payoutInfo.amount;
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
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
|
+
}
|
311
368
|
}
|
312
369
|
|
313
370
|
// update and save policy info with instance
|
314
|
-
policyInfo.payoutAmount = policyInfo.payoutAmount
|
315
|
-
|
371
|
+
policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
|
372
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
316
373
|
|
317
|
-
|
318
|
-
_poolService.reduceCollateral(instance, policyNftId, policyInfo, payoutAmount);
|
374
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
|
319
375
|
|
320
|
-
//
|
321
|
-
|
322
|
-
|
323
|
-
address beneficiary
|
324
|
-
) = _transferPayoutAmount(
|
376
|
+
// effects + interactions (push tokens to beneficiary, product)
|
377
|
+
// delegate to pool to update book keeping and moving tokens payout
|
378
|
+
_poolService.processPayout(
|
325
379
|
instanceReader,
|
326
|
-
|
327
|
-
policyInfo,
|
328
|
-
|
380
|
+
instanceStore,
|
381
|
+
policyInfo.productNftId, // product nft id
|
382
|
+
policyNftId,
|
383
|
+
policyInfo.bundleNftId,
|
384
|
+
payoutId,
|
385
|
+
payoutAmount,
|
386
|
+
payoutInfo.beneficiary);
|
387
|
+
}
|
329
388
|
|
330
|
-
|
389
|
+
function cancelPayout(
|
390
|
+
NftId policyNftId,
|
391
|
+
PayoutId payoutId
|
392
|
+
)
|
393
|
+
external
|
394
|
+
virtual
|
395
|
+
{
|
396
|
+
// checks
|
397
|
+
(
|
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
|
+
}
|
331
409
|
|
332
|
-
|
410
|
+
// effects
|
411
|
+
// update and save payout info with instance
|
412
|
+
instanceStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
|
413
|
+
|
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
|
+
}
|
420
|
+
|
421
|
+
emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
|
333
422
|
}
|
334
423
|
|
335
|
-
//
|
336
|
-
|
337
|
-
|
424
|
+
// internal functions
|
425
|
+
|
426
|
+
function _checkClaimAmount(
|
338
427
|
NftId policyNftId,
|
339
428
|
IPolicy.PolicyInfo memory policyInfo,
|
340
|
-
|
429
|
+
Amount claimAmount
|
341
430
|
)
|
342
431
|
internal
|
343
|
-
|
344
|
-
Amount netPayoutAmount,
|
345
|
-
address beneficiary
|
346
|
-
)
|
432
|
+
pure
|
347
433
|
{
|
348
|
-
|
434
|
+
// check claim amount > 0
|
435
|
+
if (claimAmount.eqz()) {
|
436
|
+
revert ErrorClaimServiceClaimAmountIsZero(policyNftId);
|
437
|
+
}
|
438
|
+
|
439
|
+
// check policy including this claim is still within sum insured
|
440
|
+
if(policyInfo.claimAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
441
|
+
revert ErrorClaimServiceClaimExceedsSumInsured(
|
442
|
+
policyNftId,
|
443
|
+
policyInfo.sumInsuredAmount,
|
444
|
+
policyInfo.payoutAmount + claimAmount);
|
445
|
+
}
|
446
|
+
}
|
349
447
|
|
350
|
-
|
351
|
-
|
352
|
-
|
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);
|
353
466
|
|
354
|
-
|
355
|
-
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
356
|
-
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
467
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
357
468
|
|
358
|
-
|
359
|
-
|
469
|
+
{
|
470
|
+
// check claim state
|
471
|
+
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
472
|
+
if (claimState != CONFIRMED()) {
|
473
|
+
revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
|
474
|
+
}
|
360
475
|
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
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);
|
365
481
|
}
|
482
|
+
}
|
366
483
|
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
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);
|
371
490
|
}
|
372
|
-
}
|
373
491
|
|
374
|
-
|
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()}));
|
375
501
|
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
internal
|
381
|
-
returns (address beneficiary)
|
382
|
-
{
|
383
|
-
// TODO check if owner is IPolicyHolder
|
384
|
-
// if so, obtain beneficiary from this contract
|
502
|
+
// update and save claim info with instance
|
503
|
+
claimInfo.payoutsCount += 1;
|
504
|
+
claimInfo.openPayoutsCount += 1;
|
505
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
385
506
|
|
386
|
-
|
387
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
507
|
+
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
388
508
|
}
|
389
509
|
|
390
510
|
|
@@ -392,15 +512,19 @@ contract ClaimService is
|
|
392
512
|
NftId policyNftId
|
393
513
|
)
|
394
514
|
internal
|
515
|
+
view
|
516
|
+
virtual
|
395
517
|
returns (
|
518
|
+
NftId productNftId,
|
396
519
|
IInstance instance,
|
397
520
|
InstanceReader instanceReader,
|
521
|
+
InstanceStore instanceStore,
|
398
522
|
IPolicy.PolicyInfo memory policyInfo
|
399
523
|
)
|
400
524
|
{
|
401
|
-
|
402
|
-
(productNftId,, instance) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
|
525
|
+
(productNftId, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
403
526
|
instanceReader = instance.getInstanceReader();
|
527
|
+
instanceStore = instance.getInstanceStore();
|
404
528
|
|
405
529
|
// check caller(product) policy match
|
406
530
|
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -411,6 +535,29 @@ contract ClaimService is
|
|
411
535
|
}
|
412
536
|
}
|
413
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
|
+
|
414
561
|
function _verifyClaim(
|
415
562
|
InstanceReader instanceReader,
|
416
563
|
NftId policyNftId,
|
@@ -434,9 +581,52 @@ contract ClaimService is
|
|
434
581
|
claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
435
582
|
}
|
436
583
|
|
437
|
-
function
|
438
|
-
|
439
|
-
|
440
|
-
|
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
|
+
|
628
|
+
|
629
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
630
|
+
return CLAIM();
|
441
631
|
}
|
442
632
|
}
|