@etherisc/gif-next 0.0.2-f761c0d-394 → 0.0.2-f78f882-351
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 +120 -320
- 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 +810 -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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +760 -278
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +485 -26
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +588 -220
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +227 -20
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +275 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +479 -17
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +212 -483
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +475 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +139 -391
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +814 -399
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +246 -122
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +135 -197
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +582 -141
- 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 +1474 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -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 +1429 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +55 -197
- 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/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +34 -227
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +593 -70
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +407 -62
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +631 -188
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1154 -380
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +363 -92
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1644 -853
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +421 -233
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +160 -102
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1300 -1852
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +152 -360
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +473 -42
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +129 -139
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +128 -328
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +195 -95
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +198 -443
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +474 -40
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +567 -263
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +234 -102
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +383 -53
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +158 -222
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +148 -402
- 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 +925 -545
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +246 -102
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +177 -97
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +281 -431
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +474 -40
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -120
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +272 -232
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
- 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 +213 -105
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +177 -129
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +273 -423
- 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 +794 -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 +395 -36
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +97 -148
- 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 +622 -94
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +913 -404
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -87
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +511 -20
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +624 -560
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +216 -118
- 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 +92 -103
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +535 -240
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +118 -139
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -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 +167 -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 +84 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +117 -328
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -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 +141 -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 +86 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -465
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +211 -105
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +162 -94
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1646 -786
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +184 -76
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +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 +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +93 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +24 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
- 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 +672 -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 +401 -313
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +128 -4
- package/contracts/authorization/Authorization.sol +179 -207
- package/contracts/authorization/IAccess.sol +29 -11
- package/contracts/authorization/IAccessAdmin.sol +89 -83
- package/contracts/authorization/IAuthorization.sol +9 -37
- package/contracts/authorization/IServiceAuthorization.sol +57 -17
- package/contracts/authorization/ServiceAuthorization.sol +235 -25
- package/contracts/distribution/BasicDistribution.sol +23 -32
- package/contracts/distribution/BasicDistributionAuthorization.sol +34 -10
- package/contracts/distribution/Distribution.sol +50 -88
- package/contracts/distribution/DistributionService.sol +276 -130
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +11 -14
- package/contracts/distribution/IDistributionService.sol +56 -26
- 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 +117 -47
- package/contracts/instance/IInstanceService.sol +64 -37
- package/contracts/instance/Instance.sol +202 -105
- package/contracts/instance/InstanceAdmin.sol +218 -177
- package/contracts/instance/InstanceAuthorizationV3.sol +160 -87
- package/contracts/instance/InstanceReader.sol +456 -255
- package/contracts/instance/InstanceService.sol +335 -264
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +154 -107
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +13 -10
- 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 +29 -21
- 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 +3 -7
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +25 -30
- package/contracts/oracle/OracleService.sol +119 -87
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +40 -43
- package/contracts/pool/BasicPoolAuthorization.sol +43 -11
- package/contracts/pool/BundleService.sol +222 -132
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +43 -33
- package/contracts/pool/IPoolComponent.sol +20 -10
- package/contracts/pool/IPoolService.sol +97 -77
- package/contracts/pool/Pool.sol +148 -128
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +419 -257
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +154 -81
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +13 -47
- package/contracts/product/BasicProductAuthorization.sol +33 -10
- package/contracts/product/ClaimService.sol +391 -207
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +29 -3
- package/contracts/product/IClaimService.sol +48 -11
- package/contracts/product/IPolicyService.sol +61 -37
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +28 -5
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +445 -275
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +90 -84
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +203 -104
- package/contracts/product/RiskService.sol +189 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +84 -33
- 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 +378 -220
- package/contracts/registry/RegistryAdmin.sol +101 -293
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +42 -67
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +199 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +525 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +71 -142
- package/contracts/shared/ComponentService.sol +457 -347
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/IComponent.sol +6 -18
- package/contracts/shared/IComponentService.sol +50 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +4 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +84 -43
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +33 -11
- package/contracts/shared/PolicyHolder.sol +20 -59
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +22 -38
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +271 -73
- package/contracts/staking/IStakingService.sol +48 -74
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +534 -250
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +14 -15
- package/contracts/staking/StakingReader.sol +72 -88
- package/contracts/staking/StakingService.sol +62 -152
- package/contracts/staking/StakingServiceManager.sol +9 -7
- package/contracts/staking/StakingStore.sol +1096 -343
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +73 -46
- package/contracts/type/Amount.sol +31 -5
- package/contracts/type/Blocknumber.sol +24 -23
- package/contracts/type/ChainId.sol +101 -0
- 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 +76 -44
- 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 +61 -55
- package/contracts/type/Seconds.sol +40 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +14 -7
- package/contracts/type/UFixed.sol +57 -126
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
- package/contracts/{shared → upgradeability}/ProxyManager.sol +97 -50
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
- package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
- package/package.json +7 -6
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- 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/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- 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/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/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 -460
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/base/ObjectManager.sol +0 -79
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/IProductService.sol +0 -33
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -487
- package/contracts/shared/ComponentVerifyingService.sol +0 -117
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
- package/contracts/staking/StakeManagerLib.sol +0 -231
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,55 +1,36 @@
|
|
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
|
-
|
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
|
-
|
19
|
-
import {
|
20
|
-
|
21
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
22
|
-
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";
|
23
12
|
|
24
13
|
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
14
|
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
36
|
-
import {
|
37
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
38
|
-
|
39
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
15
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
40
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
|
-
import {
|
42
|
-
import {
|
43
|
-
import {
|
44
|
-
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";
|
45
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";
|
46
26
|
|
47
27
|
|
48
28
|
contract ClaimService is
|
49
|
-
|
29
|
+
Service,
|
50
30
|
IClaimService
|
51
31
|
{
|
52
32
|
|
33
|
+
IPolicyService internal _policyService;
|
53
34
|
IPoolService internal _poolService;
|
54
35
|
|
55
36
|
function _initialize(
|
@@ -61,16 +42,16 @@ contract ClaimService is
|
|
61
42
|
initializer()
|
62
43
|
{
|
63
44
|
(
|
64
|
-
address
|
65
|
-
|
66
|
-
|
67
|
-
) = abi.decode(data, (address, address, address));
|
45
|
+
address authority,
|
46
|
+
address registry
|
47
|
+
) = abi.decode(data, (address, address));
|
68
48
|
|
69
|
-
|
49
|
+
__Service_init(authority, registry, owner);
|
70
50
|
|
51
|
+
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
71
52
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
72
53
|
|
73
|
-
|
54
|
+
_registerInterface(type(IClaimService).interfaceId);
|
74
55
|
}
|
75
56
|
|
76
57
|
function submit(
|
@@ -80,46 +61,44 @@ contract ClaimService is
|
|
80
61
|
)
|
81
62
|
external
|
82
63
|
virtual
|
64
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
65
|
+
restricted()
|
83
66
|
returns (ClaimId claimId)
|
84
67
|
{
|
68
|
+
// checks
|
85
69
|
(
|
86
|
-
|
87
|
-
|
70
|
+
,,
|
71
|
+
IInstance.InstanceContracts memory instanceContracts,
|
88
72
|
IPolicy.PolicyInfo memory policyInfo
|
89
73
|
) = _verifyCallerWithPolicy(policyNftId);
|
90
74
|
|
91
75
|
// check policy is in its active period
|
92
|
-
if(policyInfo.activatedAt.eqz() || TimestampLib.
|
76
|
+
if(policyInfo.activatedAt.eqz() || TimestampLib.current() >= policyInfo.expiredAt) {
|
93
77
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
94
78
|
}
|
95
79
|
|
96
|
-
|
97
|
-
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
98
|
-
revert ErrorClaimServiceClaimExceedsSumInsured(
|
99
|
-
policyNftId,
|
100
|
-
policyInfo.sumInsuredAmount,
|
101
|
-
AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
|
102
|
-
}
|
80
|
+
_checkClaimAmount(policyNftId, policyInfo, claimAmount);
|
103
81
|
|
82
|
+
// effects
|
104
83
|
// create new claim
|
105
84
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
106
|
-
|
85
|
+
instanceContracts.productStore.createClaim(
|
107
86
|
policyNftId,
|
108
87
|
claimId,
|
109
|
-
IPolicy.ClaimInfo(
|
110
|
-
claimAmount,
|
111
|
-
AmountLib.zero(),
|
112
|
-
0,
|
113
|
-
0,
|
114
|
-
claimData,
|
115
|
-
"",
|
116
|
-
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()}));
|
117
96
|
|
118
97
|
// update and save policy info with instance
|
98
|
+
// policy claim amount is only updated when claim is confirmed
|
119
99
|
policyInfo.claimsCount += 1;
|
120
100
|
policyInfo.openClaimsCount += 1;
|
121
|
-
|
122
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
101
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
123
102
|
|
124
103
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
125
104
|
}
|
@@ -133,26 +112,48 @@ contract ClaimService is
|
|
133
112
|
)
|
134
113
|
external
|
135
114
|
virtual
|
115
|
+
restricted()
|
116
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
136
117
|
{
|
118
|
+
// checks
|
119
|
+
_checkNftType(policyNftId, POLICY());
|
120
|
+
|
137
121
|
(
|
122
|
+
NftId productNftId,
|
138
123
|
IInstance instance,
|
139
|
-
|
124
|
+
IInstance.InstanceContracts memory instanceContracts,
|
140
125
|
IPolicy.PolicyInfo memory policyInfo
|
141
126
|
) = _verifyCallerWithPolicy(policyNftId);
|
142
127
|
|
128
|
+
_checkClaimAmount(policyNftId, policyInfo, confirmedAmount);
|
129
|
+
|
130
|
+
// effects
|
143
131
|
// check/update claim info
|
144
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
132
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
145
133
|
claimInfo.claimAmount = confirmedAmount;
|
146
134
|
claimInfo.processData = data;
|
147
|
-
|
135
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
148
136
|
|
149
137
|
// update and save policy info with instance
|
150
138
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
151
|
-
|
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
|
+
}
|
152
145
|
|
153
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);
|
154
154
|
}
|
155
155
|
|
156
|
+
|
156
157
|
function decline(
|
157
158
|
NftId policyNftId,
|
158
159
|
ClaimId claimId,
|
@@ -160,41 +161,77 @@ contract ClaimService is
|
|
160
161
|
)
|
161
162
|
external
|
162
163
|
virtual
|
164
|
+
restricted()
|
165
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
163
166
|
{
|
167
|
+
_checkNftType(policyNftId, POLICY());
|
168
|
+
|
164
169
|
(
|
165
|
-
|
166
|
-
|
170
|
+
,,
|
171
|
+
IInstance.InstanceContracts memory instanceContracts,
|
167
172
|
IPolicy.PolicyInfo memory policyInfo
|
168
173
|
) = _verifyCallerWithPolicy(policyNftId);
|
169
174
|
|
170
175
|
// check/update claim info
|
171
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
176
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
172
177
|
claimInfo.processData = data;
|
173
|
-
claimInfo.closedAt = TimestampLib.
|
174
|
-
|
178
|
+
claimInfo.closedAt = TimestampLib.current();
|
179
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
175
180
|
|
176
181
|
// update and save policy info with instance
|
177
182
|
policyInfo.openClaimsCount -= 1;
|
178
|
-
|
183
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
179
184
|
|
180
185
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
181
186
|
}
|
182
187
|
|
183
|
-
|
188
|
+
|
189
|
+
function revoke(
|
184
190
|
NftId policyNftId,
|
185
191
|
ClaimId claimId
|
186
192
|
)
|
187
193
|
external
|
188
194
|
virtual
|
189
|
-
|
195
|
+
restricted()
|
196
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
197
|
+
{
|
190
198
|
(
|
191
|
-
|
192
|
-
|
199
|
+
,,
|
200
|
+
IInstance.InstanceContracts memory instanceContracts,
|
193
201
|
IPolicy.PolicyInfo memory policyInfo
|
194
202
|
) = _verifyCallerWithPolicy(policyNftId);
|
195
203
|
|
196
204
|
// check/update claim info
|
197
|
-
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.productStore.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());
|
198
235
|
|
199
236
|
// check claim has no open payouts
|
200
237
|
if(claimInfo.openPayoutsCount > 0) {
|
@@ -204,65 +241,59 @@ contract ClaimService is
|
|
204
241
|
claimInfo.openPayoutsCount);
|
205
242
|
}
|
206
243
|
|
207
|
-
|
208
|
-
|
209
|
-
revert ErrorClaimServiceClaimWithMissingPayouts(
|
210
|
-
policyNftId,
|
211
|
-
claimId,
|
212
|
-
claimInfo.claimAmount,
|
213
|
-
claimInfo.paidAmount);
|
214
|
-
}
|
244
|
+
claimInfo.closedAt = TimestampLib.current();
|
245
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CANCELLED());
|
215
246
|
|
216
|
-
|
217
|
-
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
247
|
+
emit LogClaimServiceClaimCancelled(policyNftId, claimId);
|
218
248
|
}
|
219
249
|
|
220
250
|
|
221
|
-
function
|
251
|
+
function createPayoutForBeneficiary(
|
222
252
|
NftId policyNftId,
|
223
253
|
ClaimId claimId,
|
224
254
|
Amount amount,
|
255
|
+
address beneficiary,
|
225
256
|
bytes memory data
|
226
257
|
)
|
227
258
|
external
|
259
|
+
virtual
|
260
|
+
restricted()
|
261
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
228
262
|
returns (PayoutId payoutId)
|
229
263
|
{
|
230
|
-
(
|
231
|
-
|
232
|
-
|
233
|
-
IPolicy.PolicyInfo memory policyInfo
|
234
|
-
) = _verifyCallerWithPolicy(policyNftId);
|
235
|
-
|
236
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
237
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
238
|
-
|
239
|
-
// TODO add checks
|
240
|
-
// claim needs to be open
|
241
|
-
// claim.paidAmount + amount <= claim.claimAmount
|
264
|
+
if (beneficiary == address(0)) {
|
265
|
+
revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
|
266
|
+
}
|
242
267
|
|
243
|
-
|
244
|
-
// create payout info with instance
|
245
|
-
uint8 claimNo = claimInfo.payoutsCount + 1;
|
246
|
-
payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
|
247
|
-
instance.getInstanceStore().createPayout(
|
268
|
+
return _createPayout(
|
248
269
|
policyNftId,
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
TimestampLib.zero()));
|
255
|
-
|
256
|
-
// update and save claim info with instance
|
257
|
-
claimInfo.payoutsCount += 1;
|
258
|
-
claimInfo.openPayoutsCount += 1;
|
259
|
-
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
270
|
+
claimId,
|
271
|
+
amount,
|
272
|
+
beneficiary,
|
273
|
+
data);
|
274
|
+
}
|
260
275
|
|
261
|
-
// update and save policy info with instance
|
262
|
-
policyInfo.payoutAmount.add(amount);
|
263
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
264
276
|
|
265
|
-
|
277
|
+
function createPayout(
|
278
|
+
NftId policyNftId,
|
279
|
+
ClaimId claimId,
|
280
|
+
Amount amount,
|
281
|
+
bytes memory data
|
282
|
+
)
|
283
|
+
external
|
284
|
+
virtual
|
285
|
+
restricted()
|
286
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
287
|
+
returns (PayoutId payoutId)
|
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);
|
266
297
|
}
|
267
298
|
|
268
299
|
|
@@ -272,121 +303,205 @@ contract ClaimService is
|
|
272
303
|
)
|
273
304
|
external
|
274
305
|
virtual
|
306
|
+
restricted()
|
307
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
308
|
+
returns (Amount netPayoutAmount, Amount processingFeeAmount)
|
275
309
|
{
|
310
|
+
// checks
|
276
311
|
(
|
277
|
-
|
278
|
-
|
312
|
+
,,
|
313
|
+
IInstance.InstanceContracts memory instanceContracts,
|
279
314
|
IPolicy.PolicyInfo memory policyInfo
|
280
315
|
) = _verifyCallerWithPolicy(policyNftId);
|
281
316
|
|
282
|
-
|
283
|
-
|
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
|
+
}
|
330
|
+
|
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
|
+
}
|
284
340
|
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
claimInfo.
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
341
|
+
// effects
|
342
|
+
// update and save payout info with instance
|
343
|
+
payoutInfo.paidAt = TimestampLib.current();
|
344
|
+
instanceContracts.productStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
345
|
+
}
|
346
|
+
|
347
|
+
// update and save claim info with instance
|
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.productStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
358
|
+
|
359
|
+
policyInfo.openClaimsCount -= 1;
|
360
|
+
} else {
|
361
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
362
|
+
}
|
305
363
|
}
|
306
364
|
|
307
365
|
// update and save policy info with instance
|
308
|
-
policyInfo.payoutAmount = policyInfo.payoutAmount
|
309
|
-
|
366
|
+
policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
|
367
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
368
|
+
|
369
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
|
310
370
|
|
311
|
-
//
|
312
|
-
|
313
|
-
|
314
|
-
|
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
|
315
377
|
policyNftId,
|
316
|
-
policyInfo,
|
317
|
-
|
378
|
+
policyInfo.bundleNftId,
|
379
|
+
payoutId,
|
380
|
+
payoutAmount,
|
381
|
+
payoutBeneficiary);
|
382
|
+
}
|
318
383
|
|
319
|
-
|
384
|
+
function cancelPayout(
|
385
|
+
NftId policyNftId,
|
386
|
+
PayoutId payoutId
|
387
|
+
)
|
388
|
+
external
|
389
|
+
virtual
|
390
|
+
restricted()
|
391
|
+
{
|
392
|
+
// checks
|
320
393
|
(
|
321
|
-
|
322
|
-
|
323
|
-
) =
|
324
|
-
instanceReader,
|
325
|
-
policyNftId,
|
326
|
-
policyInfo,
|
327
|
-
payoutInfo);
|
394
|
+
,,
|
395
|
+
IInstance.InstanceContracts memory instanceContracts,
|
396
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
328
397
|
|
329
|
-
|
398
|
+
StateId payoutState = instanceContracts.instanceReader.getPayoutState(policyNftId, payoutId);
|
399
|
+
if (payoutState != EXPECTED()) {
|
400
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
401
|
+
}
|
330
402
|
|
331
|
-
|
403
|
+
// effects
|
404
|
+
// update and save payout info with instance
|
405
|
+
instanceContracts.productStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
|
406
|
+
|
407
|
+
{
|
408
|
+
ClaimId claimId = payoutId.toClaimId();
|
409
|
+
IPolicy.ClaimInfo memory claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, claimId);
|
410
|
+
claimInfo.openPayoutsCount -= 1;
|
411
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
412
|
+
}
|
413
|
+
|
414
|
+
emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
|
332
415
|
}
|
333
416
|
|
334
|
-
//
|
335
|
-
|
336
|
-
|
417
|
+
// internal functions
|
418
|
+
|
419
|
+
function _checkClaimAmount(
|
337
420
|
NftId policyNftId,
|
338
421
|
IPolicy.PolicyInfo memory policyInfo,
|
339
|
-
|
422
|
+
Amount claimAmount
|
340
423
|
)
|
341
424
|
internal
|
342
|
-
|
343
|
-
Amount netPayoutAmount,
|
344
|
-
address beneficiary
|
345
|
-
)
|
425
|
+
pure
|
346
426
|
{
|
347
|
-
|
427
|
+
// check claim amount > 0
|
428
|
+
if (claimAmount.eqz()) {
|
429
|
+
revert ErrorClaimServiceClaimAmountIsZero(policyNftId);
|
430
|
+
}
|
431
|
+
|
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
|
+
}
|
348
440
|
|
349
|
-
|
350
|
-
|
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);
|
351
458
|
|
352
|
-
|
353
|
-
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
354
|
-
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
459
|
+
IPolicy.ClaimInfo memory claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, claimId);
|
355
460
|
|
356
|
-
|
357
|
-
|
461
|
+
{
|
462
|
+
// check claim state
|
463
|
+
StateId claimState = instanceContracts.instanceReader.getClaimState(policyNftId, claimId);
|
464
|
+
if (claimState != CONFIRMED()) {
|
465
|
+
revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
|
466
|
+
}
|
358
467
|
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
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);
|
364
473
|
}
|
474
|
+
}
|
365
475
|
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
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);
|
370
482
|
}
|
371
|
-
}
|
372
483
|
|
373
|
-
|
484
|
+
instanceContracts.productStore.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()}));
|
374
493
|
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
internal
|
380
|
-
returns (address beneficiary)
|
381
|
-
{
|
382
|
-
// TODO check if owner is IPolicyHolder
|
383
|
-
// if so, obtain beneficiary from this contract
|
494
|
+
// update and save claim info with instance
|
495
|
+
claimInfo.payoutsCount += 1;
|
496
|
+
claimInfo.openPayoutsCount += 1;
|
497
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
384
498
|
|
385
|
-
|
386
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
499
|
+
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
387
500
|
}
|
388
501
|
|
389
|
-
|
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.
|
390
505
|
function _verifyCallerWithPolicy(
|
391
506
|
NftId policyNftId
|
392
507
|
)
|
@@ -394,17 +509,19 @@ contract ClaimService is
|
|
394
509
|
view
|
395
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,6 +575,50 @@ contract ClaimService is
|
|
435
575
|
claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
436
576
|
}
|
437
577
|
|
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
|
+
|
438
622
|
|
439
623
|
function _getDomain() internal pure override returns(ObjectType) {
|
440
624
|
return CLAIM();
|