@etherisc/gif-next 0.0.2-f1fe735-758 → 0.0.2-f2a5ca7-763
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 +13 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- 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 +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- 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 +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- 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 +106 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +55 -55
- 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/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- 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 +65 -125
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
- 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/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +6 -6
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- 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/mock/Dip.sol/Dip.json +2 -2
- 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 +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
- 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 +55 -55
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +40 -40
- 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 +36 -36
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +36 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +32 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -34
- 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 +72 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
- 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 +50 -50
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +43 -43
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +58 -58
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
- 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 +20 -20
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- 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 +101 -73
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +234 -389
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +6 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +62 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -61
- 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/ERC165.sol/ERC165.json +2 -2
- 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/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/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- 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 +6 -6
- 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 +32 -32
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -44
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +6 -6
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -40
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +134 -134
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +8 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
- 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 +4 -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 +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- 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/Seconds.sol/SecondsLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -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/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -4
- 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/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
- 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 +12 -21
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +8 -9
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +61 -70
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +22 -9
- package/contracts/instance/InstanceService.sol +74 -70
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +5 -1
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- 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/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +14 -26
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +11 -27
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +12 -36
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +5 -31
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +7 -32
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +81 -87
- package/contracts/registry/RegistryAdmin.sol +118 -88
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +97 -113
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/ComponentService.sol +19 -58
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/Service.sol +3 -4
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/Staking.sol +11 -14
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +12 -22
- package/contracts/type/ObjectType.sol +37 -7
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +3 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1177
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- 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/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- 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/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- 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
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
| @@ -1,12 +1,13 @@ | |
| 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";
         | 
| 6 | 
            +
            import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
         | 
| 7 7 |  | 
| 8 | 
            +
            import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
         | 
| 8 9 | 
             
            import {IAccessAdmin} from "./IAccessAdmin.sol";
         | 
| 9 | 
            -
            import {RoleId, RoleIdLib} from "../type/RoleId.sol";
         | 
| 10 | 
            +
            import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
         | 
| 10 11 | 
             
            import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
         | 
| 11 12 | 
             
            import {Str, StrLib} from "../type/String.sol";
         | 
| 12 13 | 
             
            import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
         | 
| @@ -19,6 +20,7 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol"; | |
| 19 20 | 
             
             */ 
         | 
| 20 21 | 
             
            contract AccessAdmin is
         | 
| 21 22 | 
             
                AccessManagedUpgradeable,
         | 
| 23 | 
            +
                ReentrancyGuardUpgradeable,
         | 
| 22 24 | 
             
                IAccessAdmin
         | 
