@etherisc/gif-next 0.0.2-95b223b-528 → 0.0.2-95f0eec-843
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 +57 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +134 -59
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +93 -49
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +85 -9
- 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 +105 -153
- 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 +58 -95
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +149 -81
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +45 -82
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
- 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 +145 -114
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +183 -144
- 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 +163 -169
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +380 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -68
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +175 -141
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +259 -146
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +380 -45
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +474 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +377 -10
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +485 -83
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +999 -334
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +380 -52
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +724 -412
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +381 -77
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +82 -56
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +434 -358
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- 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 +77 -49
- 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 +49 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -33
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +98 -54
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -82
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +119 -75
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -44
- 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 +574 -360
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +145 -73
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +292 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +105 -45
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +87 -59
- 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 +171 -174
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +120 -84
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +234 -3
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +63 -17
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +70 -42
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +150 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
- 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 +128 -84
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +102 -74
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +81 -53
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +218 -76
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +102 -46
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +51 -16
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
- 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 +89 -54
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +728 -480
- 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 +75 -39
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +78 -42
- 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 +385 -63
- 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 +60 -32
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +211 -250
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +104 -68
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- 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 +49 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -153
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +49 -21
- 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/INftOwnable.sol/INftOwnable.json +19 -0
- 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 +139 -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 +56 -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 +60 -32
- 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 +21 -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 +137 -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 +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +268 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +163 -10
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +341 -103
- 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 +112 -50
- 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 +218 -58
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -47
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +162 -148
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +60 -50
- 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 +10 -10
- 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 +93 -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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +30 -6
- 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 +60 -36
- 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/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +64 -26
- 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/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +18 -7
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +419 -254
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- 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 +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
- package/contracts/distribution/Distribution.sol +18 -58
- package/contracts/distribution/DistributionService.sol +168 -77
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +34 -19
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +2 -7
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +26 -11
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +91 -17
- package/contracts/instance/IInstanceService.sol +50 -4
- package/contracts/instance/Instance.sol +159 -52
- package/contracts/instance/InstanceAdmin.sol +265 -170
- package/contracts/instance/InstanceAuthorizationV3.sol +75 -34
- package/contracts/instance/InstanceReader.sol +415 -379
- package/contracts/instance/InstanceService.sol +251 -144
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectLifecycle.sol +0 -3
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +16 -5
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +4 -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 +20 -19
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +2 -15
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +55 -94
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +27 -32
- package/contracts/pool/IPoolService.sol +57 -40
- package/contracts/pool/Pool.sol +11 -23
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +192 -193
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +85 -17
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +31 -9
- package/contracts/product/ClaimService.sol +127 -169
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +23 -1
- package/contracts/product/IClaimService.sol +2 -3
- package/contracts/product/IPolicyService.sol +20 -8
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +11 -7
- package/contracts/product/PolicyService.sol +104 -195
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +38 -35
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +30 -21
- package/contracts/product/RiskService.sol +85 -29
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +21 -19
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +19 -8
- package/contracts/registry/RegistryAdmin.sol +100 -369
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +4 -4
- 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 +150 -116
- package/contracts/registry/ServiceAuthorizationV3.sol +159 -22
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +17 -26
- package/contracts/shared/ComponentService.sol +263 -283
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +163 -76
- package/contracts/shared/IComponent.sol +1 -5
- package/contracts/shared/IComponentService.sol +21 -26
- package/contracts/shared/INftOwnable.sol +2 -0
- 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 +4 -7
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +41 -19
- package/contracts/staking/IStakingService.sol +21 -8
- package/contracts/staking/Staking.sol +159 -69
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +28 -19
- package/contracts/staking/StakingService.sol +74 -46
- 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/ObjectType.sol +69 -52
- package/contracts/type/RiskId.sol +9 -3
- 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 +27 -10
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -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/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -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, CANCELLED, CONFIRMED, CLOSED, EXPECTED, 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()));
|
@@ -53,28 +53,6 @@ contract ClaimService is
|
|
53
53
|
_registerInterface(type(IClaimService).interfaceId);
|
54
54
|
}
|
55
55
|
|
56
|
-
function _checkClaimAmount(
|
57
|
-
NftId policyNftId,
|
58
|
-
IPolicy.PolicyInfo memory policyInfo,
|
59
|
-
Amount claimAmount
|
60
|
-
)
|
61
|
-
internal
|
62
|
-
pure
|
63
|
-
{
|
64
|
-
// check claim amount > 0
|
65
|
-
if (claimAmount.eqz()) {
|
66
|
-
revert ErrorClaimServiceClaimAmountIsZero(policyNftId);
|
67
|
-
}
|
68
|
-
|
69
|
-
// check policy including this claim is still within sum insured
|
70
|
-
if(policyInfo.claimAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
71
|
-
revert ErrorClaimServiceClaimExceedsSumInsured(
|
72
|
-
policyNftId,
|
73
|
-
policyInfo.sumInsuredAmount,
|
74
|
-
policyInfo.payoutAmount + claimAmount);
|
75
|
-
}
|
76
|
-
}
|
77
|
-
|
78
56
|
function submit(
|
79
57
|
NftId policyNftId,
|
80
58
|
Amount claimAmount,
|
@@ -83,12 +61,12 @@ contract ClaimService is
|
|
83
61
|
external
|
84
62
|
virtual
|
85
63
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
64
|
+
restricted()
|
86
65
|
returns (ClaimId claimId)
|
87
66
|
{
|
88
67
|
// checks
|
89
68
|
(
|
90
|
-
|
91
|
-
IInstance instance,,
|
69
|
+
,,,
|
92
70
|
InstanceStore instanceStore,
|
93
71
|
IPolicy.PolicyInfo memory policyInfo
|
94
72
|
) = _verifyCallerWithPolicy(policyNftId);
|
@@ -133,6 +111,7 @@ contract ClaimService is
|
|
133
111
|
)
|
134
112
|
external
|
135
113
|
virtual
|
114
|
+
restricted()
|
136
115
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
137
116
|
{
|
138
117
|
// checks
|
@@ -182,13 +161,13 @@ contract ClaimService is
|
|
182
161
|
)
|
183
162
|
external
|
184
163
|
virtual
|
164
|
+
restricted()
|
185
165
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
186
166
|
{
|
187
167
|
_checkNftType(policyNftId, POLICY());
|
188
168
|
|
189
169
|
(
|
190
|
-
|
191
|
-
IInstance instance,
|
170
|
+
,,
|
192
171
|
InstanceReader instanceReader,
|
193
172
|
InstanceStore instanceStore,
|
194
173
|
IPolicy.PolicyInfo memory policyInfo
|
@@ -214,11 +193,11 @@ contract ClaimService is
|
|
214
193
|
)
|
215
194
|
external
|
216
195
|
virtual
|
196
|
+
restricted()
|
217
197
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
218
198
|
{
|
219
199
|
(
|
220
|
-
|
221
|
-
IInstance instance,
|
200
|
+
,,
|
222
201
|
InstanceReader instanceReader,
|
223
202
|
InstanceStore instanceStore,
|
224
203
|
IPolicy.PolicyInfo memory policyInfo
|
@@ -243,16 +222,15 @@ contract ClaimService is
|
|
243
222
|
)
|
244
223
|
external
|
245
224
|
virtual
|
225
|
+
restricted()
|
246
226
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
247
227
|
{
|
248
228
|
_checkNftType(policyNftId, POLICY());
|
249
229
|
|
250
230
|
(
|
251
|
-
|
252
|
-
IInstance instance,
|
231
|
+
,,
|
253
232
|
InstanceReader instanceReader,
|
254
233
|
InstanceStore instanceStore,
|
255
|
-
IPolicy.PolicyInfo memory policyInfo
|
256
234
|
) = _verifyCallerWithPolicy(policyNftId);
|
257
235
|
|
258
236
|
// check/update claim info
|
@@ -277,6 +255,8 @@ contract ClaimService is
|
|
277
255
|
|
278
256
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
279
257
|
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
258
|
+
|
259
|
+
emit LogClaimServiceClaimClosed(policyNftId, claimId);
|
280
260
|
}
|
281
261
|
|
282
262
|
|
@@ -289,6 +269,7 @@ contract ClaimService is
|
|
289
269
|
)
|
290
270
|
external
|
291
271
|
virtual
|
272
|
+
restricted()
|
292
273
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
293
274
|
returns (PayoutId payoutId)
|
294
275
|
{
|
@@ -313,6 +294,7 @@ contract ClaimService is
|
|
313
294
|
)
|
314
295
|
external
|
315
296
|
virtual
|
297
|
+
restricted()
|
316
298
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
317
299
|
returns (PayoutId payoutId)
|
318
300
|
{
|
@@ -333,44 +315,53 @@ contract ClaimService is
|
|
333
315
|
)
|
334
316
|
external
|
335
317
|
virtual
|
318
|
+
restricted()
|
336
319
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
320
|
+
returns (Amount netPayoutAmount, Amount processingFeeAmount)
|
337
321
|
{
|
338
322
|
// checks
|
339
323
|
(
|
340
|
-
|
341
|
-
IInstance instance,
|
324
|
+
,,
|
342
325
|
InstanceReader instanceReader,
|
343
326
|
InstanceStore instanceStore,
|
344
327
|
IPolicy.PolicyInfo memory policyInfo
|
345
328
|
) = _verifyCallerWithPolicy(policyNftId);
|
346
329
|
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
policyNftId,
|
359
|
-
|
360
|
-
claimInfo.claimAmount,
|
361
|
-
claimInfo.paidAmount + payoutInfo.amount);
|
362
|
-
}
|
330
|
+
IPolicy.ClaimInfo memory claimInfo;
|
331
|
+
address payoutBeneficiary;
|
332
|
+
Amount payoutAmount;
|
333
|
+
|
334
|
+
{
|
335
|
+
// check that payout exists and is open
|
336
|
+
IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
|
337
|
+
payoutBeneficiary = payoutInfo.beneficiary;
|
338
|
+
payoutAmount = payoutInfo.amount;
|
339
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
340
|
+
if(payoutState != EXPECTED()) {
|
341
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
342
|
+
}
|
363
343
|
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
344
|
+
// check that payout amount does not violate claim amount
|
345
|
+
claimInfo = instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
346
|
+
if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
|
347
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
348
|
+
policyNftId,
|
349
|
+
payoutId.toClaimId(),
|
350
|
+
claimInfo.claimAmount,
|
351
|
+
claimInfo.paidAmount + payoutInfo.amount);
|
352
|
+
}
|
368
353
|
|
369
|
-
|
354
|
+
// effects
|
355
|
+
// update and save payout info with instance
|
356
|
+
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
357
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
358
|
+
}
|
370
359
|
|
360
|
+
// update and save claim info with instance
|
371
361
|
{
|
372
362
|
ClaimId claimId = payoutId.toClaimId();
|
373
|
-
|
363
|
+
// TODO cleanup
|
364
|
+
// IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
374
365
|
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
375
366
|
claimInfo.openPayoutsCount -= 1;
|
376
367
|
|
@@ -390,41 +381,19 @@ contract ClaimService is
|
|
390
381
|
policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
|
391
382
|
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
392
383
|
|
393
|
-
|
394
|
-
_poolService.processPayout(
|
395
|
-
instance,
|
396
|
-
address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
|
397
|
-
policyNftId,
|
398
|
-
policyInfo,
|
399
|
-
payoutAmount);
|
400
|
-
|
401
|
-
// transfer payout token and fee
|
402
|
-
{
|
403
|
-
(
|
404
|
-
Amount netPayoutAmount,
|
405
|
-
Amount processingFeeAmount,
|
406
|
-
address beneficiary
|
407
|
-
) = _calculatePayoutAmount(
|
408
|
-
instanceReader,
|
409
|
-
policyNftId,
|
410
|
-
policyInfo,
|
411
|
-
payoutInfo);
|
412
|
-
|
413
|
-
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount, processingFeeAmount);
|
414
|
-
|
415
|
-
{
|
416
|
-
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
417
|
-
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
418
|
-
poolInfo.tokenHandler.pushToken(
|
419
|
-
beneficiary,
|
420
|
-
netPayoutAmount);
|
421
|
-
|
422
|
-
// TODO add 2nd token tx if processingFeeAmount > 0
|
423
|
-
}
|
384
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
|
424
385
|
|
425
|
-
|
426
|
-
|
427
|
-
|
386
|
+
// effects + interactions (push tokens to beneficiary, product)
|
387
|
+
// delegate to pool to update book keeping and moving tokens payout
|
388
|
+
(netPayoutAmount, processingFeeAmount) = _poolService.processPayout(
|
389
|
+
instanceReader,
|
390
|
+
instanceStore,
|
391
|
+
policyInfo.productNftId, // product nft id
|
392
|
+
policyNftId,
|
393
|
+
policyInfo.bundleNftId,
|
394
|
+
payoutId,
|
395
|
+
payoutAmount,
|
396
|
+
payoutBeneficiary);
|
428
397
|
}
|
429
398
|
|
430
399
|
function cancelPayout(
|
@@ -433,14 +402,13 @@ contract ClaimService is
|
|
433
402
|
)
|
434
403
|
external
|
435
404
|
virtual
|
405
|
+
restricted()
|
436
406
|
{
|
437
407
|
// checks
|
438
408
|
(
|
439
|
-
|
440
|
-
IInstance instance,
|
409
|
+
,,
|
441
410
|
InstanceReader instanceReader,
|
442
411
|
InstanceStore instanceStore,
|
443
|
-
IPolicy.PolicyInfo memory policyInfo
|
444
412
|
) = _verifyCallerWithPolicy(policyNftId);
|
445
413
|
|
446
414
|
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
@@ -464,6 +432,28 @@ contract ClaimService is
|
|
464
432
|
|
465
433
|
// internal functions
|
466
434
|
|
435
|
+
function _checkClaimAmount(
|
436
|
+
NftId policyNftId,
|
437
|
+
IPolicy.PolicyInfo memory policyInfo,
|
438
|
+
Amount claimAmount
|
439
|
+
)
|
440
|
+
internal
|
441
|
+
pure
|
442
|
+
{
|
443
|
+
// check claim amount > 0
|
444
|
+
if (claimAmount.eqz()) {
|
445
|
+
revert ErrorClaimServiceClaimAmountIsZero(policyNftId);
|
446
|
+
}
|
447
|
+
|
448
|
+
// check policy including this claim is still within sum insured
|
449
|
+
if(policyInfo.claimAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
450
|
+
revert ErrorClaimServiceClaimExceedsSumInsured(
|
451
|
+
policyNftId,
|
452
|
+
policyInfo.sumInsuredAmount,
|
453
|
+
policyInfo.payoutAmount + claimAmount);
|
454
|
+
}
|
455
|
+
}
|
456
|
+
|
467
457
|
function _createPayout(
|
468
458
|
NftId policyNftId,
|
469
459
|
ClaimId claimId,
|
@@ -477,11 +467,10 @@ contract ClaimService is
|
|
477
467
|
{
|
478
468
|
// checks
|
479
469
|
(
|
480
|
-
|
481
|
-
,
|
470
|
+
,,
|
482
471
|
InstanceReader instanceReader,
|
483
472
|
InstanceStore instanceStore,
|
484
|
-
IPolicy.PolicyInfo memory policyInfo
|
473
|
+
// IPolicy.PolicyInfo memory policyInfo
|
485
474
|
) = _verifyCallerWithPolicy(policyNftId);
|
486
475
|
|
487
476
|
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
@@ -528,45 +517,6 @@ contract ClaimService is
|
|
528
517
|
}
|
529
518
|
|
530
519
|
|
531
|
-
function _calculatePayoutAmount(
|
532
|
-
InstanceReader instanceReader,
|
533
|
-
NftId policyNftId,
|
534
|
-
IPolicy.PolicyInfo memory policyInfo,
|
535
|
-
IPolicy.PayoutInfo memory payoutInfo
|
536
|
-
)
|
537
|
-
internal
|
538
|
-
view
|
539
|
-
returns (
|
540
|
-
Amount netPayoutAmount,
|
541
|
-
Amount processingFeeAmount,
|
542
|
-
address beneficiary
|
543
|
-
)
|
544
|
-
{
|
545
|
-
Amount payoutAmount = payoutInfo.amount;
|
546
|
-
|
547
|
-
if(payoutAmount.gtz()) {
|
548
|
-
NftId productNftId = policyInfo.productNftId;
|
549
|
-
|
550
|
-
// get pool component info from policy or product
|
551
|
-
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
552
|
-
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
553
|
-
|
554
|
-
netPayoutAmount = payoutAmount;
|
555
|
-
|
556
|
-
if (payoutInfo.beneficiary == address(0)) {
|
557
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
558
|
-
} else {
|
559
|
-
beneficiary = payoutInfo.beneficiary;
|
560
|
-
}
|
561
|
-
|
562
|
-
IComponents.FeeInfo memory feeInfo = instanceReader.getFeeInfo(productNftId);
|
563
|
-
if(FeeLib.gtz(feeInfo.processingFee)) {
|
564
|
-
// TODO calculate and set net payout and processing fees
|
565
|
-
}
|
566
|
-
}
|
567
|
-
}
|
568
|
-
|
569
|
-
|
570
520
|
function _verifyCallerWithPolicy(
|
571
521
|
NftId policyNftId
|
572
522
|
)
|
@@ -581,7 +531,7 @@ contract ClaimService is
|
|
581
531
|
IPolicy.PolicyInfo memory policyInfo
|
582
532
|
)
|
583
533
|
{
|
584
|
-
(productNftId
|
534
|
+
(productNftId, instance) = _getAndVerifyActiveProduct();
|
585
535
|
instanceReader = instance.getInstanceReader();
|
586
536
|
instanceStore = instance.getInstanceStore();
|
587
537
|
|
@@ -594,6 +544,29 @@ contract ClaimService is
|
|
594
544
|
}
|
595
545
|
}
|
596
546
|
|
547
|
+
|
548
|
+
function _getAndVerifyActiveProduct()
|
549
|
+
internal
|
550
|
+
view
|
551
|
+
returns (
|
552
|
+
NftId productNftId,
|
553
|
+
IInstance instance
|
554
|
+
)
|
555
|
+
{
|
556
|
+
(
|
557
|
+
IRegistry.ObjectInfo memory info,
|
558
|
+
address instanceAddress
|
559
|
+
) = ContractLib.getAndVerifyComponent(
|
560
|
+
getRegistry(),
|
561
|
+
msg.sender, // caller
|
562
|
+
PRODUCT(),
|
563
|
+
true); // isActive
|
564
|
+
|
565
|
+
// get component nft id and instance
|
566
|
+
productNftId = info.nftId;
|
567
|
+
instance = IInstance(instanceAddress);
|
568
|
+
}
|
569
|
+
|
597
570
|
function _verifyClaim(
|
598
571
|
InstanceReader instanceReader,
|
599
572
|
NftId policyNftId,
|
@@ -647,22 +620,7 @@ contract ClaimService is
|
|
647
620
|
}
|
648
621
|
}
|
649
622
|
|
650
|
-
|
651
|
-
function _policyHolderPayoutExecuted(
|
652
|
-
NftId policyNftId,
|
653
|
-
PayoutId payoutId,
|
654
|
-
address beneficiary,
|
655
|
-
Amount payoutAmount
|
656
|
-
)
|
657
|
-
internal
|
658
|
-
{
|
659
|
-
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
660
|
-
if(address(policyHolder) != address(0)) {
|
661
|
-
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
662
|
-
}
|
663
|
-
}
|
664
|
-
|
665
|
-
|
623
|
+
// TODO: move to policy helper lib or something
|
666
624
|
function _getPolicyHolder(NftId policyNftId)
|
667
625
|
internal
|
668
626
|
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),
|
@@ -6,7 +6,6 @@ import {IService} from "../shared/IService.sol";
|
|
6
6
|
|
7
7
|
import {Amount} from "../type/Amount.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
10
9
|
import {ReferralId} from "../type/Referral.sol";
|
11
10
|
import {RiskId} from "../type/RiskId.sol";
|
12
11
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -15,11 +14,34 @@ import {Seconds} from "../type/Seconds.sol";
|
|
15
14
|
/// only product components may call transaction functions
|
16
15
|
interface IApplicationService is IService {
|
17
16
|
|
17
|
+
event LogApplicationServiceApplicationCreated(
|
18
|
+
NftId applicationNftId,
|
19
|
+
NftId productNftId,
|
20
|
+
NftId bundleNftId,
|
21
|
+
RiskId riskId,
|
22
|
+
ReferralId referralId,
|
23
|
+
address applicationOwner,
|
24
|
+
Amount sumInsuredAmount,
|
25
|
+
Amount premiumAmount,
|
26
|
+
Seconds lifetime);
|
27
|
+
event LogApplicationServiceApplicationRenewed(NftId policyNftId, NftId bundleNftId);
|
28
|
+
event LogApplicationServiceApplicationAdjusted(
|
29
|
+
NftId applicationNftId,
|
30
|
+
NftId bundleNftId,
|
31
|
+
RiskId riskId,
|
32
|
+
ReferralId referralId,
|
33
|
+
Amount sumInsuredAmount,
|
34
|
+
Seconds lifetime);
|
35
|
+
event LogApplicationServiceApplicationRevoked(NftId applicationNftId);
|
36
|
+
|
18
37
|
// _checkLinkedApplicationParameters
|
38
|
+
error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
19
39
|
error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
|
20
40
|
error ErrorApplicationServiceRiskPaused(RiskId riskId, NftId productNftId);
|
21
41
|
error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
|
22
42
|
error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
|
43
|
+
error ErrorApplicationServiceReferralInvalid(NftId productNftId, NftId distributionNftId, ReferralId referralId);
|
44
|
+
|
23
45
|
|
24
46
|
/// @dev creates a new application based on the specified attributes
|
25
47
|
/// 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,7 +26,7 @@ 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);
|
31
30
|
event LogClaimServicePayoutCancelled(NftId policyNftId, PayoutId payoutId);
|
32
31
|
|
33
32
|
error ErrorClaimServiceBeneficiarySet(NftId policyNftId, PayoutId payoutId, address beneficiary);
|
@@ -126,7 +125,7 @@ interface IClaimService is
|
|
126
125
|
function processPayout(
|
127
126
|
NftId policyNftId,
|
128
127
|
PayoutId payoutId
|
129
|
-
) external;
|
128
|
+
) external returns (Amount netPayoutAmount, Amount processingFeeAmount);
|
130
129
|
|
131
130
|
/// @dev cancels the specified payout. no tokens are moved, payout is set to cancelled.
|
132
131
|
function cancelPayout(
|
@@ -5,7 +5,6 @@ import {IService} from "../shared/IService.sol";
|
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
7
|
import {IInstance} from "../instance/IInstance.sol";
|
8
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
9
8
|
import {NftId} from "../type/NftId.sol";
|
10
9
|
import {StateId} from "../type/StateId.sol";
|
11
10
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -16,17 +15,20 @@ interface IPolicyService is IService {
|
|
16
15
|
event LogPolicyServicePolicyDeclined(NftId policyNftId);
|
17
16
|
event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
|
18
17
|
event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
|
19
|
-
event
|
18
|
+
event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
|
19
|
+
event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
|
20
20
|
event LogPolicyServicePolicyClosed(NftId policyNftId);
|
21
21
|
|
22
|
+
error LogPolicyServiceMaxPremiumAmountExceeded(NftId policyNftId, Amount maxPremiumAmount, Amount premiumAmount);
|
22
23
|
error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
|
23
24
|
error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
|
24
25
|
error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
|
25
26
|
error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
|
26
27
|
|
27
|
-
error
|
28
|
-
error
|
29
|
-
|
28
|
+
error ErrorPolicyServicePolicyNotActivated(NftId policyNftId);
|
29
|
+
error ErrorPolicyServicePolicyActivationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp activatedAt);
|
30
|
+
error ErrorPolicyServicePolicyActivationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp activatedAt);
|
31
|
+
|
30
32
|
error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
|
31
33
|
error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId);
|
32
34
|
|
@@ -43,14 +45,21 @@ interface IPolicyService is IService {
|
|
43
45
|
error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
|
44
46
|
|
45
47
|
/// @dev creates the policy from {applicationNftId}.
|
48
|
+
/// @param applicationNftId the application NftId
|
49
|
+
/// @param activateAt the timestamp when the policy should be activated
|
50
|
+
/// @param maxPremiumAmount the maximum premium amount that the policy holder is willing to pay
|
51
|
+
/// During policy creation, the effective premium amount is calculated based on the provided parameters. If this
|
52
|
+
/// amount is higher than the maxPremiumAmount, the function will revert.
|
46
53
|
/// After successful completion of the function the policy can be referenced using the application NftId.
|
47
54
|
/// Locks the sum insured amount in the pool, but does not transfer tokens. Call collectPremium to transfer tokens.
|
48
55
|
/// Sets the policy state to collateralized.
|
49
56
|
/// Optionally activates the policy if activateAt is a non-zero timestamp.
|
50
57
|
/// only the related product may create a policy from an application
|
58
|
+
/// @return premiumAmount the effective premium amount
|
51
59
|
function createPolicy(
|
52
60
|
NftId applicationNftId,
|
53
|
-
Timestamp activateAt
|
61
|
+
Timestamp activateAt,
|
62
|
+
Amount maxPremiumAmount
|
54
63
|
)
|
55
64
|
external
|
56
65
|
returns (Amount premiumAmount);
|
@@ -67,6 +76,11 @@ interface IPolicyService is IService {
|
|
67
76
|
/// to activate a policy it needs to be in underwritten state
|
68
77
|
function activate(NftId policyNftId, Timestamp activateAt) external;
|
69
78
|
|
79
|
+
/// @dev adjusts the activation date of the specified policy and sets the new activation date in the policy metadata
|
80
|
+
/// to adjust the activation date of a policy it needs to have an activation date set.
|
81
|
+
/// the new activation date must not be before the current block timestamp or after the expiry date
|
82
|
+
function adjustActivation(NftId policyNftId, Timestamp newActivateAt) external;
|
83
|
+
|
70
84
|
/// @dev Expires the specified policy and sets the expiry date in the policy metadata.
|
71
85
|
/// Function consumers are products.
|
72
86
|
/// If expiry date is set to 0, then the earliest possible expiry date (current blocktime) is set
|
@@ -85,6 +99,4 @@ interface IPolicyService is IService {
|
|
85
99
|
/// Function consumers is claim service.
|
86
100
|
function expirePolicy(IInstance instance, NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
|
87
101
|
|
88
|
-
/// @dev Returns true iff policy is closeable
|
89
|
-
function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId) external view returns (bool isCloseable);
|
90
102
|
}
|
@@ -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,
|
@@ -1,23 +1,27 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
5
4
|
import {IService} from "../shared/IService.sol";
|
6
5
|
|
7
6
|
import {NftId} from "../type/NftId.sol";
|
8
|
-
import {ReferralId} from "../type/Referral.sol";
|
9
7
|
import {RiskId} from "../type/RiskId.sol";
|
10
8
|
import {StateId} from "../type/StateId.sol";
|
11
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
12
|
-
import {UFixed} from "../type/UFixed.sol";
|
13
|
-
import {Fee} from "../type/Fee.sol";
|
14
9
|
|
15
10
|
interface IRiskService is IService {
|
16
11
|
|
12
|
+
event LogRiskServiceRiskCreated(NftId productNftId, RiskId riskId);
|
13
|
+
event LogRiskServiceRiskUpdated(NftId productNftId, RiskId riskId);
|
14
|
+
event LogRiskServiceRiskStateUpdated(NftId productNftId, RiskId riskId, StateId newState);
|
15
|
+
|
16
|
+
error ErrorRiskServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
17
|
+
|
18
|
+
/// @dev Create a new risk with the given id and provided data.
|
19
|
+
/// The key of the risk derived from the risk id in comination with the product NftId.
|
20
|
+
/// Risk data is stored in the instance store.
|
17
21
|
function createRisk(
|
18
|
-
|
22
|
+
bytes32 id,
|
19
23
|
bytes memory data
|
20
|
-
) external;
|
24
|
+
) external returns (RiskId riskId);
|
21
25
|
|
22
26
|
|
23
27
|
function updateRisk(
|