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