@etherisc/gif-next 0.0.2-d9bed37-033 → 0.0.2-d9d5e42-801
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 +81 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1046 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +814 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- 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 +409 -33
- 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 +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +114 -291
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -164
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +404 -194
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +141 -67
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +32 -132
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +210 -71
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +121 -198
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +287 -341
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +185 -252
- 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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +76 -155
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +239 -203
- 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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +672 -362
- 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 +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +502 -49
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +302 -14
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +531 -81
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1022 -326
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +393 -52
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1067 -479
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +324 -83
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +59 -47
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +676 -570
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/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 +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +66 -167
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- 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 +36 -71
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +50 -103
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +128 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +91 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +69 -137
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +380 -45
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +165 -337
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +85 -87
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +62 -142
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -118
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +182 -235
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -149
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +357 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +125 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +167 -67
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +80 -38
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +182 -215
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -179
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +96 -78
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +103 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +163 -178
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +233 -194
- 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 +103 -73
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +115 -119
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +69 -55
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +176 -209
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +143 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +80 -38
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +60 -12
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- 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/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +98 -50
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +726 -465
- 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 +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +56 -34
- 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 +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- 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 +49 -88
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +225 -531
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +77 -75
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
- 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 +36 -57
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +134 -367
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -71
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
- 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 +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +49 -102
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +297 -111
- 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 +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +241 -89
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +134 -10
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +340 -203
- 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 +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +84 -56
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +90 -61
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +203 -56
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -39
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +163 -149
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +61 -51
- 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 +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- 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 +94 -38
- 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 +2 -2
- 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 +69 -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 +21 -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/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 +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- 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 +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +32 -16
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -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 +426 -242
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -257
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -42
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +247 -33
- package/contracts/distribution/BasicDistribution.sol +18 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +41 -79
- package/contracts/distribution/DistributionService.sol +177 -97
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +32 -24
- package/contracts/examples/fire/FirePool.sol +21 -8
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +32 -14
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +97 -18
- package/contracts/instance/IInstanceService.sol +52 -11
- package/contracts/instance/Instance.sol +171 -57
- package/contracts/instance/InstanceAdmin.sol +271 -165
- package/contracts/instance/InstanceAuthorizationV3.sol +115 -43
- package/contracts/instance/InstanceReader.sol +449 -312
- package/contracts/instance/InstanceService.sol +270 -171
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +20 -9
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +96 -77
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +23 -4
- package/contracts/pool/BasicPoolAuthorization.sol +33 -8
- package/contracts/pool/BundleService.sol +55 -154
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -60
- package/contracts/pool/Pool.sol +106 -98
- package/contracts/pool/PoolLib.sol +356 -0
- package/contracts/pool/PoolService.sol +275 -230
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +60 -20
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +32 -11
- package/contracts/product/ClaimService.sol +167 -148
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +25 -11
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +243 -297
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +67 -53
- package/contracts/product/RiskService.sol +92 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +14 -15
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +16 -3
- package/contracts/registry/RegistryAdmin.sol +101 -361
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +154 -135
- package/contracts/registry/ServiceAuthorizationV3.sol +197 -46
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +52 -113
- package/contracts/shared/ComponentService.sol +349 -442
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +276 -3
- package/contracts/shared/IComponent.sol +2 -18
- package/contracts/shared/IComponentService.sol +27 -38
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -25
- package/contracts/shared/NftOwnable.sol +6 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +266 -93
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +46 -19
- package/contracts/staking/IStakingService.sol +21 -8
- package/contracts/staking/Staking.sol +190 -82
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +28 -19
- package/contracts/staking/StakingService.sol +77 -16
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +3 -2
- package/contracts/staking/TargetManagerLib.sol +1 -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 +6 -0
- package/contracts/type/ObjectType.sol +69 -38
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +34 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +14 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +4 -1
- package/package.json +4 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- 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/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -126
@@ -1,31 +1,31 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {TimestampLib} from "../type/Timestamp.sol";
|
6
|
-
import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
7
|
-
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
8
|
-
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {FeeLib} from "../type/Fee.sol";
|
10
|
-
import {StateId} from "../type/StateId.sol";
|
11
|
-
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
12
|
-
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
13
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
14
|
-
import {ContractLib} from "../shared/ContractLib.sol";
|
15
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
16
|
-
import {InstanceStore} from "../instance/InstanceStore.sol";
|
17
4
|
import {IClaimService} from "./IClaimService.sol";
|
18
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
19
5
|
import {IInstance} from "../instance/IInstance.sol";
|
20
6
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
21
7
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
22
8
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
23
9
|
import {IPolicyService} from "../product/IPolicyService.sol";
|
24
10
|
import {IPoolService} from "../pool/IPoolService.sol";
|
11
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
12
|
+
|
13
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
14
|
+
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
15
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
16
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
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 {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";
|
25
25
|
|
26
26
|
|
27
27
|
contract ClaimService is
|
28
|
-
|
28
|
+
Service,
|
29
29
|
IClaimService
|
30
30
|
{
|
31
31
|
|
@@ -41,11 +41,11 @@ contract ClaimService is
|
|
41
41
|
initializer()
|
42
42
|
{
|
43
43
|
(
|
44
|
-
address
|
45
|
-
address
|
44
|
+
address authority,
|
45
|
+
address registry
|
46
46
|
) = abi.decode(data, (address, address));
|
47
47
|
|
48
|
-
|
48
|
+
__Service_init(authority, registry, owner);
|
49
49
|
|
50
50
|
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
51
51
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
@@ -61,13 +61,12 @@ contract ClaimService is
|
|
61
61
|
external
|
62
62
|
virtual
|
63
63
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
64
|
+
restricted()
|
64
65
|
returns (ClaimId claimId)
|
65
66
|
{
|
66
|
-
|
67
|
-
|
67
|
+
// checks
|
68
68
|
(
|
69
|
-
|
70
|
-
IInstance instance,,
|
69
|
+
,,,
|
71
70
|
InstanceStore instanceStore,
|
72
71
|
IPolicy.PolicyInfo memory policyInfo
|
73
72
|
) = _verifyCallerWithPolicy(policyNftId);
|
@@ -77,15 +76,9 @@ contract ClaimService is
|
|
77
76
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
78
77
|
}
|
79
78
|
|
80
|
-
|
81
|
-
// check policy including this claim is still within sum insured
|
82
|
-
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
83
|
-
revert ErrorClaimServiceClaimExceedsSumInsured(
|
84
|
-
policyNftId,
|
85
|
-
policyInfo.sumInsuredAmount,
|
86
|
-
AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
|
87
|
-
}
|
79
|
+
_checkClaimAmount(policyNftId, policyInfo, claimAmount);
|
88
80
|
|
81
|
+
// effects
|
89
82
|
// create new claim
|
90
83
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
91
84
|
instanceStore.createClaim(
|
@@ -118,8 +111,10 @@ contract ClaimService is
|
|
118
111
|
)
|
119
112
|
external
|
120
113
|
virtual
|
114
|
+
restricted()
|
121
115
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
122
116
|
{
|
117
|
+
// checks
|
123
118
|
_checkNftType(policyNftId, POLICY());
|
124
119
|
|
125
120
|
(
|
@@ -130,8 +125,9 @@ contract ClaimService is
|
|
130
125
|
IPolicy.PolicyInfo memory policyInfo
|
131
126
|
) = _verifyCallerWithPolicy(policyNftId);
|
132
127
|
|
133
|
-
|
128
|
+
_checkClaimAmount(policyNftId, policyInfo, confirmedAmount);
|
134
129
|
|
130
|
+
// effects
|
135
131
|
// check/update claim info
|
136
132
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
137
133
|
claimInfo.claimAmount = confirmedAmount;
|
@@ -149,6 +145,7 @@ contract ClaimService is
|
|
149
145
|
|
150
146
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
151
147
|
|
148
|
+
// interactions
|
152
149
|
// callback to pool if applicable
|
153
150
|
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
154
151
|
|
@@ -164,13 +161,13 @@ contract ClaimService is
|
|
164
161
|
)
|
165
162
|
external
|
166
163
|
virtual
|
164
|
+
restricted()
|
167
165
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
168
166
|
{
|
169
167
|
_checkNftType(policyNftId, POLICY());
|
170
168
|
|
171
169
|
(
|
172
|
-
|
173
|
-
IInstance instance,
|
170
|
+
,,
|
174
171
|
InstanceReader instanceReader,
|
175
172
|
InstanceStore instanceStore,
|
176
173
|
IPolicy.PolicyInfo memory policyInfo
|
@@ -190,20 +187,17 @@ contract ClaimService is
|
|
190
187
|
}
|
191
188
|
|
192
189
|
|
193
|
-
// TODO add test case
|
194
190
|
function revoke(
|
195
191
|
NftId policyNftId,
|
196
192
|
ClaimId claimId
|
197
193
|
)
|
198
194
|
external
|
199
195
|
virtual
|
196
|
+
restricted()
|
200
197
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
201
|
-
{
|
202
|
-
_checkNftType(policyNftId, POLICY());
|
203
|
-
|
198
|
+
{
|
204
199
|
(
|
205
|
-
|
206
|
-
IInstance instance,
|
200
|
+
,,
|
207
201
|
InstanceReader instanceReader,
|
208
202
|
InstanceStore instanceStore,
|
209
203
|
IPolicy.PolicyInfo memory policyInfo
|
@@ -228,16 +222,15 @@ contract ClaimService is
|
|
228
222
|
)
|
229
223
|
external
|
230
224
|
virtual
|
225
|
+
restricted()
|
231
226
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
232
227
|
{
|
233
228
|
_checkNftType(policyNftId, POLICY());
|
234
229
|
|
235
230
|
(
|
236
|
-
|
237
|
-
IInstance instance,
|
231
|
+
,,
|
238
232
|
InstanceReader instanceReader,
|
239
233
|
InstanceStore instanceStore,
|
240
|
-
IPolicy.PolicyInfo memory policyInfo
|
241
234
|
) = _verifyCallerWithPolicy(policyNftId);
|
242
235
|
|
243
236
|
// check/update claim info
|
@@ -274,11 +267,10 @@ contract ClaimService is
|
|
274
267
|
)
|
275
268
|
external
|
276
269
|
virtual
|
270
|
+
restricted()
|
277
271
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
278
272
|
returns (PayoutId payoutId)
|
279
273
|
{
|
280
|
-
_checkNftType(policyNftId, POLICY());
|
281
|
-
|
282
274
|
if (beneficiary == address(0)) {
|
283
275
|
revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
|
284
276
|
}
|
@@ -300,6 +292,7 @@ contract ClaimService is
|
|
300
292
|
)
|
301
293
|
external
|
302
294
|
virtual
|
295
|
+
restricted()
|
303
296
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
304
297
|
returns (PayoutId payoutId)
|
305
298
|
{
|
@@ -320,30 +313,45 @@ contract ClaimService is
|
|
320
313
|
)
|
321
314
|
external
|
322
315
|
virtual
|
316
|
+
restricted()
|
323
317
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
324
318
|
{
|
325
|
-
|
326
|
-
|
319
|
+
// checks
|
327
320
|
(
|
328
|
-
|
329
|
-
IInstance instance,
|
321
|
+
,,
|
330
322
|
InstanceReader instanceReader,
|
331
323
|
InstanceStore instanceStore,
|
332
324
|
IPolicy.PolicyInfo memory policyInfo
|
333
325
|
) = _verifyCallerWithPolicy(policyNftId);
|
334
326
|
|
335
|
-
//
|
327
|
+
// check that payout exists and is open
|
336
328
|
IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
|
329
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
330
|
+
if(payoutState != EXPECTED()) {
|
331
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
332
|
+
}
|
333
|
+
|
334
|
+
// check that payout amount does not violate claim amount
|
335
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
336
|
+
if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
|
337
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
338
|
+
policyNftId,
|
339
|
+
payoutId.toClaimId(),
|
340
|
+
claimInfo.claimAmount,
|
341
|
+
claimInfo.paidAmount + payoutInfo.amount);
|
342
|
+
}
|
337
343
|
|
344
|
+
// effects
|
338
345
|
// update and save payout info with instance
|
339
346
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
340
347
|
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
341
348
|
|
349
|
+
// update and save claim info with instance
|
342
350
|
Amount payoutAmount = payoutInfo.amount;
|
343
|
-
|
344
351
|
{
|
345
352
|
ClaimId claimId = payoutId.toClaimId();
|
346
|
-
|
353
|
+
// TODO cleanup
|
354
|
+
// IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
347
355
|
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
348
356
|
claimInfo.openPayoutsCount -= 1;
|
349
357
|
|
@@ -360,46 +368,81 @@ contract ClaimService is
|
|
360
368
|
}
|
361
369
|
|
362
370
|
// update and save policy info with instance
|
363
|
-
policyInfo.payoutAmount = policyInfo.payoutAmount
|
371
|
+
policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
|
364
372
|
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
365
373
|
|
366
|
-
|
374
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
|
375
|
+
|
376
|
+
// effects + interactions (push tokens to beneficiary, product)
|
377
|
+
// delegate to pool to update book keeping and moving tokens payout
|
367
378
|
_poolService.processPayout(
|
368
|
-
|
369
|
-
|
379
|
+
instanceReader,
|
380
|
+
instanceStore,
|
381
|
+
policyInfo.productNftId, // product nft id
|
370
382
|
policyNftId,
|
371
|
-
policyInfo,
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
(
|
377
|
-
Amount netPayoutAmount,
|
378
|
-
Amount processingFeeAmount,
|
379
|
-
address beneficiary
|
380
|
-
) = _calculatePayoutAmount(
|
381
|
-
instanceReader,
|
382
|
-
policyNftId,
|
383
|
-
policyInfo,
|
384
|
-
payoutInfo);
|
385
|
-
|
386
|
-
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount, processingFeeAmount);
|
387
|
-
|
388
|
-
{
|
389
|
-
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
390
|
-
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
391
|
-
poolInfo.tokenHandler.distributeTokens(poolInfo.wallet, beneficiary, netPayoutAmount);
|
392
|
-
|
393
|
-
// TODO add 2nd token tx if processingFeeAmount > 0
|
394
|
-
}
|
383
|
+
policyInfo.bundleNftId,
|
384
|
+
payoutId,
|
385
|
+
payoutAmount,
|
386
|
+
payoutInfo.beneficiary);
|
387
|
+
}
|
395
388
|
|
396
|
-
|
397
|
-
|
389
|
+
function cancelPayout(
|
390
|
+
NftId policyNftId,
|
391
|
+
PayoutId payoutId
|
392
|
+
)
|
393
|
+
external
|
394
|
+
virtual
|
395
|
+
restricted()
|
396
|
+
{
|
397
|
+
// checks
|
398
|
+
(
|
399
|
+
,,
|
400
|
+
InstanceReader instanceReader,
|
401
|
+
InstanceStore instanceStore,
|
402
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
403
|
+
|
404
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
405
|
+
if (payoutState != EXPECTED()) {
|
406
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
407
|
+
}
|
408
|
+
|
409
|
+
// effects
|
410
|
+
// update and save payout info with instance
|
411
|
+
instanceStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
|
412
|
+
|
413
|
+
{
|
414
|
+
ClaimId claimId = payoutId.toClaimId();
|
415
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
416
|
+
claimInfo.openPayoutsCount -= 1;
|
417
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
398
418
|
}
|
419
|
+
|
420
|
+
emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
|
399
421
|
}
|
400
422
|
|
401
423
|
// internal functions
|
402
424
|
|
425
|
+
function _checkClaimAmount(
|
426
|
+
NftId policyNftId,
|
427
|
+
IPolicy.PolicyInfo memory policyInfo,
|
428
|
+
Amount claimAmount
|
429
|
+
)
|
430
|
+
internal
|
431
|
+
pure
|
432
|
+
{
|
433
|
+
// check claim amount > 0
|
434
|
+
if (claimAmount.eqz()) {
|
435
|
+
revert ErrorClaimServiceClaimAmountIsZero(policyNftId);
|
436
|
+
}
|
437
|
+
|
438
|
+
// check policy including this claim is still within sum insured
|
439
|
+
if(policyInfo.claimAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
440
|
+
revert ErrorClaimServiceClaimExceedsSumInsured(
|
441
|
+
policyNftId,
|
442
|
+
policyInfo.sumInsuredAmount,
|
443
|
+
policyInfo.payoutAmount + claimAmount);
|
444
|
+
}
|
445
|
+
}
|
403
446
|
|
404
447
|
function _createPayout(
|
405
448
|
NftId policyNftId,
|
@@ -412,22 +455,32 @@ contract ClaimService is
|
|
412
455
|
virtual
|
413
456
|
returns (PayoutId payoutId)
|
414
457
|
{
|
458
|
+
// checks
|
415
459
|
(
|
416
|
-
|
417
|
-
,
|
460
|
+
,,
|
418
461
|
InstanceReader instanceReader,
|
419
462
|
InstanceStore instanceStore,
|
420
|
-
IPolicy.PolicyInfo memory policyInfo
|
463
|
+
// IPolicy.PolicyInfo memory policyInfo
|
421
464
|
) = _verifyCallerWithPolicy(policyNftId);
|
422
465
|
|
423
466
|
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
424
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
425
467
|
|
426
|
-
|
427
|
-
|
428
|
-
|
468
|
+
{
|
469
|
+
// check claim state
|
470
|
+
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
471
|
+
if (claimState != CONFIRMED()) {
|
472
|
+
revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
|
473
|
+
}
|
429
474
|
|
430
|
-
|
475
|
+
// check total payout amount remains within claim limit
|
476
|
+
Amount newPaidAmount = claimInfo.paidAmount + amount;
|
477
|
+
if (newPaidAmount > claimInfo.claimAmount) {
|
478
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
479
|
+
policyNftId, claimId, claimInfo.claimAmount, newPaidAmount);
|
480
|
+
}
|
481
|
+
}
|
482
|
+
|
483
|
+
// effects
|
431
484
|
// create payout info with instance
|
432
485
|
uint24 payoutNo = claimInfo.payoutsCount + 1;
|
433
486
|
payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
|
@@ -450,52 +503,10 @@ contract ClaimService is
|
|
450
503
|
claimInfo.openPayoutsCount += 1;
|
451
504
|
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
452
505
|
|
453
|
-
// update and save policy info with instance
|
454
|
-
policyInfo.payoutAmount.add(amount);
|
455
|
-
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
456
|
-
|
457
506
|
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
458
507
|
}
|
459
508
|
|
460
509
|
|
461
|
-
function _calculatePayoutAmount(
|
462
|
-
InstanceReader instanceReader,
|
463
|
-
NftId policyNftId,
|
464
|
-
IPolicy.PolicyInfo memory policyInfo,
|
465
|
-
IPolicy.PayoutInfo memory payoutInfo
|
466
|
-
)
|
467
|
-
internal
|
468
|
-
returns (
|
469
|
-
Amount netPayoutAmount,
|
470
|
-
Amount processingFeeAmount,
|
471
|
-
address beneficiary
|
472
|
-
)
|
473
|
-
{
|
474
|
-
Amount payoutAmount = payoutInfo.amount;
|
475
|
-
|
476
|
-
if(payoutAmount.gtz()) {
|
477
|
-
NftId productNftId = policyInfo.productNftId;
|
478
|
-
|
479
|
-
// get pool component info from policy or product
|
480
|
-
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
481
|
-
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
482
|
-
|
483
|
-
netPayoutAmount = payoutAmount;
|
484
|
-
|
485
|
-
if (payoutInfo.beneficiary == address(0)) {
|
486
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
487
|
-
} else {
|
488
|
-
beneficiary = payoutInfo.beneficiary;
|
489
|
-
}
|
490
|
-
|
491
|
-
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
492
|
-
if(FeeLib.gtz(productInfo.processingFee)) {
|
493
|
-
// TODO calculate and set net payout and processing fees
|
494
|
-
}
|
495
|
-
}
|
496
|
-
}
|
497
|
-
|
498
|
-
|
499
510
|
function _verifyCallerWithPolicy(
|
500
511
|
NftId policyNftId
|
501
512
|
)
|
@@ -510,7 +521,7 @@ contract ClaimService is
|
|
510
521
|
IPolicy.PolicyInfo memory policyInfo
|
511
522
|
)
|
512
523
|
{
|
513
|
-
(productNftId
|
524
|
+
(productNftId, instance) = _getAndVerifyActiveProduct();
|
514
525
|
instanceReader = instance.getInstanceReader();
|
515
526
|
instanceStore = instance.getInstanceStore();
|
516
527
|
|
@@ -523,6 +534,29 @@ contract ClaimService is
|
|
523
534
|
}
|
524
535
|
}
|
525
536
|
|
537
|
+
|
538
|
+
function _getAndVerifyActiveProduct()
|
539
|
+
internal
|
540
|
+
view
|
541
|
+
returns (
|
542
|
+
NftId productNftId,
|
543
|
+
IInstance instance
|
544
|
+
)
|
545
|
+
{
|
546
|
+
(
|
547
|
+
IRegistry.ObjectInfo memory info,
|
548
|
+
address instanceAddress
|
549
|
+
) = ContractLib.getAndVerifyComponent(
|
550
|
+
getRegistry(),
|
551
|
+
msg.sender, // caller
|
552
|
+
PRODUCT(),
|
553
|
+
true); // isActive
|
554
|
+
|
555
|
+
// get component nft id and instance
|
556
|
+
productNftId = info.nftId;
|
557
|
+
instance = IInstance(instanceAddress);
|
558
|
+
}
|
559
|
+
|
526
560
|
function _verifyClaim(
|
527
561
|
InstanceReader instanceReader,
|
528
562
|
NftId policyNftId,
|
@@ -576,22 +610,7 @@ contract ClaimService is
|
|
576
610
|
}
|
577
611
|
}
|
578
612
|
|
579
|
-
|
580
|
-
function _policyHolderPayoutExecuted(
|
581
|
-
NftId policyNftId,
|
582
|
-
PayoutId payoutId,
|
583
|
-
address beneficiary,
|
584
|
-
Amount payoutAmount
|
585
|
-
)
|
586
|
-
internal
|
587
|
-
{
|
588
|
-
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
589
|
-
if(address(policyHolder) != address(0)) {
|
590
|
-
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
591
|
-
}
|
592
|
-
}
|
593
|
-
|
594
|
-
|
613
|
+
// TODO: move to policy helper lib or something
|
595
614
|
function _getPolicyHolder(NftId policyNftId)
|
596
615
|
internal
|
597
616
|
view
|
@@ -17,7 +17,7 @@ contract ClaimServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
ClaimService svc = new ClaimService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -15,8 +15,14 @@ import {Seconds} from "../type/Seconds.sol";
|
|
15
15
|
/// only product components may call transaction functions
|
16
16
|
interface IApplicationService is IService {
|
17
17
|
|
18
|
-
|
19
|
-
error
|
18
|
+
// _checkLinkedApplicationParameters
|
19
|
+
error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
20
|
+
error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
|
21
|
+
error ErrorApplicationServiceRiskPaused(RiskId riskId, NftId productNftId);
|
22
|
+
error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
|
23
|
+
error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
|
24
|
+
error ErrorApplicationServiceReferralInvalid(NftId productNftId, NftId distributionNftId, ReferralId referralId);
|
25
|
+
|
20
26
|
|
21
27
|
/// @dev creates a new application based on the specified attributes
|
22
28
|
/// may only be called by a product component
|
@@ -19,7 +19,6 @@ import {Fee} from "../type/Fee.sol";
|
|
19
19
|
interface IClaimService is
|
20
20
|
IService
|
21
21
|
{
|
22
|
-
|
23
22
|
event LogClaimServiceClaimSubmitted(NftId policyNftId, ClaimId claimId, Amount claimAmount);
|
24
23
|
event LogClaimServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
|
25
24
|
event LogClaimServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
|
@@ -27,11 +26,14 @@ interface IClaimService is
|
|
27
26
|
event LogClaimServiceClaimClosed(NftId policyNftId, ClaimId claimId);
|
28
27
|
|
29
28
|
event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary);
|
30
|
-
event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount
|
29
|
+
event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount);
|
30
|
+
event LogClaimServicePayoutCancelled(NftId policyNftId, PayoutId payoutId);
|
31
|
+
|
31
32
|
error ErrorClaimServiceBeneficiarySet(NftId policyNftId, PayoutId payoutId, address beneficiary);
|
32
33
|
|
33
34
|
error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
|
34
35
|
error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
|
36
|
+
error ErrorClaimServiceClaimAmountIsZero(NftId policyNftId);
|
35
37
|
error ErrorClaimServiceClaimExceedsSumInsured(NftId policyNftId, Amount sumInsured, Amount payoutsIncludingClaimAmount);
|
36
38
|
error ErrorClaimServiceBeneficiaryIsZero(NftId policyNftId, ClaimId claimId);
|
37
39
|
error ErrorClaimsServicePayoutAmountIsZero(NftId policyNftId, PayoutId payoutId);
|
@@ -40,6 +42,10 @@ interface IClaimService is
|
|
40
42
|
error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
|
41
43
|
error ErrorClaimServiceClaimNotInExpectedState(NftId policyNftId, ClaimId claimId, StateId expectedState, StateId actualState);
|
42
44
|
|
45
|
+
error ErrorClaimServiceClaimNotConfirmed(NftId policyNftId, ClaimId claimId, StateId actualState);
|
46
|
+
error ErrorClaimServicePayoutExceedsClaimAmount(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount totalPayoutAmount);
|
47
|
+
error ErrorClaimServicePayoutNotExpected(NftId policyNftId, PayoutId payoutId, StateId actualState);
|
48
|
+
|
43
49
|
/// @dev create a new claim for the specified policy
|
44
50
|
/// returns the id of the newly created claim
|
45
51
|
/// function can only be called by product, policy needs to match with calling product
|
@@ -120,4 +126,10 @@ interface IClaimService is
|
|
120
126
|
NftId policyNftId,
|
121
127
|
PayoutId payoutId
|
122
128
|
) external;
|
129
|
+
|
130
|
+
/// @dev cancels the specified payout. no tokens are moved, payout is set to cancelled.
|
131
|
+
function cancelPayout(
|
132
|
+
NftId policyNftId,
|
133
|
+
PayoutId payoutId
|
134
|
+
) external;
|
123
135
|
}
|
@@ -15,7 +15,8 @@ interface IPolicyService is IService {
|
|
15
15
|
event LogPolicyServicePolicyDeclined(NftId policyNftId);
|
16
16
|
event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
|
17
17
|
event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
|
18
|
-
event
|
18
|
+
event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
|
19
|
+
event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
|
19
20
|
event LogPolicyServicePolicyClosed(NftId policyNftId);
|
20
21
|
|
21
22
|
error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
|
@@ -23,13 +24,15 @@ interface IPolicyService is IService {
|
|
23
24
|
error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
|
24
25
|
error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
|
25
26
|
|
26
|
-
error
|
27
|
-
error
|
28
|
-
|
27
|
+
error ErrorPolicyServicePolicyNotActivated(NftId policyNftId);
|
28
|
+
error ErrorPolicyServicePolicyActivationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp activatedAt);
|
29
|
+
error ErrorPolicyServicePolicyActivationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp activatedAt);
|
30
|
+
|
29
31
|
error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
|
30
32
|
error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId);
|
31
|
-
|
32
|
-
error
|
33
|
+
|
34
|
+
error ErrorPolicyServicePolicyNotCloseable(NftId policyNftId);
|
35
|
+
|
33
36
|
error ErrorPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
|
34
37
|
error ErrorPolicyServicePremiumNotPaid(NftId policyNftId, Amount premiumAmount);
|
35
38
|
error ErrorPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
|
@@ -49,7 +52,9 @@ interface IPolicyService is IService {
|
|
49
52
|
function createPolicy(
|
50
53
|
NftId applicationNftId,
|
51
54
|
Timestamp activateAt
|
52
|
-
)
|
55
|
+
)
|
56
|
+
external
|
57
|
+
returns (Amount premiumAmount);
|
53
58
|
|
54
59
|
/// @dev declines an application represented by {policyNftId}
|
55
60
|
/// an application can only be declined in applied state
|
@@ -63,18 +68,27 @@ interface IPolicyService is IService {
|
|
63
68
|
/// to activate a policy it needs to be in underwritten state
|
64
69
|
function activate(NftId policyNftId, Timestamp activateAt) external;
|
65
70
|
|
66
|
-
/// @dev
|
71
|
+
/// @dev adjusts the activation date of the specified policy and sets the new activation date in the policy metadata
|
72
|
+
/// to adjust the activation date of a policy it needs to have an activation date set.
|
73
|
+
/// the new activation date must not be before the current block timestamp or after the expiry date
|
74
|
+
function adjustActivation(NftId policyNftId, Timestamp newActivateAt) external;
|
75
|
+
|
76
|
+
/// @dev Expires the specified policy and sets the expiry date in the policy metadata.
|
77
|
+
/// Function consumers are products.
|
78
|
+
/// If expiry date is set to 0, then the earliest possible expiry date (current blocktime) is set
|
67
79
|
/// to expire a policy it must be in active state, policies may be expired even when the predefined expiry date is still in the future
|
68
80
|
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
69
81
|
/// this function can only be called by a product. the policy needs to match with the calling product
|
70
82
|
/// @return expiredAt the effective expiry date
|
71
83
|
function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
|
72
84
|
|
73
|
-
|
74
|
-
|
75
|
-
/// @dev closes the specified policy and sets the closed data in the policy metadata
|
85
|
+
/// @dev Closes the specified policy and sets the closed data in the policy metadata
|
76
86
|
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
77
87
|
/// this function can only be called by a product. the policy needs to match with the calling product
|
78
88
|
function close(NftId policyNftId) external;
|
79
89
|
|
90
|
+
/// @dev Expires the specified policy and sets the expiry date in the policy metadata.
|
91
|
+
/// Function consumers is claim service.
|
92
|
+
function expirePolicy(IInstance instance, NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
|
93
|
+
|
80
94
|
}
|
@@ -14,6 +14,7 @@ interface IPricingService is IService
|
|
14
14
|
{
|
15
15
|
|
16
16
|
error ErrorPricingServiceTargetWalletAmountsMismatch();
|
17
|
+
error ErrorPricingServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
17
18
|
error ErrorPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
|
18
19
|
error ErrorPricingServiceFeeCalculationMismatch(
|
19
20
|
Amount distributionFeeFixAmount,
|