| 23 25 | 
             
            {
         | 
| 24 26 | 
             
                using EnumerableSet for EnumerableSet.AddressSet;
         | 
| @@ -26,19 +28,13 @@ contract AccessAdmin is | |
| 26 28 | 
             
                string public constant ADMIN_ROLE_NAME = "AdminRole";
         | 
| 27 29 | 
             
                string public constant PUBLIC_ROLE_NAME = "PublicRole";
         | 
| 28 30 |  | 
| 29 | 
            -
                uint64 public constant MANAGER_ROLE = type(uint64).min + 1;
         | 
| 30 | 
            -
                string public constant MANAGER_ROLE_NAME = "ManagerRole";
         | 
| 31 | 
            -
             | 
| 32 31 | 
             
                /// @dev the OpenZeppelin access manager driving the access admin contract
         | 
| 33 | 
            -
                 | 
| 32 | 
            +
                AccessManagerCloneable internal _authority;
         | 
| 34 33 |  | 
| 35 34 | 
             
                /// @dev stores the deployer address and allows to create initializers
         | 
| 36 35 | 
             
                /// that are restricted to the deployer address.
         | 
| 37 36 | 
             
                address internal _deployer;
         | 
| 38 37 |  | 
| 39 | 
            -
                /// @dev required role for state changes to this contract
         | 
| 40 | 
            -
                RoleId internal _managerRoleId;
         | 
| 41 | 
            -
             | 
| 42 38 | 
             
                /// @dev store role info per role id
         | 
| 43 39 | 
             
                mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
         | 
| 44 40 |  | 
| @@ -63,8 +59,8 @@ contract AccessAdmin is | |
| 63 59 | 
             
                /// @dev store all managed functions per target
         | 
| 64 60 | 
             
                mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
         | 
| 65 61 |  | 
| 66 | 
            -
                /// @dev  | 
| 67 | 
            -
                mapping(address target => mapping(Selector selector =>  | 
| 62 | 
            +
                /// @dev function infos array
         | 
| 63 | 
            +
                mapping(address target => mapping(Selector selector => FunctionInfo)) internal _functionInfo;
         | 
| 68 64 |  | 
| 69 65 | 
             
                /// @dev temporary dynamic functions array
         | 
| 70 66 | 
             
                bytes4[] private _functions;
         | 
| @@ -87,7 +83,7 @@ contract AccessAdmin is | |
| 87 83 | 
             
                        revert ErrorRoleUnknown(roleId);
         | 
| 88 84 | 
             
                    }
         | 
| 89 85 |  | 
| 90 | 
            -
                    if (! | 
| 86 | 
            +
                    if (!hasAdminRole(msg.sender, roleId)) {
         | 
| 91 87 | 
             
                        revert ErrorNotAdminOfRole(_roleInfo[roleId].adminRoleId);
         | 
| 92 88 | 
             
                    }
         | 
| 93 89 | 
             
                    _;
         | 
| @@ -112,157 +108,15 @@ contract AccessAdmin is | |
| 112 108 |  | 
| 113 109 | 
             
                constructor() {
         | 
| 114 110 | 
             
                    _deployer = msg.sender;
         | 
| 115 | 
            -
                    _authority = new  | 
| 116 | 
            -
             | 
| 117 | 
            -
                    _setAuthority(address(_authority));
         | 
| 118 | 
            -
                    _createInitialRoleSetup();
         | 
| 111 | 
            +
                    _authority = new AccessManagerCloneable();
         | 
| 112 | 
            +
                    _authority.initialize(address(this));
         | 
| 119 113 |  | 
| 114 | 
            +
                    _setAuthority(address(_authority)); // set authority for oz access managed
         | 
| 115 | 
            +
                    _createAdminAndPublicRoles();
         | 
| 120 116 | 
             
                    _disableInitializers();
         | 
| 121 117 | 
             
                }
         | 
| 122 118 |  | 
| 123 | 
            -
                //---  | 
| 124 | 
            -
             | 
| 125 | 
            -
                function createRole(
         | 
| 126 | 
            -
                    RoleId roleId, 
         | 
| 127 | 
            -
                    RoleId adminRoleId, 
         | 
| 128 | 
            -
                    string memory name,
         | 
| 129 | 
            -
                    uint256 maxMemberCount,
         | 
| 130 | 
            -
                    bool memberRemovalDisabled
         | 
| 131 | 
            -
                )
         | 
| 132 | 
            -
                    external
         | 
| 133 | 
            -
                    virtual
         | 
| 134 | 
            -
                    restricted()
         | 
| 135 | 
            -
                {
         | 
| 136 | 
            -
                    _createRole(roleId, adminRoleId, name, maxMemberCount, memberRemovalDisabled);
         | 
| 137 | 
            -
                }
         | 
| 138 | 
            -
             | 
| 139 | 
            -
                function setRoleDisabled(
         | 
| 140 | 
            -
                    RoleId roleId, 
         | 
| 141 | 
            -
                    bool disabled
         | 
| 142 | 
            -
                )
         | 
| 143 | 
            -
                    external
         | 
| 144 | 
            -
                    virtual
         | 
| 145 | 
            -
                    restricted()
         | 
| 146 | 
            -
                {
         | 
| 147 | 
            -
                    _setRoleDisabled(roleId, disabled);
         | 
| 148 | 
            -
                }
         | 
| 149 | 
            -
             | 
| 150 | 
            -
                function grantRole(
         | 
| 151 | 
            -
                    address account, 
         | 
| 152 | 
            -
                    RoleId roleId
         | 
| 153 | 
            -
                )
         | 
| 154 | 
            -
                    external
         | 
| 155 | 
            -
                    virtual
         | 
| 156 | 
            -
                    onlyRoleAdmin(roleId)
         | 
| 157 | 
            -
                    restricted()
         | 
| 158 | 
            -
                {
         | 
| 159 | 
            -
                    _grantRoleToAccount(roleId, account);
         | 
| 160 | 
            -
                }
         | 
| 161 | 
            -
             | 
| 162 | 
            -
                function revokeRole(
         | 
| 163 | 
            -
                    address account, 
         | 
| 164 | 
            -
                    RoleId roleId
         | 
| 165 | 
            -
                )
         | 
| 166 | 
            -
                    external
         | 
| 167 | 
            -
                    virtual
         | 
| 168 | 
            -
                    onlyRoleAdmin(roleId)
         | 
| 169 | 
            -
                    restricted()
         | 
| 170 | 
            -
                {
         | 
| 171 | 
            -
                    _revokeRoleFromAccount(roleId, account);
         | 
| 172 | 
            -
                }
         | 
| 173 | 
            -
             | 
| 174 | 
            -
                function renounceRole(
         | 
| 175 | 
            -
                    RoleId roleId
         | 
| 176 | 
            -
                )
         | 
| 177 | 
            -
                    external
         | 
| 178 | 
            -
                    virtual
         | 
| 179 | 
            -
                    onlyRoleMember(roleId)
         | 
| 180 | 
            -
                    restricted()
         | 
| 181 | 
            -
                {
         | 
| 182 | 
            -
                    _revokeRoleFromAccount(roleId, msg.sender);
         | 
| 183 | 
            -
                }
         | 
| 184 | 
            -
             | 
| 185 | 
            -
                //--- target management functions ---------------------------------------//
         | 
| 186 | 
            -
             | 
| 187 | 
            -
                function createTarget(
         | 
| 188 | 
            -
                    address target, 
         | 
| 189 | 
            -
                    string memory name
         | 
| 190 | 
            -
                )
         | 
| 191 | 
            -
                    external
         | 
| 192 | 
            -
                    virtual
         | 
| 193 | 
            -
                    restricted()
         | 
| 194 | 
            -
                {
         | 
| 195 | 
            -
                    _createTarget(target, name);
         | 
| 196 | 
            -
                }
         | 
| 197 | 
            -
             | 
| 198 | 
            -
                function setTargetLocked(
         | 
| 199 | 
            -
                    address target, 
         | 
| 200 | 
            -
                    bool locked
         | 
| 201 | 
            -
                )
         | 
| 202 | 
            -
                    external
         | 
| 203 | 
            -
                    virtual
         | 
| 204 | 
            -
                    onlyExistingTarget(target)
         | 
| 205 | 
            -
                    restricted()
         | 
| 206 | 
            -
                {
         | 
| 207 | 
            -
                    _authority.setTargetClosed(target, locked);
         | 
| 208 | 
            -
             | 
| 209 | 
            -
                    // implizit logging: rely on OpenZeppelin log TargetClosed
         | 
| 210 | 
            -
                }
         | 
| 211 | 
            -
             | 
| 212 | 
            -
                function authorizeFunctions(
         | 
| 213 | 
            -
                    address target, 
         | 
| 214 | 
            -
                    RoleId roleId, 
         | 
| 215 | 
            -
                    Function[] memory functions
         | 
| 216 | 
            -
                )
         | 
| 217 | 
            -
                    external
         | 
| 218 | 
            -
                    virtual
         | 
| 219 | 
            -
                    onlyExistingTarget(target)
         | 
| 220 | 
            -
                    onlyExistingRole(roleId)
         | 
| 221 | 
            -
                    restricted()
         | 
| 222 | 
            -
                {
         | 
| 223 | 
            -
                    _authorizeTargetFunctions(target, roleId, functions);
         | 
| 224 | 
            -
                }
         | 
| 225 | 
            -
             | 
| 226 | 
            -
                function unauthorizeFunctions(
         | 
| 227 | 
            -
                    address target, 
         | 
| 228 | 
            -
                    Function[] memory functions
         | 
| 229 | 
            -
                )
         | 
| 230 | 
            -
                    external
         | 
| 231 | 
            -
                    virtual
         | 
| 232 | 
            -
                    restricted()
         | 
| 233 | 
            -
                {
         | 
| 234 | 
            -
                    _unauthorizeTargetFunctions(target, functions);
         | 
| 235 | 
            -
                }
         | 
| 236 | 
            -
             | 
| 237 | 
            -
             | 
| 238 | 
            -
                function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
         | 
| 239 | 
            -
                    return SelectorSetLib.size(_targetFunctions[target]);
         | 
| 240 | 
            -
                }
         | 
| 241 | 
            -
             | 
| 242 | 
            -
                function getAuthorizedFunction(
         | 
| 243 | 
            -
                    address target, 
         | 
| 244 | 
            -
                    uint256 idx
         | 
| 245 | 
            -
                )
         | 
| 246 | 
            -
                    external 
         | 
| 247 | 
            -
                    view 
         | 
| 248 | 
            -
                    returns (
         | 
| 249 | 
            -
                        Function memory func, 
         | 
| 250 | 
            -
                        RoleId roleId
         | 
| 251 | 
            -
                    )
         | 
| 252 | 
            -
                {
         | 
| 253 | 
            -
                    Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
         | 
| 254 | 
            -
             | 
| 255 | 
            -
                    func = Function({
         | 
| 256 | 
            -
                        selector: selector, 
         | 
| 257 | 
            -
                        name: _functionName[target][selector]});
         | 
| 258 | 
            -
             | 
| 259 | 
            -
                    roleId = RoleIdLib.toRoleId(
         | 
| 260 | 
            -
                        _authority.getTargetFunctionRole(
         | 
| 261 | 
            -
                            target, 
         | 
| 262 | 
            -
                            selector.toBytes4()));
         | 
| 263 | 
            -
                }
         | 
| 264 | 
            -
             | 
| 265 | 
            -
                //--- view functions ----------------------------------------------------//
         | 
| 119 | 
            +
                //--- view functions for roles ------------------------------------------//
         | 
| 266 120 |  | 
| 267 121 | 
             
                function roles() external view returns (uint256 numberOfRoles) {
         | 
| 268 122 | 
             
                    return _roleIds.length;
         | 
| @@ -280,16 +134,8 @@ contract AccessAdmin is | |
| 280 134 | 
             
                    return RoleId.wrap(_authority.PUBLIC_ROLE());
         | 
| 281 135 | 
             
                }
         | 
| 282 136 |  | 
| 283 | 
            -
                function getManagerRole() public view returns (RoleId roleId) {
         | 
| 284 | 
            -
                    return _managerRoleId;
         | 
| 285 | 
            -
                }
         | 
| 286 | 
            -
             | 
| 287 137 | 
             
                function roleExists(RoleId roleId) public view returns (bool exists) {
         | 
| 288 | 
            -
                    return _roleInfo[roleId]. | 
| 289 | 
            -
                }
         | 
| 290 | 
            -
             | 
| 291 | 
            -
                function isRoleDisabled(RoleId roleId) public view returns (bool isActive) {
         | 
| 292 | 
            -
                    return _roleInfo[roleId].disabledAt <= TimestampLib.blockTimestamp();
         | 
| 138 | 
            +
                    return _roleInfo[roleId].createdAt.gtz();
         | 
| 293 139 | 
             
                }
         | 
| 294 140 |  | 
| 295 141 | 
             
                function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
         | 
| @@ -300,6 +146,14 @@ contract AccessAdmin is | |
| 300 146 | 
             
                    return _roleForName[name];
         | 
| 301 147 | 
             
                }
         | 
| 302 148 |  | 
| 149 | 
            +
                function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
         | 
| 150 | 
            +
                    return _roleMembers[roleId].length();
         | 
| 151 | 
            +
                }
         | 
