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