@etherisc/gif-next 0.0.2-9e03baf-990 → 0.0.2-9e6b423-414
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +110 -209
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +40 -128
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +374 -196
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +113 -71
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +26 -114
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +210 -71
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +134 -102
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +291 -252
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +181 -207
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +75 -100
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +151 -129
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +380 -256
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +502 -49
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +300 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +518 -84
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1022 -326
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +393 -52
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1064 -471
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +309 -84
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +40 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +673 -557
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +60 -83
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -53
- 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 +44 -67
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +114 -83
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +71 -45
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +65 -88
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +120 -312
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +62 -104
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +44 -128
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +40 -63
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +138 -193
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +53 -76
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +288 -317
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +105 -67
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +167 -59
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +56 -42
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +176 -184
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +86 -88
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +103 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -55
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +157 -165
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +220 -195
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +87 -77
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +112 -108
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +57 -71
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +170 -178
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +131 -81
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +60 -42
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +36 -12
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +74 -50
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +728 -480
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +55 -48
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +36 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +43 -52
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +206 -562
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -87
- 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 +525 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +30 -39
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +115 -390
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +30 -53
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +43 -66
- 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 +96 -40
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +134 -10
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +191 -103
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +66 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +40 -67
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +189 -58
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +53 -43
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +163 -149
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +61 -51
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -18
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +261 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +426 -242
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -257
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -42
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +247 -33
- package/contracts/distribution/BasicDistribution.sol +18 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +38 -78
- package/contracts/distribution/DistributionService.sol +183 -96
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +32 -24
- package/contracts/examples/fire/FirePool.sol +6 -6
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +9 -7
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +34 -11
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +7 -13
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +36 -8
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +97 -18
- package/contracts/instance/IInstanceService.sol +50 -8
- package/contracts/instance/Instance.sol +170 -57
- package/contracts/instance/InstanceAdmin.sol +271 -165
- package/contracts/instance/InstanceAuthorizationV3.sol +114 -43
- package/contracts/instance/InstanceReader.sol +449 -312
- package/contracts/instance/InstanceService.sol +260 -163
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +19 -7
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +96 -78
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +0 -2
- package/contracts/pool/BasicPoolAuthorization.sol +28 -14
- package/contracts/pool/BundleService.sol +35 -125
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -38
- package/contracts/pool/IPoolService.sol +49 -56
- package/contracts/pool/Pool.sol +9 -11
- package/contracts/pool/PoolLib.sol +353 -0
- package/contracts/pool/PoolService.sol +190 -223
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +34 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -2
- package/contracts/product/BasicProductAuthorization.sol +30 -11
- package/contracts/product/ClaimService.sol +167 -150
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +23 -10
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +235 -290
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +30 -21
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +57 -22
- package/contracts/product/RiskService.sol +89 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +12 -15
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +7 -2
- package/contracts/registry/RegistryAdmin.sol +100 -374
- package/contracts/registry/RegistryAuthorization.sol +277 -0
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +153 -118
- package/contracts/registry/ServiceAuthorizationV3.sol +187 -46
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +30 -49
- package/contracts/shared/ComponentService.sol +330 -431
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +259 -2
- package/contracts/shared/IComponent.sol +0 -9
- package/contracts/shared/IComponentService.sol +21 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +3 -14
- package/contracts/shared/NftOwnable.sol +6 -6
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +45 -100
- package/contracts/staking/IStaking.sol +18 -12
- package/contracts/staking/IStakingService.sol +19 -1
- package/contracts/staking/Staking.sol +73 -33
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +6 -16
- package/contracts/staking/StakingService.sol +71 -57
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/staking/TargetManagerLib.sol +1 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +69 -38
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +34 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +14 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +4 -1
- package/package.json +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/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -0,0 +1,139 @@
|
|
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 policyIsActive(InstanceReader instanceReader, NftId policyNftId)
|
14
|
+
external
|
15
|
+
view
|
16
|
+
returns (bool isActive)
|
17
|
+
{
|
18
|
+
// policy not collateralized
|
19
|
+
if (instanceReader.getPolicyState(policyNftId) != COLLATERALIZED()) {
|
20
|
+
return false;
|
21
|
+
}
|
22
|
+
|
23
|
+
IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
|
24
|
+
|
25
|
+
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
26
|
+
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
27
|
+
if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
|
28
|
+
if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
|
29
|
+
|
30
|
+
return true;
|
31
|
+
}
|
32
|
+
|
33
|
+
function activate(
|
34
|
+
NftId policyNftId,
|
35
|
+
IPolicy.PolicyInfo memory policyInfo,
|
36
|
+
Timestamp activateAt
|
37
|
+
)
|
38
|
+
external
|
39
|
+
pure
|
40
|
+
returns (IPolicy.PolicyInfo memory)
|
41
|
+
{
|
42
|
+
// fail if policy has already been activated and activateAt is different
|
43
|
+
if(! policyInfo.activatedAt.eqz() && activateAt != policyInfo.activatedAt) {
|
44
|
+
revert IPolicyService.ErrorPolicyServicePolicyAlreadyActivated(policyNftId);
|
45
|
+
}
|
46
|
+
|
47
|
+
// ignore if policy has already been activated and activateAt is the same
|
48
|
+
if (policyInfo.activatedAt == activateAt) {
|
49
|
+
return policyInfo;
|
50
|
+
}
|
51
|
+
|
52
|
+
policyInfo.activatedAt = activateAt;
|
53
|
+
policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
|
54
|
+
|
55
|
+
return policyInfo;
|
56
|
+
}
|
57
|
+
|
58
|
+
function expire(
|
59
|
+
InstanceReader instanceReader,
|
60
|
+
NftId policyNftId,
|
61
|
+
IPolicy.PolicyInfo memory policyInfo,
|
62
|
+
Timestamp expireAt
|
63
|
+
)
|
64
|
+
external
|
65
|
+
view
|
66
|
+
returns (IPolicy.PolicyInfo memory)
|
67
|
+
{
|
68
|
+
StateId policyState = instanceReader.getPolicyState(policyNftId);
|
69
|
+
|
70
|
+
checkExpiration(
|
71
|
+
expireAt,
|
72
|
+
policyNftId,
|
73
|
+
policyState,
|
74
|
+
policyInfo);
|
75
|
+
|
76
|
+
// effects
|
77
|
+
// update policyInfo with new expiredAt timestamp
|
78
|
+
if (expireAt.gtz()) {
|
79
|
+
policyInfo.expiredAt = expireAt;
|
80
|
+
} else {
|
81
|
+
policyInfo.expiredAt = TimestampLib.blockTimestamp();
|
82
|
+
}
|
83
|
+
|
84
|
+
return policyInfo;
|
85
|
+
}
|
86
|
+
|
87
|
+
function checkExpiration(
|
88
|
+
Timestamp newExpiredAt,
|
89
|
+
NftId policyNftId,
|
90
|
+
StateId policyState,
|
91
|
+
IPolicy.PolicyInfo memory policyInfo
|
92
|
+
)
|
93
|
+
public
|
94
|
+
view
|
95
|
+
{
|
96
|
+
if (policyState != COLLATERALIZED()) {
|
97
|
+
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
98
|
+
}
|
99
|
+
if (TimestampLib.blockTimestamp() < policyInfo.activatedAt) {
|
100
|
+
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
101
|
+
}
|
102
|
+
|
103
|
+
// check expiredAt represents a valid expiry time
|
104
|
+
if (newExpiredAt >= policyInfo.expiredAt) {
|
105
|
+
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
|
106
|
+
}
|
107
|
+
|
108
|
+
if (newExpiredAt.gtz() && newExpiredAt < TimestampLib.blockTimestamp()) {
|
109
|
+
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.blockTimestamp(), newExpiredAt);
|
110
|
+
}
|
111
|
+
}
|
112
|
+
|
113
|
+
function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
|
114
|
+
external
|
115
|
+
view
|
116
|
+
returns (bool isCloseable)
|
117
|
+
{
|
118
|
+
// policy already closed
|
119
|
+
if (instanceReader.getPolicyState(policyNftId) == CLOSED()) {
|
120
|
+
return false;
|
121
|
+
}
|
122
|
+
|
123
|
+
IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
|
124
|
+
|
125
|
+
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
126
|
+
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
127
|
+
if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
|
128
|
+
|
129
|
+
// closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
|
130
|
+
if (info.claimAmount == info.sumInsuredAmount) { return true; }
|
131
|
+
|
132
|
+
// not closeable: not yet expired
|
133
|
+
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
134
|
+
|
135
|
+
// all conditions to close the policy are met
|
136
|
+
return true;
|
137
|
+
}
|
138
|
+
|
139
|
+
}
|
@@ -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
|
@@ -86,6 +87,11 @@ contract PricingService is
|
|
86
87
|
// get instance reader from local instance variable
|
87
88
|
reader = instance.getInstanceReader();
|
88
89
|
|
90
|
+
NftId riskProductNftId = reader.getRiskInfo(riskId).productNftId;
|
91
|
+
if (productNftId != riskProductNftId) {
|
92
|
+
revert ErrorPricingServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
|
93
|
+
}
|
94
|
+
|
89
95
|
// calculate net premium
|
90
96
|
netPremiumAmount = IProductComponent(registryInfo.objectAddress).calculateNetPremium(
|
91
97
|
sumInsuredAmount,
|
@@ -98,6 +104,7 @@ contract PricingService is
|
|
98
104
|
{
|
99
105
|
// get configurations for all involed objects
|
100
106
|
IComponents.ProductInfo memory productInfo = reader.getProductInfo(productNftId);
|
107
|
+
IComponents.FeeInfo memory feeInfo = reader.getFeeInfo(productNftId);
|
101
108
|
|
102
109
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
103
110
|
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
@@ -107,21 +114,22 @@ contract PricingService is
|
|
107
114
|
// calculate fixed fees for product, pool, bundle
|
108
115
|
premium = _getFixedFeeAmounts(
|
109
116
|
netPremiumAmount,
|
110
|
-
|
117
|
+
feeInfo,
|
111
118
|
bundleInfo
|
112
119
|
);
|
113
120
|
|
114
121
|
// calculate variable fees for product, pool, bundle
|
115
122
|
premium = _calculateVariableFeeAmounts(
|
116
123
|
premium,
|
117
|
-
|
124
|
+
feeInfo,
|
118
125
|
bundleInfo
|
119
126
|
);
|
120
127
|
|
121
128
|
// calculate distribution fee and (if applicable) commission
|
122
129
|
premium = _calculateDistributionOwnerFeeAmount(
|
123
130
|
premium,
|
124
|
-
|
131
|
+
feeInfo,
|
132
|
+
productInfo.distributionNftId,
|
125
133
|
referralId,
|
126
134
|
reader
|
127
135
|
);
|
@@ -137,7 +145,7 @@ contract PricingService is
|
|
137
145
|
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
138
146
|
}
|
139
147
|
|
140
|
-
if (premium.distributionOwnerFeeFixAmount
|
148
|
+
if (premium.distributionOwnerFeeFixAmount < feeInfo.minDistributionOwnerFee.fixedFee) {
|
141
149
|
revert ErrorPricingServiceFeeCalculationMismatch(
|
142
150
|
premium.distributionFeeFixAmount,
|
143
151
|
premium.distributionFeeVarAmount,
|
@@ -164,7 +172,7 @@ contract PricingService is
|
|
164
172
|
// internal functions
|
165
173
|
function _getFixedFeeAmounts(
|
166
174
|
Amount netPremiumAmount,
|
167
|
-
IComponents.
|
175
|
+
IComponents.FeeInfo memory feeInfo,
|
168
176
|
IBundle.BundleInfo memory bundleInfo
|
169
177
|
)
|
170
178
|
internal
|
@@ -177,26 +185,26 @@ contract PricingService is
|
|
177
185
|
premium.netPremiumAmount = netPremiumAmount;
|
178
186
|
premium.fullPremiumAmount = netPremiumAmount;
|
179
187
|
|
180
|
-
Amount t =
|
188
|
+
Amount t = feeInfo.productFee.fixedFee;
|
181
189
|
premium.productFeeFixAmount = t;
|
182
190
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
183
191
|
|
184
|
-
t =
|
192
|
+
t = feeInfo.poolFee.fixedFee;
|
185
193
|
premium.poolFeeFixAmount = t;
|
186
194
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
187
195
|
|
188
|
-
t =
|
196
|
+
t = bundleInfo.fee.fixedFee;
|
189
197
|
premium.bundleFeeFixAmount = t;
|
190
198
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
191
199
|
|
192
|
-
t =
|
200
|
+
t = feeInfo.distributionFee.fixedFee;
|
193
201
|
premium.distributionFeeFixAmount = t;
|
194
202
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
195
203
|
}
|
196
204
|
|
197
205
|
function _calculateVariableFeeAmounts(
|
198
206
|
IPolicy.PremiumInfo memory premium,
|
199
|
-
IComponents.
|
207
|
+
IComponents.FeeInfo memory feeInfo,
|
200
208
|
IBundle.BundleInfo memory bundleInfo
|
201
209
|
)
|
202
210
|
internal
|
@@ -207,11 +215,11 @@ contract PricingService is
|
|
207
215
|
{
|
208
216
|
Amount netPremiumAmount = premium.netPremiumAmount;
|
209
217
|
|
210
|
-
Amount t = netPremiumAmount.multiplyWith(
|
218
|
+
Amount t = netPremiumAmount.multiplyWith(feeInfo.productFee.fractionalFee);
|
211
219
|
premium.productFeeVarAmount = t;
|
212
220
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
213
221
|
|
214
|
-
t = netPremiumAmount.multiplyWith(
|
222
|
+
t = netPremiumAmount.multiplyWith(feeInfo.poolFee.fractionalFee);
|
215
223
|
premium.poolFeeVarAmount = t;
|
216
224
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
217
225
|
|
@@ -219,7 +227,7 @@ contract PricingService is
|
|
219
227
|
premium.bundleFeeVarAmount = t;
|
220
228
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
221
229
|
|
222
|
-
t = netPremiumAmount.multiplyWith(
|
230
|
+
t = netPremiumAmount.multiplyWith(feeInfo.distributionFee.fractionalFee);
|
223
231
|
premium.distributionFeeVarAmount = t;
|
224
232
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
225
233
|
|
@@ -228,7 +236,8 @@ contract PricingService is
|
|
228
236
|
|
229
237
|
function _calculateDistributionOwnerFeeAmount(
|
230
238
|
IPolicy.PremiumInfo memory premium,
|
231
|
-
IComponents.
|
239
|
+
IComponents.FeeInfo memory feeInfo,
|
240
|
+
NftId distributionNftId,
|
232
241
|
// ISetup.DistributionSetupInfo memory distInfo,
|
233
242
|
ReferralId referralId,
|
234
243
|
InstanceReader reader
|
@@ -239,14 +248,14 @@ contract PricingService is
|
|
239
248
|
{
|
240
249
|
|
241
250
|
// if the referral is not valid, then the distribution owner gets everything
|
242
|
-
if (
|
251
|
+
if (distributionNftId.eqz() || ! _distributionService.referralIsValid(distributionNftId, referralId)) {
|
243
252
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
244
253
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
245
254
|
premium.premiumAmount = premium.fullPremiumAmount;
|
246
255
|
return premium;
|
247
256
|
}
|
248
257
|
|
249
|
-
Fee memory minDistributionOwnerFee =
|
258
|
+
Fee memory minDistributionOwnerFee = feeInfo.minDistributionOwnerFee;
|
250
259
|
|
251
260
|
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
252
261
|
// the remaing amount goes to the distribution owner
|
@@ -258,7 +267,7 @@ contract PricingService is
|
|
258
267
|
Amount commissionAmount = premium.netPremiumAmount.multiplyWith(distributorTypeInfo.commissionPercentage);
|
259
268
|
premium.commissionAmount = commissionAmount;
|
260
269
|
premium.discountAmount = premium.fullPremiumAmount.multiplyWith(referralInfo.discountPercentage);
|
261
|
-
premium.distributionOwnerFeeFixAmount =
|
270
|
+
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
262
271
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
263
272
|
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
264
273
|
}
|
@@ -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);
|
@@ -3,23 +3,20 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
6
|
-
import {
|
7
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
8
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
6
|
+
import {Fee} from "../type/Fee.sol";
|
9
7
|
import {IApplicationService} from "./IApplicationService.sol";
|
10
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
11
9
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
10
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
-
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
14
11
|
import {IPolicyService} from "./IPolicyService.sol";
|
15
12
|
import {IRiskService} from "./IRiskService.sol";
|
16
13
|
import {IClaimService} from "./IClaimService.sol";
|
17
14
|
import {IPricingService} from "./IPricingService.sol";
|
18
15
|
import {IProductComponent} from "./IProductComponent.sol";
|
19
|
-
import {NftId
|
20
|
-
import {
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {COMPONENT, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
21
18
|
import {PayoutId} from "../type/PayoutId.sol";
|
22
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE } from "../type/ObjectType.sol";
|
19
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
|
23
20
|
import {ReferralId} from "../type/Referral.sol";
|
24
21
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
25
22
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -28,9 +25,6 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
28
25
|
|
29
26
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
30
27
|
import {IComponents} from "../instance/module/IComponents.sol";
|
31
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
|
-
import {IOracleComponent} from "../oracle/IOracleComponent.sol";
|
33
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
34
28
|
|
35
29
|
abstract contract Product is
|
36
30
|
InstanceLinkedComponent,
|
@@ -41,6 +35,7 @@ abstract contract Product is
|
|
41
35
|
|
42
36
|
struct ProductStorage {
|
43
37
|
IComponents.ProductInfo _productInfo;
|
38
|
+
IComponents.FeeInfo _feeInfo;
|
44
39
|
IComponentService _componentService;
|
45
40
|
IRiskService _riskService;
|
46
41
|
IApplicationService _applicationService;
|
@@ -126,13 +121,22 @@ abstract contract Product is
|
|
126
121
|
return _getProductStorage()._productInfo;
|
127
122
|
}
|
128
123
|
|
124
|
+
function getInitialFeeInfo()
|
125
|
+
public
|
126
|
+
virtual
|
127
|
+
view
|
128
|
+
returns (IComponents.FeeInfo memory feeInfo)
|
129
|
+
{
|
130
|
+
return _getProductStorage()._feeInfo;
|
131
|
+
}
|
132
|
+
|
129
133
|
|
130
134
|
function _initializeProduct(
|
131
135
|
address registry,
|
132
136
|
NftId instanceNftId,
|
133
137
|
string memory name,
|
134
|
-
address token,
|
135
138
|
IComponents.ProductInfo memory productInfo,
|
139
|
+
IComponents.FeeInfo memory feeInfo,
|
136
140
|
IAuthorization authorization,
|
137
141
|
address initialOwner,
|
138
142
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
@@ -145,7 +149,6 @@ abstract contract Product is
|
|
145
149
|
registry,
|
146
150
|
instanceNftId,
|
147
151
|
name,
|
148
|
-
token,
|
149
152
|
PRODUCT(),
|
150
153
|
authorization,
|
151
154
|
productInfo.isInterceptingPolicyTransfers,
|
@@ -154,7 +157,8 @@ abstract contract Product is
|
|
154
157
|
|
155
158
|
ProductStorage storage $ = _getProductStorage();
|
156
159
|
$._productInfo = productInfo;
|
157
|
-
$.
|
160
|
+
$._feeInfo = feeInfo;
|
161
|
+
$._riskService = IRiskService(_getServiceAddress(RISK()));
|
158
162
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
159
163
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
160
164
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
@@ -177,13 +181,14 @@ abstract contract Product is
|
|
177
181
|
|
178
182
|
|
179
183
|
function _createRisk(
|
180
|
-
|
184
|
+
bytes32 id,
|
181
185
|
bytes memory data
|
182
186
|
)
|
183
187
|
internal
|
184
188
|
virtual
|
189
|
+
returns (RiskId riskId)
|
185
190
|
{
|
186
|
-
_getProductStorage()._riskService.createRisk(
|
191
|
+
return _getProductStorage()._riskService.createRisk(
|
187
192
|
id,
|
188
193
|
data
|
189
194
|
);
|
@@ -216,11 +221,6 @@ abstract contract Product is
|
|
216
221
|
}
|
217
222
|
|
218
223
|
|
219
|
-
function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
|
220
|
-
return getInstance().getInstanceReader().getRiskInfo(id);
|
221
|
-
}
|
222
|
-
|
223
|
-
|
224
224
|
function _createApplication(
|
225
225
|
address applicationOwner,
|
226
226
|
RiskId riskId,
|
@@ -281,6 +281,21 @@ abstract contract Product is
|
|
281
281
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
282
282
|
}
|
283
283
|
|
284
|
+
/// @dev adjust the activation date of the policy.
|
285
|
+
/// The policy must already have an activation date set.
|
286
|
+
/// Allowed values are from the current blocktime to the expiration date of the policy.
|
287
|
+
function _adjustActivation(
|
288
|
+
NftId policyNftId,
|
289
|
+
Timestamp activateAt
|
290
|
+
)
|
291
|
+
internal
|
292
|
+
virtual
|
293
|
+
{
|
294
|
+
_getProductStorage()._policyService.adjustActivation(
|
295
|
+
policyNftId,
|
296
|
+
activateAt);
|
297
|
+
}
|
298
|
+
|
284
299
|
function _collectPremium(
|
285
300
|
NftId policyNftId,
|
286
301
|
Timestamp activateAt
|
@@ -330,6 +345,18 @@ abstract contract Product is
|
|
330
345
|
claimData);
|
331
346
|
}
|
332
347
|
|
348
|
+
function _revokeClaim(
|
349
|
+
NftId policyNftId,
|
350
|
+
ClaimId claimId
|
351
|
+
)
|
352
|
+
internal
|
353
|
+
virtual
|
354
|
+
{
|
355
|
+
_getProductStorage()._claimService.revoke(
|
356
|
+
policyNftId,
|
357
|
+
claimId);
|
358
|
+
}
|
359
|
+
|
333
360
|
function _confirmClaim(
|
334
361
|
NftId policyNftId,
|
335
362
|
ClaimId claimId,
|
@@ -420,8 +447,16 @@ abstract contract Product is
|
|
420
447
|
payoutId);
|
421
448
|
}
|
422
449
|
|
423
|
-
function
|
424
|
-
|
450
|
+
function _cancelPayout(
|
451
|
+
NftId policyNftId,
|
452
|
+
PayoutId payoutId
|
453
|
+
)
|
454
|
+
internal
|
455
|
+
virtual
|
456
|
+
{
|
457
|
+
_getProductStorage()._claimService.cancelPayout(
|
458
|
+
policyNftId,
|
459
|
+
payoutId);
|
425
460
|
}
|
426
461
|
|
427
462
|
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|