| 152 | 
            +
             | 
| 153 | 
            +
                function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
         | 
| 154 | 
            +
                    return _roleMembers[roleId].at(idx);
         | 
| 155 | 
            +
                }
         | 
| 156 | 
            +
             | 
| 303 157 | 
             
                function hasRole(address account, RoleId roleId) public view returns (bool) {
         | 
| 304 158 | 
             
                    (bool isMember, ) = _authority.hasRole(
         | 
| 305 159 | 
             
                        RoleId.unwrap(roleId), 
         | 
| @@ -307,22 +161,21 @@ contract AccessAdmin is | |
| 307 161 | 
             
                    return isMember;
         | 
| 308 162 | 
             
                }
         | 
| 309 163 |  | 
| 310 | 
            -
                function  | 
| 311 | 
            -
                     | 
| 164 | 
            +
                function hasAdminRole(address account, RoleId roleId)
         | 
| 165 | 
            +
                    public 
         | 
| 166 | 
            +
                    virtual
         | 
| 167 | 
            +
                    view 
         | 
| 168 | 
            +
                    returns (bool)
         | 
| 169 | 
            +
                {
         | 
| 170 | 
            +
                    return hasRole(account, _roleInfo[roleId].adminRoleId);
         | 
| 312 171 | 
             
                }
         | 
| 313 172 |  | 
| 314 | 
            -
                 | 
| 315 | 
            -
                    return _roleMembers[roleId].at(idx);
         | 
| 316 | 
            -
                }
         | 
