@etherisc/gif-next 0.0.2-8d9d4d6-542 → 0.0.2-8daf0fe-431
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 +18 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +107 -361
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- 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 +71 -207
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +185 -5
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +5 -5
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +271 -15
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +7 -7
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +17 -242
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +90 -74
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +30 -30
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -16
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -39
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +0 -13
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +27 -39
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +29 -90
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1203 -290
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +337 -25
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +61 -121
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +18 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -79
- 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/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -9
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- 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 +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +4 -4
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +3 -3
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +2 -2
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +4 -4
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +3 -3
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +10 -10
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +6 -6
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +40 -40
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +21 -21
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -153
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -44
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- 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 +18 -62
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +196 -387
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +29 -126
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +11 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +56 -80
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +29 -41
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
- 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/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +2 -2
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.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/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- 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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +2 -2
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- 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 +2 -2
- 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 +2 -2
- 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/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 +26 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
- 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/SelectorSetLib.dbg.json +1 -1
- 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/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +115 -276
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +20 -15
- package/contracts/authorization/IAccessAdmin.sol +17 -11
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +11 -17
- package/contracts/authorization/ModuleAuthorization.sol +41 -79
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +126 -104
- package/contracts/distribution/DistributionService.sol +10 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/IInstance.sol +1 -2
- package/contracts/instance/IInstanceService.sol +7 -12
- package/contracts/instance/Instance.sol +52 -57
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +69 -43
- package/contracts/instance/InstanceReader.sol +22 -9
- package/contracts/instance/InstanceService.sol +66 -62
- package/contracts/instance/InstanceStore.sol +5 -1
- package/contracts/instance/base/ObjectManager.sol +7 -8
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/Oracle.sol +61 -49
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +1 -1
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/Product.sol +103 -88
- package/contracts/registry/IRegistry.sol +5 -8
- package/contracts/registry/Registry.sol +1 -5
- package/contracts/registry/RegistryAdmin.sol +81 -43
- package/contracts/registry/ReleaseManager.sol +8 -19
- package/contracts/registry/ServiceAuthorizationV3.sol +1 -1
- package/contracts/shared/ComponentService.sol +18 -56
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/type/ObjectType.sol +11 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/UFixed.sol +6 -0
- package/package.json +4 -1
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +0 -1639
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +0 -1676
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/contracts/authorization/InstanceAdmin.sol +0 -108
- package/contracts/instance/InstanceAdminNew.sol +0 -74
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -1,12 +1,12 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
6
5
|
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
7
6
|
|
7
|
+
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
8
8
|
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
9
|
-
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
9
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
10
10
|
import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
|
11
11
|
import {Str, StrLib} from "../type/String.sol";
|
12
12
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
@@ -26,19 +26,13 @@ contract AccessAdmin is
|
|
26
26
|
string public constant ADMIN_ROLE_NAME = "AdminRole";
|
27
27
|
string public constant PUBLIC_ROLE_NAME = "PublicRole";
|
28
28
|
|
29
|
-
uint64 public constant MANAGER_ROLE = type(uint64).min + 1;
|
30
|
-
string public constant MANAGER_ROLE_NAME = "ManagerRole";
|
31
|
-
|
32
29
|
/// @dev the OpenZeppelin access manager driving the access admin contract
|
33
|
-
|
30
|
+
AccessManagerCloneable internal _authority;
|
34
31
|
|
35
32
|
/// @dev stores the deployer address and allows to create initializers
|
36
33
|
/// that are restricted to the deployer address.
|
37
34
|
address internal _deployer;
|
38
35
|
|
39
|
-
/// @dev required role for state changes to this contract
|
40
|
-
RoleId internal _managerRoleId;
|
41
|
-
|
42
36
|
/// @dev store role info per role id
|
43
37
|
mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
|
44
38
|
|
@@ -87,7 +81,7 @@ contract AccessAdmin is
|
|
87
81
|
revert ErrorRoleUnknown(roleId);
|
88
82
|
}
|
89
83
|
|
90
|
-
if (!
|
84
|
+
if (!hasAdminRole(msg.sender, roleId)) {
|
91
85
|
revert ErrorNotAdminOfRole(_roleInfo[roleId].adminRoleId);
|
92
86
|
}
|
93
87
|
_;
|
@@ -112,128 +106,15 @@ contract AccessAdmin is
|
|
112
106
|
|
113
107
|
constructor() {
|
114
108
|
_deployer = msg.sender;
|
115
|
-
_authority = new
|
116
|
-
|
117
|
-
_setAuthority(address(_authority));
|
118
|
-
_createInitialRoleSetup();
|
109
|
+
_authority = new AccessManagerCloneable();
|
110
|
+
_authority.initialize(address(this));
|
119
111
|
|
112
|
+
_setAuthority(address(_authority)); // set authority for oz access managed
|
113
|
+
_createAdminAndPublicRoles();
|
120
114
|
_disableInitializers();
|
121
115
|
}
|
122
116
|
|
123
|
-
//---
|
124
|
-
|
125
|
-
function setRoleDisabled(
|
126
|
-
RoleId roleId,
|
127
|
-
bool disabled
|
128
|
-
)
|
129
|
-
external
|
130
|
-
virtual
|
131
|
-
restricted()
|
132
|
-
{
|
133
|
-
_setRoleDisabled(roleId, disabled);
|
134
|
-
}
|
135
|
-
|
136
|
-
function grantRole(
|
137
|
-
address account,
|
138
|
-
RoleId roleId
|
139
|
-
)
|
140
|
-
external
|
141
|
-
virtual
|
142
|
-
onlyRoleAdmin(roleId)
|
143
|
-
restricted()
|
144
|
-
{
|
145
|
-
_grantRoleToAccount(roleId, account);
|
146
|
-
}
|
147
|
-
|
148
|
-
function revokeRole(
|
149
|
-
address account,
|
150
|
-
RoleId roleId
|
151
|
-
)
|
152
|
-
external
|
153
|
-
virtual
|
154
|
-
onlyRoleAdmin(roleId)
|
155
|
-
restricted()
|
156
|
-
{
|
157
|
-
_revokeRoleFromAccount(roleId, account);
|
158
|
-
}
|
159
|
-
|
160
|
-
function renounceRole(
|
161
|
-
RoleId roleId
|
162
|
-
)
|
163
|
-
external
|
164
|
-
virtual
|
165
|
-
onlyRoleMember(roleId)
|
166
|
-
restricted()
|
167
|
-
{
|
168
|
-
_revokeRoleFromAccount(roleId, msg.sender);
|
169
|
-
}
|
170
|
-
|
171
|
-
//--- target management functions ---------------------------------------//
|
172
|
-
|
173
|
-
function setTargetLocked(
|
174
|
-
address target,
|
175
|
-
bool locked
|
176
|
-
)
|
177
|
-
external
|
178
|
-
virtual
|
179
|
-
onlyExistingTarget(target)
|
180
|
-
restricted()
|
181
|
-
{
|
182
|
-
_authority.setTargetClosed(target, locked);
|
183
|
-
|
184
|
-
// implizit logging: rely on OpenZeppelin log TargetClosed
|
185
|
-
}
|
186
|
-
|
187
|
-
function authorizeFunctions(
|
188
|
-
address target,
|
189
|
-
RoleId roleId,
|
190
|
-
FunctionInfo[] memory functions
|
191
|
-
)
|
192
|
-
external
|
193
|
-
virtual
|
194
|
-
onlyExistingTarget(target)
|
195
|
-
onlyExistingRole(roleId)
|
196
|
-
restricted()
|
197
|
-
{
|
198
|
-
_authorizeTargetFunctions(target, roleId, functions);
|
199
|
-
}
|
200
|
-
|
201
|
-
function unauthorizeFunctions(
|
202
|
-
address target,
|
203
|
-
FunctionInfo[] memory functions
|
204
|
-
)
|
205
|
-
external
|
206
|
-
virtual
|
207
|
-
restricted()
|
208
|
-
{
|
209
|
-
_unauthorizeTargetFunctions(target, functions);
|
210
|
-
}
|
211
|
-
|
212
|
-
|
213
|
-
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
214
|
-
return SelectorSetLib.size(_targetFunctions[target]);
|
215
|
-
}
|
216
|
-
|
217
|
-
function getAuthorizedFunction(
|
218
|
-
address target,
|
219
|
-
uint256 idx
|
220
|
-
)
|
221
|
-
external
|
222
|
-
view
|
223
|
-
returns (
|
224
|
-
FunctionInfo memory func,
|
225
|
-
RoleId roleId
|
226
|
-
)
|
227
|
-
{
|
228
|
-
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
229
|
-
func = _functionInfo[target][selector];
|
230
|
-
roleId = RoleIdLib.toRoleId(
|
231
|
-
_authority.getTargetFunctionRole(
|
232
|
-
target,
|
233
|
-
selector.toBytes4()));
|
234
|
-
}
|
235
|
-
|
236
|
-
//--- view functions ----------------------------------------------------//
|
117
|
+
//--- view functions for roles ------------------------------------------//
|
237
118
|
|
238
119
|
function roles() external view returns (uint256 numberOfRoles) {
|
239
120
|
return _roleIds.length;
|
@@ -251,18 +132,10 @@ contract AccessAdmin is
|
|
251
132
|
return RoleId.wrap(_authority.PUBLIC_ROLE());
|
252
133
|
}
|
253
134
|
|
254
|
-
function getManagerRole() public view returns (RoleId roleId) {
|
255
|
-
return _managerRoleId;
|
256
|
-
}
|
257
|
-
|
258
135
|
function roleExists(RoleId roleId) public view returns (bool exists) {
|
259
136
|
return _roleInfo[roleId].createdAt.gtz();
|
260
137
|
}
|
261
138
|
|
262
|
-
function isRoleDisabled(RoleId roleId) public view returns (bool isActive) {
|
263
|
-
return _roleInfo[roleId].disabledAt <= TimestampLib.blockTimestamp();
|
264
|
-
}
|
265
|
-
|
266
139
|
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
|
267
140
|
return _roleInfo[roleId];
|
268
141
|
}
|
@@ -271,6 +144,14 @@ contract AccessAdmin is
|
|
271
144
|
return _roleForName[name];
|
272
145
|
}
|
273
146
|
|
147
|
+
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
148
|
+
return _roleMembers[roleId].length();
|
149
|
+
}
|
150
|
+
|
151
|
+
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
|
152
|
+
return _roleMembers[roleId].at(idx);
|
153
|
+
}
|
154
|
+
|
274
155
|
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
275
156
|
(bool isMember, ) = _authority.hasRole(
|
276
157
|
RoleId.unwrap(roleId),
|
@@ -278,22 +159,21 @@ contract AccessAdmin is
|
|
278
159
|
return isMember;
|
279
160
|
}
|
280
161
|
|
281
|
-
function
|
282
|
-
|
162
|
+
function hasAdminRole(address account, RoleId roleId)
|
163
|
+
public
|
164
|
+
virtual
|
165
|
+
view
|
166
|
+
returns (bool)
|
167
|
+
{
|
168
|
+
return hasRole(account, _roleInfo[roleId].adminRoleId);
|
283
169
|
}
|
284
170
|
|
285
|
-
|
286
|
-
return _roleMembers[roleId].at(idx);
|
287
|
-
}
|
171
|
+
//--- view functions for targets ----------------------------------------//
|
288
172
|
|
289
173
|
function targetExists(address target) public view returns (bool exists) {
|
290
174
|
return _targetInfo[target].createdAt.gtz();
|
291
175
|
}
|
292
176
|
|
293
|
-
function isTargetLocked(address target) public view returns (bool locked) {
|
294
|
-
return _authority.isTargetClosed(target);
|
295
|
-
}
|
296
|
-
|
297
177
|
function targets() external view returns (uint256 numberOfTargets) {
|
298
178
|
return _targets.length;
|
299
179
|
}
|
@@ -306,10 +186,37 @@ contract AccessAdmin is
|
|
306
186
|
return _targetInfo[target];
|
307
187
|
}
|
308
188
|
|
309
|
-
function getTargetForName(Str name)
|
189
|
+
function getTargetForName(Str name) public view returns (address target) {
|
310
190
|
return _targetForName[name];
|
311
191
|
}
|
312
192
|
|
193
|
+
function isTargetLocked(address target) public view returns (bool locked) {
|
194
|
+
return _authority.isTargetClosed(target);
|
195
|
+
}
|
196
|
+
|
197
|
+
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
198
|
+
return SelectorSetLib.size(_targetFunctions[target]);
|
199
|
+
}
|
200
|
+
|
201
|
+
function getAuthorizedFunction(
|
202
|
+
address target,
|
203
|
+
uint256 idx
|
204
|
+
)
|
205
|
+
external
|
206
|
+
view
|
207
|
+
returns (
|
208
|
+
FunctionInfo memory func,
|
209
|
+
RoleId roleId
|
210
|
+
)
|
211
|
+
{
|
212
|
+
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
213
|
+
func = _functionInfo[target][selector];
|
214
|
+
roleId = RoleIdLib.toRoleId(
|
215
|
+
_authority.getTargetFunctionRole(
|
216
|
+
target,
|
217
|
+
selector.toBytes4()));
|
218
|
+
}
|
219
|
+
|
313
220
|
function isAccessManaged(address target) public view returns (bool) {
|
314
221
|
if (!_isContract(target)) {
|
315
222
|
return false;
|
@@ -326,17 +233,27 @@ contract AccessAdmin is
|
|
326
233
|
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
327
234
|
}
|
328
235
|
|
329
|
-
function
|
330
|
-
return
|
236
|
+
function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) public view returns (RoleInfo memory) {
|
237
|
+
return RoleInfo({
|
238
|
+
name: StrLib.toStr(name),
|
239
|
+
adminRoleId: adminRoleId,
|
240
|
+
roleType: roleType,
|
241
|
+
maxMemberCount: maxMemberCount,
|
242
|
+
createdAt: TimestampLib.blockTimestamp()
|
243
|
+
});
|
331
244
|
}
|
332
245
|
|
333
246
|
function toFunction(bytes4 selector, string memory name) public view returns (FunctionInfo memory) {
|
334
247
|
return FunctionInfo({
|
335
|
-
selector: SelectorLib.toSelector(selector),
|
336
248
|
name: StrLib.toStr(name),
|
249
|
+
selector: SelectorLib.toSelector(selector),
|
337
250
|
createdAt: TimestampLib.blockTimestamp()});
|
338
251
|
}
|
339
252
|
|
253
|
+
function deployer() public view returns (address) {
|
254
|
+
return _deployer;
|
255
|
+
}
|
256
|
+
|
340
257
|
//--- internal/private functions -------------------------------------------------//
|
341
258
|
|
342
259
|
function _authorizeTargetFunctions(
|
@@ -411,81 +328,47 @@ contract AccessAdmin is
|
|
411
328
|
revert ErrorAuthorityAlreadySet();
|
412
329
|
}
|
413
330
|
|
414
|
-
_authority =
|
415
|
-
|
416
|
-
if(!hasRole(address(this), RoleId.wrap(_authority.ADMIN_ROLE()))) {
|
417
|
-
revert ErrorAdminRoleMissing();
|
418
|
-
}
|
419
|
-
|
331
|
+
_authority = AccessManagerCloneable(authorityAddress);
|
420
332
|
__AccessManaged_init(address(_authority));
|
421
333
|
}
|
422
334
|
|
423
335
|
|
424
|
-
function
|
336
|
+
function _initializeAdminAndPublicRoles()
|
425
337
|
internal
|
426
338
|
virtual
|
427
339
|
onlyInitializing()
|
428
340
|
{
|
429
|
-
|
341
|
+
_createAdminAndPublicRoles();
|
430
342
|
}
|
431
343
|
|
432
344
|
|
433
345
|
/// @dev internal setup function that can be used in both constructor and initializer.
|
434
|
-
function
|
346
|
+
function _createAdminAndPublicRoles()
|
435
347
|
internal
|
436
348
|
{
|
437
|
-
bool isCustom = false;
|
438
349
|
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
439
350
|
FunctionInfo[] memory functions;
|
440
351
|
|
441
352
|
// setup admin role
|
442
353
|
_createRoleUnchecked(
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
354
|
+
ADMIN_ROLE(),
|
355
|
+
toRole({
|
356
|
+
adminRoleId: ADMIN_ROLE(),
|
357
|
+
roleType: RoleType.Contract,
|
358
|
+
maxMemberCount: 1,
|
359
|
+
name: ADMIN_ROLE_NAME}));
|
449
360
|
|
450
361
|
// add this contract as admin role member
|
451
362
|
_roleMembers[adminRoleId].add(address(this));
|
452
363
|
|
453
364
|
// setup public role
|
454
365
|
_createRoleUnchecked(
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
// setup manager role
|
463
|
-
_managerRoleId = RoleIdLib.toRoleId(MANAGER_ROLE);
|
464
|
-
_createRole(
|
465
|
-
_managerRoleId,
|
466
|
-
adminRoleId,
|
467
|
-
MANAGER_ROLE_NAME,
|
468
|
-
isCustom,
|
469
|
-
3, // TODO think about max member count
|
470
|
-
false);
|
471
|
-
|
472
|
-
// grant public role access to grant and revoke, renounce
|
473
|
-
functions = new FunctionInfo[](3);
|
474
|
-
functions[0] = toFunction(IAccessAdmin.grantRole.selector, "grantRole");
|
475
|
-
functions[1] = toFunction(IAccessAdmin.revokeRole.selector, "revokeRole");
|
476
|
-
functions[2] = toFunction(IAccessAdmin.renounceRole.selector, "renounceRole");
|
477
|
-
_authorizeTargetFunctions(address(this), getPublicRole(), functions);
|
478
|
-
|
479
|
-
// grant manager role access to the specified functions
|
480
|
-
functions = new FunctionInfo[](4);
|
481
|
-
// TODO cleanup
|
482
|
-
// functions[0] = toFunction(IAccessAdmin.createRole.selector, "createRole");
|
483
|
-
functions[0] = toFunction(IAccessAdmin.setRoleDisabled.selector, "setRoleDisabled");
|
484
|
-
// functions[1] = toFunction(IAccessAdmin.createTarget.selector, "createTarget");
|
485
|
-
functions[1] = toFunction(IAccessAdmin.setTargetLocked.selector, "setTargetLocked");
|
486
|
-
functions[2] = toFunction(IAccessAdmin.authorizeFunctions.selector, "authorizeFunctions");
|
487
|
-
functions[3] = toFunction(IAccessAdmin.unauthorizeFunctions.selector, "unauthorizeFunctions");
|
488
|
-
_authorizeTargetFunctions(address(this), getManagerRole(), functions);
|
366
|
+
PUBLIC_ROLE(),
|
367
|
+
toRole({
|
368
|
+
adminRoleId: ADMIN_ROLE(),
|
369
|
+
roleType: RoleType.Gif,
|
370
|
+
maxMemberCount: type(uint32).max,
|
371
|
+
name: PUBLIC_ROLE_NAME}));
|
489
372
|
}
|
490
373
|
|
491
374
|
/// @dev check if target exists and reverts if it doesn't
|
@@ -518,13 +401,17 @@ contract AccessAdmin is
|
|
518
401
|
internal
|
519
402
|
{
|
520
403
|
_checkRoleId(roleId);
|
521
|
-
_checkRoleIsActive(roleId);
|
522
404
|
|
523
405
|
// check max role members will not be exceeded
|
524
406
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
525
407
|
revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
526
408
|
}
|
527
409
|
|
410
|
+
// check account is contract for contract role
|
411
|
+
// TODO implement
|
412
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
413
|
+
}
|
414
|
+
|
528
415
|
_roleMembers[roleId].add(account);
|
529
416
|
_authority.grantRole(
|
530
417
|
RoleId.unwrap(roleId),
|
@@ -541,7 +428,7 @@ contract AccessAdmin is
|
|
541
428
|
_checkRoleId(roleId);
|
542
429
|
|
543
430
|
// check role removal is permitted
|
544
|
-
if (_roleInfo[roleId].
|
431
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
545
432
|
revert ErrorRoleRemovalDisabled(roleId);
|
546
433
|
}
|
547
434
|
|
@@ -569,23 +456,11 @@ contract AccessAdmin is
|
|
569
456
|
}
|
570
457
|
}
|
571
458
|
|
572
|
-
|
573
|
-
|
574
|
-
internal
|
575
|
-
{
|
576
|
-
if (isRoleDisabled(roleId)) {
|
577
|
-
revert ErrorRoleIsDisabled(roleId);
|
578
|
-
}
|
579
|
-
}
|
580
|
-
|
581
|
-
|
459
|
+
/// @dev Creates a role based on the provided parameters.
|
460
|
+
/// Checks that the provided role and role id and role name not already used.
|
582
461
|
function _createRole(
|
583
462
|
RoleId roleId,
|
584
|
-
|
585
|
-
string memory roleName,
|
586
|
-
bool isCustom,
|
587
|
-
uint256 maxMemberCount,
|
588
|
-
bool memberRemovalDisabled
|
463
|
+
RoleInfo memory info
|
589
464
|
)
|
590
465
|
internal
|
591
466
|
{
|
@@ -597,93 +472,55 @@ contract AccessAdmin is
|
|
597
472
|
}
|
598
473
|
|
599
474
|
// check admin role exists
|
600
|
-
if(!roleExists(adminRoleId)) {
|
601
|
-
revert ErrorRoleAdminNotExisting(adminRoleId);
|
475
|
+
if(!roleExists(info.adminRoleId)) {
|
476
|
+
revert ErrorRoleAdminNotExisting(info.adminRoleId);
|
602
477
|
}
|
603
478
|
|
604
479
|
// check role name is not empty
|
605
|
-
|
606
|
-
if(name.length() == 0) {
|
480
|
+
if(info.name.length() == 0) {
|
607
481
|
revert ErrorRoleNameEmpty(roleId);
|
608
482
|
}
|
609
483
|
|
610
484
|
// check role name is not used for another role
|
611
|
-
if(_roleForName[name].exists) {
|
485
|
+
if(_roleForName[info.name].exists) {
|
612
486
|
revert ErrorRoleNameAlreadyExists(
|
613
487
|
roleId,
|
614
|
-
|
615
|
-
_roleForName[name].roleId);
|
488
|
+
info.name.toString(),
|
489
|
+
_roleForName[info.name].roleId);
|
616
490
|
}
|
617
491
|
|
618
|
-
_createRoleUnchecked(
|
619
|
-
roleId, adminRoleId,
|
620
|
-
name,
|
621
|
-
isCustom,
|
622
|
-
maxMemberCount,
|
623
|
-
memberRemovalDisabled);
|
624
|
-
}
|
625
|
-
|
626
|
-
|
627
|
-
function _setRoleDisabled(
|
628
|
-
RoleId roleId,
|
629
|
-
bool disabled
|
630
|
-
)
|
631
|
-
internal
|
632
|
-
{
|
633
|
-
|
634
|
-
_checkRoleId(roleId);
|
635
|
-
Timestamp disabledAtOld = _roleInfo[roleId].disabledAt;
|
636
|
-
|
637
|
-
if (disabled) {
|
638
|
-
_roleInfo[roleId].disabledAt = TimestampLib.blockTimestamp();
|
639
|
-
} else {
|
640
|
-
_roleInfo[roleId].disabledAt = TimestampLib.max();
|
641
|
-
}
|
642
|
-
|
643
|
-
emit LogRoleDisabled(roleId, disabled, disabledAtOld);
|
492
|
+
_createRoleUnchecked(roleId, info);
|
644
493
|
}
|
645
494
|
|
646
495
|
|
647
496
|
function _createRoleUnchecked(
|
648
497
|
RoleId roleId,
|
649
|
-
|
650
|
-
Str name,
|
651
|
-
bool custom,
|
652
|
-
uint256 maxMemberCount,
|
653
|
-
bool memberRemovalDisabled
|
498
|
+
RoleInfo memory info
|
654
499
|
)
|
655
500
|
private
|
656
501
|
{
|
657
502
|
// create role info
|
658
|
-
|
659
|
-
|
660
|
-
name: name,
|
661
|
-
isCustom: custom,
|
662
|
-
maxMemberCount: maxMemberCount,
|
663
|
-
memberRemovalDisabled: memberRemovalDisabled,
|
664
|
-
createdAt: TimestampLib.blockTimestamp(),
|
665
|
-
disabledAt: TimestampLib.max()});
|
503
|
+
info.createdAt = TimestampLib.blockTimestamp();
|
504
|
+
_roleInfo[roleId] = info;
|
666
505
|
|
667
506
|
// create role name info
|
668
|
-
_roleForName[name] = RoleNameInfo({
|
507
|
+
_roleForName[info.name] = RoleNameInfo({
|
669
508
|
roleId: roleId,
|
670
509
|
exists: true});
|
671
510
|
|
672
511
|
// add role to list of roles
|
673
512
|
_roleIds.push(roleId);
|
674
513
|
|
675
|
-
emit LogRoleCreated(roleId, adminRoleId, name.toString());
|
676
|
-
}
|
677
|
-
|
678
|
-
|
679
|
-
function _createTarget(address target, string memory targetName)
|
680
|
-
internal
|
681
|
-
{
|
682
|
-
_createTarget(target, targetName, false);
|
514
|
+
emit LogRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
|
683
515
|
}
|
684
516
|
|
685
517
|
|
686
|
-
function _createTarget(
|
518
|
+
function _createTarget(
|
519
|
+
address target,
|
520
|
+
string memory targetName,
|
521
|
+
bool checkAuthority,
|
522
|
+
bool custom
|
523
|
+
)
|
687
524
|
internal
|
688
525
|
{
|
689
526
|
// check target does not yet exist
|
@@ -699,7 +536,7 @@ contract AccessAdmin is
|
|
699
536
|
revert ErrorTargetNameEmpty(target);
|
700
537
|
}
|
701
538
|
|
702
|
-
// check target name is not used for another
|
539
|
+
// check target name is not used for another target
|
703
540
|
if( _targetForName[name] != address(0)) {
|
704
541
|
revert ErrorTargetNameAlreadyExists(
|
705
542
|
target,
|
@@ -713,9 +550,11 @@ contract AccessAdmin is
|
|
713
550
|
}
|
714
551
|
|
715
552
|
// check target shares authority with this contract
|
716
|
-
|
717
|
-
|
718
|
-
|
553
|
+
if (checkAuthority) {
|
554
|
+
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
555
|
+
if (targetAuthority != authority()) {
|
556
|
+
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
557
|
+
}
|
719
558
|
}
|
720
559
|
|
721
560
|
// create target info
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
|
5
|
+
|
6
|
+
contract AccessManagerCloneable is
|
7
|
+
AccessManagerUpgradeable
|
8
|
+
{
|
9
|
+
|
10
|
+
function initialize(address initialAdmin)
|
11
|
+
external
|
12
|
+
initializer()
|
13
|
+
{
|
14
|
+
__AccessManager_init(initialAdmin);
|
15
|
+
}
|
16
|
+
}
|