@etherisc/gif-next 0.0.2-f634e5c-828 → 0.0.2-f677999-878
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/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
- 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 +82 -12
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +79 -67
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -39
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +231 -186
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +57 -51
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -26
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +119 -73
- 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 +102 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +257 -190
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
- 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 +150 -56
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -63
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -48
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +315 -150
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
- 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 +54 -21
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +344 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +127 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +351 -198
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +422 -352
- 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 +68 -56
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
- 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 +38 -26
- 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 +52 -40
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -39
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -55
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -26
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -39
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -130
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
- 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 +105 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -117
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +37 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +193 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +157 -130
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +102 -81
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +33 -19
- 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 +26 -2
- 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 +64 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -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 +315 -49
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +51 -39
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -442
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -70
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +57 -4
- 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 +38 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -291
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -26
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -39
- 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 +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 +38 -26
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
- 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 +27 -19
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -51
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +18 -20
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
- 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/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/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 +2 -2
- 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 +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- 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/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/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 +47 -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 +2 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +156 -82
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +277 -229
- package/contracts/authorization/IAccessAdmin.sol +13 -7
- package/contracts/authorization/IAuthorization.sol +15 -1
- package/contracts/distribution/BasicDistribution.sol +11 -9
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +37 -32
- package/contracts/distribution/DistributionService.sol +59 -33
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +16 -13
- package/contracts/examples/fire/FirePool.sol +6 -2
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +9 -3
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +29 -9
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +7 -9
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +36 -4
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +6 -7
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/Instance.sol +19 -11
- package/contracts/instance/InstanceAdmin.sol +213 -64
- package/contracts/instance/InstanceAuthorizationV3.sol +18 -23
- package/contracts/instance/InstanceReader.sol +91 -35
- package/contracts/instance/InstanceService.sol +43 -31
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +3 -2
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +16 -15
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPoolAuthorization.sol +21 -13
- package/contracts/pool/BundleService.sol +35 -63
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -20
- package/contracts/pool/IPoolService.sol +50 -38
- package/contracts/pool/Pool.sol +9 -9
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +307 -162
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +3 -3
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +24 -10
- package/contracts/product/ClaimService.sol +157 -139
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +11 -6
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +5 -8
- package/contracts/product/PolicyService.sol +95 -146
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +55 -13
- package/contracts/product/RiskService.sol +66 -29
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +7 -2
- package/contracts/registry/RegistryAdmin.sol +129 -226
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +124 -99
- package/contracts/registry/ServiceAuthorizationV3.sol +85 -14
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +32 -27
- package/contracts/shared/ComponentService.sol +89 -266
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +32 -3
- package/contracts/shared/IComponent.sol +3 -9
- package/contracts/shared/IComponentService.sol +1 -23
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +3 -3
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +45 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +40 -88
- package/contracts/staking/IStaking.sol +0 -8
- package/contracts/staking/IStakingService.sol +8 -0
- package/contracts/staking/StakeManagerLib.sol +1 -1
- package/contracts/staking/Staking.sol +34 -13
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +32 -42
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/ObjectType.sol +46 -21
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +2 -2
- 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/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -17,7 +17,7 @@ contract PoolServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
PoolService poolSrv = new PoolService{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(poolSrv),
|
@@ -41,11 +41,11 @@ contract ApplicationService 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
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
51
51
|
_pricingService = IPricingService(_getServiceAddress(PRICE()));
|
@@ -17,7 +17,7 @@ contract ApplicationServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
ApplicationService svc = new ApplicationService{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),
|
@@ -29,6 +29,7 @@ abstract contract BasicProduct is
|
|
29
29
|
string memory name,
|
30
30
|
address token,
|
31
31
|
IComponents.ProductInfo memory productInfo,
|
32
|
+
IComponents.FeeInfo memory feeInfo,
|
32
33
|
IAuthorization authorization,
|
33
34
|
address initialOwner
|
34
35
|
)
|
@@ -42,6 +43,7 @@ abstract contract BasicProduct is
|
|
42
43
|
name,
|
43
44
|
token,
|
44
45
|
productInfo,
|
46
|
+
feeInfo,
|
45
47
|
authorization,
|
46
48
|
initialOwner,
|
47
49
|
""); // component data
|
@@ -1,13 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Authorization} from "../authorization/Authorization.sol";
|
5
|
-
import {BasicProduct} from "./BasicProduct.sol";
|
6
|
-
import {PRODUCT} from "../type/ObjectType.sol";
|
7
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
8
5
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
9
|
-
|
10
|
-
import {
|
6
|
+
|
7
|
+
import {Authorization} from "../authorization/Authorization.sol";
|
8
|
+
import {BasicProduct} from "./BasicProduct.sol";
|
9
|
+
import {COMPONENT, PRODUCT, POLICY} from "../type/ObjectType.sol";
|
10
|
+
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
11
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
11
12
|
|
12
13
|
|
13
14
|
contract BasicProductAuthorization
|
@@ -15,17 +16,30 @@ contract BasicProductAuthorization
|
|
15
16
|
{
|
16
17
|
|
17
18
|
constructor(string memory componentName)
|
18
|
-
Authorization(componentName)
|
19
|
+
Authorization(componentName, PRODUCT())
|
19
20
|
{}
|
20
21
|
|
21
|
-
function
|
22
|
+
function _setupServiceTargets()
|
22
23
|
internal
|
23
24
|
virtual override
|
24
25
|
{
|
25
|
-
|
26
|
-
|
26
|
+
_addServiceTargetWithRole(COMPONENT());
|
27
|
+
_addServiceTargetWithRole(POLICY());
|
27
28
|
}
|
28
29
|
|
30
|
+
function _setupTokenHandlerAuthorizations() internal virtual override {
|
31
|
+
// authorize token handler functions for component service role
|
32
|
+
IAccess.FunctionInfo[] storage functions;
|
33
|
+
functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
|
34
|
+
_authorize(functions, TokenHandler.approve.selector, "approve");
|
35
|
+
_authorize(functions, TokenHandler.setWallet.selector, "setWallet");
|
36
|
+
_authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
|
37
|
+
|
38
|
+
// authorize token handler functions for pool service role
|
39
|
+
functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(POLICY()));
|
40
|
+
_authorize(functions, TokenHandler.pullToken.selector, "pullToken");
|
41
|
+
_authorize(functions, TokenHandler.pushToken.selector, "pushToken");
|
42
|
+
}
|
29
43
|
|
30
44
|
function _setupTargetAuthorizations()
|
31
45
|
internal
|
@@ -34,7 +48,7 @@ contract BasicProductAuthorization
|
|
34
48
|
IAccess.FunctionInfo[] storage functions;
|
35
49
|
|
36
50
|
// authorize public role (open access to any account, only allows to lock target)
|
37
|
-
functions = _authorizeForTarget(
|
51
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
38
52
|
_authorize(functions, BasicProduct.setFees.selector, "setFees");
|
39
53
|
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
40
54
|
}
|
@@ -1,19 +1,6 @@
|
|
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
5
|
import {IComponents} from "../instance/module/IComponents.sol";
|
19
6
|
import {IInstance} from "../instance/IInstance.sol";
|
@@ -22,10 +9,25 @@ import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
|
22
9
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
23
10
|
import {IPolicyService} from "../product/IPolicyService.sol";
|
24
11
|
import {IPoolService} from "../pool/IPoolService.sol";
|
12
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
+
|
14
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
|
+
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
+
import {FeeLib} from "../type/Fee.sol";
|
18
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
20
|
+
import {NftId} from "../type/NftId.sol";
|
21
|
+
import {ObjectType, COMPONENT, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
22
|
+
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
23
|
+
import {Service} from "../shared/Service.sol";
|
24
|
+
import {StateId} from "../type/StateId.sol";
|
25
|
+
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CANCELLED, CONFIRMED, CLOSED, EXPECTED, PAID} from "../type/StateId.sol";
|
26
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
25
27
|
|
26
28
|
|
27
29
|
contract ClaimService is
|
28
|
-
|
30
|
+
Service,
|
29
31
|
IClaimService
|
30
32
|
{
|
31
33
|
|
@@ -41,11 +43,11 @@ contract ClaimService is
|
|
41
43
|
initializer()
|
42
44
|
{
|
43
45
|
(
|
44
|
-
address
|
45
|
-
address
|
46
|
+
address authority,
|
47
|
+
address registry
|
46
48
|
) = abi.decode(data, (address, address));
|
47
49
|
|
48
|
-
|
50
|
+
__Service_init(authority, registry, owner);
|
49
51
|
|
50
52
|
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
51
53
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
@@ -61,10 +63,10 @@ contract ClaimService is
|
|
61
63
|
external
|
62
64
|
virtual
|
63
65
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
66
|
+
restricted()
|
64
67
|
returns (ClaimId claimId)
|
65
68
|
{
|
66
|
-
|
67
|
-
|
69
|
+
// checks
|
68
70
|
(
|
69
71
|
,
|
70
72
|
IInstance instance,,
|
@@ -77,15 +79,9 @@ contract ClaimService is
|
|
77
79
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
78
80
|
}
|
79
81
|
|
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
|
-
}
|
82
|
+
_checkClaimAmount(policyNftId, policyInfo, claimAmount);
|
88
83
|
|
84
|
+
// effects
|
89
85
|
// create new claim
|
90
86
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
91
87
|
instanceStore.createClaim(
|
@@ -120,6 +116,7 @@ contract ClaimService is
|
|
120
116
|
virtual
|
121
117
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
122
118
|
{
|
119
|
+
// checks
|
123
120
|
_checkNftType(policyNftId, POLICY());
|
124
121
|
|
125
122
|
(
|
@@ -130,8 +127,9 @@ contract ClaimService is
|
|
130
127
|
IPolicy.PolicyInfo memory policyInfo
|
131
128
|
) = _verifyCallerWithPolicy(policyNftId);
|
132
129
|
|
133
|
-
|
130
|
+
_checkClaimAmount(policyNftId, policyInfo, confirmedAmount);
|
134
131
|
|
132
|
+
// effects
|
135
133
|
// check/update claim info
|
136
134
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
137
135
|
claimInfo.claimAmount = confirmedAmount;
|
@@ -149,6 +147,7 @@ contract ClaimService is
|
|
149
147
|
|
150
148
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
151
149
|
|
150
|
+
// interactions
|
152
151
|
// callback to pool if applicable
|
153
152
|
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
154
153
|
|
@@ -190,7 +189,6 @@ contract ClaimService is
|
|
190
189
|
}
|
191
190
|
|
192
191
|
|
193
|
-
// TODO add test case
|
194
192
|
function revoke(
|
195
193
|
NftId policyNftId,
|
196
194
|
ClaimId claimId
|
@@ -198,9 +196,7 @@ contract ClaimService is
|
|
198
196
|
external
|
199
197
|
virtual
|
200
198
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
201
|
-
{
|
202
|
-
_checkNftType(policyNftId, POLICY());
|
203
|
-
|
199
|
+
{
|
204
200
|
(
|
205
201
|
,
|
206
202
|
IInstance instance,
|
@@ -277,8 +273,6 @@ contract ClaimService is
|
|
277
273
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
278
274
|
returns (PayoutId payoutId)
|
279
275
|
{
|
280
|
-
_checkNftType(policyNftId, POLICY());
|
281
|
-
|
282
276
|
if (beneficiary == address(0)) {
|
283
277
|
revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
|
284
278
|
}
|
@@ -322,25 +316,39 @@ contract ClaimService is
|
|
322
316
|
virtual
|
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
|
+
NftId productNftId,,
|
322
|
+
// IInstance instance,
|
330
323
|
InstanceReader instanceReader,
|
331
324
|
InstanceStore instanceStore,
|
332
325
|
IPolicy.PolicyInfo memory policyInfo
|
333
326
|
) = _verifyCallerWithPolicy(policyNftId);
|
334
327
|
|
335
|
-
//
|
328
|
+
// check that payout exists and is open
|
336
329
|
IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
|
330
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
331
|
+
if(payoutState != EXPECTED()) {
|
332
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
333
|
+
}
|
337
334
|
|
335
|
+
// check that payout amount does not violate claim amount
|
336
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
337
|
+
if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
|
338
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
339
|
+
policyNftId,
|
340
|
+
payoutId.toClaimId(),
|
341
|
+
claimInfo.claimAmount,
|
342
|
+
claimInfo.paidAmount + payoutInfo.amount);
|
343
|
+
}
|
344
|
+
|
345
|
+
// effects
|
338
346
|
// update and save payout info with instance
|
339
347
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
340
348
|
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
341
349
|
|
350
|
+
// update and save claim info with instance
|
342
351
|
Amount payoutAmount = payoutInfo.amount;
|
343
|
-
|
344
352
|
{
|
345
353
|
ClaimId claimId = payoutId.toClaimId();
|
346
354
|
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
@@ -360,48 +368,82 @@ 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.pushToken(
|
392
|
-
beneficiary,
|
393
|
-
netPayoutAmount);
|
394
|
-
|
395
|
-
// TODO add 2nd token tx if processingFeeAmount > 0
|
396
|
-
}
|
383
|
+
policyInfo.bundleNftId,
|
384
|
+
payoutId,
|
385
|
+
payoutAmount,
|
386
|
+
payoutInfo.beneficiary);
|
387
|
+
}
|
397
388
|
|
398
|
-
|
399
|
-
|
389
|
+
function cancelPayout(
|
390
|
+
NftId policyNftId,
|
391
|
+
PayoutId payoutId
|
392
|
+
)
|
393
|
+
external
|
394
|
+
virtual
|
395
|
+
{
|
396
|
+
// checks
|
397
|
+
(
|
398
|
+
,
|
399
|
+
IInstance instance,
|
400
|
+
InstanceReader instanceReader,
|
401
|
+
InstanceStore instanceStore,
|
402
|
+
IPolicy.PolicyInfo memory policyInfo
|
403
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
404
|
+
|
405
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
406
|
+
if (payoutState != EXPECTED()) {
|
407
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
408
|
+
}
|
409
|
+
|
410
|
+
// effects
|
411
|
+
// update and save payout info with instance
|
412
|
+
instanceStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
|
413
|
+
|
414
|
+
{
|
415
|
+
ClaimId claimId = payoutId.toClaimId();
|
416
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
417
|
+
claimInfo.openPayoutsCount -= 1;
|
418
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
400
419
|
}
|
420
|
+
|
421
|
+
emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
|
401
422
|
}
|
402
423
|
|
403
424
|
// internal functions
|
404
425
|
|
426
|
+
function _checkClaimAmount(
|
427
|
+
NftId policyNftId,
|
428
|
+
IPolicy.PolicyInfo memory policyInfo,
|
429
|
+
Amount claimAmount
|
430
|
+
)
|
431
|
+
internal
|
432
|
+
pure
|
433
|
+
{
|
434
|
+
// check claim amount > 0
|
435
|
+
if (claimAmount.eqz()) {
|
436
|
+
revert ErrorClaimServiceClaimAmountIsZero(policyNftId);
|
437
|
+
}
|
438
|
+
|
439
|
+
// check policy including this claim is still within sum insured
|
440
|
+
if(policyInfo.claimAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
441
|
+
revert ErrorClaimServiceClaimExceedsSumInsured(
|
442
|
+
policyNftId,
|
443
|
+
policyInfo.sumInsuredAmount,
|
444
|
+
policyInfo.payoutAmount + claimAmount);
|
445
|
+
}
|
446
|
+
}
|
405
447
|
|
406
448
|
function _createPayout(
|
407
449
|
NftId policyNftId,
|
@@ -414,22 +456,32 @@ contract ClaimService is
|
|
414
456
|
virtual
|
415
457
|
returns (PayoutId payoutId)
|
416
458
|
{
|
459
|
+
// checks
|
417
460
|
(
|
418
|
-
|
419
|
-
,
|
461
|
+
,,
|
420
462
|
InstanceReader instanceReader,
|
421
463
|
InstanceStore instanceStore,
|
422
|
-
IPolicy.PolicyInfo memory policyInfo
|
464
|
+
// IPolicy.PolicyInfo memory policyInfo
|
423
465
|
) = _verifyCallerWithPolicy(policyNftId);
|
424
466
|
|
425
467
|
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
426
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
427
468
|
|
428
|
-
|
429
|
-
|
430
|
-
|
469
|
+
{
|
470
|
+
// check claim state
|
471
|
+
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
472
|
+
if (claimState != CONFIRMED()) {
|
473
|
+
revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
|
474
|
+
}
|
431
475
|
|
432
|
-
|
476
|
+
// check total payout amount remains within claim limit
|
477
|
+
Amount newPaidAmount = claimInfo.paidAmount + amount;
|
478
|
+
if (newPaidAmount > claimInfo.claimAmount) {
|
479
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
480
|
+
policyNftId, claimId, claimInfo.claimAmount, newPaidAmount);
|
481
|
+
}
|
482
|
+
}
|
483
|
+
|
484
|
+
// effects
|
433
485
|
// create payout info with instance
|
434
486
|
uint24 payoutNo = claimInfo.payoutsCount + 1;
|
435
487
|
payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
|
@@ -452,52 +504,10 @@ contract ClaimService is
|
|
452
504
|
claimInfo.openPayoutsCount += 1;
|
453
505
|
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
454
506
|
|
455
|
-
// update and save policy info with instance
|
456
|
-
policyInfo.payoutAmount.add(amount);
|
457
|
-
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
458
|
-
|
459
507
|
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
460
508
|
}
|
461
509
|
|
462
510
|
|
463
|
-
function _calculatePayoutAmount(
|
464
|
-
InstanceReader instanceReader,
|
465
|
-
NftId policyNftId,
|
466
|
-
IPolicy.PolicyInfo memory policyInfo,
|
467
|
-
IPolicy.PayoutInfo memory payoutInfo
|
468
|
-
)
|
469
|
-
internal
|
470
|
-
returns (
|
471
|
-
Amount netPayoutAmount,
|
472
|
-
Amount processingFeeAmount,
|
473
|
-
address beneficiary
|
474
|
-
)
|
475
|
-
{
|
476
|
-
Amount payoutAmount = payoutInfo.amount;
|
477
|
-
|
478
|
-
if(payoutAmount.gtz()) {
|
479
|
-
NftId productNftId = policyInfo.productNftId;
|
480
|
-
|
481
|
-
// get pool component info from policy or product
|
482
|
-
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
483
|
-
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
484
|
-
|
485
|
-
netPayoutAmount = payoutAmount;
|
486
|
-
|
487
|
-
if (payoutInfo.beneficiary == address(0)) {
|
488
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
489
|
-
} else {
|
490
|
-
beneficiary = payoutInfo.beneficiary;
|
491
|
-
}
|
492
|
-
|
493
|
-
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
494
|
-
if(FeeLib.gtz(productInfo.processingFee)) {
|
495
|
-
// TODO calculate and set net payout and processing fees
|
496
|
-
}
|
497
|
-
}
|
498
|
-
}
|
499
|
-
|
500
|
-
|
501
511
|
function _verifyCallerWithPolicy(
|
502
512
|
NftId policyNftId
|
503
513
|
)
|
@@ -512,7 +522,7 @@ contract ClaimService is
|
|
512
522
|
IPolicy.PolicyInfo memory policyInfo
|
513
523
|
)
|
514
524
|
{
|
515
|
-
(productNftId
|
525
|
+
(productNftId, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
516
526
|
instanceReader = instance.getInstanceReader();
|
517
527
|
instanceStore = instance.getInstanceStore();
|
518
528
|
|
@@ -525,6 +535,29 @@ contract ClaimService is
|
|
525
535
|
}
|
526
536
|
}
|
527
537
|
|
538
|
+
|
539
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
540
|
+
internal
|
541
|
+
view
|
542
|
+
returns (
|
543
|
+
NftId productNftId,
|
544
|
+
IInstance instance
|
545
|
+
)
|
546
|
+
{
|
547
|
+
(
|
548
|
+
IRegistry.ObjectInfo memory info,
|
549
|
+
address instanceAddress
|
550
|
+
) = ContractLib.getAndVerifyComponent(
|
551
|
+
getRegistry(),
|
552
|
+
msg.sender, // caller
|
553
|
+
PRODUCT(),
|
554
|
+
true); // isActive
|
555
|
+
|
556
|
+
// get component nft id and instance
|
557
|
+
productNftId = info.nftId;
|
558
|
+
instance = IInstance(instanceAddress);
|
559
|
+
}
|
560
|
+
|
528
561
|
function _verifyClaim(
|
529
562
|
InstanceReader instanceReader,
|
530
563
|
NftId policyNftId,
|
@@ -578,22 +611,7 @@ contract ClaimService is
|
|
578
611
|
}
|
579
612
|
}
|
580
613
|
|
581
|
-
|
582
|
-
function _policyHolderPayoutExecuted(
|
583
|
-
NftId policyNftId,
|
584
|
-
PayoutId payoutId,
|
585
|
-
address beneficiary,
|
586
|
-
Amount payoutAmount
|
587
|
-
)
|
588
|
-
internal
|
589
|
-
{
|
590
|
-
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
591
|
-
if(address(policyHolder) != address(0)) {
|
592
|
-
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
593
|
-
}
|
594
|
-
}
|
595
|
-
|
596
|
-
|
614
|
+
// TODO: move to policy helper lib or something
|
597
615
|
function _getPolicyHolder(NftId policyNftId)
|
598
616
|
internal
|
599
617
|
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),
|
@@ -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
|
}
|
@@ -16,7 +16,8 @@ interface IPolicyService is IService {
|
|
16
16
|
event LogPolicyServicePolicyDeclined(NftId policyNftId);
|
17
17
|
event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
|
18
18
|
event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
|
19
|
-
event
|
19
|
+
event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
|
20
|
+
event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
|
20
21
|
event LogPolicyServicePolicyClosed(NftId policyNftId);
|
21
22
|
|
22
23
|
error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
|
@@ -24,9 +25,10 @@ interface IPolicyService is IService {
|
|
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
|
|
@@ -67,6 +69,11 @@ interface IPolicyService is IService {
|
|
67
69
|
/// to activate a policy it needs to be in underwritten state
|
68
70
|
function activate(NftId policyNftId, Timestamp activateAt) external;
|
69
71
|
|
72
|
+
/// @dev adjusts the activation date of the specified policy and sets the new activation date in the policy metadata
|
73
|
+
/// to adjust the activation date of a policy it needs to have an activation date set.
|
74
|
+
/// the new activation date must not be before the current block timestamp or after the expiry date
|
75
|
+
function adjustActivation(NftId policyNftId, Timestamp newActivateAt) external;
|
76
|
+
|
70
77
|
/// @dev Expires the specified policy and sets the expiry date in the policy metadata.
|
71
78
|
/// Function consumers are products.
|
72
79
|
/// If expiry date is set to 0, then the earliest possible expiry date (current blocktime) is set
|
@@ -85,6 +92,4 @@ interface IPolicyService is IService {
|
|
85
92
|
/// Function consumers is claim service.
|
86
93
|
function expirePolicy(IInstance instance, NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
|
87
94
|
|
88
|
-
/// @dev Returns true iff policy is closeable
|
89
|
-
function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId) external view returns (bool isCloseable);
|
90
95
|
}
|