| 173 | 
            +
                //--- view functions for targets ----------------------------------------//
         | 
| 317 174 |  | 
| 318 175 | 
             
                function targetExists(address target) public view returns (bool exists) {
         | 
| 319 176 | 
             
                    return _targetInfo[target].createdAt.gtz();
         | 
| 320 177 | 
             
                }
         | 
| 321 178 |  | 
| 322 | 
            -
                function isTargetLocked(address target) public view returns (bool locked) {
         | 
| 323 | 
            -
                    return _authority.isTargetClosed(target);
         | 
| 324 | 
            -
                }
         | 
| 325 | 
            -
             | 
| 326 179 | 
             
                function targets() external view returns (uint256 numberOfTargets) {
         | 
| 327 180 | 
             
                    return _targets.length;
         | 
| 328 181 | 
             
                }
         | 
| @@ -335,10 +188,37 @@ contract AccessAdmin is | |
| 335 188 | 
             
                    return _targetInfo[target];
         | 
| 336 189 | 
             
                }
         | 
| 337 190 |  | 
| 338 | 
            -
                function getTargetForName(Str name)  | 
| 191 | 
            +
                function getTargetForName(Str name) public view returns (address target) {
         | 
| 339 192 | 
             
                    return _targetForName[name];
         | 
| 340 193 | 
             
                }
         | 
| 341 194 |  | 
| 195 | 
            +
                function isTargetLocked(address target) public view returns (bool locked) {
         | 
| 196 | 
            +
                    return _authority.isTargetClosed(target);
         | 
| 197 | 
            +
                }
         | 
| 198 | 
            +
             | 
| 199 | 
            +
                function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
         | 
| 200 | 
            +
                    return SelectorSetLib.size(_targetFunctions[target]);
         | 
| 201 | 
            +
                }
         | 
| 202 | 
            +
             | 
| 203 | 
            +
                function getAuthorizedFunction(
         | 
| 204 | 
            +
                    address target, 
         | 
| 205 | 
            +
                    uint256 idx
         | 
| 206 | 
            +
                )
         | 
| 207 | 
            +
                    external 
         | 
| 208 | 
            +
                    view 
         | 
| 209 | 
            +
                    returns (
         | 
| 210 | 
            +
                        FunctionInfo memory func, 
         | 
| 211 | 
            +
                        RoleId roleId
         | 
| 212 | 
            +
                    )
         | 
| 213 | 
            +
                {
         | 
| 214 | 
            +
                    Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
         | 
| 215 | 
            +
                    func = _functionInfo[target][selector];
         | 
| 216 | 
            +
                    roleId = RoleIdLib.toRoleId(
         | 
| 217 | 
            +
                        _authority.getTargetFunctionRole(
         | 
| 218 | 
            +
                            target, 
         | 
| 219 | 
            +
                            selector.toBytes4()));
         | 
| 220 | 
            +
                }
         | 
| 221 | 
            +
             | 
| 342 222 | 
             
                function isAccessManaged(address target) public view returns (bool) {
         | 
| 343 223 | 
             
                    if (!_isContract(target)) {
         | 
| 344 224 | 
             
                        return false;
         | 
| @@ -351,18 +231,29 @@ contract AccessAdmin is | |
| 351 231 | 
             
                    return success;
         | 
| 352 232 | 
             
                }
         | 
| 353 233 |  | 
| 354 | 
            -
                function canCall(address caller, address target, Selector selector) external view returns (bool can) {
         | 
| 234 | 
            +
                function canCall(address caller, address target, Selector selector) external virtual view returns (bool can) {
         | 
| 355 235 | 
             
                    (can, ) = _authority.canCall(caller, target, selector.toBytes4());
         | 
| 356 236 | 
             
                }
         | 
| 357 237 |  | 
| 358 | 
            -
                function  | 
| 359 | 
            -
                    return  | 
| 238 | 
            +
                function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) public view returns (RoleInfo memory) {
         | 
| 239 | 
            +
                    return RoleInfo({
         | 
| 240 | 
            +
                        name: StrLib.toStr(name),
         | 
| 241 | 
            +
                        adminRoleId: adminRoleId,
         | 
| 242 | 
            +
                        roleType: roleType,
         | 
| 243 | 
            +
                        maxMemberCount: maxMemberCount,
         | 
| 244 | 
            +
                        createdAt: TimestampLib.blockTimestamp()
         | 
| 245 | 
            +
                    });
         | 
| 246 | 
            +
                }
         | 
| 247 | 
            +
             | 
| 248 | 
            +
                function toFunction(bytes4 selector, string memory name) public view returns (FunctionInfo memory) {
         | 
| 249 | 
            +
                    return FunctionInfo({
         | 
| 250 | 
            +
                        name: StrLib.toStr(name),
         | 
| 251 | 
            +
                        selector: SelectorLib.toSelector(selector),
         | 
| 252 | 
            +
                        createdAt: TimestampLib.blockTimestamp()});
         | 
| 360 253 | 
             
                }
         | 
| 361 254 |  | 
| 362 | 
            -
                function  | 
| 363 | 
            -
             | 
| 364 | 
            -
                            selector: SelectorLib.toSelector(selector),
         | 
| 365 | 
            -
                            name: StrLib.toStr(name)});
         | 
