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