@etherisc/gif-next 0.0.2-de9ede4-391 → 0.0.2-deb924b-641
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 +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +65 -58
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +20 -22
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +27 -3
- 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 -49
- 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 -21
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +207 -192
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +53 -51
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -8
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +97 -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 +76 -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 +233 -184
- 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 +106 -56
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +152 -33
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +98 -48
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +127 -40
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +280 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +152 -33
- 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 +175 -199
- 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 +44 -272
- 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 -38
- 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 -8
- 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 -22
- 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 -21
- 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 -8
- 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 -21
- 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 -112
- 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 -99
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- 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 -112
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -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 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -108
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -38
- 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 -8
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -21
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
- 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 -21
- 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 +41 -22
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +98 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +48 -43
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +101 -71
- 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 +31 -19
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +137 -51
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +22 -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 +23 -4
- 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 +3 -4
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- 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 +7 -5
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +10 -8
- package/contracts/distribution/DistributionService.sol +26 -25
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +14 -13
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +3 -1
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -1
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +25 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- 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 +8 -17
- package/contracts/instance/InstanceReader.sol +75 -34
- package/contracts/instance/InstanceService.sol +43 -31
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +1 -0
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectLifecycle.sol +2 -1
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +0 -8
- package/contracts/instance/module/IDistribution.sol +2 -1
- 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 +28 -58
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -19
- 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 +296 -154
- 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 +23 -8
- 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/PolicyService.sol +90 -144
- 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 +51 -0
- package/contracts/product/RiskService.sol +61 -23
- 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 +126 -229
- 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 +42 -2
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +85 -89
- 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 -4
- package/contracts/shared/IComponentService.sol +0 -4
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -2
- 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 +1 -10
- package/contracts/staking/IStakingService.sol +11 -1
- package/contracts/staking/StakeManagerLib.sol +67 -16
- package/contracts/staking/Staking.sol +35 -20
- package/contracts/staking/StakingReader.sol +1 -16
- package/contracts/staking/StakingService.sol +53 -44
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/ObjectType.sol +41 -27
- package/contracts/type/RiskId.sol +5 -0
- 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 +1 -1
- 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
@@ -22,6 +22,7 @@ import {APPLIED, COLLATERALIZED, KEEP_STATE, CLOSED, DECLINED, PAID} from "../ty
|
|
22
22
|
import {ContractLib} from "../shared/ContractLib.sol";
|
23
23
|
import {NftId} from "../type/NftId.sol";
|
24
24
|
import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, PRODUCT, POOL, POLICY, PRICE} from "../type/ObjectType.sol";
|
25
|
+
import {PolicyServiceLib} from "./PolicyServiceLib.sol";
|
25
26
|
import {ReferralId} from "../type/Referral.sol";
|
26
27
|
import {RiskId} from "../type/RiskId.sol";
|
27
28
|
import {Service} from "../shared/Service.sol";
|
@@ -50,11 +51,11 @@ contract PolicyService is
|
|
50
51
|
initializer
|
51
52
|
{
|
52
53
|
(
|
53
|
-
address
|
54
|
-
address
|
54
|
+
address authority,
|
55
|
+
address registry
|
55
56
|
) = abi.decode(data, (address, address));
|
56
57
|
|
57
|
-
|
58
|
+
__Service_init(authority, registry, owner);
|
58
59
|
|
59
60
|
VersionPart majorVersion = getVersion().toMajorPart();
|
60
61
|
_accountingService = IAccountingService(getRegistry().getServiceAddress(ACCOUNTING(), majorVersion));
|
@@ -119,14 +120,14 @@ contract PolicyService is
|
|
119
120
|
// actual collateralizaion
|
120
121
|
_poolService.lockCollateral(
|
121
122
|
instance,
|
122
|
-
address(instanceReader.
|
123
|
+
address(instanceReader.getToken(productNftId)),
|
123
124
|
productNftId,
|
124
125
|
applicationNftId,
|
125
126
|
applicationInfo.bundleNftId,
|
126
127
|
applicationInfo.sumInsuredAmount);
|
127
128
|
|
128
129
|
// optional activation of policy
|
129
|
-
if(activateAt
|
130
|
+
if(activateAt.gtz()) {
|
130
131
|
applicationInfo = _activate(applicationNftId, applicationInfo, activateAt);
|
131
132
|
}
|
132
133
|
|
@@ -165,7 +166,7 @@ contract PolicyService is
|
|
165
166
|
}
|
166
167
|
|
167
168
|
// link policy to risk and bundle
|
168
|
-
NftId poolNftId = getRegistry().
|
169
|
+
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
169
170
|
instance.getRiskSet().linkPolicy(productNftId, riskId, applicationNftId);
|
170
171
|
instance.getBundleSet().linkPolicy(poolNftId, bundleNftId, applicationNftId);
|
171
172
|
|
@@ -207,12 +208,18 @@ contract PolicyService is
|
|
207
208
|
|
208
209
|
// check funds and allowance of policy holder
|
209
210
|
IPolicy.PremiumInfo memory premium = instanceReader.getPremiumInfo(policyNftId);
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
211
|
+
instanceReader.getTokenHandler(
|
212
|
+
productNftId).checkBalanceAndAllowance(
|
213
|
+
getRegistry().ownerOf(policyNftId),
|
214
|
+
premium.premiumAmount,
|
215
|
+
false);
|
216
|
+
|
217
|
+
// )
|
218
|
+
// _checkPremiumBalanceAndAllowance(
|
219
|
+
// tokenHandler.TOKEN(),
|
220
|
+
// address(tokenHandler),
|
221
|
+
// getRegistry().ownerOf(policyNftId),
|
222
|
+
// premium.premiumAmount);
|
216
223
|
|
217
224
|
// effects
|
218
225
|
_processSale(
|
@@ -235,7 +242,7 @@ contract PolicyService is
|
|
235
242
|
emit LogPolicyServicePolicyPremiumCollected(policyNftId, premium.premiumAmount);
|
236
243
|
|
237
244
|
// interactions
|
238
|
-
|
245
|
+
_transferPremiumAmounts(instanceReader, policyNftId, policyInfo.productNftId, premium);
|
239
246
|
}
|
240
247
|
|
241
248
|
|
@@ -263,6 +270,45 @@ contract PolicyService is
|
|
263
270
|
_policyHolderPolicyActivated(policyNftId, activateAt);
|
264
271
|
}
|
265
272
|
|
273
|
+
/// @inheritdoc IPolicyService
|
274
|
+
function adjustActivation(
|
275
|
+
NftId policyNftId,
|
276
|
+
Timestamp newActivateAt
|
277
|
+
)
|
278
|
+
external
|
279
|
+
virtual
|
280
|
+
nonReentrant()
|
281
|
+
{
|
282
|
+
// checks
|
283
|
+
(
|
284
|
+
IInstance instance,,
|
285
|
+
IPolicy.PolicyInfo memory policyInfo
|
286
|
+
) = _getAndVerifyCallerForPolicy(policyNftId);
|
287
|
+
|
288
|
+
if (policyInfo.activatedAt.eqz()) {
|
289
|
+
revert ErrorPolicyServicePolicyNotActivated(policyNftId);
|
290
|
+
}
|
291
|
+
|
292
|
+
if (newActivateAt < TimestampLib.blockTimestamp()) {
|
293
|
+
revert ErrorPolicyServicePolicyActivationTooEarly(policyNftId, TimestampLib.blockTimestamp(), newActivateAt);
|
294
|
+
}
|
295
|
+
|
296
|
+
if (newActivateAt > policyInfo.expiredAt) {
|
297
|
+
revert ErrorPolicyServicePolicyActivationTooLate(policyNftId, policyInfo.expiredAt, newActivateAt);
|
298
|
+
}
|
299
|
+
|
300
|
+
// effects
|
301
|
+
policyInfo.activatedAt = newActivateAt;
|
302
|
+
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
303
|
+
|
304
|
+
// log policy activation before interactions with policy holder
|
305
|
+
emit LogPolicyServicePolicyActivatedUpdated(policyNftId, newActivateAt);
|
306
|
+
|
307
|
+
// interactions
|
308
|
+
// callback to policy holder if applicable
|
309
|
+
_policyHolderPolicyActivated(policyNftId, newActivateAt);
|
310
|
+
}
|
311
|
+
|
266
312
|
|
267
313
|
/// @inheritdoc IPolicyService
|
268
314
|
function expire(
|
@@ -333,7 +379,7 @@ contract PolicyService is
|
|
333
379
|
InstanceReader instanceReader = instance.getInstanceReader();
|
334
380
|
|
335
381
|
// check policy is in a closeable state
|
336
|
-
if (!policyIsCloseable(instanceReader, policyNftId)) {
|
382
|
+
if (!PolicyServiceLib.policyIsCloseable(instanceReader, policyNftId)) {
|
337
383
|
revert ErrorPolicyServicePolicyNotCloseable(policyNftId);
|
338
384
|
}
|
339
385
|
|
@@ -349,7 +395,6 @@ contract PolicyService is
|
|
349
395
|
// release (remaining) collateral that was blocked by policy
|
350
396
|
_poolService.releaseCollateral(
|
351
397
|
instance,
|
352
|
-
address(instanceReader.getComponentInfo(productNftId).token),
|
353
398
|
policyNftId,
|
354
399
|
policyInfo);
|
355
400
|
|
@@ -360,40 +405,13 @@ contract PolicyService is
|
|
360
405
|
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, CLOSED());
|
361
406
|
|
362
407
|
// unlink policy from risk and bundle
|
363
|
-
NftId poolNftId = getRegistry().
|
408
|
+
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
364
409
|
instance.getRiskSet().unlinkPolicy(productNftId, riskId, policyNftId);
|
365
410
|
instance.getBundleSet().unlinkPolicy(poolNftId, bundleNftId, policyNftId);
|
366
411
|
|
367
412
|
emit LogPolicyServicePolicyClosed(policyNftId);
|
368
413
|
}
|
369
414
|
|
370
|
-
|
371
|
-
function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
|
372
|
-
public
|
373
|
-
view
|
374
|
-
returns (bool isCloseable)
|
375
|
-
{
|
376
|
-
// policy already closed
|
377
|
-
if (instanceReader.getPolicyState(policyNftId) == CLOSED()) {
|
378
|
-
return false;
|
379
|
-
}
|
380
|
-
|
381
|
-
IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
|
382
|
-
|
383
|
-
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
384
|
-
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
385
|
-
if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
|
386
|
-
|
387
|
-
// closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
|
388
|
-
if (info.claimAmount == info.sumInsuredAmount) { return true; }
|
389
|
-
|
390
|
-
// not closeable: not yet expired
|
391
|
-
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
392
|
-
|
393
|
-
// all conditions to close the policy are met
|
394
|
-
return true;
|
395
|
-
}
|
396
|
-
|
397
415
|
/// @dev shared functionality for expire() and policyExpire().
|
398
416
|
function _expire(
|
399
417
|
IInstance instance,
|
@@ -402,67 +420,31 @@ contract PolicyService is
|
|
402
420
|
Timestamp expireAt
|
403
421
|
)
|
404
422
|
internal
|
405
|
-
returns (Timestamp
|
423
|
+
returns (Timestamp)
|
406
424
|
{
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
}
|
413
|
-
|
414
|
-
// set return value to provided timestamp
|
415
|
-
expiredAt = expireAt;
|
416
|
-
|
417
|
-
// update expiredAt to current block timestamp if not set
|
418
|
-
if (expiredAt.eqz()) {
|
419
|
-
expiredAt = TimestampLib.blockTimestamp();
|
420
|
-
}
|
421
|
-
|
422
|
-
// check expiredAt represents a valid expiry time
|
423
|
-
if (expiredAt >= policyInfo.expiredAt) {
|
424
|
-
revert ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, expireAt);
|
425
|
-
}
|
426
|
-
|
427
|
-
if (expiredAt < TimestampLib.blockTimestamp()) {
|
428
|
-
revert ErrorPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.blockTimestamp(), expireAt);
|
429
|
-
}
|
425
|
+
PolicyServiceLib.checkExpiration(
|
426
|
+
expireAt,
|
427
|
+
policyNftId,
|
428
|
+
instance.getInstanceReader().getPolicyState(policyNftId),
|
429
|
+
policyInfo);
|
430
430
|
|
431
431
|
// effects
|
432
432
|
// update policyInfo with new expiredAt timestamp
|
433
|
-
|
434
|
-
|
433
|
+
if (expireAt.gtz()) {
|
434
|
+
policyInfo.expiredAt = expireAt;
|
435
|
+
} else {
|
436
|
+
policyInfo.expiredAt = TimestampLib.blockTimestamp();
|
437
|
+
}
|
435
438
|
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
436
439
|
|
437
|
-
emit LogPolicyServicePolicyExpirationUpdated(policyNftId,
|
440
|
+
emit LogPolicyServicePolicyExpirationUpdated(policyNftId, policyInfo.expiredAt);
|
438
441
|
|
439
442
|
// interactions
|
440
443
|
// callback to policy holder if applicable
|
441
|
-
_policyHolderPolicyExpired(policyNftId, expiredAt);
|
444
|
+
_policyHolderPolicyExpired(policyNftId, policyInfo.expiredAt);
|
445
|
+
return policyInfo.expiredAt;
|
442
446
|
}
|
443
447
|
|
444
|
-
// TODO cleanup
|
445
|
-
// /// @dev Calculates the premium and updates all counters in the other services.
|
446
|
-
// /// Only book keeping, no token transfers.
|
447
|
-
// function _processPremium(
|
448
|
-
// IInstance instance,
|
449
|
-
// NftId applicationNftId,
|
450
|
-
// IPolicy.PolicyInfo memory applicationInfo,
|
451
|
-
// IPolicy.PremiumInfo memory premium
|
452
|
-
// )
|
453
|
-
// internal
|
454
|
-
// virtual
|
455
|
-
// {
|
456
|
-
// // update the counters
|
457
|
-
// _processSale(
|
458
|
-
// instanceReader,
|
459
|
-
// instance.getInstanceStore(),
|
460
|
-
// productNftId,
|
461
|
-
// applicationInfo.bundleNftId,
|
462
|
-
// applicationInfo.referralId,
|
463
|
-
// premium);
|
464
|
-
// }
|
465
|
-
|
466
448
|
|
467
449
|
function _activate(
|
468
450
|
NftId policyNftId,
|
@@ -528,7 +510,7 @@ contract PolicyService is
|
|
528
510
|
|
529
511
|
|
530
512
|
/// @dev transfer the premium to the wallets the premium is distributed to
|
531
|
-
function
|
513
|
+
function _transferPremiumAmounts(
|
532
514
|
InstanceReader instanceReader,
|
533
515
|
NftId policyNftId,
|
534
516
|
NftId productNftId,
|
@@ -537,7 +519,6 @@ contract PolicyService is
|
|
537
519
|
internal
|
538
520
|
virtual
|
539
521
|
{
|
540
|
-
TokenHandler tokenHandler = _getTokenHandler(instanceReader, productNftId);
|
541
522
|
address policyHolder = getRegistry().ownerOf(policyNftId);
|
542
523
|
|
543
524
|
(
|
@@ -549,14 +530,19 @@ contract PolicyService is
|
|
549
530
|
instanceReader,
|
550
531
|
productNftId);
|
551
532
|
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
533
|
+
// step 1: collect premium amount from policy holder
|
534
|
+
TokenHandler tokenHandler = instanceReader.getTokenHandler(productNftId);
|
535
|
+
tokenHandler.pullToken(policyHolder, premium.premiumAmount);
|
536
|
+
|
537
|
+
// step 2: push distribution fee to distribution wallet
|
538
|
+
if (premium.distributionFeeAndCommissionAmount.gtz()) {
|
539
|
+
tokenHandler.pushToken(distributionWallet, premium.distributionFeeAndCommissionAmount);
|
540
|
+
}
|
541
|
+
|
542
|
+
// step 3: push pool fee, bundle fee and pool premium to pool wallet
|
543
|
+
if (premium.poolPremiumAndFeeAmount.gtz()) {
|
544
|
+
tokenHandler.pushToken(poolWallet, premium.poolPremiumAndFeeAmount);
|
545
|
+
}
|
560
546
|
}
|
561
547
|
|
562
548
|
|
@@ -576,31 +562,6 @@ contract PolicyService is
|
|
576
562
|
}
|
577
563
|
|
578
564
|
|
579
|
-
/// @dev checks the balance and allowance of the policy holder
|
580
|
-
function _checkPremiumBalanceAndAllowance(
|
581
|
-
IERC20Metadata token,
|
582
|
-
address tokenHandlerAddress,
|
583
|
-
address policyHolder,
|
584
|
-
Amount premiumAmount
|
585
|
-
)
|
586
|
-
internal
|
587
|
-
virtual
|
588
|
-
view
|
589
|
-
{
|
590
|
-
uint256 premium = premiumAmount.toInt();
|
591
|
-
uint256 balance = token.balanceOf(policyHolder);
|
592
|
-
uint256 allowance = token.allowance(policyHolder, tokenHandlerAddress);
|
593
|
-
|
594
|
-
if (balance < premium) {
|
595
|
-
revert ErrorPolicyServiceBalanceInsufficient(policyHolder, premium, balance);
|
596
|
-
}
|
597
|
-
|
598
|
-
if (allowance < premium) {
|
599
|
-
revert ErrorPolicyServiceAllowanceInsufficient(policyHolder, tokenHandlerAddress, premium, allowance);
|
600
|
-
}
|
601
|
-
}
|
602
|
-
|
603
|
-
|
604
565
|
function _policyHolderPolicyActivated(
|
605
566
|
NftId policyNftId,
|
606
567
|
Timestamp activateAt
|
@@ -659,21 +620,6 @@ contract PolicyService is
|
|
659
620
|
}
|
660
621
|
|
661
622
|
|
662
|
-
function _getTokenHandler(
|
663
|
-
InstanceReader instanceReader,
|
664
|
-
NftId productNftId
|
665
|
-
)
|
666
|
-
internal
|
667
|
-
virtual
|
668
|
-
view
|
669
|
-
returns (
|
670
|
-
TokenHandler tokenHandler
|
671
|
-
)
|
672
|
-
{
|
673
|
-
tokenHandler = instanceReader.getComponentInfo(productNftId).tokenHandler;
|
674
|
-
}
|
675
|
-
|
676
|
-
|
677
623
|
function _getDistributionNftAndWallets(
|
678
624
|
InstanceReader instanceReader,
|
679
625
|
NftId productNftId
|
@@ -717,7 +663,7 @@ contract PolicyService is
|
|
717
663
|
PRODUCT(), // caller must be product
|
718
664
|
true); // only active caller
|
719
665
|
|
720
|
-
productNftId = productInfo.nftId;
|
666
|
+
productNftId = productInfo.nftId; // calling product nft id
|
721
667
|
instance = IInstance(instanceAddress);
|
722
668
|
policyInfo = instance.getInstanceReader().getPolicyInfo(policyNftId);
|
723
669
|
|
@@ -0,0 +1,65 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
5
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
6
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {StateId, CLOSED, COLLATERALIZED} from "../type/StateId.sol";
|
9
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
10
|
+
|
11
|
+
library PolicyServiceLib {
|
12
|
+
|
13
|
+
function checkExpiration(
|
14
|
+
Timestamp newExpiredAt,
|
15
|
+
NftId policyNftId,
|
16
|
+
StateId policyState,
|
17
|
+
IPolicy.PolicyInfo memory policyInfo
|
18
|
+
)
|
19
|
+
external
|
20
|
+
view
|
21
|
+
{
|
22
|
+
if (policyState != COLLATERALIZED()) {
|
23
|
+
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
24
|
+
}
|
25
|
+
if (TimestampLib.blockTimestamp() < policyInfo.activatedAt) {
|
26
|
+
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
27
|
+
}
|
28
|
+
|
29
|
+
// check expiredAt represents a valid expiry time
|
30
|
+
if (newExpiredAt >= policyInfo.expiredAt) {
|
31
|
+
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
|
32
|
+
}
|
33
|
+
|
34
|
+
if (newExpiredAt.gtz() && newExpiredAt < TimestampLib.blockTimestamp()) {
|
35
|
+
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.blockTimestamp(), newExpiredAt);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
|
40
|
+
external
|
41
|
+
view
|
42
|
+
returns (bool isCloseable)
|
43
|
+
{
|
44
|
+
// policy already closed
|
45
|
+
if (instanceReader.getPolicyState(policyNftId) == CLOSED()) {
|
46
|
+
return false;
|
47
|
+
}
|
48
|
+
|
49
|
+
IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
|
50
|
+
|
51
|
+
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
52
|
+
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
53
|
+
if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
|
54
|
+
|
55
|
+
// closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
|
56
|
+
if (info.claimAmount == info.sumInsuredAmount) { return true; }
|
57
|
+
|
58
|
+
// not closeable: not yet expired
|
59
|
+
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
60
|
+
|
61
|
+
// all conditions to close the policy are met
|
62
|
+
return true;
|
63
|
+
}
|
64
|
+
|
65
|
+
}
|
@@ -17,7 +17,7 @@ contract PolicyServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
PolicyService svc = new PolicyService{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),
|
@@ -42,14 +42,15 @@ contract PricingService is
|
|
42
42
|
initializer()
|
43
43
|
{
|
44
44
|
(
|
45
|
-
address
|
46
|
-
address
|
45
|
+
address authority,
|
46
|
+
address registry
|
47
47
|
) = abi.decode(data, (address, address));
|
48
48
|
|
49
|
-
|
50
|
-
_registerInterface(type(IPricingService).interfaceId);
|
49
|
+
__Service_init(authority, registry, owner);
|
51
50
|
|
52
51
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
52
|
+
|
53
|
+
_registerInterface(type(IPricingService).interfaceId);
|
53
54
|
}
|
54
55
|
|
55
56
|
/// @dev calculates the premium amount for the specified attributes
|
@@ -98,6 +99,7 @@ contract PricingService is
|
|
98
99
|
{
|
99
100
|
// get configurations for all involed objects
|
100
101
|
IComponents.ProductInfo memory productInfo = reader.getProductInfo(productNftId);
|
102
|
+
IComponents.FeeInfo memory feeInfo = reader.getFeeInfo(productNftId);
|
101
103
|
|
102
104
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
103
105
|
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
@@ -107,21 +109,22 @@ contract PricingService is
|
|
107
109
|
// calculate fixed fees for product, pool, bundle
|
108
110
|
premium = _getFixedFeeAmounts(
|
109
111
|
netPremiumAmount,
|
110
|
-
|
112
|
+
feeInfo,
|
111
113
|
bundleInfo
|
112
114
|
);
|
113
115
|
|
114
116
|
// calculate variable fees for product, pool, bundle
|
115
117
|
premium = _calculateVariableFeeAmounts(
|
116
118
|
premium,
|
117
|
-
|
119
|
+
feeInfo,
|
118
120
|
bundleInfo
|
119
121
|
);
|
120
122
|
|
121
123
|
// calculate distribution fee and (if applicable) commission
|
122
124
|
premium = _calculateDistributionOwnerFeeAmount(
|
123
125
|
premium,
|
124
|
-
|
126
|
+
feeInfo,
|
127
|
+
productInfo.distributionNftId,
|
125
128
|
referralId,
|
126
129
|
reader
|
127
130
|
);
|
@@ -137,7 +140,7 @@ contract PricingService is
|
|
137
140
|
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
138
141
|
}
|
139
142
|
|
140
|
-
if (premium.distributionOwnerFeeFixAmount.toInt() <
|
143
|
+
if (premium.distributionOwnerFeeFixAmount.toInt() < feeInfo.minDistributionOwnerFee.fixedFee) {
|
141
144
|
revert ErrorPricingServiceFeeCalculationMismatch(
|
142
145
|
premium.distributionFeeFixAmount,
|
143
146
|
premium.distributionFeeVarAmount,
|
@@ -164,7 +167,7 @@ contract PricingService is
|
|
164
167
|
// internal functions
|
165
168
|
function _getFixedFeeAmounts(
|
166
169
|
Amount netPremiumAmount,
|
167
|
-
IComponents.
|
170
|
+
IComponents.FeeInfo memory feeInfo,
|
168
171
|
IBundle.BundleInfo memory bundleInfo
|
169
172
|
)
|
170
173
|
internal
|
@@ -177,11 +180,11 @@ contract PricingService is
|
|
177
180
|
premium.netPremiumAmount = netPremiumAmount;
|
178
181
|
premium.fullPremiumAmount = netPremiumAmount;
|
179
182
|
|
180
|
-
Amount t = AmountLib.toAmount(
|
183
|
+
Amount t = AmountLib.toAmount(feeInfo.productFee.fixedFee);
|
181
184
|
premium.productFeeFixAmount = t;
|
182
185
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
183
186
|
|
184
|
-
t = AmountLib.toAmount(
|
187
|
+
t = AmountLib.toAmount(feeInfo.poolFee.fixedFee);
|
185
188
|
premium.poolFeeFixAmount = t;
|
186
189
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
187
190
|
|
@@ -189,14 +192,14 @@ contract PricingService is
|
|
189
192
|
premium.bundleFeeFixAmount = t;
|
190
193
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
191
194
|
|
192
|
-
t = AmountLib.toAmount(
|
195
|
+
t = AmountLib.toAmount(feeInfo.distributionFee.fixedFee);
|
193
196
|
premium.distributionFeeFixAmount = t;
|
194
197
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
195
198
|
}
|
196
199
|
|
197
200
|
function _calculateVariableFeeAmounts(
|
198
201
|
IPolicy.PremiumInfo memory premium,
|
199
|
-
IComponents.
|
202
|
+
IComponents.FeeInfo memory feeInfo,
|
200
203
|
IBundle.BundleInfo memory bundleInfo
|
201
204
|
)
|
202
205
|
internal
|
@@ -207,11 +210,11 @@ contract PricingService is
|
|
207
210
|
{
|
208
211
|
Amount netPremiumAmount = premium.netPremiumAmount;
|
209
212
|
|
210
|
-
Amount t = netPremiumAmount.multiplyWith(
|
213
|
+
Amount t = netPremiumAmount.multiplyWith(feeInfo.productFee.fractionalFee);
|
211
214
|
premium.productFeeVarAmount = t;
|
212
215
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
213
216
|
|
214
|
-
t = netPremiumAmount.multiplyWith(
|
217
|
+
t = netPremiumAmount.multiplyWith(feeInfo.poolFee.fractionalFee);
|
215
218
|
premium.poolFeeVarAmount = t;
|
216
219
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
217
220
|
|
@@ -219,7 +222,7 @@ contract PricingService is
|
|
219
222
|
premium.bundleFeeVarAmount = t;
|
220
223
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
221
224
|
|
222
|
-
t = netPremiumAmount.multiplyWith(
|
225
|
+
t = netPremiumAmount.multiplyWith(feeInfo.distributionFee.fractionalFee);
|
223
226
|
premium.distributionFeeVarAmount = t;
|
224
227
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
225
228
|
|
@@ -228,7 +231,8 @@ contract PricingService is
|
|
228
231
|
|
229
232
|
function _calculateDistributionOwnerFeeAmount(
|
230
233
|
IPolicy.PremiumInfo memory premium,
|
231
|
-
IComponents.
|
234
|
+
IComponents.FeeInfo memory feeInfo,
|
235
|
+
NftId distributionNftId,
|
232
236
|
// ISetup.DistributionSetupInfo memory distInfo,
|
233
237
|
ReferralId referralId,
|
234
238
|
InstanceReader reader
|
@@ -239,14 +243,14 @@ contract PricingService is
|
|
239
243
|
{
|
240
244
|
|
241
245
|
// if the referral is not valid, then the distribution owner gets everything
|
242
|
-
if (
|
246
|
+
if (distributionNftId.eqz() || ! _distributionService.referralIsValid(distributionNftId, referralId)) {
|
243
247
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
244
248
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
245
249
|
premium.premiumAmount = premium.fullPremiumAmount;
|
246
250
|
return premium;
|
247
251
|
}
|
248
252
|
|
249
|
-
Fee memory minDistributionOwnerFee =
|
253
|
+
Fee memory minDistributionOwnerFee = feeInfo.minDistributionOwnerFee;
|
250
254
|
|
251
255
|
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
252
256
|
// the remaing amount goes to the distribution owner
|
@@ -12,14 +12,14 @@ contract PricingServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with pricing service implementation and deploys instance
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
18
|
{
|
19
19
|
PricingService pricingSrv = new PricingService{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(pricingSrv),
|
24
24
|
data,
|
25
25
|
salt);
|