@etherisc/gif-next 0.0.2-7d65090-351 → 0.0.2-7dc3cd3-858
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 +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -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/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -0
- 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 +171 -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 +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 +1 -14
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +22 -39
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +30 -91
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -0
- 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 +56 -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 +228 -388
- 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 +48 -126
- 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 +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 +55 -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/{shared → authorization}/AccessAdmin.sol +131 -297
- 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/InstanceAdmin.sol +108 -0
- 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 +10 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/IInstance.sol +5 -6
- package/contracts/instance/IInstanceService.sol +6 -12
- package/contracts/instance/Instance.sol +61 -70
- package/contracts/instance/InstanceAdminNew.sol +261 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +209 -0
- package/contracts/instance/InstanceReader.sol +22 -9
- package/contracts/instance/InstanceService.sol +58 -67
- 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 +101 -71
- package/contracts/registry/ReleaseManager.sol +32 -41
- package/contracts/registry/ServiceAuthorizationV3.sol +9 -9
- 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 +34 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/UFixed.sol +6 -0
- package/package.json +4 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +0 -708
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- 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/contracts/instance/InstanceAdmin.sol +0 -331
- 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
@@ -6,7 +6,7 @@ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/acce
|
|
6
6
|
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
7
7
|
|
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,9 +26,6 @@ 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
|
AccessManager internal _authority;
|
34
31
|
|
@@ -36,9 +33,6 @@ contract AccessAdmin is
|
|
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
|
|
@@ -63,8 +57,8 @@ contract AccessAdmin is
|
|
63
57
|
/// @dev store all managed functions per target
|
64
58
|
mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
|
65
59
|
|
66
|
-
/// @dev
|
67
|
-
mapping(address target => mapping(Selector selector =>
|
60
|
+
/// @dev function infos array
|
61
|
+
mapping(address target => mapping(Selector selector => FunctionInfo)) internal _functionInfo;
|
68
62
|
|
69
63
|
/// @dev temporary dynamic functions array
|
70
64
|
bytes4[] private _functions;
|
@@ -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
|
_;
|
@@ -114,155 +108,12 @@ contract AccessAdmin is
|
|
114
108
|
_deployer = msg.sender;
|
115
109
|
_authority = new AccessManager(address(this));
|
116
110
|
|
117
|
-
_setAuthority(address(_authority));
|
118
|
-
|
119
|
-
|
111
|
+
_setAuthority(address(_authority)); // set authority for oz access managed
|
112
|
+
_createAdminAndPublicRoles();
|
120
113
|
_disableInitializers();
|
121
114
|
}
|
122
115
|
|
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 ----------------------------------------------------//
|
116
|
+
//--- view functions for roles ------------------------------------------//
|
266
117
|
|
267
118
|
function roles() external view returns (uint256 numberOfRoles) {
|
268
119
|
return _roleIds.length;
|
@@ -280,16 +131,8 @@ contract AccessAdmin is
|
|
280
131
|
return RoleId.wrap(_authority.PUBLIC_ROLE());
|
281
132
|
}
|
282
133
|
|
283
|
-
function getManagerRole() public view returns (RoleId roleId) {
|
284
|
-
return _managerRoleId;
|
285
|
-
}
|
286
|
-
|
287
134
|
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();
|
135
|
+
return _roleInfo[roleId].createdAt.gtz();
|
293
136
|
}
|
294
137
|
|
295
138
|
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
|
@@ -300,6 +143,14 @@ contract AccessAdmin is
|
|
300
143
|
return _roleForName[name];
|
301
144
|
}
|
302
145
|
|
146
|
+
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
147
|
+
return _roleMembers[roleId].length();
|
148
|
+
}
|
149
|
+
|
150
|
+
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
|
151
|
+
return _roleMembers[roleId].at(idx);
|
152
|
+
}
|
153
|
+
|
303
154
|
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
304
155
|
(bool isMember, ) = _authority.hasRole(
|
305
156
|
RoleId.unwrap(roleId),
|
@@ -307,22 +158,21 @@ contract AccessAdmin is
|
|
307
158
|
return isMember;
|
308
159
|
}
|
309
160
|
|
310
|
-
function
|
311
|
-
|
161
|
+
function hasAdminRole(address account, RoleId roleId)
|
162
|
+
public
|
163
|
+
virtual
|
164
|
+
view
|
165
|
+
returns (bool)
|
166
|
+
{
|
167
|
+
return hasRole(account, _roleInfo[roleId].adminRoleId);
|
312
168
|
}
|
313
169
|
|
314
|
-
|
315
|
-
return _roleMembers[roleId].at(idx);
|
316
|
-
}
|
170
|
+
//--- view functions for targets ----------------------------------------//
|
317
171
|
|
318
172
|
function targetExists(address target) public view returns (bool exists) {
|
319
173
|
return _targetInfo[target].createdAt.gtz();
|
320
174
|
}
|
321
175
|
|
322
|
-
function isTargetLocked(address target) public view returns (bool locked) {
|
323
|
-
return _authority.isTargetClosed(target);
|
324
|
-
}
|
325
|
-
|
326
176
|
function targets() external view returns (uint256 numberOfTargets) {
|
327
177
|
return _targets.length;
|
328
178
|
}
|
@@ -335,10 +185,37 @@ contract AccessAdmin is
|
|
335
185
|
return _targetInfo[target];
|
336
186
|
}
|
337
187
|
|
338
|
-
function getTargetForName(Str name)
|
188
|
+
function getTargetForName(Str name) public view returns (address target) {
|
339
189
|
return _targetForName[name];
|
340
190
|
}
|
341
191
|
|
192
|
+
function isTargetLocked(address target) public view returns (bool locked) {
|
193
|
+
return _authority.isTargetClosed(target);
|
194
|
+
}
|
195
|
+
|
196
|
+
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
197
|
+
return SelectorSetLib.size(_targetFunctions[target]);
|
198
|
+
}
|
199
|
+
|
200
|
+
function getAuthorizedFunction(
|
201
|
+
address target,
|
202
|
+
uint256 idx
|
203
|
+
)
|
204
|
+
external
|
205
|
+
view
|
206
|
+
returns (
|
207
|
+
FunctionInfo memory func,
|
208
|
+
RoleId roleId
|
209
|
+
)
|
210
|
+
{
|
211
|
+
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
212
|
+
func = _functionInfo[target][selector];
|
213
|
+
roleId = RoleIdLib.toRoleId(
|
214
|
+
_authority.getTargetFunctionRole(
|
215
|
+
target,
|
216
|
+
selector.toBytes4()));
|
217
|
+
}
|
218
|
+
|
342
219
|
function isAccessManaged(address target) public view returns (bool) {
|
343
220
|
if (!_isContract(target)) {
|
344
221
|
return false;
|
@@ -351,18 +228,29 @@ contract AccessAdmin is
|
|
351
228
|
return success;
|
352
229
|
}
|
353
230
|
|
354
|
-
function canCall(address caller, address target, Selector selector) external view returns (bool can) {
|
231
|
+
function canCall(address caller, address target, Selector selector) external virtual view returns (bool can) {
|
355
232
|
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
356
233
|
}
|
357
234
|
|
358
|
-
function
|
359
|
-
return
|
235
|
+
function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) public view returns (RoleInfo memory) {
|
236
|
+
return RoleInfo({
|
237
|
+
name: StrLib.toStr(name),
|
238
|
+
adminRoleId: adminRoleId,
|
239
|
+
roleType: roleType,
|
240
|
+
maxMemberCount: maxMemberCount,
|
241
|
+
createdAt: TimestampLib.blockTimestamp()
|
242
|
+
});
|
243
|
+
}
|
244
|
+
|
245
|
+
function toFunction(bytes4 selector, string memory name) public view returns (FunctionInfo memory) {
|
246
|
+
return FunctionInfo({
|
247
|
+
name: StrLib.toStr(name),
|
248
|
+
selector: SelectorLib.toSelector(selector),
|
249
|
+
createdAt: TimestampLib.blockTimestamp()});
|
360
250
|
}
|
361
251
|
|
362
|
-
function
|
363
|
-
|
364
|
-
selector: SelectorLib.toSelector(selector),
|
365
|
-
name: StrLib.toStr(name)});
|
252
|
+
function deployer() public view returns (address) {
|
253
|
+
return _deployer;
|
366
254
|
}
|
367
255
|
|
368
256
|
//--- internal/private functions -------------------------------------------------//
|
@@ -370,7 +258,7 @@ contract AccessAdmin is
|
|
370
258
|
function _authorizeTargetFunctions(
|
371
259
|
address target,
|
372
260
|
RoleId roleId,
|
373
|
-
|
261
|
+
FunctionInfo[] memory functions
|
374
262
|
)
|
375
263
|
internal
|
376
264
|
{
|
@@ -387,7 +275,7 @@ contract AccessAdmin is
|
|
387
275
|
|
388
276
|
function _unauthorizeTargetFunctions(
|
389
277
|
address target,
|
390
|
-
|
278
|
+
FunctionInfo[] memory functions
|
391
279
|
)
|
392
280
|
internal
|
393
281
|
{
|
@@ -398,7 +286,7 @@ contract AccessAdmin is
|
|
398
286
|
|
399
287
|
function _processFunctionSelectors(
|
400
288
|
address target,
|
401
|
-
|
289
|
+
FunctionInfo[] memory functions,
|
402
290
|
bool addFunctions
|
403
291
|
)
|
404
292
|
internal
|
@@ -408,7 +296,7 @@ contract AccessAdmin is
|
|
408
296
|
{
|
409
297
|
uint256 n = functions.length;
|
410
298
|
functionSelectors = new bytes4[](n);
|
411
|
-
|
299
|
+
FunctionInfo memory func;
|
412
300
|
Selector selector;
|
413
301
|
|
414
302
|
for (uint256 i = 0; i < n; i++) {
|
@@ -420,7 +308,7 @@ contract AccessAdmin is
|
|
420
308
|
else { SelectorSetLib.remove(_targetFunctions[target], selector); }
|
421
309
|
|
422
310
|
// set function name
|
423
|
-
|
311
|
+
_functionInfo[target][selector] = func;
|
424
312
|
|
425
313
|
// add bytes4 selector to function selector array
|
426
314
|
functionSelectors[i] = selector.toBytes4();
|
@@ -441,73 +329,51 @@ contract AccessAdmin is
|
|
441
329
|
|
442
330
|
_authority = AccessManager(authorityAddress);
|
443
331
|
|
444
|
-
if
|
445
|
-
|
446
|
-
|
332
|
+
// TODO check if we really need this
|
333
|
+
// if(!hasRole(address(this), RoleId.wrap(_authority.ADMIN_ROLE()))) {
|
334
|
+
// revert ErrorAdminRoleMissing();
|
335
|
+
// }
|
447
336
|
|
448
337
|
__AccessManaged_init(address(_authority));
|
449
338
|
}
|
450
339
|
|
451
340
|
|
452
|
-
function
|
341
|
+
function _initializeAdminAndPublicRoles()
|
453
342
|
internal
|
454
343
|
virtual
|
455
344
|
onlyInitializing()
|
456
345
|
{
|
457
|
-
|
346
|
+
_createAdminAndPublicRoles();
|
458
347
|
}
|
459
348
|
|
460
349
|
|
461
|
-
function
|
350
|
+
/// @dev internal setup function that can be used in both constructor and initializer.
|
351
|
+
function _createAdminAndPublicRoles()
|
462
352
|
internal
|
463
353
|
{
|
464
354
|
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
465
|
-
|
355
|
+
FunctionInfo[] memory functions;
|
466
356
|
|
467
357
|
// setup admin role
|
468
358
|
_createRoleUnchecked(
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
359
|
+
ADMIN_ROLE(),
|
360
|
+
toRole({
|
361
|
+
adminRoleId: ADMIN_ROLE(),
|
362
|
+
roleType: RoleType.Contract,
|
363
|
+
maxMemberCount: 1,
|
364
|
+
name: ADMIN_ROLE_NAME}));
|
474
365
|
|
475
366
|
// add this contract as admin role member
|
476
367
|
_roleMembers[adminRoleId].add(address(this));
|
477
368
|
|
478
369
|
// setup public role
|
479
370
|
_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);
|
371
|
+
PUBLIC_ROLE(),
|
372
|
+
toRole({
|
373
|
+
adminRoleId: ADMIN_ROLE(),
|
374
|
+
roleType: RoleType.Gif,
|
375
|
+
maxMemberCount: type(uint32).max,
|
376
|
+
name: PUBLIC_ROLE_NAME}));
|
511
377
|
}
|
512
378
|
|
513
379
|
/// @dev check if target exists and reverts if it doesn't
|
@@ -540,13 +406,17 @@ contract AccessAdmin is
|
|
540
406
|
internal
|
541
407
|
{
|
542
408
|
_checkRoleId(roleId);
|
543
|
-
_checkRoleIsActive(roleId);
|
544
409
|
|
545
410
|
// check max role members will not be exceeded
|
546
411
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
547
412
|
revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
548
413
|
}
|
549
414
|
|
415
|
+
// check account is contract for contract role
|
416
|
+
// TODO implement
|
417
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
418
|
+
}
|
419
|
+
|
550
420
|
_roleMembers[roleId].add(account);
|
551
421
|
_authority.grantRole(
|
552
422
|
RoleId.unwrap(roleId),
|
@@ -563,7 +433,7 @@ contract AccessAdmin is
|
|
563
433
|
_checkRoleId(roleId);
|
564
434
|
|
565
435
|
// check role removal is permitted
|
566
|
-
if (_roleInfo[roleId].
|
436
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
567
437
|
revert ErrorRoleRemovalDisabled(roleId);
|
568
438
|
}
|
569
439
|
|
@@ -579,7 +449,7 @@ contract AccessAdmin is
|
|
579
449
|
function _checkRoleId(RoleId roleId)
|
580
450
|
internal
|
581
451
|
{
|
582
|
-
if (
|
452
|
+
if (_roleInfo[roleId].createdAt.eqz()) {
|
583
453
|
revert ErrorRoleUnknown(roleId);
|
584
454
|
}
|
585
455
|
|
@@ -591,22 +461,11 @@ contract AccessAdmin is
|
|
591
461
|
}
|
592
462
|
}
|
593
463
|
|
594
|
-
|
595
|
-
|
596
|
-
internal
|
597
|
-
{
|
598
|
-
if (isRoleDisabled(roleId)) {
|
599
|
-
revert ErrorRoleIsDisabled(roleId);
|
600
|
-
}
|
601
|
-
}
|
602
|
-
|
603
|
-
|
464
|
+
/// @dev Creates a role based on the provided parameters.
|
465
|
+
/// Checks that the provided role and role id and role name not already used.
|
604
466
|
function _createRole(
|
605
467
|
RoleId roleId,
|
606
|
-
|
607
|
-
string memory roleName,
|
608
|
-
uint256 maxMemberCount,
|
609
|
-
bool memberRemovalDisabled
|
468
|
+
RoleInfo memory info
|
610
469
|
)
|
611
470
|
internal
|
612
471
|
{
|
@@ -618,83 +477,55 @@ contract AccessAdmin is
|
|
618
477
|
}
|
619
478
|
|
620
479
|
// check admin role exists
|
621
|
-
if(!roleExists(adminRoleId)) {
|
622
|
-
revert ErrorRoleAdminNotExisting(adminRoleId);
|
480
|
+
if(!roleExists(info.adminRoleId)) {
|
481
|
+
revert ErrorRoleAdminNotExisting(info.adminRoleId);
|
623
482
|
}
|
624
483
|
|
625
484
|
// check role name is not empty
|
626
|
-
|
627
|
-
if(name.length() == 0) {
|
485
|
+
if(info.name.length() == 0) {
|
628
486
|
revert ErrorRoleNameEmpty(roleId);
|
629
487
|
}
|
630
488
|
|
631
489
|
// check role name is not used for another role
|
632
|
-
if(_roleForName[name].exists) {
|
490
|
+
if(_roleForName[info.name].exists) {
|
633
491
|
revert ErrorRoleNameAlreadyExists(
|
634
492
|
roleId,
|
635
|
-
|
636
|
-
_roleForName[name].roleId);
|
493
|
+
info.name.toString(),
|
494
|
+
_roleForName[info.name].roleId);
|
637
495
|
}
|
638
496
|
|
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);
|
497
|
+
_createRoleUnchecked(roleId, info);
|
664
498
|
}
|
665
499
|
|
666
500
|
|
667
501
|
function _createRoleUnchecked(
|
668
502
|
RoleId roleId,
|
669
|
-
|
670
|
-
Str name,
|
671
|
-
uint256 maxMemberCount,
|
672
|
-
bool memberRemovalDisabled
|
503
|
+
RoleInfo memory info
|
673
504
|
)
|
674
505
|
private
|
675
506
|
{
|
676
507
|
// create role info
|
677
|
-
|
678
|
-
|
679
|
-
name: name,
|
680
|
-
maxMemberCount: maxMemberCount,
|
681
|
-
memberRemovalDisabled: memberRemovalDisabled,
|
682
|
-
disabledAt: TimestampLib.max(),
|
683
|
-
exists: true});
|
508
|
+
info.createdAt = TimestampLib.blockTimestamp();
|
509
|
+
_roleInfo[roleId] = info;
|
684
510
|
|
685
511
|
// create role name info
|
686
|
-
_roleForName[name] = RoleNameInfo({
|
512
|
+
_roleForName[info.name] = RoleNameInfo({
|
687
513
|
roleId: roleId,
|
688
514
|
exists: true});
|
689
515
|
|
690
516
|
// add role to list of roles
|
691
517
|
_roleIds.push(roleId);
|
692
518
|
|
693
|
-
emit LogRoleCreated(roleId, adminRoleId, name.toString());
|
519
|
+
emit LogRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
|
694
520
|
}
|
695
521
|
|
696
522
|
|
697
|
-
function _createTarget(
|
523
|
+
function _createTarget(
|
524
|
+
address target,
|
525
|
+
string memory targetName,
|
526
|
+
bool checkAuthority,
|
527
|
+
bool custom
|
528
|
+
)
|
698
529
|
internal
|
699
530
|
{
|
700
531
|
// check target does not yet exist
|
@@ -710,7 +541,7 @@ contract AccessAdmin is
|
|
710
541
|
revert ErrorTargetNameEmpty(target);
|
711
542
|
}
|
712
543
|
|
713
|
-
// check target name is not used for another
|
544
|
+
// check target name is not used for another target
|
714
545
|
if( _targetForName[name] != address(0)) {
|
715
546
|
revert ErrorTargetNameAlreadyExists(
|
716
547
|
target,
|
@@ -724,14 +555,17 @@ contract AccessAdmin is
|
|
724
555
|
}
|
725
556
|
|
726
557
|
// check target shares authority with this contract
|
727
|
-
|
728
|
-
|
729
|
-
|
558
|
+
if (checkAuthority) {
|
559
|
+
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
560
|
+
if (targetAuthority != authority()) {
|
561
|
+
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
562
|
+
}
|
730
563
|
}
|
731
564
|
|
732
565
|
// create target info
|
733
566
|
_targetInfo[target] = TargetInfo({
|
734
567
|
name: name,
|
568
|
+
isCustom: custom,
|
735
569
|
createdAt: TimestampLib.blockTimestamp()
|
736
570
|
});
|
737
571
|
|