| 255 | 
            +
                function deployer() public view returns (address) {
         | 
| 256 | 
            +
                    return _deployer;
         | 
| 366 257 | 
             
                }
         | 
| 367 258 |  | 
| 368 259 | 
             
                //--- internal/private functions -------------------------------------------------//
         | 
| @@ -370,7 +261,7 @@ contract AccessAdmin is | |
| 370 261 | 
             
                function _authorizeTargetFunctions(
         | 
| 371 262 | 
             
                    address target, 
         | 
| 372 263 | 
             
                    RoleId roleId, 
         | 
| 373 | 
            -
                     | 
| 264 | 
            +
                    FunctionInfo[] memory functions
         | 
| 374 265 | 
             
                )
         | 
| 375 266 | 
             
                    internal
         | 
| 376 267 | 
             
                {
         | 
| @@ -387,7 +278,7 @@ contract AccessAdmin is | |
| 387 278 |  | 
| 388 279 | 
             
                function _unauthorizeTargetFunctions(
         | 
| 389 280 | 
             
                    address target, 
         | 
| 390 | 
            -
                     | 
| 281 | 
            +
                    FunctionInfo[] memory functions
         | 
| 391 282 | 
             
                )
         | 
| 392 283 | 
             
                    internal
         | 
| 393 284 | 
             
                {
         | 
| @@ -398,7 +289,7 @@ contract AccessAdmin is | |
| 398 289 |  | 
| 399 290 | 
             
                function _processFunctionSelectors(
         | 
| 400 291 | 
             
                    address target,
         | 
| 401 | 
            -
                     | 
| 292 | 
            +
                    FunctionInfo[] memory functions,
         | 
| 402 293 | 
             
                    bool addFunctions
         | 
| 403 294 | 
             
                )
         | 
| 404 295 | 
             
                    internal
         | 
| @@ -408,7 +299,7 @@ contract AccessAdmin is | |
| 408 299 | 
             
                {
         | 
| 409 300 | 
             
                    uint256 n = functions.length;
         | 
| 410 301 | 
             
                    functionSelectors = new bytes4[](n);
         | 
| 411 | 
            -
                     | 
| 302 | 
            +
                    FunctionInfo memory func;
         | 
| 412 303 | 
             
                    Selector selector;
         | 
| 413 304 |  | 
| 414 305 | 
             
                    for (uint256 i = 0; i < n; i++) {
         | 
| @@ -420,7 +311,7 @@ contract AccessAdmin is | |
| 420 311 | 
             
                        else { SelectorSetLib.remove(_targetFunctions[target], selector); }
         | 
| 421 312 |  | 
| 422 313 | 
             
                        // set function name
         | 
| 423 | 
            -
                         | 
| 314 | 
            +
                        _functionInfo[target][selector] = func;
         | 
| 424 315 |  | 
| 425 316 | 
             
                        // add bytes4 selector to function selector array
         | 
| 426 317 | 
             
                        functionSelectors[i] = selector.toBytes4();
         | 
| @@ -439,75 +330,47 @@ contract AccessAdmin is | |
| 439 330 | 
             
                        revert ErrorAuthorityAlreadySet();
         | 
| 440 331 | 
             
                    }
         | 
| 441 332 |  | 
| 442 | 
            -
                    _authority =  | 
| 443 | 
            -
             | 
| 444 | 
            -
                    if(!hasRole(address(this), RoleId.wrap(_authority.ADMIN_ROLE()))) {
         | 
| 445 | 
            -
                        revert ErrorAdminRoleMissing();
         | 
| 446 | 
            -
                    }
         | 
| 447 | 
            -
             | 
| 333 | 
            +
                    _authority = AccessManagerCloneable(authorityAddress);
         | 
| 448 334 | 
             
                    __AccessManaged_init(address(_authority));
         | 
| 449 335 | 
             
                }
         | 
| 450 336 |  | 
| 451 337 |  | 
| 452 | 
            -
                function  | 
| 338 | 
            +
                function _initializeAdminAndPublicRoles()
         | 
| 453 339 | 
             
                    internal
         | 
| 454 340 | 
             
                    virtual
         | 
| 455 341 | 
             
                    onlyInitializing()
         | 
| 456 342 | 
             
                {
         | 
| 457 | 
            -
                     | 
| 343 | 
            +
                    _createAdminAndPublicRoles();
         | 
| 458 344 | 
             
                }
         | 
| 459 345 |  | 
| 460 346 |  | 
| 461 | 
            -
                function  | 
| 347 | 
            +
                /// @dev internal setup function that can be used in both constructor and initializer.
         | 
| 348 | 
            +
                function _createAdminAndPublicRoles()
         | 
| 462 349 | 
             
                    internal
         | 
| 463 350 | 
             
                {
         | 
| 464 351 | 
             
                    RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
         | 
| 465 | 
            -
                     | 
| 352 | 
            +
                    FunctionInfo[] memory functions;
         | 
| 466 353 |  | 
| 467 354 | 
             
                    // setup admin role
         | 
| 468 355 | 
             
                    _createRoleUnchecked(
         | 
| 469 | 
            -
                         | 
| 470 | 
            -
                         | 
| 471 | 
            -
             | 
| 472 | 
            -
             | 
| 473 | 
            -
             | 
| 356 | 
            +
                        ADMIN_ROLE(),
         | 
| 357 | 
            +
                        toRole({
         | 
| 358 | 
            +
                            adminRoleId: ADMIN_ROLE(),
         | 
| 359 | 
            +
                            roleType: RoleType.Contract,
         | 
| 360 | 
            +
                            maxMemberCount: 1,
         | 
| 361 | 
            +
                            name: ADMIN_ROLE_NAME}));
         | 
| 474 362 |  | 
| 475 363 | 
             
                    // add this contract as admin role member
         | 
| 476 364 | 
             
                    _roleMembers[adminRoleId].add(address(this));
         | 
| 477 365 |  | 
| 478 366 | 
             
                    // setup public role
         | 
| 479 367 | 
             
                    _createRoleUnchecked(
         | 
| 480 | 
            -
                         | 
| 481 | 
            -
                         | 
| 482 | 
            -
             | 
| 483 | 
            -
             | 
| 484 | 
            -
             | 
| 485 | 
            -
             | 
| 486 | 
            -
                    // setup manager role
         | 
| 487 | 
            -
                    _managerRoleId = RoleIdLib.toRoleId(MANAGER_ROLE);
         | 
| 488 | 
            -
                    _createRole(
         | 
| 489 | 
            -
                        _managerRoleId, 
         | 
| 490 | 
            -
                        adminRoleId,
         | 
| 491 | 
            -
                        MANAGER_ROLE_NAME,
         | 
| 492 | 
            -
                        3, // TODO think about max member count
         | 
| 493 | 
            -
                        false);
         | 
| 494 | 
            -
             | 
| 495 | 
            -
                    // grant public role access to grant and revoke, renounce
         | 
| 496 | 
            -
                    functions = new Function[](3);
         | 
| 497 | 
            -
                    functions[0] = toFunction(IAccessAdmin.grantRole.selector, "grantRole");
         | 
| 498 | 
            -
                    functions[1] = toFunction(IAccessAdmin.revokeRole.selector, "revokeRole");
         | 
| 499 | 
            -
                    functions[2] = toFunction(IAccessAdmin.renounceRole.selector, "renounceRole");
         | 
| 500 | 
            -
                    _authorizeTargetFunctions(address(this), getPublicRole(), functions);
         | 
| 501 | 
            -
             | 
| 502 | 
            -
                    // grant manager role access to the specified functions 
         | 
| 503 | 
            -
                    functions = new Function[](6);
         | 
| 504 | 
            -
                    functions[0] = toFunction(IAccessAdmin.createRole.selector, "createRole");
         | 
| 505 | 
            -
                    functions[1] = toFunction(IAccessAdmin.setRoleDisabled.selector, "setRoleDisabled");
         | 
| 506 | 
            -
                    functions[2] = toFunction(IAccessAdmin.createTarget.selector, "createTarget");
         | 
| 507 | 
            -
                    functions[3] = toFunction(IAccessAdmin.setTargetLocked.selector, "setTargetLocked");
         | 
| 508 | 
            -
                    functions[4] = toFunction(IAccessAdmin.authorizeFunctions.selector, "authorizeFunctions");
         | 
| 509 | 
            -
                    functions[5] = toFunction(IAccessAdmin.unauthorizeFunctions.selector, "unauthorizeFunctions");
         | 
| 510 | 
            -
                    _authorizeTargetFunctions(address(this), getManagerRole(), functions);
         | 
| 368 | 
            +
                        PUBLIC_ROLE(),
         | 
| 369 | 
            +
                        toRole({
         | 
| 370 | 
            +
                            adminRoleId: ADMIN_ROLE(),
         | 
| 371 | 
            +
                            roleType: RoleType.Gif,
         | 
| 372 | 
            +
                            maxMemberCount: type(uint32).max,
         | 
| 373 | 
            +
                            name: PUBLIC_ROLE_NAME}));
         | 
| 511 374 | 
             
                }
         | 
| 512 375 |  | 
| 513 376 | 
             
                /// @dev check if target exists and reverts if it doesn't
         | 
| @@ -540,13 +403,17 @@ contract AccessAdmin is | |
| 540 403 | 
             
                    internal
         | 
| 541 404 | 
             
                {
         | 
| 542 405 | 
             
                    _checkRoleId(roleId);
         | 
| 543 | 
            -
                    _checkRoleIsActive(roleId);
         | 
| 544 406 |  | 
| 545 407 | 
             
                    // check max role members will not be exceeded
         | 
| 546 408 | 
             
                    if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
         | 
| 547 409 | 
             
                        revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
         | 
| 548 410 | 
             
                    }
         | 
| 549 411 |  | 
| 412 | 
            +
                    // check account is contract for contract role
         | 
| 413 | 
            +
                    // TODO implement
         | 
| 414 | 
            +
                    if (_roleInfo[roleId].roleType == RoleType.Contract) {
         | 
| 415 | 
            +
                    }
         | 
| 416 | 
            +
             | 
| 550 417 | 
             
                    _roleMembers[roleId].add(account);
         | 
| 551 418 | 
             
                    _authority.grantRole(
         | 
| 552 419 | 
             
                        RoleId.unwrap(roleId), 
         | 
| @@ -563,7 +430,7 @@ contract AccessAdmin is | |
| 563 430 | 
             
                    _checkRoleId(roleId);
         | 
| 564 431 |  | 
| 565 432 | 
             
                    // check role removal is permitted
         | 
| 566 | 
            -
                    if (_roleInfo[roleId]. | 
| 433 | 
            +
                    if (_roleInfo[roleId].roleType == RoleType.Contract) {
         | 
| 567 434 | 
             
                        revert ErrorRoleRemovalDisabled(roleId);
         | 
| 568 435 | 
             
                    }
         | 
| 569 436 |  | 
| @@ -579,7 +446,7 @@ contract AccessAdmin is | |
| 579 446 | 
             
                function _checkRoleId(RoleId roleId)
         | 
| 580 447 | 
             
                    internal
         | 
| 581 448 | 
             
                {
         | 
| 582 | 
            -
                    if ( | 
| 449 | 
            +
                    if (_roleInfo[roleId].createdAt.eqz()) {
         | 
| 583 450 | 
             
                        revert ErrorRoleUnknown(roleId);
         | 
| 584 451 | 
             
                    }
         | 
| 585 452 |  | 
| @@ -591,22 +458,11 @@ contract AccessAdmin is | |
| 591 458 | 
             
                    }
         | 
| 592 459 | 
             
                }
         | 
| 593 460 |  | 
| 594 | 
            -
             | 
| 595 | 
            -
                 | 
| 596 | 
            -
                    internal
         | 
| 597 | 
            -
                {
         | 
| 598 | 
            -
                    if (isRoleDisabled(roleId)) {
         | 
| 599 | 
            -
                        revert ErrorRoleIsDisabled(roleId);
         | 
| 600 | 
            -
                    }
         | 
| 601 | 
            -
                }
         | 
| 602 | 
            -
             | 
| 603 | 
            -
             | 
| 461 | 
            +
                /// @dev Creates a role based on the provided parameters.
         | 
| 462 | 
            +
                /// Checks that the provided role and role id and role name not already used.
         | 
| 604 463 | 
             
                function _createRole(
         | 
| 605 464 | 
             
                    RoleId roleId, 
         | 
| 606 | 
            -
                     | 
| 607 | 
            -
                    string memory roleName,
         | 
| 608 | 
            -
                    uint256 maxMemberCount,
         | 
| 609 | 
            -
                    bool memberRemovalDisabled
         | 
| 465 | 
            +
                    RoleInfo memory info
         | 
| 610 466 | 
             
                )
         | 
| 611 467 | 
             
                    internal
         | 
| 612 468 | 
             
                {
         | 
| @@ -618,84 +474,57 @@ contract AccessAdmin is | |
| 618 474 | 
             
                    }
         | 
| 619 475 |  | 
| 620 476 | 
             
                    // check admin role exists
         | 
| 621 | 
            -
                    if(!roleExists(adminRoleId)) {
         | 
| 622 | 
            -
                        revert ErrorRoleAdminNotExisting(adminRoleId);
         | 
| 477 | 
            +
                    if(!roleExists(info.adminRoleId)) {
         | 
| 478 | 
            +
                        revert ErrorRoleAdminNotExisting(info.adminRoleId);
         | 
| 623 479 | 
             
                    }
         | 
| 624 480 |  | 
| 625 481 | 
             
                    // check role name is not empty
         | 
| 626 | 
            -
                     | 
| 627 | 
            -
                    if(name.length() == 0) {
         | 
| 482 | 
            +
                    if(info.name.length() == 0) {
         | 
| 628 483 | 
             
                        revert ErrorRoleNameEmpty(roleId);
         | 
| 629 484 | 
             
                    }
         | 
| 630 485 |  | 
| 631 486 | 
             
                    // check role name is not used for another role
         | 
| 632 | 
            -
                    if(_roleForName[name].exists) {
         | 
| 487 | 
            +
                    if(_roleForName[info.name].exists) {
         | 
| 633 488 | 
             
                        revert ErrorRoleNameAlreadyExists(
         | 
| 634 489 | 
             
                            roleId, 
         | 
| 635 | 
            -
                             | 
| 636 | 
            -
                            _roleForName[name].roleId);
         | 
| 490 | 
            +
                            info.name.toString(),
         | 
| 491 | 
            +
                            _roleForName[info.name].roleId);
         | 
| 637 492 | 
             
                    }
         | 
| 638 493 |  | 
| 639 | 
            -
                    _createRoleUnchecked(
         | 
| 640 | 
            -
                        roleId, adminRoleId, 
         | 
| 641 | 
            -
                        name, 
         | 
| 642 | 
            -
                        maxMemberCount, 
         | 
| 643 | 
            -
                        memberRemovalDisabled);
         | 
| 644 | 
            -
                }
         | 
| 645 | 
            -
             | 
| 646 | 
            -
             | 
| 647 | 
            -
                function _setRoleDisabled(
         | 
| 648 | 
            -
                    RoleId roleId, 
         | 
| 649 | 
            -
                    bool disabled
         | 
| 650 | 
            -
                )
         | 
| 651 | 
            -
                    internal
         | 
| 652 | 
            -
                {
         | 
| 653 | 
            -
             | 
| 654 | 
            -
                    _checkRoleId(roleId);
         | 
| 655 | 
            -
                    Timestamp disabledAtOld = _roleInfo[roleId].disabledAt;
         | 
| 656 | 
            -
             | 
| 657 | 
            -
                    if (disabled) {
         | 
| 658 | 
            -
                        _roleInfo[roleId].disabledAt = TimestampLib.blockTimestamp();
         | 
| 659 | 
            -
                    } else {
         | 
| 660 | 
            -
                        _roleInfo[roleId].disabledAt = TimestampLib.max();
         | 
| 661 | 
            -
                    }
         | 
| 662 | 
            -
             | 
| 663 | 
            -
                    emit LogRoleDisabled(roleId, disabled, disabledAtOld);
         | 
| 494 | 
            +
                    _createRoleUnchecked(roleId, info);
         | 
| 664 495 | 
             
                }
         | 
| 665 496 |  | 
| 666 497 |  | 
| 667 498 | 
             
                function _createRoleUnchecked(
         | 
| 668 499 | 
             
                    RoleId roleId, 
         | 
| 669 | 
            -
                     | 
| 670 | 
            -
                    Str name,
         | 
| 671 | 
            -
                    uint256 maxMemberCount,
         | 
| 672 | 
            -
                    bool memberRemovalDisabled
         | 
| 500 | 
            +
                    RoleInfo memory info
         | 
| 673 501 | 
             
                )
         | 
| 674 502 | 
             
                    private
         | 
| 675 503 | 
             
                {
         | 
| 676 504 | 
             
                    // create role info
         | 
| 677 | 
            -
                     | 
| 678 | 
            -
             | 
| 679 | 
            -
                        name: name,
         | 
| 680 | 
            -
                        maxMemberCount: maxMemberCount,
         | 
| 681 | 
            -
                        memberRemovalDisabled: memberRemovalDisabled,
         | 
| 682 | 
            -
                        disabledAt: TimestampLib.max(),
         | 
| 683 | 
            -
                        exists: true});
         | 
| 505 | 
            +
                    info.createdAt = TimestampLib.blockTimestamp();
         | 
| 506 | 
            +
                    _roleInfo[roleId] = info;
         | 
| 684 507 |  | 
| 685 508 | 
             
                    // create role name info
         | 
| 686 | 
            -
                    _roleForName[name] = RoleNameInfo({
         | 
| 509 | 
            +
                    _roleForName[info.name] = RoleNameInfo({
         | 
| 687 510 | 
             
                        roleId: roleId,
         | 
| 688 511 | 
             
                        exists: true});
         | 
| 689 512 |  | 
| 690 513 | 
             
                    // add role to list of roles
         | 
| 691 514 | 
             
                    _roleIds.push(roleId);
         | 
| 692 515 |  | 
| 693 | 
            -
                    emit LogRoleCreated(roleId, adminRoleId, name.toString());
         | 
| 516 | 
            +
                    emit LogRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
         | 
| 694 517 | 
             
                }
         | 
| 695 518 |  | 
| 696 519 |  | 
| 697 | 
            -
                function _createTarget( | 
| 520 | 
            +
                function _createTarget(
         | 
| 521 | 
            +
                    address target, 
         | 
| 522 | 
            +
                    string memory targetName, 
         | 
| 523 | 
            +
                    bool checkAuthority,
         | 
| 524 | 
            +
                    bool custom
         | 
| 525 | 
            +
                )
         | 
| 698 526 | 
             
                    internal
         | 
| 527 | 
            +
                    nonReentrant()
         | 
| 699 528 | 
             
                {
         | 
| 700 529 | 
             
                    // check target does not yet exist
         | 
| 701 530 | 
             
                    if(targetExists(target)) {
         | 
| @@ -710,7 +539,7 @@ contract AccessAdmin is | |
| 710 539 | 
             
                        revert ErrorTargetNameEmpty(target);
         | 
| 711 540 | 
             
                    }
         | 
| 712 541 |  | 
| 713 | 
            -
                    // check target name is not used for another  | 
| 542 | 
            +
                    // check target name is not used for another target
         | 
| 714 543 | 
             
                    if( _targetForName[name] != address(0)) {
         | 
| 715 544 | 
             
                        revert ErrorTargetNameAlreadyExists(
         | 
| 716 545 | 
             
                            target, 
         | 
| @@ -724,14 +553,17 @@ contract AccessAdmin is | |
| 724 553 | 
             
                    }
         | 
| 725 554 |  | 
| 726 555 | 
             
                    // check target shares authority with this contract
         | 
| 727 | 
            -
                     | 
| 728 | 
            -
             | 
| 729 | 
            -
                         | 
| 556 | 
            +
                    if (checkAuthority) {
         | 
| 557 | 
            +
                        address targetAuthority = AccessManagedUpgradeable(target).authority();
         | 
| 558 | 
            +
                        if (targetAuthority != authority()) {
         | 
| 559 | 
            +
                            revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
         | 
| 560 | 
            +
                        }
         | 
| 730 561 | 
             
                    }
         | 
| 731 562 |  | 
| 732 563 | 
             
                    // create target info
         | 
| 733 564 | 
             
                    _targetInfo[target] = TargetInfo({
         | 
| 734 565 | 
             
                        name: name,
         | 
| 566 | 
            +
                        isCustom: custom,
         | 
| 735 567 | 
             
                        createdAt: TimestampLib.blockTimestamp()
         | 
| 736 568 | 
             
                    });
         | 
| 737 569 |  |