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