@etherisc/gif-next 0.0.2-e016345-525 → 0.0.2-e04dbfc-031
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 +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +137 -58
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +37 -31
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +83 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +449 -248
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -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 +222 -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 +348 -184
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +100 -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 +83 -129
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +207 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -81
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +283 -181
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +74 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +33 -68
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +155 -68
- 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 +92 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +188 -46
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +248 -191
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +207 -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 +149 -131
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +207 -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 +113 -47
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +188 -46
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +305 -150
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +207 -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 +139 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +100 -7
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -53
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +672 -320
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +188 -46
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +374 -197
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +113 -83
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -38
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +422 -352
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -38
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +189 -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 +91 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +42 -36
- 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 +188 -46
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +118 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -64
- 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 +472 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +265 -278
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +86 -56
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +139 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- 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 +207 -33
- 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 +72 -74
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +69 -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 +48 -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 +58 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +215 -187
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +68 -66
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +122 -78
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +48 -42
- 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 +131 -81
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -28
- 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 +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 +548 -429
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- 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 +22 -24
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -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 +324 -54
- 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 +96 -138
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +44 -50
- 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 +113 -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 +28 -45
- 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/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 +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 +112 -17
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +130 -6
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +191 -74
- 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 +56 -32
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +30 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +185 -54
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -29
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +143 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +33 -23
- 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 +3 -3
- 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 +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +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/UFixed.sol/UFixedLib.json +3 -3
- 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 +4 -4
- 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 +43 -26
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +3 -0
- package/contracts/authorization/AccessAdmin.sol +293 -205
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +307 -231
- package/contracts/authorization/IAccessAdmin.sol +69 -36
- package/contracts/authorization/IAuthorization.sol +21 -1
- package/contracts/distribution/BasicDistribution.sol +12 -8
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +14 -55
- package/contracts/distribution/DistributionService.sol +62 -30
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/distribution/IDistributionService.sol +18 -15
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +4 -3
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +28 -0
- 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 +29 -4
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +49 -15
- package/contracts/instance/IInstanceService.sol +15 -1
- package/contracts/instance/Instance.sol +80 -23
- package/contracts/instance/InstanceAdmin.sol +269 -104
- package/contracts/instance/InstanceAuthorizationV3.sol +49 -36
- package/contracts/instance/InstanceReader.sol +106 -35
- package/contracts/instance/InstanceService.sol +144 -73
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +3 -2
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +20 -19
- 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 -20
- package/contracts/pool/IPoolService.sol +50 -38
- package/contracts/pool/Pool.sol +9 -9
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +334 -190
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +28 -9
- 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 +165 -139
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +3 -0
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +11 -6
- 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 +112 -184
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +28 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +55 -13
- package/contracts/product/RiskService.sol +76 -29
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- 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 +143 -342
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +149 -117
- package/contracts/registry/ServiceAuthorizationV3.sol +159 -2
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +119 -116
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +60 -3
- package/contracts/shared/IComponent.sol +3 -4
- package/contracts/shared/IComponentService.sol +4 -10
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +2 -2
- package/contracts/shared/NftOwnable.sol +6 -5
- 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 +8 -27
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +12 -10
- package/contracts/staking/IStakingService.sol +19 -1
- package/contracts/staking/Staking.sol +57 -26
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +6 -16
- package/contracts/staking/StakingService.sol +71 -44
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/ObjectType.sol +47 -39
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +2 -2
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/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
@@ -3,9 +3,6 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
-
import {ContractLib} from "../shared/ContractLib.sol";
|
8
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
9
6
|
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
10
7
|
import {IComponent} from "../shared/IComponent.sol";
|
11
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
@@ -26,7 +23,7 @@ import {Amount, AmountLib} from "../type/Amount.sol";
|
|
26
23
|
import {ContractLib} from "../shared/ContractLib.sol";
|
27
24
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
28
25
|
import {KEEP_STATE} from "../type/StateId.sol";
|
29
|
-
import {NftId} from "../type/NftId.sol";
|
26
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
30
27
|
import {ObjectType, ACCOUNTING, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
31
28
|
import {Service} from "../shared/Service.sol";
|
32
29
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
@@ -79,11 +76,11 @@ contract ComponentService is
|
|
79
76
|
initializer()
|
80
77
|
{
|
81
78
|
(
|
82
|
-
address
|
83
|
-
address
|
79
|
+
address authority,
|
80
|
+
address registry
|
84
81
|
) = abi.decode(data, (address, address));
|
85
82
|
|
86
|
-
|
83
|
+
__Service_init(authority, registry, owner);
|
87
84
|
|
88
85
|
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
89
86
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
@@ -97,6 +94,7 @@ contract ComponentService is
|
|
97
94
|
function registerComponent(address component)
|
98
95
|
external
|
99
96
|
virtual
|
97
|
+
restricted()
|
100
98
|
onlyComponent(component)
|
101
99
|
returns (NftId componentNftId)
|
102
100
|
{
|
@@ -122,6 +120,7 @@ contract ComponentService is
|
|
122
120
|
)
|
123
121
|
external
|
124
122
|
virtual
|
123
|
+
restricted()
|
125
124
|
{
|
126
125
|
// checks
|
127
126
|
(NftId componentNftId, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
@@ -133,27 +132,10 @@ contract ComponentService is
|
|
133
132
|
}
|
134
133
|
|
135
134
|
|
136
|
-
function approveStakingTokenHandler(
|
137
|
-
IERC20Metadata token,
|
138
|
-
Amount amount
|
139
|
-
)
|
140
|
-
external
|
141
|
-
virtual
|
142
|
-
{
|
143
|
-
// checks
|
144
|
-
ContractLib.getAndVerifyStaking(
|
145
|
-
getRegistry(),
|
146
|
-
msg.sender); // only active
|
147
|
-
|
148
|
-
// effects
|
149
|
-
TokenHandler tokenHandler = IComponent(msg.sender).getTokenHandler();
|
150
|
-
tokenHandler.approve(token, amount);
|
151
|
-
}
|
152
|
-
|
153
|
-
|
154
135
|
function setWallet(address newWallet)
|
155
136
|
external
|
156
137
|
virtual
|
138
|
+
restricted()
|
157
139
|
{
|
158
140
|
// checks
|
159
141
|
(NftId componentNftId, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
@@ -165,56 +147,67 @@ contract ComponentService is
|
|
165
147
|
}
|
166
148
|
|
167
149
|
/// @inheritdoc IComponentService
|
168
|
-
function
|
150
|
+
function setLocked(bool locked)
|
169
151
|
external
|
170
152
|
virtual
|
171
|
-
|
172
|
-
{
|
173
|
-
address instanceAddress = msg.sender;
|
174
|
-
// NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
175
|
-
IInstance instance = IInstance(instanceAddress);
|
176
|
-
_setLocked(instance.getInstanceAdmin(), componentAddress, locked);
|
177
|
-
}
|
178
|
-
|
179
|
-
/// @inheritdoc IComponentService
|
180
|
-
function setLockedFromComponent(address componentAddress, bool locked)
|
181
|
-
external
|
182
|
-
virtual
|
183
|
-
onlyComponent(msg.sender)
|
153
|
+
restricted()
|
184
154
|
{
|
185
155
|
(, IInstance instance) = _getAndVerifyComponent(COMPONENT(), false);
|
186
|
-
|
156
|
+
|
157
|
+
address component = msg.sender;
|
158
|
+
instance.getInstanceAdmin().setComponentLocked(
|
159
|
+
component,
|
160
|
+
locked);
|
187
161
|
}
|
188
162
|
|
163
|
+
/// @inheritdoc IComponentService
|
189
164
|
function withdrawFees(Amount amount)
|
190
165
|
external
|
191
166
|
virtual
|
167
|
+
restricted()
|
192
168
|
returns (Amount withdrawnAmount)
|
193
169
|
{
|
170
|
+
// checks
|
194
171
|
(NftId componentNftId, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
195
|
-
|
196
|
-
address componentWallet = info.tokenHandler.getWallet();
|
172
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
197
173
|
|
198
174
|
// determine withdrawn amount
|
175
|
+
Amount maxAvailableAmount = instanceReader.getFeeAmount(componentNftId);
|
199
176
|
withdrawnAmount = amount;
|
200
|
-
|
201
|
-
|
202
|
-
|
177
|
+
|
178
|
+
// max amount -> withraw all available fees
|
179
|
+
if (amount == AmountLib.max()) {
|
180
|
+
withdrawnAmount = maxAvailableAmount;
|
181
|
+
}
|
182
|
+
|
183
|
+
// check modified withdrawn amount
|
184
|
+
if (withdrawnAmount.eqz()) {
|
203
185
|
revert ErrorComponentServiceWithdrawAmountIsZero();
|
204
|
-
} else {
|
205
|
-
|
206
|
-
if (withdrawnAmount.gt(withdrawLimit)) {
|
207
|
-
revert ErrorComponentServiceWithdrawAmountExceedsLimit(withdrawnAmount, withdrawLimit);
|
208
|
-
}
|
186
|
+
} else if (withdrawnAmount > maxAvailableAmount) {
|
187
|
+
revert ErrorComponentServiceWithdrawAmountExceedsLimit(withdrawnAmount, maxAvailableAmount);
|
209
188
|
}
|
210
189
|
|
190
|
+
// effects
|
211
191
|
// decrease fee counters by withdrawnAmount
|
212
|
-
_accountingService.decreaseComponentFees(
|
192
|
+
_accountingService.decreaseComponentFees(
|
193
|
+
instance.getInstanceStore(),
|
194
|
+
componentNftId,
|
195
|
+
withdrawnAmount);
|
213
196
|
|
214
197
|
// transfer amount to component owner
|
215
198
|
address componentOwner = getRegistry().ownerOf(componentNftId);
|
216
|
-
|
217
|
-
|
199
|
+
TokenHandler tokenHandler = instanceReader.getTokenHandler(componentNftId);
|
200
|
+
emit LogComponentServiceComponentFeesWithdrawn(
|
201
|
+
componentNftId,
|
202
|
+
componentOwner,
|
203
|
+
address(tokenHandler.TOKEN()),
|
204
|
+
withdrawnAmount);
|
205
|
+
|
206
|
+
// interactions
|
207
|
+
// transfer amount to component owner
|
208
|
+
tokenHandler.pushFeeToken(
|
209
|
+
componentOwner,
|
210
|
+
withdrawnAmount);
|
218
211
|
}
|
219
212
|
|
220
213
|
|
@@ -223,6 +216,8 @@ contract ComponentService is
|
|
223
216
|
function registerProduct(address productAddress)
|
224
217
|
external
|
225
218
|
virtual
|
219
|
+
restricted()
|
220
|
+
nonReentrant()
|
226
221
|
onlyComponent(productAddress)
|
227
222
|
returns (NftId productNftId)
|
228
223
|
{
|
@@ -235,14 +230,22 @@ contract ComponentService is
|
|
235
230
|
|
236
231
|
// get product
|
237
232
|
IProductComponent product = IProductComponent(productAddress);
|
233
|
+
|
234
|
+
IComponents.ProductInfo memory initialProductInfo = product.getInitialProductInfo();
|
235
|
+
// force initialization of linked components with empty values to
|
236
|
+
// ensure no components are linked upon initialization of the product
|
237
|
+
initialProductInfo.poolNftId = NftIdLib.zero();
|
238
|
+
initialProductInfo.distributionNftId = NftIdLib.zero();
|
239
|
+
initialProductInfo.oracleNftId = new NftId[](initialProductInfo.expectedNumberOfOracles);
|
238
240
|
|
239
241
|
// create info
|
240
242
|
instanceStore.createProduct(
|
241
243
|
productNftId,
|
242
|
-
|
244
|
+
initialProductInfo);
|
243
245
|
|
244
|
-
|
245
|
-
|
246
|
+
instanceStore.createFee(
|
247
|
+
productNftId,
|
248
|
+
product.getInitialFeeInfo());
|
246
249
|
}
|
247
250
|
|
248
251
|
|
@@ -252,27 +255,29 @@ contract ComponentService is
|
|
252
255
|
)
|
253
256
|
external
|
254
257
|
virtual
|
258
|
+
restricted()
|
259
|
+
nonReentrant()
|
255
260
|
{
|
256
261
|
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
257
|
-
IComponents.
|
262
|
+
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
258
263
|
bool feesChanged = false;
|
259
264
|
|
260
265
|
// update product fee if required
|
261
|
-
if(!FeeLib.eq(
|
262
|
-
_logUpdateFee(productNftId, "ProductFee",
|
263
|
-
|
266
|
+
if(!FeeLib.eq(feeInfo.productFee, productFee)) {
|
267
|
+
_logUpdateFee(productNftId, "ProductFee", feeInfo.productFee, productFee);
|
268
|
+
feeInfo.productFee = productFee;
|
264
269
|
feesChanged = true;
|
265
270
|
}
|
266
271
|
|
267
272
|
// update processing fee if required
|
268
|
-
if(!FeeLib.eq(
|
269
|
-
_logUpdateFee(productNftId, "ProcessingFee",
|
270
|
-
|
273
|
+
if(!FeeLib.eq(feeInfo.processingFee, processingFee)) {
|
274
|
+
_logUpdateFee(productNftId, "ProcessingFee", feeInfo.processingFee, processingFee);
|
275
|
+
feeInfo.processingFee = processingFee;
|
271
276
|
feesChanged = true;
|
272
277
|
}
|
273
278
|
|
274
279
|
if(feesChanged) {
|
275
|
-
instance.getInstanceStore().
|
280
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
276
281
|
emit LogComponentServiceProductFeesUpdated(productNftId);
|
277
282
|
}
|
278
283
|
}
|
@@ -283,6 +288,7 @@ contract ComponentService is
|
|
283
288
|
function _registerDistribution(address distributioAddress)
|
284
289
|
internal
|
285
290
|
virtual
|
291
|
+
nonReentrant()
|
286
292
|
returns (NftId distributionNftId)
|
287
293
|
{
|
288
294
|
// register/create component info
|
@@ -306,10 +312,6 @@ contract ComponentService is
|
|
306
312
|
// set distribution in product info
|
307
313
|
productInfo.distributionNftId = distributionNftId;
|
308
314
|
instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
|
309
|
-
|
310
|
-
// authorize
|
311
|
-
instanceAdmin.initializeComponentAuthorization(
|
312
|
-
IInstanceLinkedComponent(distributioAddress));
|
313
315
|
}
|
314
316
|
|
315
317
|
|
@@ -319,28 +321,29 @@ contract ComponentService is
|
|
319
321
|
)
|
320
322
|
external
|
321
323
|
virtual
|
324
|
+
restricted()
|
322
325
|
{
|
323
326
|
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
324
|
-
(NftId productNftId, IComponents.
|
327
|
+
(NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
|
325
328
|
instance.getInstanceReader(), distributionNftId);
|
326
329
|
bool feesChanged = false;
|
327
330
|
|
328
331
|
// update distributino fee if required
|
329
|
-
if(!FeeLib.eq(
|
330
|
-
_logUpdateFee(productNftId, "DistributionFee",
|
331
|
-
|
332
|
+
if(!FeeLib.eq(feeInfo.distributionFee, distributionFee)) {
|
333
|
+
_logUpdateFee(productNftId, "DistributionFee", feeInfo.distributionFee, distributionFee);
|
334
|
+
feeInfo.distributionFee = distributionFee;
|
332
335
|
feesChanged = true;
|
333
336
|
}
|
334
337
|
|
335
338
|
// update min distribution owner fee if required
|
336
|
-
if(!FeeLib.eq(
|
337
|
-
_logUpdateFee(productNftId, "MinDistributionOwnerFee",
|
338
|
-
|
339
|
+
if(!FeeLib.eq(feeInfo.minDistributionOwnerFee, minDistributionOwnerFee)) {
|
340
|
+
_logUpdateFee(productNftId, "MinDistributionOwnerFee", feeInfo.minDistributionOwnerFee, minDistributionOwnerFee);
|
341
|
+
feeInfo.minDistributionOwnerFee = minDistributionOwnerFee;
|
339
342
|
feesChanged = true;
|
340
343
|
}
|
341
344
|
|
342
345
|
if(feesChanged) {
|
343
|
-
instance.getInstanceStore().
|
346
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
344
347
|
emit LogComponentServiceDistributionFeesUpdated(distributionNftId);
|
345
348
|
}
|
346
349
|
}
|
@@ -375,10 +378,6 @@ contract ComponentService is
|
|
375
378
|
productInfo.oracleNftId[productInfo.numberOfOracles] = oracleNftId;
|
376
379
|
productInfo.numberOfOracles++;
|
377
380
|
instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
|
378
|
-
|
379
|
-
// authorize
|
380
|
-
instanceAdmin.initializeComponentAuthorization(
|
381
|
-
IInstanceLinkedComponent(oracleAddress));
|
382
381
|
}
|
383
382
|
|
384
383
|
//-------- pool ---------------------------------------------------------//
|
@@ -413,9 +412,6 @@ contract ComponentService is
|
|
413
412
|
// update pool in product info
|
414
413
|
productInfo.poolNftId = poolNftId;
|
415
414
|
instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
|
416
|
-
|
417
|
-
// authorize
|
418
|
-
instanceAdmin.initializeComponentAuthorization(pool);
|
419
415
|
}
|
420
416
|
|
421
417
|
|
@@ -426,36 +422,37 @@ contract ComponentService is
|
|
426
422
|
)
|
427
423
|
external
|
428
424
|
virtual
|
425
|
+
restricted()
|
429
426
|
{
|
430
427
|
(NftId poolNftId, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
431
428
|
|
432
|
-
(NftId productNftId, IComponents.
|
429
|
+
(NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
|
433
430
|
instance.getInstanceReader(), poolNftId);
|
434
431
|
bool feesChanged = false;
|
435
432
|
|
436
433
|
// update pool fee if required
|
437
|
-
if(!FeeLib.eq(
|
438
|
-
_logUpdateFee(productNftId, "PoolFee",
|
439
|
-
|
434
|
+
if(!FeeLib.eq(feeInfo.poolFee, poolFee)) {
|
435
|
+
_logUpdateFee(productNftId, "PoolFee", feeInfo.poolFee, poolFee);
|
436
|
+
feeInfo.poolFee = poolFee;
|
440
437
|
feesChanged = true;
|
441
438
|
}
|
442
439
|
|
443
440
|
// update staking fee if required
|
444
|
-
if(!FeeLib.eq(
|
445
|
-
_logUpdateFee(productNftId, "StakingFee",
|
446
|
-
|
441
|
+
if(!FeeLib.eq(feeInfo.stakingFee, stakingFee)) {
|
442
|
+
_logUpdateFee(productNftId, "StakingFee", feeInfo.stakingFee, stakingFee);
|
443
|
+
feeInfo.stakingFee = stakingFee;
|
447
444
|
feesChanged = true;
|
448
445
|
}
|
449
446
|
|
450
447
|
// update performance fee if required
|
451
|
-
if(!FeeLib.eq(
|
452
|
-
_logUpdateFee(productNftId, "PerformanceFee",
|
453
|
-
|
448
|
+
if(!FeeLib.eq(feeInfo.performanceFee, performanceFee)) {
|
449
|
+
_logUpdateFee(productNftId, "PerformanceFee", feeInfo.performanceFee, performanceFee);
|
450
|
+
feeInfo.performanceFee = performanceFee;
|
454
451
|
feesChanged = true;
|
455
452
|
}
|
456
453
|
|
457
454
|
if(feesChanged) {
|
458
|
-
instance.getInstanceStore().
|
455
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
459
456
|
emit LogComponentServicePoolFeesUpdated(poolNftId);
|
460
457
|
}
|
461
458
|
}
|
@@ -506,26 +503,29 @@ contract ComponentService is
|
|
506
503
|
}
|
507
504
|
|
508
505
|
// deploy and wire token handler
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
address(
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
506
|
+
address token;
|
507
|
+
{
|
508
|
+
IComponents.ComponentInfo memory componentInfo = component.getInitialComponentInfo();
|
509
|
+
token = address(componentInfo.token);
|
510
|
+
componentInfo.tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
511
|
+
address(getRegistry()),
|
512
|
+
componentAddress, // initially, component is its own wallet
|
513
|
+
token,
|
514
|
+
address(instanceAdmin.authority()));
|
515
|
+
|
516
|
+
// register component with instance
|
517
|
+
instanceStore.createComponent(
|
518
|
+
componentNftId,
|
519
|
+
componentInfo);
|
520
|
+
}
|
524
521
|
|
525
522
|
// link component contract to nft id
|
526
523
|
component.linkToRegisteredNftId();
|
527
524
|
|
528
|
-
|
525
|
+
// authorize
|
526
|
+
instanceAdmin.initializeComponentAuthorization(componentAddress, requiredType);
|
527
|
+
|
528
|
+
emit LogComponentServiceRegistered(instanceNftId, componentNftId, requiredType, componentAddress, token, initialOwner);
|
529
529
|
}
|
530
530
|
|
531
531
|
|
@@ -544,7 +544,7 @@ contract ComponentService is
|
|
544
544
|
}
|
545
545
|
|
546
546
|
|
547
|
-
function
|
547
|
+
function _getLinkedFeeInfo(
|
548
548
|
InstanceReader instanceReader,
|
549
549
|
NftId componentNftId
|
550
550
|
)
|
@@ -552,11 +552,11 @@ contract ComponentService is
|
|
552
552
|
view
|
553
553
|
returns(
|
554
554
|
NftId productNftId,
|
555
|
-
IComponents.
|
555
|
+
IComponents.FeeInfo memory info
|
556
556
|
)
|
557
557
|
{
|
558
|
-
productNftId = getRegistry().
|
559
|
-
info = instanceReader.
|
558
|
+
productNftId = getRegistry().getParentNftId(componentNftId);
|
559
|
+
info = instanceReader.getFeeInfo(productNftId);
|
560
560
|
}
|
561
561
|
|
562
562
|
|
@@ -604,9 +604,12 @@ contract ComponentService is
|
|
604
604
|
revert ErrorComponentServiceAlreadyRegistered(componentAddress);
|
605
605
|
}
|
606
606
|
|
607
|
-
//
|
607
|
+
// component release matches servie release
|
608
608
|
address parentAddress = registry.getObjectAddress(parentNftId);
|
609
|
-
if (component.getRelease() !=
|
609
|
+
if (component.getRelease() != getRelease()) {
|
610
|
+
revert ErrorComponentServiceReleaseMismatch(componentAddress, component.getRelease(), getRelease());
|
611
|
+
// component release matches parent release
|
612
|
+
} else if (component.getRelease() != IRegisterable(parentAddress).getRelease()){
|
610
613
|
revert ErrorComponentServiceReleaseMismatch(componentAddress, component.getRelease(), IRegisterable(parentAddress).getRelease());
|
611
614
|
}
|
612
615
|
|
@@ -17,7 +17,7 @@ contract ComponentServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
ComponentService svc = new ComponentService();
|
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),
|
@@ -116,7 +116,7 @@ abstract contract ComponentVerifyingService is
|
|
116
116
|
/// @dev returns the product nft id from the registry.
|
117
117
|
/// assumes the component nft id is valid and represents a product linked component.
|
118
118
|
function _getProductNftId(NftId componentNftId) internal view returns (NftId productNftId) {
|
119
|
-
productNftId = getRegistry().
|
119
|
+
productNftId = getRegistry().getParentNftId(componentNftId);
|
120
120
|
}
|
121
121
|
|
122
122
|
|
@@ -2,12 +2,15 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
6
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
7
|
|
6
8
|
// import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
7
9
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
10
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
9
11
|
import {NftId} from "../type/NftId.sol";
|
10
12
|
import {ObjectType, PRODUCT, DISTRIBUTION, ORACLE, POOL, STAKING} from "../type/ObjectType.sol";
|
13
|
+
import {VersionPart} from "../type/Version.sol";
|
11
14
|
|
12
15
|
interface ITargetHelper {
|
13
16
|
function isTargetLocked(address target) external view returns (bool);
|
@@ -17,6 +20,10 @@ interface IInstanceAdminHelper {
|
|
17
20
|
function getInstanceAdmin() external view returns (ITargetHelper);
|
18
21
|
}
|
19
22
|
|
23
|
+
interface ITokenRegistryHelper {
|
24
|
+
function isActive(uint256 chainId, address token, VersionPart release) external view returns (bool);
|
25
|
+
}
|
26
|
+
|
20
27
|
library ContractLib {
|
21
28
|
|
22
29
|
error ErrorContractLibNotRegistered(address target);
|
@@ -25,7 +32,6 @@ library ContractLib {
|
|
25
32
|
error ErrorContractLibComponentTypeMismatch(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
26
33
|
error ErrorContractLibComponentInactive(NftId componentNftId);
|
27
34
|
|
28
|
-
|
29
35
|
function getAndVerifyComponent(
|
30
36
|
IRegistry registry,
|
31
37
|
address target,
|
@@ -130,17 +136,68 @@ library ContractLib {
|
|
130
136
|
view
|
131
137
|
returns (address instance)
|
132
138
|
{
|
133
|
-
NftId productNftId = registry.
|
134
|
-
NftId instanceNftId = registry.
|
139
|
+
NftId productNftId = registry.getParentNftId(componentNftId);
|
140
|
+
NftId instanceNftId = registry.getParentNftId(productNftId);
|
135
141
|
return registry.getObjectInfo(instanceNftId).objectAddress;
|
136
142
|
}
|
137
143
|
|
138
144
|
|
145
|
+
function isActiveToken(
|
146
|
+
address tokenRegistryAddress,
|
147
|
+
address token,
|
148
|
+
uint256 chainId,
|
149
|
+
VersionPart release
|
150
|
+
)
|
151
|
+
external
|
152
|
+
view
|
153
|
+
returns (bool)
|
154
|
+
{
|
155
|
+
return ITokenRegistryHelper(
|
156
|
+
tokenRegistryAddress).isActive(
|
157
|
+
chainId, token, release);
|
158
|
+
}
|
159
|
+
|
139
160
|
function isPolicyHolder(address target) external view returns (bool) {
|
140
161
|
return ERC165Checker.supportsInterface(target, type(IPolicyHolder).interfaceId);
|
141
162
|
}
|
142
163
|
|
143
164
|
|
165
|
+
function isAuthority(address authority) public view returns (bool) {
|
166
|
+
if (!isContract(authority)) {
|
167
|
+
return false;
|
168
|
+
}
|
169
|
+
|
170
|
+
return supportsInterface(authority, type(IAccessManager).interfaceId);
|
171
|
+
}
|
172
|
+
|
173
|
+
|
174
|
+
function isAccessManaged(address target)
|
175
|
+
public
|
176
|
+
view
|
177
|
+
returns (bool)
|
178
|
+
{
|
179
|
+
if (!isContract(target)) {
|
180
|
+
return false;
|
181
|
+
}
|
182
|
+
|
183
|
+
(bool success, ) = target.staticcall(
|
184
|
+
abi.encodeWithSelector(
|
185
|
+
IAccessManaged.authority.selector));
|
186
|
+
|
187
|
+
return success;
|
188
|
+
}
|
189
|
+
|
190
|
+
|
191
|
+
function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
|
192
|
+
NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
|
193
|
+
if (nftId.eqz()) {
|
194
|
+
return false;
|
195
|
+
}
|
196
|
+
|
197
|
+
return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
|
198
|
+
}
|
199
|
+
|
200
|
+
|
144
201
|
function isRegistry(address registry) public view returns (bool) {
|
145
202
|
if (!isContract(registry)) {
|
146
203
|
return false;
|
@@ -1,7 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
5
|
|
7
6
|
import {Amount} from "../type/Amount.sol";
|
@@ -13,18 +12,18 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
13
12
|
/// @dev component base class
|
14
13
|
/// component examples are staking, product, distribution, pool and oracle
|
15
14
|
interface IComponent is
|
16
|
-
IAccessManaged,
|
17
15
|
IRegisterable,
|
18
16
|
ITransferInterceptor
|
19
17
|
{
|
18
|
+
|
19
|
+
error ErrorComponentTokenInvalid(address token);
|
20
|
+
|
20
21
|
error ErrorComponentProductNftIdZero();
|
21
22
|
error ErrorComponentProductNftIdNonzero();
|
22
23
|
error ErrorComponentNameLengthZero();
|
23
24
|
|
24
25
|
error ErrorComponentNotChainNft(address caller);
|
25
26
|
|
26
|
-
error ErrorComponentTokenAddressNonzero();
|
27
|
-
error ErrorComponentTokenAddressZero();
|
28
27
|
error ErrorComponentWalletAddressZero();
|
29
28
|
error ErrorComponentWalletAddressIsSameAsCurrent();
|
30
29
|
error ErrorComponentWalletNotComponent();
|
@@ -67,18 +67,12 @@ interface IComponentService is
|
|
67
67
|
/// Reverts if the component's token handler wallet is not the token handler itself.
|
68
68
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external;
|
69
69
|
|
70
|
-
/// @dev
|
71
|
-
///
|
72
|
-
function approveStakingTokenHandler(IERC20Metadata token, Amount amount) external;
|
73
|
-
|
74
|
-
/// @dev Sets the components associated wallet address
|
70
|
+
/// @dev Sets the components associated wallet address.
|
71
|
+
/// To set the wallet to the token handler contract, use address(0) as the new wallet adress.
|
75
72
|
function setWallet(address newWallet) external;
|
76
73
|
|
77
|
-
/// @dev Locks/Unlocks the
|
78
|
-
function
|
79
|
-
|
80
|
-
/// @dev Locks/Unlocks the given component - call from component
|
81
|
-
function setLockedFromComponent(address componentAddress, bool locked) external;
|
74
|
+
/// @dev Locks/Unlocks the calling component.
|
75
|
+
function setLocked(bool locked) external;
|
82
76
|
|
83
77
|
/// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
|
84
78
|
/// @param withdrawAmount the amount to withdraw
|
@@ -1,7 +1,10 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
|
+
|
4
6
|
import {INftOwnable} from "./INftOwnable.sol";
|
7
|
+
import {IRelease} from "../registry/IRelease.sol";
|
5
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
6
9
|
import {VersionPart} from "../type/Version.sol";
|
7
10
|
|
@@ -9,11 +12,19 @@ import {VersionPart} from "../type/Version.sol";
|
|
9
12
|
/// @dev Marks contracts that are intended to be registered in the registry.
|
10
13
|
///
|
11
14
|
interface IRegisterable is
|
12
|
-
|
15
|
+
IAccessManaged,
|
16
|
+
INftOwnable,
|
17
|
+
IRelease
|
13
18
|
{
|
14
|
-
|
15
|
-
|
16
|
-
|
19
|
+
// __Registerable_init
|
20
|
+
error ErrorAuthorityInvalid(address authority);
|
21
|
+
|
22
|
+
// onlyActive()
|
23
|
+
error ErrorRegisterableNotActive();
|
24
|
+
|
25
|
+
/// @dev Returns true iff this contract managed by its authority is active.
|
26
|
+
/// Queries the IAccessManaged.authority().
|
27
|
+
function isActive() external view returns (bool active);
|
17
28
|
|
18
29
|
/// @dev retuns the object info relevant for registering for this contract
|
19
30
|
/// IMPORTANT information returned by this function may only be used
|