@etherisc/gif-next 0.0.2-c5049d4-401 → 0.0.2-c52b5b7-438
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 +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +505 -245
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +273 -16
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +396 -185
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +139 -15
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +172 -305
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +261 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -185
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +338 -163
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +115 -65
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +90 -167
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +209 -70
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +204 -222
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +261 -27
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +455 -389
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +258 -28
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +247 -270
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +156 -175
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +318 -223
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +751 -340
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +236 -39
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +144 -93
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +284 -62
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +734 -321
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +205 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +869 -261
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +170 -169
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +69 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +556 -415
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +142 -183
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +243 -29
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +104 -116
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +118 -135
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +151 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +95 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +151 -168
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +261 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +162 -268
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +79 -81
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +90 -117
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +126 -149
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +279 -247
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +139 -167
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +490 -390
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +133 -51
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +190 -48
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +80 -38
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +278 -234
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +261 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +308 -158
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +106 -72
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +131 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +199 -21
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +168 -54
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +117 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +258 -209
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +86 -6
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +264 -170
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +102 -64
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +179 -133
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +75 -57
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -224
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +167 -67
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +92 -38
- 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 +117 -17
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +161 -53
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +600 -440
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -185
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +68 -34
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +417 -249
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- 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/Component.sol/Component.json +94 -93
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +507 -524
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +96 -74
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -2
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +509 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +81 -75
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +463 -300
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +104 -116
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- 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/IService.sol/IService.json +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +117 -134
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -38
- 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/Service.sol/Service.json +55 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +170 -117
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +152 -20
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +258 -198
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +92 -50
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +35 -67
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +203 -59
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +77 -39
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +191 -136
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +48 -38
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
- 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/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -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 +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -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 +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +44 -12
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +342 -230
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +350 -202
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +69 -34
- package/contracts/authorization/IAuthorization.sol +33 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +20 -17
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +36 -87
- package/contracts/distribution/DistributionService.sol +129 -80
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +1 -10
- package/contracts/distribution/IDistributionService.sol +22 -20
- package/contracts/examples/fire/DamageLevel.sol +5 -2
- package/contracts/examples/fire/FirePool.sol +24 -13
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +106 -63
- package/contracts/examples/fire/FireProductAuthorization.sol +14 -8
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +43 -12
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +8 -12
- package/contracts/examples/unpermissioned/SimplePool.sol +36 -10
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +51 -29
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +60 -17
- package/contracts/instance/IInstanceService.sol +27 -31
- package/contracts/instance/Instance.sol +115 -40
- package/contracts/instance/InstanceAdmin.sol +287 -122
- package/contracts/instance/InstanceAuthorizationV3.sol +90 -59
- package/contracts/instance/InstanceReader.sol +259 -39
- package/contracts/instance/InstanceService.sol +185 -192
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +3 -3
- package/contracts/instance/module/IComponents.sol +13 -9
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IPolicy.sol +5 -4
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +1 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -18
- package/contracts/oracle/OracleService.sol +108 -79
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +32 -25
- package/contracts/pool/BasicPoolAuthorization.sol +27 -9
- package/contracts/pool/BundleService.sol +88 -131
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -34
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +70 -65
- package/contracts/pool/Pool.sol +136 -119
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +481 -234
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +46 -19
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -13
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +246 -160
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +17 -4
- package/contracts/product/IPolicyService.sol +27 -9
- package/contracts/product/IPricingService.sol +10 -9
- package/contracts/product/IProductComponent.sol +27 -4
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +262 -249
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +37 -28
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +118 -76
- package/contracts/product/RiskService.sol +89 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +16 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +36 -8
- package/contracts/registry/RegistryAdmin.sol +145 -351
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +36 -47
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +271 -245
- package/contracts/registry/ServiceAuthorizationV3.sol +182 -50
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +61 -119
- package/contracts/shared/ComponentService.sol +434 -367
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +27 -16
- package/contracts/shared/ContractLib.sol +246 -3
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +44 -40
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +69 -46
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +5 -1
- package/contracts/shared/Registerable.sol +50 -19
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +9 -31
- package/contracts/shared/TokenHandler.sol +275 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +17 -10
- package/contracts/staking/IStakingService.sol +16 -4
- package/contracts/staking/Staking.sol +96 -48
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +18 -21
- package/contracts/staking/StakingService.sol +81 -24
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +7 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +54 -35
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +14 -1
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +37 -126
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +2 -1
- package/package.json +5 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -5,14 +5,24 @@ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/acce
|
|
5
5
|
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
6
6
|
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
7
7
|
|
8
|
+
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
9
|
+
import {IAuthorization} from "./IAuthorization.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
+
|
12
|
+
import {AccessAdminLib} from "./AccessAdminLib.sol";
|
8
13
|
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
9
14
|
import {ContractLib} from "../shared/ContractLib.sol";
|
10
|
-
import {
|
15
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
16
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
11
17
|
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
12
18
|
import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
|
13
19
|
import {Str, StrLib} from "../type/String.sol";
|
14
20
|
import {TimestampLib} from "../type/Timestamp.sol";
|
21
|
+
import {VersionPart} from "../type/Version.sol";
|
15
22
|
|
23
|
+
interface IAccessManagedChecker {
|
24
|
+
function authority() external view returns (address);
|
25
|
+
}
|
16
26
|
|
17
27
|
/**
|
18
28
|
* @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
|
@@ -29,13 +39,23 @@ contract AccessAdmin is
|
|
29
39
|
string public constant ADMIN_ROLE_NAME = "AdminRole";
|
30
40
|
string public constant PUBLIC_ROLE_NAME = "PublicRole";
|
31
41
|
|
32
|
-
/// @dev
|
42
|
+
/// @dev admin name used for logging only
|
43
|
+
string internal _adminName;
|
44
|
+
|
45
|
+
/// @dev the access manager driving the access admin contract
|
46
|
+
/// hold link to registry and release version
|
33
47
|
AccessManagerCloneable internal _authority;
|
34
48
|
|
49
|
+
/// @dev the authorization contract used for initial access control
|
50
|
+
IAuthorization internal _authorization;
|
51
|
+
|
35
52
|
/// @dev stores the deployer address and allows to create initializers
|
36
53
|
/// that are restricted to the deployer address.
|
37
54
|
address internal _deployer;
|
38
55
|
|
56
|
+
/// @dev the linked NFT ID
|
57
|
+
NftId internal _linkedNftId;
|
58
|
+
|
39
59
|
/// @dev store role info per role id
|
40
60
|
mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
|
41
61
|
|
@@ -68,52 +88,139 @@ contract AccessAdmin is
|
|
68
88
|
|
69
89
|
modifier onlyDeployer() {
|
70
90
|
// special case for cloned AccessAdmin contracts
|
71
|
-
// IMPORTANT cloning and
|
91
|
+
// IMPORTANT cloning and initialize authority needs to be done in a single transaction
|
72
92
|
if (_deployer == address(0)) {
|
73
93
|
_deployer = msg.sender;
|
74
94
|
}
|
75
95
|
|
76
96
|
if (msg.sender != _deployer) {
|
77
|
-
revert
|
97
|
+
revert ErrorAccessAdminNotDeployer();
|
78
98
|
}
|
79
99
|
_;
|
80
100
|
}
|
81
101
|
|
82
|
-
modifier
|
83
|
-
|
84
|
-
revert ErrorRoleUnknown(roleId);
|
85
|
-
}
|
102
|
+
modifier onlyRoleMember(RoleId roleId, address account) {
|
103
|
+
_checkRoleExists(roleId, false);
|
86
104
|
|
87
|
-
if (!
|
88
|
-
revert
|
105
|
+
if (!hasRole(account, roleId)) {
|
106
|
+
revert ErrorAccessAdminNotRoleOwner(roleId, account);
|
89
107
|
}
|
90
108
|
_;
|
91
109
|
}
|
92
110
|
|
93
|
-
modifier
|
94
|
-
|
95
|
-
|
111
|
+
modifier onlyRoleAdmin(RoleId roleId, address account) {
|
112
|
+
_checkRoleExists(roleId, false);
|
113
|
+
|
114
|
+
if (!hasAdminRole(account, roleId)) {
|
115
|
+
revert ErrorAccessAdminNotAdminOfRole(_roleInfo[roleId].adminRoleId, account);
|
96
116
|
}
|
97
117
|
_;
|
98
118
|
}
|
99
119
|
|
100
|
-
modifier onlyExistingRole(
|
101
|
-
|
120
|
+
modifier onlyExistingRole(
|
121
|
+
RoleId roleId,
|
122
|
+
bool onlyActiveRole,
|
123
|
+
bool allowLockedRoles
|
124
|
+
)
|
125
|
+
{
|
126
|
+
if (!allowLockedRoles) {
|
127
|
+
_checkRoleExists(roleId, onlyActiveRole);
|
128
|
+
}
|
102
129
|
_;
|
103
130
|
}
|
104
131
|
|
105
132
|
modifier onlyExistingTarget(address target) {
|
106
|
-
|
133
|
+
_checkTargetExists(target);
|
107
134
|
_;
|
108
135
|
}
|
109
136
|
|
110
|
-
|
111
|
-
|
112
|
-
|
137
|
+
//-------------- initialization functions ------------------------------//
|
138
|
+
|
139
|
+
// event LogAccessAdminDebug(string message);
|
140
|
+
|
141
|
+
/// @dev Initializes this admin with the provided accessManager (and authorization specification).
|
142
|
+
/// Internally initializes access manager with this admin and creates basic role setup.
|
143
|
+
function initialize(
|
144
|
+
address authority,
|
145
|
+
string memory adminName
|
146
|
+
)
|
147
|
+
public
|
148
|
+
initializer()
|
149
|
+
{
|
150
|
+
__AccessAdmin_init(authority, adminName);
|
151
|
+
}
|
152
|
+
|
153
|
+
|
154
|
+
function __AccessAdmin_init(
|
155
|
+
address authority,
|
156
|
+
string memory adminName
|
157
|
+
)
|
158
|
+
internal
|
159
|
+
onlyInitializing()
|
160
|
+
onlyDeployer()
|
161
|
+
{
|
162
|
+
// checks
|
163
|
+
// check authority is contract
|
164
|
+
if (!ContractLib.isContract(authority)) {
|
165
|
+
revert ErrorAccessAdminAuthorityNotContract(authority);
|
166
|
+
}
|
167
|
+
|
168
|
+
// check name not empty
|
169
|
+
if (bytes(adminName).length == 0) {
|
170
|
+
revert ErrorAccessAdminAccessManagerEmptyName();
|
171
|
+
}
|
172
|
+
|
173
|
+
_authority = AccessManagerCloneable(authority);
|
113
174
|
_authority.initialize(address(this));
|
114
175
|
|
115
|
-
|
116
|
-
|
176
|
+
// delayed additional check for authority after its initialization
|
177
|
+
if (!ContractLib.isAuthority(authority)) {
|
178
|
+
revert ErrorAccessAdminAccessManagerNotAccessManager(authority);
|
179
|
+
}
|
180
|
+
|
181
|
+
// effects
|
182
|
+
// set and initialize this access manager contract as
|
183
|
+
// the admin (ADMIN_ROLE) of the provided authority
|
184
|
+
__AccessManaged_init(authority);
|
185
|
+
|
186
|
+
// set name for logging
|
187
|
+
_adminName = adminName;
|
188
|
+
|
189
|
+
// set initial linked NFT ID to zero
|
190
|
+
_linkedNftId = NftIdLib.zero();
|
191
|
+
|
192
|
+
// create admin and public roles
|
193
|
+
_initializeAdminAndPublicRoles();
|
194
|
+
}
|
195
|
+
|
196
|
+
|
197
|
+
function getRelease() public view virtual returns (VersionPart release) {
|
198
|
+
return _authority.getRelease();
|
199
|
+
}
|
200
|
+
|
201
|
+
|
202
|
+
function getRegistry() public view returns (IRegistry registry) {
|
203
|
+
return _authority.getRegistry();
|
204
|
+
}
|
205
|
+
|
206
|
+
|
207
|
+
function getLinkedNftId() external view returns (NftId linkedNftId) {
|
208
|
+
return _linkedNftId;
|
209
|
+
}
|
210
|
+
|
211
|
+
|
212
|
+
function getLinkedOwner() external view returns (address linkedOwner) {
|
213
|
+
return getRegistry().ownerOf(_linkedNftId);
|
214
|
+
}
|
215
|
+
|
216
|
+
|
217
|
+
function getAuthorization() public view returns (IAuthorization authorization) {
|
218
|
+
return _authorization;
|
219
|
+
}
|
220
|
+
|
221
|
+
|
222
|
+
function isLocked() public view returns (bool locked) {
|
223
|
+
return _authority.isLocked();
|
117
224
|
}
|
118
225
|
|
119
226
|
//--- view functions for roles ------------------------------------------//
|
@@ -138,12 +245,12 @@ contract AccessAdmin is
|
|
138
245
|
return _roleInfo[roleId].createdAt.gtz();
|
139
246
|
}
|
140
247
|
|
141
|
-
function
|
142
|
-
return
|
248
|
+
function getRoleForName(string memory name) external view returns (RoleId roleId) {
|
249
|
+
return _roleForName[StrLib.toStr(name)].roleId;
|
143
250
|
}
|
144
251
|
|
145
|
-
function
|
146
|
-
return
|
252
|
+
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
|
253
|
+
return _roleInfo[roleId];
|
147
254
|
}
|
148
255
|
|
149
256
|
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
@@ -154,6 +261,7 @@ contract AccessAdmin is
|
|
154
261
|
return _roleMembers[roleId].at(idx);
|
155
262
|
}
|
156
263
|
|
264
|
+
// TODO false because not role member or because role not exists?
|
157
265
|
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
158
266
|
(bool isMember, ) = _authority.hasRole(
|
159
267
|
RoleId.unwrap(roleId),
|
@@ -219,45 +327,59 @@ contract AccessAdmin is
|
|
219
327
|
selector.toBytes4()));
|
220
328
|
}
|
221
329
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
// return false;
|
226
|
-
// }
|
330
|
+
function deployer() public view returns (address) {
|
331
|
+
return _deployer;
|
332
|
+
}
|
227
333
|
|
228
|
-
|
229
|
-
// abi.encodeWithSelector(
|
230
|
-
// AccessManagedUpgradeable.authority.selector));
|
334
|
+
//--- internal/private functions -------------------------------------------------//
|
231
335
|
|
232
|
-
|
233
|
-
|
336
|
+
function _linkToNftOwnable(address registerable) internal {
|
337
|
+
if (!getRegistry().isRegistered(registerable)) {
|
338
|
+
revert ErrorAccessAdminNotRegistered(registerable);
|
339
|
+
}
|
234
340
|
|
235
|
-
|
236
|
-
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
341
|
+
_linkedNftId = getRegistry().getNftIdForAddress(registerable);
|
237
342
|
}
|
238
343
|
|
239
|
-
function
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
createdAt: TimestampLib.blockTimestamp()
|
246
|
-
});
|
247
|
-
}
|
344
|
+
function _initializeAdminAndPublicRoles()
|
345
|
+
internal
|
346
|
+
virtual
|
347
|
+
onlyInitializing()
|
348
|
+
{
|
349
|
+
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
248
350
|
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
351
|
+
// setup admin role
|
352
|
+
_createRoleUnchecked(
|
353
|
+
ADMIN_ROLE(),
|
354
|
+
AccessAdminLib.toRole({
|
355
|
+
adminRoleId: ADMIN_ROLE(),
|
356
|
+
roleType: RoleType.Contract,
|
357
|
+
maxMemberCount: 1,
|
358
|
+
name: ADMIN_ROLE_NAME}));
|
255
359
|
|
256
|
-
|
257
|
-
|
360
|
+
// add this contract as admin role member
|
361
|
+
_roleMembers[adminRoleId].add(address(this));
|
362
|
+
|
363
|
+
// setup public role
|
364
|
+
_createRoleUnchecked(
|
365
|
+
PUBLIC_ROLE(),
|
366
|
+
AccessAdminLib.toRole({
|
367
|
+
adminRoleId: ADMIN_ROLE(),
|
368
|
+
roleType: RoleType.Gif,
|
369
|
+
maxMemberCount: type(uint32).max,
|
370
|
+
name: PUBLIC_ROLE_NAME}));
|
258
371
|
}
|
259
372
|
|
260
|
-
|
373
|
+
function _createTargetWithRole(
|
374
|
+
address target,
|
375
|
+
string memory targetName,
|
376
|
+
RoleId targetRoleId
|
377
|
+
)
|
378
|
+
internal
|
379
|
+
{
|
380
|
+
_createTarget(target, targetName, true, false);
|
381
|
+
_grantRoleToAccount(targetRoleId, target);
|
382
|
+
}
|
261
383
|
|
262
384
|
function _authorizeTargetFunctions(
|
263
385
|
address target,
|
@@ -267,14 +389,21 @@ contract AccessAdmin is
|
|
267
389
|
internal
|
268
390
|
{
|
269
391
|
if (roleId == getAdminRole()) {
|
270
|
-
revert
|
392
|
+
revert ErrorAccessAdminAuthorizeForAdminRoleInvalid(target);
|
271
393
|
}
|
272
394
|
|
273
|
-
|
274
|
-
|
395
|
+
(
|
396
|
+
bytes4[] memory functionSelectors,
|
397
|
+
string[] memory functionNames
|
398
|
+
) = _processFunctionSelectors(target, functions, true);
|
275
399
|
|
276
400
|
// apply authz via access manager
|
277
|
-
_grantRoleAccessToFunctions(
|
401
|
+
_grantRoleAccessToFunctions(
|
402
|
+
target,
|
403
|
+
roleId,
|
404
|
+
functionSelectors,
|
405
|
+
functionNames,
|
406
|
+
false); // allow locked roles
|
278
407
|
}
|
279
408
|
|
280
409
|
function _unauthorizeTargetFunctions(
|
@@ -283,9 +412,17 @@ contract AccessAdmin is
|
|
283
412
|
)
|
284
413
|
internal
|
285
414
|
{
|
286
|
-
|
287
|
-
|
288
|
-
|
415
|
+
(
|
416
|
+
bytes4[] memory functionSelectors,
|
417
|
+
string[] memory functionNames
|
418
|
+
) = _processFunctionSelectors(target, functions, false);
|
419
|
+
|
420
|
+
_grantRoleAccessToFunctions(
|
421
|
+
target,
|
422
|
+
getAdminRole(),
|
423
|
+
functionSelectors,
|
424
|
+
functionNames,
|
425
|
+
true); // allowLockedRoles
|
289
426
|
}
|
290
427
|
|
291
428
|
function _processFunctionSelectors(
|
@@ -294,12 +431,15 @@ contract AccessAdmin is
|
|
294
431
|
bool addFunctions
|
295
432
|
)
|
296
433
|
internal
|
434
|
+
onlyExistingTarget(target)
|
297
435
|
returns (
|
298
|
-
bytes4[] memory functionSelectors
|
436
|
+
bytes4[] memory functionSelectors,
|
437
|
+
string[] memory functionNames
|
299
438
|
)
|
300
439
|
{
|
301
440
|
uint256 n = functions.length;
|
302
441
|
functionSelectors = new bytes4[](n);
|
442
|
+
functionNames = new string[](n);
|
303
443
|
FunctionInfo memory func;
|
304
444
|
Selector selector;
|
305
445
|
|
@@ -316,69 +456,7 @@ contract AccessAdmin is
|
|
316
456
|
|
317
457
|
// add bytes4 selector to function selector array
|
318
458
|
functionSelectors[i] = selector.toBytes4();
|
319
|
-
|
320
|
-
}
|
321
|
-
|
322
|
-
function _initializeAuthority(
|
323
|
-
address authorityAddress
|
324
|
-
)
|
325
|
-
internal
|
326
|
-
virtual
|
327
|
-
onlyInitializing()
|
328
|
-
onlyDeployer()
|
329
|
-
{
|
330
|
-
if (authority() != address(0)) {
|
331
|
-
revert ErrorAuthorityAlreadySet();
|
332
|
-
}
|
333
|
-
|
334
|
-
_authority = AccessManagerCloneable(authorityAddress);
|
335
|
-
__AccessManaged_init(address(_authority));
|
336
|
-
}
|
337
|
-
|
338
|
-
|
339
|
-
function _initializeAdminAndPublicRoles()
|
340
|
-
internal
|
341
|
-
virtual
|
342
|
-
onlyInitializing()
|
343
|
-
{
|
344
|
-
_createAdminAndPublicRoles();
|
345
|
-
}
|
346
|
-
|
347
|
-
|
348
|
-
/// @dev internal setup function that can be used in both constructor and initializer.
|
349
|
-
function _createAdminAndPublicRoles()
|
350
|
-
internal
|
351
|
-
{
|
352
|
-
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
353
|
-
|
354
|
-
// setup admin role
|
355
|
-
_createRoleUnchecked(
|
356
|
-
ADMIN_ROLE(),
|
357
|
-
toRole({
|
358
|
-
adminRoleId: ADMIN_ROLE(),
|
359
|
-
roleType: RoleType.Contract,
|
360
|
-
maxMemberCount: 1,
|
361
|
-
name: ADMIN_ROLE_NAME}));
|
362
|
-
|
363
|
-
// add this contract as admin role member
|
364
|
-
_roleMembers[adminRoleId].add(address(this));
|
365
|
-
|
366
|
-
// setup public role
|
367
|
-
_createRoleUnchecked(
|
368
|
-
PUBLIC_ROLE(),
|
369
|
-
toRole({
|
370
|
-
adminRoleId: ADMIN_ROLE(),
|
371
|
-
roleType: RoleType.Gif,
|
372
|
-
maxMemberCount: type(uint32).max,
|
373
|
-
name: PUBLIC_ROLE_NAME}));
|
374
|
-
}
|
375
|
-
|
376
|
-
/// @dev check if target exists and reverts if it doesn't
|
377
|
-
function _checkTarget(address target)
|
378
|
-
internal
|
379
|
-
{
|
380
|
-
if (_targetInfo[target].createdAt.eqz()) {
|
381
|
-
revert ErrorTargetUnknown(target);
|
459
|
+
functionNames[i] = func.name.toString();
|
382
460
|
}
|
383
461
|
}
|
384
462
|
|
@@ -386,78 +464,82 @@ contract AccessAdmin is
|
|
386
464
|
function _grantRoleAccessToFunctions(
|
387
465
|
address target,
|
388
466
|
RoleId roleId,
|
389
|
-
bytes4[] memory functionSelectors
|
467
|
+
bytes4[] memory functionSelectors,
|
468
|
+
string[] memory functionNames,
|
469
|
+
bool allowLockedRoles // admin and public roles are locked
|
390
470
|
)
|
391
471
|
internal
|
472
|
+
onlyExistingTarget(target)
|
473
|
+
onlyExistingRole(roleId, true, allowLockedRoles)
|
392
474
|
{
|
475
|
+
|
393
476
|
_authority.setTargetFunctionRole(
|
394
477
|
target,
|
395
478
|
functionSelectors,
|
396
479
|
RoleId.unwrap(roleId));
|
397
480
|
|
398
|
-
//
|
481
|
+
// log function grantings
|
482
|
+
for (uint256 i = 0; i < functionSelectors.length; i++) {
|
483
|
+
emit LogAccessAdminFunctionGranted(
|
484
|
+
_adminName,
|
485
|
+
target,
|
486
|
+
string(abi.encodePacked(
|
487
|
+
functionNames[i],
|
488
|
+
"(): ",
|
489
|
+
_getRoleName(roleId))));
|
490
|
+
}
|
399
491
|
}
|
400
492
|
|
493
|
+
|
401
494
|
/// @dev grant the specified role to the provided account
|
402
495
|
function _grantRoleToAccount(RoleId roleId, address account)
|
403
496
|
internal
|
497
|
+
onlyExistingRole(roleId, true, false)
|
404
498
|
{
|
405
|
-
_checkRoleId(roleId);
|
406
|
-
|
407
499
|
// check max role members will not be exceeded
|
408
500
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
409
|
-
revert
|
501
|
+
revert ErrorAccessAdminRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
410
502
|
}
|
411
503
|
|
412
504
|
// check account is contract for contract role
|
413
|
-
|
414
|
-
|
505
|
+
if (
|
506
|
+
_roleInfo[roleId].roleType == RoleType.Contract &&
|
507
|
+
!ContractLib.isContract(account) // will fail in account's constructor
|
508
|
+
) {
|
509
|
+
revert ErrorAccessAdminRoleMemberNotContract(roleId, account);
|
415
510
|
}
|
416
511
|
|
512
|
+
// TODO check account already have roleId
|
417
513
|
_roleMembers[roleId].add(account);
|
418
514
|
_authority.grantRole(
|
419
515
|
RoleId.unwrap(roleId),
|
420
516
|
account,
|
421
517
|
0);
|
422
518
|
|
423
|
-
|
519
|
+
emit LogAccessAdminRoleGranted(_adminName, account, _getRoleName(roleId));
|
424
520
|
}
|
425
521
|
|
426
522
|
/// @dev revoke the specified role from the provided account
|
427
523
|
function _revokeRoleFromAccount(RoleId roleId, address account)
|
428
524
|
internal
|
525
|
+
onlyExistingRole(roleId, false, false)
|
429
526
|
{
|
430
|
-
_checkRoleId(roleId);
|
431
527
|
|
432
528
|
// check role removal is permitted
|
433
529
|
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
434
|
-
revert
|
530
|
+
revert ErrorAccessAdminRoleMemberRemovalDisabled(roleId, account);
|
435
531
|
}
|
436
532
|
|
533
|
+
// TODO check account have roleId?
|
437
534
|
_roleMembers[roleId].remove(account);
|
438
535
|
_authority.revokeRole(
|
439
536
|
RoleId.unwrap(roleId),
|
440
537
|
account);
|
441
538
|
|
442
|
-
|
539
|
+
emit LogAccessAdminRoleRevoked(_adminName, account, _roleInfo[roleId].name.toString());
|
443
540
|
}
|
444
541
|
|
445
542
|
|
446
|
-
function _checkRoleId(RoleId roleId)
|
447
|
-
internal
|
448
|
-
{
|
449
|
-
if (_roleInfo[roleId].createdAt.eqz()) {
|
450
|
-
revert ErrorRoleUnknown(roleId);
|
451
|
-
}
|
452
|
-
|
453
|
-
uint64 roleIdInt = RoleId.unwrap(roleId);
|
454
|
-
if (roleIdInt == _authority.ADMIN_ROLE()
|
455
|
-
|| roleIdInt == _authority.PUBLIC_ROLE())
|
456
|
-
{
|
457
|
-
revert ErrorRoleIsLocked(roleId);
|
458
|
-
}
|
459
|
-
}
|
460
|
-
|
461
543
|
/// @dev Creates a role based on the provided parameters.
|
462
544
|
/// Checks that the provided role and role id and role name not already used.
|
463
545
|
function _createRole(
|
@@ -466,32 +548,21 @@ contract AccessAdmin is
|
|
466
548
|
)
|
467
549
|
internal
|
468
550
|
{
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
roleId,
|
473
|
-
_roleInfo[roleId].name.toString());
|
474
|
-
}
|
475
|
-
|
476
|
-
// check admin role exists
|
477
|
-
if(!roleExists(info.adminRoleId)) {
|
478
|
-
revert ErrorRoleAdminNotExisting(info.adminRoleId);
|
479
|
-
}
|
480
|
-
|
481
|
-
// check role name is not empty
|
482
|
-
if(info.name.length() == 0) {
|
483
|
-
revert ErrorRoleNameEmpty(roleId);
|
484
|
-
}
|
551
|
+
AccessAdminLib.checkRoleCreation(this, roleId, info);
|
552
|
+
_createRoleUnchecked(roleId, info);
|
553
|
+
}
|
485
554
|
|
486
|
-
// check role name is not used for another role
|
487
|
-
if(_roleForName[info.name].exists) {
|
488
|
-
revert ErrorRoleNameAlreadyExists(
|
489
|
-
roleId,
|
490
|
-
info.name.toString(),
|
491
|
-
_roleForName[info.name].roleId);
|
492
|
-
}
|
493
555
|
|
494
|
-
|
556
|
+
function _createTarget(
|
557
|
+
address target,
|
558
|
+
string memory targetName,
|
559
|
+
bool checkAuthority,
|
560
|
+
bool custom
|
561
|
+
)
|
562
|
+
internal
|
563
|
+
{
|
564
|
+
AccessAdminLib.checkTargetCreation(this, target, targetName, checkAuthority);
|
565
|
+
_createTargetUnchecked(target, targetName, custom);
|
495
566
|
}
|
496
567
|
|
497
568
|
|
@@ -513,54 +584,19 @@ contract AccessAdmin is
|
|
513
584
|
// add role to list of roles
|
514
585
|
_roleIds.push(roleId);
|
515
586
|
|
516
|
-
emit
|
587
|
+
emit LogAccessAdminRoleCreated(_adminName, roleId, info.roleType, info.adminRoleId, info.name.toString());
|
517
588
|
}
|
518
589
|
|
519
590
|
|
520
|
-
function
|
591
|
+
function _createTargetUnchecked(
|
521
592
|
address target,
|
522
593
|
string memory targetName,
|
523
|
-
bool checkAuthority,
|
524
594
|
bool custom
|
525
595
|
)
|
526
596
|
internal
|
527
|
-
nonReentrant()
|
528
597
|
{
|
529
|
-
// check target does not yet exist
|
530
|
-
if(targetExists(target)) {
|
531
|
-
revert ErrorTargetAlreadyCreated(
|
532
|
-
target,
|
533
|
-
_targetInfo[target].name.toString());
|
534
|
-
}
|
535
|
-
|
536
|
-
// check target name is not empty
|
537
|
-
Str name = StrLib.toStr(targetName);
|
538
|
-
if(name.length() == 0) {
|
539
|
-
revert ErrorTargetNameEmpty(target);
|
540
|
-
}
|
541
|
-
|
542
|
-
// check target name is not used for another target
|
543
|
-
if( _targetForName[name] != address(0)) {
|
544
|
-
revert ErrorTargetNameAlreadyExists(
|
545
|
-
target,
|
546
|
-
targetName,
|
547
|
-
_targetForName[name]);
|
548
|
-
}
|
549
|
-
|
550
|
-
// check target is an access managed contract
|
551
|
-
if (!ContractLib.isAccessManaged(target)) {
|
552
|
-
revert ErrorTargetNotAccessManaged(target);
|
553
|
-
}
|
554
|
-
|
555
|
-
// check target shares authority with this contract
|
556
|
-
if (checkAuthority) {
|
557
|
-
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
558
|
-
if (targetAuthority != authority()) {
|
559
|
-
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
560
|
-
}
|
561
|
-
}
|
562
|
-
|
563
598
|
// create target info
|
599
|
+
Str name = StrLib.toStr(targetName);
|
564
600
|
_targetInfo[target] = TargetInfo({
|
565
601
|
name: name,
|
566
602
|
isCustom: custom,
|
@@ -573,20 +609,96 @@ contract AccessAdmin is
|
|
573
609
|
// add role to list of roles
|
574
610
|
_targets.push(target);
|
575
611
|
|
576
|
-
emit
|
577
|
-
}
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
612
|
+
emit LogAccessAdminTargetCreated(_adminName, target, targetName);
|
613
|
+
}
|
614
|
+
|
615
|
+
|
616
|
+
function _setTargetLocked(address target, bool locked)
|
617
|
+
internal
|
618
|
+
onlyExistingTarget(target)
|
619
|
+
{
|
620
|
+
_authority.setTargetClosed(target, locked);
|
621
|
+
}
|
622
|
+
|
623
|
+
|
624
|
+
function _getRoleName(RoleId roleId) internal view returns (string memory) {
|
625
|
+
if (roleExists(roleId)) {
|
626
|
+
return _roleInfo[roleId].name.toString();
|
627
|
+
}
|
628
|
+
return "<unknown-role>";
|
629
|
+
}
|
630
|
+
|
631
|
+
|
632
|
+
function _checkAuthorization(
|
633
|
+
address authorization,
|
634
|
+
ObjectType expectedDomain,
|
635
|
+
VersionPart expectedRelease,
|
636
|
+
bool checkAlreadyInitialized
|
637
|
+
)
|
638
|
+
internal
|
639
|
+
view
|
640
|
+
{
|
641
|
+
AccessAdminLib.checkAuthorization(
|
642
|
+
address(_authorization),
|
643
|
+
authorization,
|
644
|
+
expectedDomain,
|
645
|
+
expectedRelease,
|
646
|
+
checkAlreadyInitialized);
|
647
|
+
}
|
648
|
+
|
649
|
+
|
650
|
+
function _checkRoleExists(
|
651
|
+
RoleId roleId,
|
652
|
+
bool onlyActiveRole
|
653
|
+
)
|
654
|
+
internal
|
655
|
+
view
|
656
|
+
{
|
657
|
+
if (!roleExists(roleId)) {
|
658
|
+
revert ErrorAccessAdminRoleUnknown(roleId);
|
659
|
+
}
|
660
|
+
|
661
|
+
uint64 roleIdInt = RoleId.unwrap(roleId);
|
662
|
+
if (roleIdInt == _authority.ADMIN_ROLE()) {
|
663
|
+
revert ErrorAccessAdminRoleIsLocked(roleId);
|
664
|
+
}
|
665
|
+
|
666
|
+
// check if role is disabled
|
667
|
+
if (onlyActiveRole && _roleInfo[roleId].pausedAt <= TimestampLib.blockTimestamp()) {
|
668
|
+
revert ErrorAccessAdminRoleIsPaused(roleId);
|
669
|
+
}
|
670
|
+
}
|
671
|
+
|
672
|
+
|
673
|
+
|
674
|
+
/// @dev check if target exists and reverts if it doesn't
|
675
|
+
function _checkTargetExists(
|
676
|
+
address target
|
677
|
+
)
|
678
|
+
internal
|
679
|
+
view
|
680
|
+
{
|
681
|
+
// check not yet created
|
682
|
+
if (!targetExists(target)) {
|
683
|
+
revert ErrorAccessAdminTargetNotCreated(target);
|
684
|
+
}
|
685
|
+
}
|
686
|
+
|
687
|
+
|
688
|
+
function _checkIsRegistered(
|
689
|
+
address registry,
|
690
|
+
address target,
|
691
|
+
ObjectType expectedType
|
692
|
+
)
|
693
|
+
internal
|
694
|
+
view
|
695
|
+
{
|
696
|
+
AccessAdminLib.checkIsRegistered(registry, target, expectedType);
|
697
|
+
}
|
698
|
+
|
699
|
+
function _checkRegistry(address registry) internal view {
|
700
|
+
if (!ContractLib.isRegistry(registry)) {
|
701
|
+
revert ErrorAccessAdminNotRegistry(registry);
|
702
|
+
}
|
703
|
+
}
|
592
704
|
}
|