@etherisc/gif-next 0.0.2-f347f00-614 → 0.0.2-f36fd21-685
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 +100 -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 -5
- 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 +1548 -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 +46 -228
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +269 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +83 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -132
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +134 -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 -81
- 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 -101
- 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 +1185 -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 +43 -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 +43 -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 +1520 -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 +220 -54
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +72 -40
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +102 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +43 -195
- 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 +43 -296
- 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 +1318 -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/IPolicyService.sol/IPolicyService.json +13 -0
- 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 +32 -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 +64 -51
- 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 +63 -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 +32 -153
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +239 -389
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +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 +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +44 -12
- 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 +271 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +77 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.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/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -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/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -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/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 +42 -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 +146 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -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 +37 -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 +17 -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 +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -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 -294
- 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 +34 -60
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +7 -4
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -14
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +144 -110
- package/contracts/distribution/DistributionService.sol +71 -31
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +17 -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 +204 -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 +13 -5
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IComponents.sol +0 -1
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +72 -51
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +55 -0
- package/contracts/pool/BundleService.sol +72 -27
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +14 -0
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/Pool.sol +160 -131
- package/contracts/pool/PoolService.sol +12 -30
- 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 +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +7 -32
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IPolicyService.sol +2 -0
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/PolicyService.sol +28 -4
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +112 -88
- package/contracts/product/ProductService.sol +7 -32
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +85 -85
- package/contracts/registry/RegistryAdmin.sol +118 -86
- 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 +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +13 -14
- package/contracts/shared/ComponentService.sol +102 -68
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -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/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +47 -19
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- 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 +20 -17
- 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/Amount.sol +12 -5
- package/contracts/type/ObjectType.sol +37 -7
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/UFixed.sol +34 -9
- 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 -166
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1554
- 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/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- 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 -521
- 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,148 +108,15 @@ contract AccessAdmin is
|
|
112
108
|
|
113
109
|
constructor() {
|
114
110
|
_deployer = msg.sender;
|
115
|
-
_authority = new
|
116
|
-
|
117
|
-
_setAuthority(address(_authority));
|
118
|
-
_createInitialRoleSetup();
|
111
|
+
_authority = new AccessManagerCloneable();
|
112
|
+
_authority.initialize(address(this));
|
119
113
|
|
114
|
+
_setAuthority(address(_authority)); // set authority for oz access managed
|
115
|
+
_createAdminAndPublicRoles();
|
120
116
|
_disableInitializers();
|
121
117
|
}
|
122
118
|
|
123
|
-
//---
|
124
|
-
|
125
|
-
function createRole(
|
126
|
-
RoleId roleId,
|
127
|
-
RoleId adminRoleId,
|
128
|
-
string memory name,
|
129
|
-
uint256 maxMemberCount,
|
130
|
-
bool memberRemovalDisabled
|
131
|
-
)
|
132
|
-
external
|
133
|
-
restricted()
|
134
|
-
{
|
135
|
-
_createRole(roleId, adminRoleId, name, maxMemberCount, memberRemovalDisabled);
|
136
|
-
}
|
137
|
-
|
138
|
-
function setRoleDisabled(
|
139
|
-
RoleId roleId,
|
140
|
-
bool disabled
|
141
|
-
)
|
142
|
-
external
|
143
|
-
restricted()
|
144
|
-
{
|
145
|
-
_setRoleDisabled(roleId, disabled);
|
146
|
-
}
|
147
|
-
|
148
|
-
function grantRole(
|
149
|
-
address account,
|
150
|
-
RoleId roleId
|
151
|
-
)
|
152
|
-
external
|
153
|
-
onlyRoleAdmin(roleId)
|
154
|
-
restricted()
|
155
|
-
{
|
156
|
-
_grantRoleToAccount(roleId, account);
|
157
|
-
}
|
158
|
-
|
159
|
-
function revokeRole(
|
160
|
-
address account,
|
161
|
-
RoleId roleId
|
162
|
-
)
|
163
|
-
external
|
164
|
-
onlyRoleAdmin(roleId)
|
165
|
-
restricted()
|
166
|
-
{
|
167
|
-
_revokeRoleFromAccount(roleId, account);
|
168
|
-
}
|
169
|
-
|
170
|
-
function renounceRole(
|
171
|
-
RoleId roleId
|
172
|
-
)
|
173
|
-
external
|
174
|
-
onlyRoleMember(roleId)
|
175
|
-
restricted()
|
176
|
-
{
|
177
|
-
_revokeRoleFromAccount(roleId, msg.sender);
|
178
|
-
}
|
179
|
-
|
180
|
-
//--- target management functions ---------------------------------------//
|
181
|
-
|
182
|
-
function createTarget(
|
183
|
-
address target,
|
184
|
-
string memory name
|
185
|
-
)
|
186
|
-
external
|
187
|
-
restricted()
|
188
|
-
{
|
189
|
-
_createTarget(target, name);
|
190
|
-
}
|
191
|
-
|
192
|
-
function setTargetLocked(
|
193
|
-
address target,
|
194
|
-
bool locked
|
195
|
-
)
|
196
|
-
external
|
197
|
-
onlyExistingTarget(target)
|
198
|
-
restricted()
|
199
|
-
{
|
200
|
-
_authority.setTargetClosed(target, locked);
|
201
|
-
|
202
|
-
// implizit logging: rely on OpenZeppelin log TargetClosed
|
203
|
-
}
|
204
|
-
|
205
|
-
function authorizeFunctions(
|
206
|
-
address target,
|
207
|
-
RoleId roleId,
|
208
|
-
Function[] memory functions
|
209
|
-
)
|
210
|
-
external
|
211
|
-
onlyExistingTarget(target)
|
212
|
-
onlyExistingRole(roleId)
|
213
|
-
restricted()
|
214
|
-
{
|
215
|
-
_authorizeTargetFunctions(target, roleId, functions);
|
216
|
-
}
|
217
|
-
|
218
|
-
function unauthorizeFunctions(
|
219
|
-
address target,
|
220
|
-
Function[] memory functions
|
221
|
-
)
|
222
|
-
external
|
223
|
-
restricted()
|
224
|
-
{
|
225
|
-
_unauthorizeTargetFunctions(target, functions);
|
226
|
-
}
|
227
|
-
|
228
|
-
|
229
|
-
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
230
|
-
return SelectorSetLib.size(_targetFunctions[target]);
|
231
|
-
}
|
232
|
-
|
233
|
-
function getAuthorizedFunction(
|
234
|
-
address target,
|
235
|
-
uint256 idx
|
236
|
-
)
|
237
|
-
external
|
238
|
-
view
|
239
|
-
returns (
|
240
|
-
Function memory func,
|
241
|
-
RoleId roleId
|
242
|
-
)
|
243
|
-
{
|
244
|
-
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
245
|
-
|
246
|
-
func = Function({
|
247
|
-
selector: selector,
|
248
|
-
name: _functionName[target][selector]});
|
249
|
-
|
250
|
-
roleId = RoleIdLib.toRoleId(
|
251
|
-
_authority.getTargetFunctionRole(
|
252
|
-
target,
|
253
|
-
selector.toBytes4()));
|
254
|
-
}
|
255
|
-
|
256
|
-
//--- view functions ----------------------------------------------------//
|
119
|
+
//--- view functions for roles ------------------------------------------//
|
257
120
|
|
258
121
|
function roles() external view returns (uint256 numberOfRoles) {
|
259
122
|
return _roleIds.length;
|
@@ -271,16 +134,8 @@ contract AccessAdmin is
|
|
271
134
|
return RoleId.wrap(_authority.PUBLIC_ROLE());
|
272
135
|
}
|
273
136
|
|
274
|
-
function getManagerRole() public view returns (RoleId roleId) {
|
275
|
-
return _managerRoleId;
|
276
|
-
}
|
277
|
-
|
278
137
|
function roleExists(RoleId roleId) public view returns (bool exists) {
|
279
|
-
return _roleInfo[roleId].
|
280
|
-
}
|
281
|
-
|
282
|
-
function isRoleDisabled(RoleId roleId) public view returns (bool isActive) {
|
283
|
-
return _roleInfo[roleId].disabledAt <= TimestampLib.blockTimestamp();
|
138
|
+
return _roleInfo[roleId].createdAt.gtz();
|
284
139
|
}
|
285
140
|
|
286
141
|
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
|
@@ -291,6 +146,14 @@ contract AccessAdmin is
|
|
291
146
|
return _roleForName[name];
|
292
147
|
}
|
293
148
|
|
149
|
+
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
150
|
+
return _roleMembers[roleId].length();
|
151
|
+
}
|
152
|
+
|
153
|
+
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
|
154
|
+
return _roleMembers[roleId].at(idx);
|
155
|
+
}
|
156
|
+
|
294
157
|
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
295
158
|
(bool isMember, ) = _authority.hasRole(
|
296
159
|
RoleId.unwrap(roleId),
|
@@ -298,22 +161,21 @@ contract AccessAdmin is
|
|
298
161
|
return isMember;
|
299
162
|
}
|
300
163
|
|
301
|
-
function
|
302
|
-
|
164
|
+
function hasAdminRole(address account, RoleId roleId)
|
165
|
+
public
|
166
|
+
virtual
|
167
|
+
view
|
168
|
+
returns (bool)
|
169
|
+
{
|
170
|
+
return hasRole(account, _roleInfo[roleId].adminRoleId);
|
303
171
|
}
|
304
172
|
|
305
|
-
|
306
|
-
return _roleMembers[roleId].at(idx);
|
307
|
-
}
|
173
|
+
//--- view functions for targets ----------------------------------------//
|
308
174
|
|
309
175
|
function targetExists(address target) public view returns (bool exists) {
|
310
176
|
return _targetInfo[target].createdAt.gtz();
|
311
177
|
}
|
312
178
|
|
313
|
-
function isTargetLocked(address target) public view returns (bool locked) {
|
314
|
-
return _authority.isTargetClosed(target);
|
315
|
-
}
|
316
|
-
|
317
179
|
function targets() external view returns (uint256 numberOfTargets) {
|
318
180
|
return _targets.length;
|
319
181
|
}
|
@@ -326,10 +188,37 @@ contract AccessAdmin is
|
|
326
188
|
return _targetInfo[target];
|
327
189
|
}
|
328
190
|
|
329
|
-
function getTargetForName(Str name)
|
191
|
+
function getTargetForName(Str name) public view returns (address target) {
|
330
192
|
return _targetForName[name];
|
331
193
|
}
|
332
194
|
|
195
|
+
function isTargetLocked(address target) public view returns (bool locked) {
|
196
|
+
return _authority.isTargetClosed(target);
|
197
|
+
}
|
198
|
+
|
199
|
+
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
200
|
+
return SelectorSetLib.size(_targetFunctions[target]);
|
201
|
+
}
|
202
|
+
|
203
|
+
function getAuthorizedFunction(
|
204
|
+
address target,
|
205
|
+
uint256 idx
|
206
|
+
)
|
207
|
+
external
|
208
|
+
view
|
209
|
+
returns (
|
210
|
+
FunctionInfo memory func,
|
211
|
+
RoleId roleId
|
212
|
+
)
|
213
|
+
{
|
214
|
+
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
215
|
+
func = _functionInfo[target][selector];
|
216
|
+
roleId = RoleIdLib.toRoleId(
|
217
|
+
_authority.getTargetFunctionRole(
|
218
|
+
target,
|
219
|
+
selector.toBytes4()));
|
220
|
+
}
|
221
|
+
|
333
222
|
function isAccessManaged(address target) public view returns (bool) {
|
334
223
|
if (!_isContract(target)) {
|
335
224
|
return false;
|
@@ -342,18 +231,29 @@ contract AccessAdmin is
|
|
342
231
|
return success;
|
343
232
|
}
|
344
233
|
|
345
|
-
function canCall(address caller, address target, Selector selector) external view returns (bool can) {
|
234
|
+
function canCall(address caller, address target, Selector selector) external virtual view returns (bool can) {
|
346
235
|
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
347
236
|
}
|
348
237
|
|
349
|
-
function
|
350
|
-
return
|
238
|
+
function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) public view returns (RoleInfo memory) {
|
239
|
+
return RoleInfo({
|
240
|
+
name: StrLib.toStr(name),
|
241
|
+
adminRoleId: adminRoleId,
|
242
|
+
roleType: roleType,
|
243
|
+
maxMemberCount: maxMemberCount,
|
244
|
+
createdAt: TimestampLib.blockTimestamp()
|
245
|
+
});
|
351
246
|
}
|
352
247
|
|
353
|
-
function toFunction(bytes4 selector, string memory name) public
|
354
|
-
|
355
|
-
|
356
|
-
|
248
|
+
function toFunction(bytes4 selector, string memory name) public view returns (FunctionInfo memory) {
|
249
|
+
return FunctionInfo({
|
250
|
+
name: StrLib.toStr(name),
|
251
|
+
selector: SelectorLib.toSelector(selector),
|
252
|
+
createdAt: TimestampLib.blockTimestamp()});
|
253
|
+
}
|
254
|
+
|
255
|
+
function deployer() public view returns (address) {
|
256
|
+
return _deployer;
|
357
257
|
}
|
358
258
|
|
359
259
|
//--- internal/private functions -------------------------------------------------//
|
@@ -361,7 +261,7 @@ contract AccessAdmin is
|
|
361
261
|
function _authorizeTargetFunctions(
|
362
262
|
address target,
|
363
263
|
RoleId roleId,
|
364
|
-
|
264
|
+
FunctionInfo[] memory functions
|
365
265
|
)
|
366
266
|
internal
|
367
267
|
{
|
@@ -378,7 +278,7 @@ contract AccessAdmin is
|
|
378
278
|
|
379
279
|
function _unauthorizeTargetFunctions(
|
380
280
|
address target,
|
381
|
-
|
281
|
+
FunctionInfo[] memory functions
|
382
282
|
)
|
383
283
|
internal
|
384
284
|
{
|
@@ -389,7 +289,7 @@ contract AccessAdmin is
|
|
389
289
|
|
390
290
|
function _processFunctionSelectors(
|
391
291
|
address target,
|
392
|
-
|
292
|
+
FunctionInfo[] memory functions,
|
393
293
|
bool addFunctions
|
394
294
|
)
|
395
295
|
internal
|
@@ -399,7 +299,7 @@ contract AccessAdmin is
|
|
399
299
|
{
|
400
300
|
uint256 n = functions.length;
|
401
301
|
functionSelectors = new bytes4[](n);
|
402
|
-
|
302
|
+
FunctionInfo memory func;
|
403
303
|
Selector selector;
|
404
304
|
|
405
305
|
for (uint256 i = 0; i < n; i++) {
|
@@ -411,7 +311,7 @@ contract AccessAdmin is
|
|
411
311
|
else { SelectorSetLib.remove(_targetFunctions[target], selector); }
|
412
312
|
|
413
313
|
// set function name
|
414
|
-
|
314
|
+
_functionInfo[target][selector] = func;
|
415
315
|
|
416
316
|
// add bytes4 selector to function selector array
|
417
317
|
functionSelectors[i] = selector.toBytes4();
|
@@ -430,75 +330,47 @@ contract AccessAdmin is
|
|
430
330
|
revert ErrorAuthorityAlreadySet();
|
431
331
|
}
|
432
332
|
|
433
|
-
_authority =
|
434
|
-
|
435
|
-
if(!hasRole(address(this), RoleId.wrap(_authority.ADMIN_ROLE()))) {
|
436
|
-
revert ErrorAdminRoleMissing();
|
437
|
-
}
|
438
|
-
|
333
|
+
_authority = AccessManagerCloneable(authorityAddress);
|
439
334
|
__AccessManaged_init(address(_authority));
|
440
335
|
}
|
441
336
|
|
442
337
|
|
443
|
-
function
|
338
|
+
function _initializeAdminAndPublicRoles()
|
444
339
|
internal
|
445
340
|
virtual
|
446
341
|
onlyInitializing()
|
447
342
|
{
|
448
|
-
|
343
|
+
_createAdminAndPublicRoles();
|
449
344
|
}
|
450
345
|
|
451
346
|
|
452
|
-
function
|
347
|
+
/// @dev internal setup function that can be used in both constructor and initializer.
|
348
|
+
function _createAdminAndPublicRoles()
|
453
349
|
internal
|
454
350
|
{
|
455
351
|
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
456
|
-
|
352
|
+
FunctionInfo[] memory functions;
|
457
353
|
|
458
354
|
// setup admin role
|
459
355
|
_createRoleUnchecked(
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
356
|
+
ADMIN_ROLE(),
|
357
|
+
toRole({
|
358
|
+
adminRoleId: ADMIN_ROLE(),
|
359
|
+
roleType: RoleType.Contract,
|
360
|
+
maxMemberCount: 1,
|
361
|
+
name: ADMIN_ROLE_NAME}));
|
465
362
|
|
466
363
|
// add this contract as admin role member
|
467
364
|
_roleMembers[adminRoleId].add(address(this));
|
468
365
|
|
469
366
|
// setup public role
|
470
367
|
_createRoleUnchecked(
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
// setup manager role
|
478
|
-
_managerRoleId = RoleIdLib.toRoleId(MANAGER_ROLE);
|
479
|
-
_createRole(
|
480
|
-
_managerRoleId,
|
481
|
-
adminRoleId,
|
482
|
-
MANAGER_ROLE_NAME,
|
483
|
-
3, // TODO think about max member count
|
484
|
-
false);
|
485
|
-
|
486
|
-
// grant public role access to grant and revoke, renounce
|
487
|
-
functions = new Function[](3);
|
488
|
-
functions[0] = toFunction(IAccessAdmin.grantRole.selector, "grantRole");
|
489
|
-
functions[1] = toFunction(IAccessAdmin.revokeRole.selector, "revokeRole");
|
490
|
-
functions[2] = toFunction(IAccessAdmin.renounceRole.selector, "renounceRole");
|
491
|
-
_authorizeTargetFunctions(address(this), getPublicRole(), functions);
|
492
|
-
|
493
|
-
// grant manager role access to the specified functions
|
494
|
-
functions = new Function[](6);
|
495
|
-
functions[0] = toFunction(IAccessAdmin.createRole.selector, "createRole");
|
496
|
-
functions[1] = toFunction(IAccessAdmin.setRoleDisabled.selector, "setRoleDisabled");
|
497
|
-
functions[2] = toFunction(IAccessAdmin.createTarget.selector, "createTarget");
|
498
|
-
functions[3] = toFunction(IAccessAdmin.setTargetLocked.selector, "setTargetLocked");
|
499
|
-
functions[4] = toFunction(IAccessAdmin.authorizeFunctions.selector, "authorizeFunctions");
|
500
|
-
functions[5] = toFunction(IAccessAdmin.unauthorizeFunctions.selector, "unauthorizeFunctions");
|
501
|
-
_authorizeTargetFunctions(address(this), getManagerRole(), functions);
|
368
|
+
PUBLIC_ROLE(),
|
369
|
+
toRole({
|
370
|
+
adminRoleId: ADMIN_ROLE(),
|
371
|
+
roleType: RoleType.Gif,
|
372
|
+
maxMemberCount: type(uint32).max,
|
373
|
+
name: PUBLIC_ROLE_NAME}));
|
502
374
|
}
|
503
375
|
|
504
376
|
/// @dev check if target exists and reverts if it doesn't
|
@@ -531,13 +403,17 @@ contract AccessAdmin is
|
|
531
403
|
internal
|
532
404
|
{
|
533
405
|
_checkRoleId(roleId);
|
534
|
-
_checkRoleIsActive(roleId);
|
535
406
|
|
536
407
|
// check max role members will not be exceeded
|
537
408
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
538
409
|
revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
539
410
|
}
|
540
411
|
|
412
|
+
// check account is contract for contract role
|
413
|
+
// TODO implement
|
414
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
415
|
+
}
|
416
|
+
|
541
417
|
_roleMembers[roleId].add(account);
|
542
418
|
_authority.grantRole(
|
543
419
|
RoleId.unwrap(roleId),
|
@@ -554,7 +430,7 @@ contract AccessAdmin is
|
|
554
430
|
_checkRoleId(roleId);
|
555
431
|
|
556
432
|
// check role removal is permitted
|
557
|
-
if (_roleInfo[roleId].
|
433
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
558
434
|
revert ErrorRoleRemovalDisabled(roleId);
|
559
435
|
}
|
560
436
|
|
@@ -570,7 +446,7 @@ contract AccessAdmin is
|
|
570
446
|
function _checkRoleId(RoleId roleId)
|
571
447
|
internal
|
572
448
|
{
|
573
|
-
if (
|
449
|
+
if (_roleInfo[roleId].createdAt.eqz()) {
|
574
450
|
revert ErrorRoleUnknown(roleId);
|
575
451
|
}
|
576
452
|
|
@@ -582,22 +458,11 @@ contract AccessAdmin is
|
|
582
458
|
}
|
583
459
|
}
|
584
460
|
|
585
|
-
|
586
|
-
|
587
|
-
internal
|
588
|
-
{
|
589
|
-
if (isRoleDisabled(roleId)) {
|
590
|
-
revert ErrorRoleIsDisabled(roleId);
|
591
|
-
}
|
592
|
-
}
|
593
|
-
|
594
|
-
|
461
|
+
/// @dev Creates a role based on the provided parameters.
|
462
|
+
/// Checks that the provided role and role id and role name not already used.
|
595
463
|
function _createRole(
|
596
464
|
RoleId roleId,
|
597
|
-
|
598
|
-
string memory roleName,
|
599
|
-
uint256 maxMemberCount,
|
600
|
-
bool memberRemovalDisabled
|
465
|
+
RoleInfo memory info
|
601
466
|
)
|
602
467
|
internal
|
603
468
|
{
|
@@ -609,84 +474,57 @@ contract AccessAdmin is
|
|
609
474
|
}
|
610
475
|
|
611
476
|
// check admin role exists
|
612
|
-
if(!roleExists(adminRoleId)) {
|
613
|
-
revert ErrorRoleAdminNotExisting(adminRoleId);
|
477
|
+
if(!roleExists(info.adminRoleId)) {
|
478
|
+
revert ErrorRoleAdminNotExisting(info.adminRoleId);
|
614
479
|
}
|
615
480
|
|
616
481
|
// check role name is not empty
|
617
|
-
|
618
|
-
if(name.length() == 0) {
|
482
|
+
if(info.name.length() == 0) {
|
619
483
|
revert ErrorRoleNameEmpty(roleId);
|
620
484
|
}
|
621
485
|
|
622
486
|
// check role name is not used for another role
|
623
|
-
if(_roleForName[name].exists) {
|
487
|
+
if(_roleForName[info.name].exists) {
|
624
488
|
revert ErrorRoleNameAlreadyExists(
|
625
489
|
roleId,
|
626
|
-
|
627
|
-
_roleForName[name].roleId);
|
628
|
-
}
|
629
|
-
|
630
|
-
_createRoleUnchecked(
|
631
|
-
roleId, adminRoleId,
|
632
|
-
name,
|
633
|
-
maxMemberCount,
|
634
|
-
memberRemovalDisabled);
|
635
|
-
}
|
636
|
-
|
637
|
-
|
638
|
-
function _setRoleDisabled(
|
639
|
-
RoleId roleId,
|
640
|
-
bool disabled
|
641
|
-
)
|
642
|
-
internal
|
643
|
-
{
|
644
|
-
|
645
|
-
_checkRoleId(roleId);
|
646
|
-
Timestamp disabledAtOld = _roleInfo[roleId].disabledAt;
|
647
|
-
|
648
|
-
if (disabled) {
|
649
|
-
_roleInfo[roleId].disabledAt = TimestampLib.blockTimestamp();
|
650
|
-
} else {
|
651
|
-
_roleInfo[roleId].disabledAt = TimestampLib.max();
|
490
|
+
info.name.toString(),
|
491
|
+
_roleForName[info.name].roleId);
|
652
492
|
}
|
653
493
|
|
654
|
-
|
494
|
+
_createRoleUnchecked(roleId, info);
|
655
495
|
}
|
656
496
|
|
657
497
|
|
658
498
|
function _createRoleUnchecked(
|
659
499
|
RoleId roleId,
|
660
|
-
|
661
|
-
Str name,
|
662
|
-
uint256 maxMemberCount,
|
663
|
-
bool memberRemovalDisabled
|
500
|
+
RoleInfo memory info
|
664
501
|
)
|
665
502
|
private
|
666
503
|
{
|
667
504
|
// create role info
|
668
|
-
|
669
|
-
|
670
|
-
name: name,
|
671
|
-
maxMemberCount: maxMemberCount,
|
672
|
-
memberRemovalDisabled: memberRemovalDisabled,
|
673
|
-
disabledAt: TimestampLib.max(),
|
674
|
-
exists: true});
|
505
|
+
info.createdAt = TimestampLib.blockTimestamp();
|
506
|
+
_roleInfo[roleId] = info;
|
675
507
|
|
676
508
|
// create role name info
|
677
|
-
_roleForName[name] = RoleNameInfo({
|
509
|
+
_roleForName[info.name] = RoleNameInfo({
|
678
510
|
roleId: roleId,
|
679
511
|
exists: true});
|
680
512
|
|
681
513
|
// add role to list of roles
|
682
514
|
_roleIds.push(roleId);
|
683
515
|
|
684
|
-
emit LogRoleCreated(roleId, adminRoleId, name.toString());
|
516
|
+
emit LogRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
|
685
517
|
}
|
686
518
|
|
687
519
|
|
688
|
-
function _createTarget(
|
520
|
+
function _createTarget(
|
521
|
+
address target,
|
522
|
+
string memory targetName,
|
523
|
+
bool checkAuthority,
|
524
|
+
bool custom
|
525
|
+
)
|
689
526
|
internal
|
527
|
+
nonReentrant()
|
690
528
|
{
|
691
529
|
// check target does not yet exist
|
692
530
|
if(targetExists(target)) {
|
@@ -701,7 +539,7 @@ contract AccessAdmin is
|
|
701
539
|
revert ErrorTargetNameEmpty(target);
|
702
540
|
}
|
703
541
|
|
704
|
-
// check target name is not used for another
|
542
|
+
// check target name is not used for another target
|
705
543
|
if( _targetForName[name] != address(0)) {
|
706
544
|
revert ErrorTargetNameAlreadyExists(
|
707
545
|
target,
|
@@ -715,14 +553,17 @@ contract AccessAdmin is
|
|
715
553
|
}
|
716
554
|
|
717
555
|
// check target shares authority with this contract
|
718
|
-
|
719
|
-
|
720
|
-
|
556
|
+
if (checkAuthority) {
|
557
|
+
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
558
|
+
if (targetAuthority != authority()) {
|
559
|
+
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
560
|
+
}
|
721
561
|
}
|
722
562
|
|
723
563
|
// create target info
|
724
564
|
_targetInfo[target] = TargetInfo({
|
725
565
|
name: name,
|
566
|
+
isCustom: custom,
|
726
567
|
createdAt: TimestampLib.blockTimestamp()
|
727
568
|
});
|
728
569
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
|
5
|
+
|
6
|
+
contract AccessManagerCloneable is
|
7
|
+
AccessManagerUpgradeable
|
8
|
+
{
|
9
|
+
|
10
|
+
function initialize(address initialAdmin)
|
11
|
+
external
|
12
|
+
initializer()
|
13
|
+
{
|
14
|
+
__AccessManager_init(initialAdmin);
|
15
|
+
}
|
16
|
+
}
|