@etherisc/gif-next 0.0.2-c68eaf3-087 → 0.0.2-c75d1c9-841
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 +81 -7
- 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 +454 -253
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- 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 +227 -26
- 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 +353 -189
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +105 -18
- 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 +113 -290
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +212 -38
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +45 -163
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +323 -182
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +108 -70
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +32 -132
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +181 -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 +121 -198
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +212 -38
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +287 -341
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +212 -38
- 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 +184 -251
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +76 -155
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +239 -203
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +672 -362
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -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 +198 -23
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +120 -14
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +240 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +705 -322
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +206 -51
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +704 -304
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +146 -87
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +59 -47
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +621 -571
- 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 +66 -167
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +194 -40
- 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 +36 -71
- 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 +50 -103
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +128 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +91 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +69 -137
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +212 -38
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +145 -333
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +73 -99
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +62 -142
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -118
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +182 -235
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -149
- 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 +350 -369
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +181 -57
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +76 -38
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +182 -215
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +212 -38
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -179
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +96 -78
- 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 +112 -56
- 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 +163 -178
- 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 +233 -194
- 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 +103 -73
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +120 -100
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +68 -58
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +176 -209
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +143 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +80 -38
- 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 +60 -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 +98 -50
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +561 -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 +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +56 -34
- 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 +334 -64
- 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 +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +49 -88
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +239 -520
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +77 -75
- 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 +573 -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 +36 -57
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +139 -347
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -71
- 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 +49 -102
- 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 +327 -73
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +125 -99
- 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 +225 -209
- 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 +83 -59
- 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 +203 -56
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -39
- 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 +60 -50
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +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 +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 +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 +32 -16
- 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 +300 -192
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +307 -231
- package/contracts/authorization/IAccess.sol +13 -5
- package/contracts/authorization/IAccessAdmin.sol +69 -36
- package/contracts/authorization/IAuthorization.sol +21 -1
- package/contracts/distribution/BasicDistribution.sol +18 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +36 -77
- package/contracts/distribution/DistributionService.sol +111 -77
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/distribution/IDistributionService.sol +22 -20
- package/contracts/examples/fire/FirePool.sol +21 -8
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +32 -14
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +57 -17
- package/contracts/instance/IInstanceService.sol +27 -11
- package/contracts/instance/Instance.sol +102 -30
- package/contracts/instance/InstanceAdmin.sol +279 -106
- package/contracts/instance/InstanceAuthorizationV3.sol +87 -46
- package/contracts/instance/InstanceReader.sol +187 -32
- package/contracts/instance/InstanceService.sol +174 -126
- 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/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 +20 -9
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +96 -77
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +23 -4
- package/contracts/pool/BasicPoolAuthorization.sol +27 -8
- package/contracts/pool/BundleService.sol +47 -145
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -60
- package/contracts/pool/Pool.sol +106 -98
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +271 -228
- 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 +8 -12
- package/contracts/product/BasicProductAuthorization.sol +24 -10
- package/contracts/product/ClaimService.sol +165 -137
- 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 +26 -11
- 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 +242 -293
- package/contracts/product/PolicyServiceLib.sol +119 -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 +65 -53
- 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 +14 -15
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +16 -3
- package/contracts/registry/RegistryAdmin.sol +145 -335
- 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 +150 -134
- package/contracts/registry/ServiceAuthorizationV3.sol +178 -40
- package/contracts/registry/TokenRegistry.sol +10 -9
- package/contracts/shared/Component.sol +52 -107
- package/contracts/shared/ComponentService.sol +336 -420
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +16 -14
- package/contracts/shared/ContractLib.sol +312 -3
- package/contracts/shared/IComponent.sol +1 -17
- package/contracts/shared/IComponentService.sol +27 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- 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 +4 -23
- package/contracts/shared/NftOwnable.sol +6 -6
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +275 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +23 -12
- package/contracts/staking/IStakingService.sol +19 -1
- package/contracts/staking/Staking.sol +95 -46
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +6 -16
- package/contracts/staking/StakingService.sol +74 -14
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +2 -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 +53 -35
- package/contracts/type/RiskId.sol +26 -8
- 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 +34 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +12 -10
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/package.json +4 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/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
@@ -5,14 +5,24 @@ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/acce
|
|
5
5
|
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
6
6
|
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
7
7
|
|
8
|
+
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
9
|
+
import {IAuthorization} from "./IAuthorization.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
+
|
12
|
+
import {AccessAdminLib} from "./AccessAdminLib.sol";
|
8
13
|
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
9
14
|
import {ContractLib} from "../shared/ContractLib.sol";
|
10
|
-
import {
|
15
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
16
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
11
17
|
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
12
18
|
import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
|
13
19
|
import {Str, StrLib} from "../type/String.sol";
|
14
20
|
import {TimestampLib} from "../type/Timestamp.sol";
|
21
|
+
import {VersionPart} from "../type/Version.sol";
|
15
22
|
|
23
|
+
interface IAccessManagedChecker {
|
24
|
+
function authority() external view returns (address);
|
25
|
+
}
|
16
26
|
|
17
27
|
/**
|
18
28
|
* @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
|
@@ -29,13 +39,23 @@ contract AccessAdmin is
|
|
29
39
|
string public constant ADMIN_ROLE_NAME = "AdminRole";
|
30
40
|
string public constant PUBLIC_ROLE_NAME = "PublicRole";
|
31
41
|
|
32
|
-
/// @dev
|
42
|
+
/// @dev admin name used for logging only
|
43
|
+
string internal _adminName;
|
44
|
+
|
45
|
+
/// @dev the access manager driving the access admin contract
|
46
|
+
/// hold link to registry and release version
|
33
47
|
AccessManagerCloneable internal _authority;
|
34
48
|
|
49
|
+
/// @dev the authorization contract used for initial access control
|
50
|
+
IAuthorization internal _authorization;
|
51
|
+
|
35
52
|
/// @dev stores the deployer address and allows to create initializers
|
36
53
|
/// that are restricted to the deployer address.
|
37
54
|
address internal _deployer;
|
38
55
|
|
56
|
+
/// @dev the linked NFT ID
|
57
|
+
NftId internal _linkedNftId;
|
58
|
+
|
39
59
|
/// @dev store role info per role id
|
40
60
|
mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
|
41
61
|
|
@@ -68,50 +88,139 @@ contract AccessAdmin is
|
|
68
88
|
|
69
89
|
modifier onlyDeployer() {
|
70
90
|
// special case for cloned AccessAdmin contracts
|
71
|
-
// IMPORTANT cloning and
|
91
|
+
// IMPORTANT cloning and initialize authority needs to be done in a single transaction
|
72
92
|
if (_deployer == address(0)) {
|
73
93
|
_deployer = msg.sender;
|
74
94
|
}
|
75
95
|
|
76
96
|
if (msg.sender != _deployer) {
|
77
|
-
revert
|
97
|
+
revert ErrorAccessAdminNotDeployer();
|
78
98
|
}
|
79
99
|
_;
|
80
100
|
}
|
81
101
|
|
82
|
-
modifier
|
102
|
+
modifier onlyRoleMember(RoleId roleId, address account) {
|
83
103
|
_checkRoleExists(roleId, false);
|
84
104
|
|
85
|
-
if (!
|
86
|
-
revert
|
105
|
+
if (!hasRole(account, roleId)) {
|
106
|
+
revert ErrorAccessAdminNotRoleOwner(roleId, account);
|
87
107
|
}
|
88
108
|
_;
|
89
109
|
}
|
90
110
|
|
91
|
-
modifier
|
92
|
-
|
93
|
-
|
111
|
+
modifier onlyRoleAdmin(RoleId roleId, address account) {
|
112
|
+
_checkRoleExists(roleId, false);
|
113
|
+
|
114
|
+
if (!hasAdminRole(account, roleId)) {
|
115
|
+
revert ErrorAccessAdminNotAdminOfRole(_roleInfo[roleId].adminRoleId, account);
|
94
116
|
}
|
95
117
|
_;
|
96
118
|
}
|
97
119
|
|
98
|
-
modifier onlyExistingRole(
|
99
|
-
|
120
|
+
modifier onlyExistingRole(
|
121
|
+
RoleId roleId,
|
122
|
+
bool onlyActiveRole,
|
123
|
+
bool allowLockedRoles
|
124
|
+
)
|
125
|
+
{
|
126
|
+
if (!allowLockedRoles) {
|
127
|
+
_checkRoleExists(roleId, onlyActiveRole);
|
128
|
+
}
|
100
129
|
_;
|
101
130
|
}
|
102
131
|
|
103
132
|
modifier onlyExistingTarget(address target) {
|
104
|
-
|
133
|
+
_checkTargetExists(target);
|
105
134
|
_;
|
106
135
|
}
|
107
136
|
|
108
|
-
|
109
|
-
|
110
|
-
|
137
|
+
//-------------- initialization functions ------------------------------//
|
138
|
+
|
139
|
+
// event LogAccessAdminDebug(string message);
|
140
|
+
|
141
|
+
/// @dev Initializes this admin with the provided accessManager (and authorization specification).
|
142
|
+
/// Internally initializes access manager with this admin and creates basic role setup.
|
143
|
+
function initialize(
|
144
|
+
address authority,
|
145
|
+
string memory adminName
|
146
|
+
)
|
147
|
+
public
|
148
|
+
initializer()
|
149
|
+
{
|
150
|
+
__AccessAdmin_init(authority, adminName);
|
151
|
+
}
|
152
|
+
|
153
|
+
|
154
|
+
function __AccessAdmin_init(
|
155
|
+
address authority,
|
156
|
+
string memory adminName
|
157
|
+
)
|
158
|
+
internal
|
159
|
+
onlyInitializing()
|
160
|
+
onlyDeployer()
|
161
|
+
{
|
162
|
+
// checks
|
163
|
+
// check authority is contract
|
164
|
+
if (!ContractLib.isContract(authority)) {
|
165
|
+
revert ErrorAccessAdminAuthorityNotContract(authority);
|
166
|
+
}
|
167
|
+
|
168
|
+
// check name not empty
|
169
|
+
if (bytes(adminName).length == 0) {
|
170
|
+
revert ErrorAccessAdminAccessManagerEmptyName();
|
171
|
+
}
|
172
|
+
|
173
|
+
_authority = AccessManagerCloneable(authority);
|
111
174
|
_authority.initialize(address(this));
|
112
175
|
|
113
|
-
|
114
|
-
|
176
|
+
// delayed additional check for authority after its initialization
|
177
|
+
if (!ContractLib.isAuthority(authority)) {
|
178
|
+
revert ErrorAccessAdminAccessManagerNotAccessManager(authority);
|
179
|
+
}
|
180
|
+
|
181
|
+
// effects
|
182
|
+
// set and initialize this access manager contract as
|
183
|
+
// the admin (ADMIN_ROLE) of the provided authority
|
184
|
+
__AccessManaged_init(authority);
|
185
|
+
|
186
|
+
// set name for logging
|
187
|
+
_adminName = adminName;
|
188
|
+
|
189
|
+
// set initial linked NFT ID to zero
|
190
|
+
_linkedNftId = NftIdLib.zero();
|
191
|
+
|
192
|
+
// create admin and public roles
|
193
|
+
_initializeAdminAndPublicRoles();
|
194
|
+
}
|
195
|
+
|
196
|
+
|
197
|
+
function getRelease() public view virtual returns (VersionPart release) {
|
198
|
+
return _authority.getRelease();
|
199
|
+
}
|
200
|
+
|
201
|
+
|
202
|
+
function getRegistry() public view returns (IRegistry registry) {
|
203
|
+
return _authority.getRegistry();
|
204
|
+
}
|
205
|
+
|
206
|
+
|
207
|
+
function getLinkedNftId() external view returns (NftId linkedNftId) {
|
208
|
+
return _linkedNftId;
|
209
|
+
}
|
210
|
+
|
211
|
+
|
212
|
+
function getLinkedOwner() external view returns (address linkedOwner) {
|
213
|
+
return getRegistry().ownerOf(_linkedNftId);
|
214
|
+
}
|
215
|
+
|
216
|
+
|
217
|
+
function getAuthorization() public view returns (IAuthorization authorization) {
|
218
|
+
return _authorization;
|
219
|
+
}
|
220
|
+
|
221
|
+
|
222
|
+
function isLocked() public view returns (bool locked) {
|
223
|
+
return _authority.isLocked();
|
115
224
|
}
|
116
225
|
|
117
226
|
//--- view functions for roles ------------------------------------------//
|
@@ -136,12 +245,12 @@ contract AccessAdmin is
|
|
136
245
|
return _roleInfo[roleId].createdAt.gtz();
|
137
246
|
}
|
138
247
|
|
139
|
-
function
|
140
|
-
return
|
248
|
+
function getRoleForName(string memory name) external view returns (RoleId roleId) {
|
249
|
+
return _roleForName[StrLib.toStr(name)].roleId;
|
141
250
|
}
|
142
251
|
|
143
|
-
function
|
144
|
-
return
|
252
|
+
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
|
253
|
+
return _roleInfo[roleId];
|
145
254
|
}
|
146
255
|
|
147
256
|
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
@@ -152,6 +261,7 @@ contract AccessAdmin is
|
|
152
261
|
return _roleMembers[roleId].at(idx);
|
153
262
|
}
|
154
263
|
|
264
|
+
// TODO false because not role member or because role not exists?
|
155
265
|
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
156
266
|
(bool isMember, ) = _authority.hasRole(
|
157
267
|
RoleId.unwrap(roleId),
|
@@ -217,33 +327,59 @@ contract AccessAdmin is
|
|
217
327
|
selector.toBytes4()));
|
218
328
|
}
|
219
329
|
|
220
|
-
function
|
221
|
-
|
330
|
+
function deployer() public view returns (address) {
|
331
|
+
return _deployer;
|
222
332
|
}
|
223
333
|
|
224
|
-
|
225
|
-
return RoleInfo({
|
226
|
-
name: StrLib.toStr(name),
|
227
|
-
adminRoleId: adminRoleId,
|
228
|
-
roleType: roleType,
|
229
|
-
maxMemberCount: maxMemberCount,
|
230
|
-
createdAt: TimestampLib.blockTimestamp(),
|
231
|
-
pausedAt: TimestampLib.max()
|
232
|
-
});
|
233
|
-
}
|
334
|
+
//--- internal/private functions -------------------------------------------------//
|
234
335
|
|
235
|
-
function
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
336
|
+
function _linkToNftOwnable(address registerable) internal {
|
337
|
+
if (!getRegistry().isRegistered(registerable)) {
|
338
|
+
revert ErrorAccessAdminNotRegistered(registerable);
|
339
|
+
}
|
340
|
+
|
341
|
+
_linkedNftId = getRegistry().getNftIdForAddress(registerable);
|
240
342
|
}
|
241
343
|
|
242
|
-
function
|
243
|
-
|
344
|
+
function _initializeAdminAndPublicRoles()
|
345
|
+
internal
|
346
|
+
virtual
|
347
|
+
onlyInitializing()
|
348
|
+
{
|
349
|
+
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
350
|
+
|
351
|
+
// setup admin role
|
352
|
+
_createRoleUnchecked(
|
353
|
+
ADMIN_ROLE(),
|
354
|
+
AccessAdminLib.toRole({
|
355
|
+
adminRoleId: ADMIN_ROLE(),
|
356
|
+
roleType: RoleType.Contract,
|
357
|
+
maxMemberCount: 1,
|
358
|
+
name: ADMIN_ROLE_NAME}));
|
359
|
+
|
360
|
+
// add this contract as admin role member
|
361
|
+
_roleMembers[adminRoleId].add(address(this));
|
362
|
+
|
363
|
+
// setup public role
|
364
|
+
_createRoleUnchecked(
|
365
|
+
PUBLIC_ROLE(),
|
366
|
+
AccessAdminLib.toRole({
|
367
|
+
adminRoleId: ADMIN_ROLE(),
|
368
|
+
roleType: RoleType.Gif,
|
369
|
+
maxMemberCount: type(uint32).max,
|
370
|
+
name: PUBLIC_ROLE_NAME}));
|
244
371
|
}
|
245
372
|
|
246
|
-
|
373
|
+
function _createTargetWithRole(
|
374
|
+
address target,
|
375
|
+
string memory targetName,
|
376
|
+
RoleId targetRoleId
|
377
|
+
)
|
378
|
+
internal
|
379
|
+
{
|
380
|
+
_createTarget(target, targetName, true, false);
|
381
|
+
_grantRoleToAccount(targetRoleId, target);
|
382
|
+
}
|
247
383
|
|
248
384
|
function _authorizeTargetFunctions(
|
249
385
|
address target,
|
@@ -253,14 +389,21 @@ contract AccessAdmin is
|
|
253
389
|
internal
|
254
390
|
{
|
255
391
|
if (roleId == getAdminRole()) {
|
256
|
-
revert
|
392
|
+
revert ErrorAccessAdminAuthorizeForAdminRoleInvalid(target);
|
257
393
|
}
|
258
394
|
|
259
|
-
|
260
|
-
|
395
|
+
(
|
396
|
+
bytes4[] memory functionSelectors,
|
397
|
+
string[] memory functionNames
|
398
|
+
) = _processFunctionSelectors(target, functions, true);
|
261
399
|
|
262
400
|
// apply authz via access manager
|
263
|
-
_grantRoleAccessToFunctions(
|
401
|
+
_grantRoleAccessToFunctions(
|
402
|
+
target,
|
403
|
+
roleId,
|
404
|
+
functionSelectors,
|
405
|
+
functionNames,
|
406
|
+
false); // allow locked roles
|
264
407
|
}
|
265
408
|
|
266
409
|
function _unauthorizeTargetFunctions(
|
@@ -269,9 +412,17 @@ contract AccessAdmin is
|
|
269
412
|
)
|
270
413
|
internal
|
271
414
|
{
|
272
|
-
|
273
|
-
|
274
|
-
|
415
|
+
(
|
416
|
+
bytes4[] memory functionSelectors,
|
417
|
+
string[] memory functionNames
|
418
|
+
) = _processFunctionSelectors(target, functions, false);
|
419
|
+
|
420
|
+
_grantRoleAccessToFunctions(
|
421
|
+
target,
|
422
|
+
getAdminRole(),
|
423
|
+
functionSelectors,
|
424
|
+
functionNames,
|
425
|
+
true); // allowLockedRoles
|
275
426
|
}
|
276
427
|
|
277
428
|
function _processFunctionSelectors(
|
@@ -280,12 +431,15 @@ contract AccessAdmin is
|
|
280
431
|
bool addFunctions
|
281
432
|
)
|
282
433
|
internal
|
434
|
+
onlyExistingTarget(target)
|
283
435
|
returns (
|
284
|
-
bytes4[] memory functionSelectors
|
436
|
+
bytes4[] memory functionSelectors,
|
437
|
+
string[] memory functionNames
|
285
438
|
)
|
286
439
|
{
|
287
440
|
uint256 n = functions.length;
|
288
441
|
functionSelectors = new bytes4[](n);
|
442
|
+
functionNames = new string[](n);
|
289
443
|
FunctionInfo memory func;
|
290
444
|
Selector selector;
|
291
445
|
|
@@ -302,89 +456,49 @@ contract AccessAdmin is
|
|
302
456
|
|
303
457
|
// add bytes4 selector to function selector array
|
304
458
|
functionSelectors[i] = selector.toBytes4();
|
459
|
+
functionNames[i] = func.name.toString();
|
305
460
|
}
|
306
461
|
}
|
307
462
|
|
308
|
-
function _initializeAuthority(
|
309
|
-
address authorityAddress
|
310
|
-
)
|
311
|
-
internal
|
312
|
-
virtual
|
313
|
-
onlyInitializing()
|
314
|
-
onlyDeployer()
|
315
|
-
{
|
316
|
-
if (authority() != address(0)) {
|
317
|
-
revert ErrorAuthorityAlreadySet();
|
318
|
-
}
|
319
|
-
|
320
|
-
_authority = AccessManagerCloneable(authorityAddress);
|
321
|
-
__AccessManaged_init(address(_authority));
|
322
|
-
}
|
323
|
-
|
324
|
-
|
325
|
-
function _initializeAdminAndPublicRoles()
|
326
|
-
internal
|
327
|
-
virtual
|
328
|
-
onlyInitializing()
|
329
|
-
{
|
330
|
-
_createAdminAndPublicRoles();
|
331
|
-
}
|
332
|
-
|
333
|
-
|
334
|
-
/// @dev internal setup function that can be used in both constructor and initializer.
|
335
|
-
function _createAdminAndPublicRoles()
|
336
|
-
internal
|
337
|
-
{
|
338
|
-
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
339
|
-
|
340
|
-
// setup admin role
|
341
|
-
_createRoleUnchecked(
|
342
|
-
ADMIN_ROLE(),
|
343
|
-
toRole({
|
344
|
-
adminRoleId: ADMIN_ROLE(),
|
345
|
-
roleType: RoleType.Contract,
|
346
|
-
maxMemberCount: 1,
|
347
|
-
name: ADMIN_ROLE_NAME}));
|
348
|
-
|
349
|
-
// add this contract as admin role member
|
350
|
-
_roleMembers[adminRoleId].add(address(this));
|
351
|
-
|
352
|
-
// setup public role
|
353
|
-
_createRoleUnchecked(
|
354
|
-
PUBLIC_ROLE(),
|
355
|
-
toRole({
|
356
|
-
adminRoleId: ADMIN_ROLE(),
|
357
|
-
roleType: RoleType.Gif,
|
358
|
-
maxMemberCount: type(uint32).max,
|
359
|
-
name: PUBLIC_ROLE_NAME}));
|
360
|
-
}
|
361
|
-
|
362
|
-
|
363
463
|
/// @dev grant the specified role access to all functions in the provided selector list
|
364
464
|
function _grantRoleAccessToFunctions(
|
365
465
|
address target,
|
366
466
|
RoleId roleId,
|
367
|
-
bytes4[] memory functionSelectors
|
467
|
+
bytes4[] memory functionSelectors,
|
468
|
+
string[] memory functionNames,
|
469
|
+
bool allowLockedRoles // admin and public roles are locked
|
368
470
|
)
|
369
471
|
internal
|
472
|
+
onlyExistingTarget(target)
|
473
|
+
onlyExistingRole(roleId, true, allowLockedRoles)
|
370
474
|
{
|
475
|
+
|
371
476
|
_authority.setTargetFunctionRole(
|
372
477
|
target,
|
373
478
|
functionSelectors,
|
374
479
|
RoleId.unwrap(roleId));
|
375
480
|
|
376
|
-
//
|
481
|
+
// log function grantings
|
482
|
+
for (uint256 i = 0; i < functionSelectors.length; i++) {
|
483
|
+
emit LogAccessAdminFunctionGranted(
|
484
|
+
_adminName,
|
485
|
+
target,
|
486
|
+
string(abi.encodePacked(
|
487
|
+
functionNames[i],
|
488
|
+
"(): ",
|
489
|
+
_getRoleName(roleId))));
|
490
|
+
}
|
377
491
|
}
|
378
492
|
|
379
493
|
|
380
494
|
/// @dev grant the specified role to the provided account
|
381
495
|
function _grantRoleToAccount(RoleId roleId, address account)
|
382
496
|
internal
|
383
|
-
onlyExistingRole(roleId, true)
|
497
|
+
onlyExistingRole(roleId, true, false)
|
384
498
|
{
|
385
499
|
// check max role members will not be exceeded
|
386
500
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
387
|
-
revert
|
501
|
+
revert ErrorAccessAdminRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
388
502
|
}
|
389
503
|
|
390
504
|
// check account is contract for contract role
|
@@ -392,7 +506,7 @@ contract AccessAdmin is
|
|
392
506
|
_roleInfo[roleId].roleType == RoleType.Contract &&
|
393
507
|
!ContractLib.isContract(account) // will fail in account's constructor
|
394
508
|
) {
|
395
|
-
revert
|
509
|
+
revert ErrorAccessAdminRoleMemberNotContract(roleId, account);
|
396
510
|
}
|
397
511
|
|
398
512
|
// TODO check account already have roleId
|
@@ -402,18 +516,18 @@ contract AccessAdmin is
|
|
402
516
|
account,
|
403
517
|
0);
|
404
518
|
|
405
|
-
|
519
|
+
emit LogAccessAdminRoleGranted(_adminName, account, _getRoleName(roleId));
|
406
520
|
}
|
407
521
|
|
408
522
|
/// @dev revoke the specified role from the provided account
|
409
523
|
function _revokeRoleFromAccount(RoleId roleId, address account)
|
410
524
|
internal
|
411
|
-
onlyExistingRole(roleId, false)
|
525
|
+
onlyExistingRole(roleId, false, false)
|
412
526
|
{
|
413
527
|
|
414
528
|
// check role removal is permitted
|
415
529
|
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
416
|
-
revert
|
530
|
+
revert ErrorAccessAdminRoleMemberRemovalDisabled(roleId, account);
|
417
531
|
}
|
418
532
|
|
419
533
|
// TODO check account have roleId?
|
@@ -422,7 +536,7 @@ contract AccessAdmin is
|
|
422
536
|
RoleId.unwrap(roleId),
|
423
537
|
account);
|
424
538
|
|
425
|
-
|
539
|
+
emit LogAccessAdminRoleRevoked(_adminName, account, _roleInfo[roleId].name.toString());
|
426
540
|
}
|
427
541
|
|
428
542
|
|
@@ -434,32 +548,21 @@ contract AccessAdmin is
|
|
434
548
|
)
|
435
549
|
internal
|
436
550
|
{
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
roleId,
|
441
|
-
_roleInfo[roleId].name.toString());
|
442
|
-
}
|
443
|
-
|
444
|
-
// check admin role exists
|
445
|
-
if(!roleExists(info.adminRoleId)) {
|
446
|
-
revert ErrorRoleAdminNotExisting(info.adminRoleId);
|
447
|
-
}
|
448
|
-
|
449
|
-
// check role name is not empty
|
450
|
-
if(info.name.length() == 0) {
|
451
|
-
revert ErrorRoleNameEmpty(roleId);
|
452
|
-
}
|
551
|
+
AccessAdminLib.checkRoleCreation(this, roleId, info);
|
552
|
+
_createRoleUnchecked(roleId, info);
|
553
|
+
}
|
453
554
|
|
454
|
-
// check role name is not used for another role
|
455
|
-
if(_roleForName[info.name].exists) {
|
456
|
-
revert ErrorRoleNameAlreadyExists(
|
457
|
-
roleId,
|
458
|
-
info.name.toString(),
|
459
|
-
_roleForName[info.name].roleId);
|
460
|
-
}
|
461
555
|
|
462
|
-
|
556
|
+
function _createTarget(
|
557
|
+
address target,
|
558
|
+
string memory targetName,
|
559
|
+
bool checkAuthority,
|
560
|
+
bool custom
|
561
|
+
)
|
562
|
+
internal
|
563
|
+
{
|
564
|
+
AccessAdminLib.checkTargetCreation(this, target, targetName, checkAuthority);
|
565
|
+
_createTargetUnchecked(target, targetName, custom);
|
463
566
|
}
|
464
567
|
|
465
568
|
|
@@ -481,54 +584,19 @@ contract AccessAdmin is
|
|
481
584
|
// add role to list of roles
|
482
585
|
_roleIds.push(roleId);
|
483
586
|
|
484
|
-
emit
|
587
|
+
emit LogAccessAdminRoleCreated(_adminName, roleId, info.roleType, info.adminRoleId, info.name.toString());
|
485
588
|
}
|
486
589
|
|
487
590
|
|
488
|
-
function
|
591
|
+
function _createTargetUnchecked(
|
489
592
|
address target,
|
490
593
|
string memory targetName,
|
491
|
-
bool checkAuthority,
|
492
594
|
bool custom
|
493
595
|
)
|
494
596
|
internal
|
495
|
-
nonReentrant()
|
496
597
|
{
|
497
|
-
// check target does not yet exist
|
498
|
-
if(targetExists(target)) {
|
499
|
-
revert ErrorTargetAlreadyCreated(
|
500
|
-
target,
|
501
|
-
_targetInfo[target].name.toString());
|
502
|
-
}
|
503
|
-
|
504
|
-
// check target name is not empty
|
505
|
-
Str name = StrLib.toStr(targetName);
|
506
|
-
if(name.length() == 0) {
|
507
|
-
revert ErrorTargetNameEmpty(target);
|
508
|
-
}
|
509
|
-
|
510
|
-
// check target name is not used for another target
|
511
|
-
if( _targetForName[name] != address(0)) {
|
512
|
-
revert ErrorTargetNameAlreadyExists(
|
513
|
-
target,
|
514
|
-
targetName,
|
515
|
-
_targetForName[name]);
|
516
|
-
}
|
517
|
-
|
518
|
-
// check target is an access managed contract
|
519
|
-
if (!ContractLib.isAccessManaged(target)) {
|
520
|
-
revert ErrorTargetNotAccessManaged(target);
|
521
|
-
}
|
522
|
-
|
523
|
-
// check target shares authority with this contract
|
524
|
-
if (checkAuthority) {
|
525
|
-
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
526
|
-
if (targetAuthority != authority()) {
|
527
|
-
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
528
|
-
}
|
529
|
-
}
|
530
|
-
|
531
598
|
// create target info
|
599
|
+
Str name = StrLib.toStr(targetName);
|
532
600
|
_targetInfo[target] = TargetInfo({
|
533
601
|
name: name,
|
534
602
|
isCustom: custom,
|
@@ -541,25 +609,45 @@ contract AccessAdmin is
|
|
541
609
|
// add role to list of roles
|
542
610
|
_targets.push(target);
|
543
611
|
|
544
|
-
emit
|
612
|
+
emit LogAccessAdminTargetCreated(_adminName, target, targetName);
|
545
613
|
}
|
546
614
|
|
547
615
|
|
548
|
-
function
|
616
|
+
function _setTargetLocked(address target, bool locked)
|
549
617
|
internal
|
618
|
+
onlyExistingTarget(target)
|
550
619
|
{
|
551
|
-
|
620
|
+
_authority.setTargetClosed(target, locked);
|
621
|
+
}
|
552
622
|
|
553
|
-
|
554
|
-
|
555
|
-
|
623
|
+
|
624
|
+
function _getRoleName(RoleId roleId) internal view returns (string memory) {
|
625
|
+
if (roleExists(roleId)) {
|
626
|
+
return _roleInfo[roleId].name.toString();
|
556
627
|
}
|
628
|
+
return "<unknown-role>";
|
629
|
+
}
|
557
630
|
|
558
|
-
|
631
|
+
|
632
|
+
function _checkAuthorization(
|
633
|
+
address authorization,
|
634
|
+
ObjectType expectedDomain,
|
635
|
+
VersionPart expectedRelease,
|
636
|
+
bool checkAlreadyInitialized
|
637
|
+
)
|
638
|
+
internal
|
639
|
+
view
|
640
|
+
{
|
641
|
+
AccessAdminLib.checkAuthorization(
|
642
|
+
address(_authorization),
|
643
|
+
authorization,
|
644
|
+
expectedDomain,
|
645
|
+
expectedRelease,
|
646
|
+
checkAlreadyInitialized);
|
559
647
|
}
|
560
648
|
|
561
649
|
|
562
|
-
function _checkRoleExists(
|
650
|
+
function _checkRoleExists(
|
563
651
|
RoleId roleId,
|
564
652
|
bool onlyActiveRole
|
565
653
|
)
|
@@ -567,30 +655,50 @@ contract AccessAdmin is
|
|
567
655
|
view
|
568
656
|
{
|
569
657
|
if (!roleExists(roleId)) {
|
570
|
-
revert
|
658
|
+
revert ErrorAccessAdminRoleUnknown(roleId);
|
571
659
|
}
|
572
660
|
|
573
661
|
uint64 roleIdInt = RoleId.unwrap(roleId);
|
574
|
-
if (roleIdInt == _authority.ADMIN_ROLE()
|
575
|
-
|
576
|
-
{
|
577
|
-
revert ErrorRoleIsLocked(roleId);
|
662
|
+
if (roleIdInt == _authority.ADMIN_ROLE()) {
|
663
|
+
revert ErrorAccessAdminRoleIsLocked(roleId);
|
578
664
|
}
|
579
665
|
|
580
666
|
// check if role is disabled
|
581
667
|
if (onlyActiveRole && _roleInfo[roleId].pausedAt <= TimestampLib.blockTimestamp()) {
|
582
|
-
revert
|
668
|
+
revert ErrorAccessAdminRoleIsPaused(roleId);
|
583
669
|
}
|
584
670
|
}
|
585
671
|
|
586
672
|
|
673
|
+
|
587
674
|
/// @dev check if target exists and reverts if it doesn't
|
588
|
-
function
|
675
|
+
function _checkTargetExists(
|
676
|
+
address target
|
677
|
+
)
|
589
678
|
internal
|
590
679
|
view
|
591
680
|
{
|
681
|
+
// check not yet created
|
592
682
|
if (!targetExists(target)) {
|
593
|
-
revert
|
683
|
+
revert ErrorAccessAdminTargetNotCreated(target);
|
684
|
+
}
|
685
|
+
}
|
686
|
+
|
687
|
+
|
688
|
+
function _checkIsRegistered(
|
689
|
+
address registry,
|
690
|
+
address target,
|
691
|
+
ObjectType expectedType
|
692
|
+
)
|
693
|
+
internal
|
694
|
+
view
|
695
|
+
{
|
696
|
+
AccessAdminLib.checkIsRegistered(registry, target, expectedType);
|
697
|
+
}
|
698
|
+
|
699
|
+
function _checkRegistry(address registry) internal view {
|
700
|
+
if (!ContractLib.isRegistry(registry)) {
|
701
|
+
revert ErrorAccessAdminNotRegistry(registry);
|
594
702
|
}
|
595
703
|
}
|
596
704
|
}
|