@etherisc/gif-next 0.0.2-e4b632c-016 → 0.0.2-e4d7e1c-013
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 +205 -21
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +949 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1037 -329
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +741 -139
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +561 -2778
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1997 -634
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +789 -216
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +413 -73
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3792 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +31 -8
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- 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 +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +404 -351
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +372 -173
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +931 -154
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +409 -209
- 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 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +1259 -258
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -323
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +384 -115
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Component.sol/Component.json} +374 -150
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- 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 +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/IComponent.sol/IComponent.json} +319 -250
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +101 -20
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +161 -154
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +177 -163
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
- 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 +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- 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 +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +780 -0
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +169 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +144 -0
- package/contracts/authorization/IAuthorization.sol +26 -0
- package/contracts/authorization/IServiceAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +320 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
- package/contracts/distribution/Distribution.sol +247 -0
- package/contracts/distribution/DistributionService.sol +448 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +45 -0
- package/contracts/distribution/IDistributionService.sol +115 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +131 -19
- package/contracts/instance/IInstanceService.sol +104 -17
- package/contracts/instance/Instance.sol +246 -341
- package/contracts/instance/InstanceAdmin.sol +383 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
- package/contracts/instance/InstanceReader.sol +531 -189
- package/contracts/instance/InstanceService.sol +451 -89
- package/contracts/instance/InstanceServiceManager.sol +14 -31
- package/contracts/instance/InstanceStore.sol +298 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/base/BalanceStore.sol +121 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +109 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +10 -8
- package/contracts/instance/module/IComponents.sol +62 -0
- package/contracts/instance/module/IDistribution.sol +25 -10
- package/contracts/instance/module/IPolicy.sol +81 -21
- package/contracts/instance/module/IRisk.sol +6 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
- package/contracts/oracle/IOracle.sol +41 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +162 -0
- package/contracts/pool/BasicPoolAuthorization.sol +81 -0
- package/contracts/pool/BundleService.sol +386 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +116 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +170 -0
- package/contracts/pool/Pool.sol +333 -0
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +614 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +327 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +63 -0
- package/contracts/product/ClaimService.sol +630 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +88 -0
- package/contracts/product/IClaimService.sol +136 -0
- package/contracts/product/IPolicyService.sol +102 -0
- package/contracts/product/IPricingService.sol +40 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +645 -0
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +306 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +493 -0
- package/contracts/product/RiskService.sol +190 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +82 -35
- package/contracts/registry/IRegistry.sol +134 -20
- package/contracts/registry/IRegistryService.sol +44 -17
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -1
- package/contracts/registry/Registry.sol +580 -267
- package/contracts/registry/RegistryAdmin.sol +191 -0
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +123 -326
- package/contracts/registry/RegistryServiceManager.sol +27 -38
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +525 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
- package/contracts/registry/TokenRegistry.sol +317 -0
- package/contracts/shared/Component.sol +214 -0
- package/contracts/shared/ComponentService.sol +687 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/IComponent.sol +58 -0
- package/contracts/shared/IComponentService.sol +111 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +17 -12
- package/contracts/shared/IPolicyHolder.sol +35 -0
- package/contracts/shared/IRegisterable.sol +24 -5
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +13 -5
- package/contracts/shared/InitializableERC165.sol +35 -0
- package/contracts/shared/InstanceLinkedComponent.sol +194 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +77 -84
- package/contracts/shared/PolicyHolder.sol +63 -0
- package/contracts/shared/Registerable.sol +54 -37
- package/contracts/shared/RegistryLinked.sol +38 -0
- package/contracts/shared/Service.sol +46 -33
- package/contracts/shared/TokenHandler.sol +327 -12
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +367 -0
- package/contracts/staking/IStakingService.sol +127 -0
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +798 -0
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +53 -0
- package/contracts/staking/StakingReader.sol +171 -0
- package/contracts/staking/StakingService.sol +321 -0
- package/contracts/staking/StakingServiceManager.sol +46 -0
- package/contracts/staking/StakingStore.sol +1368 -0
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +234 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +154 -0
- package/contracts/{types → type}/Blocknumber.sol +36 -12
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/ClaimId.sol +80 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/type/Fee.sol +66 -0
- package/contracts/{types → type}/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/{types → type}/NftId.sol +28 -15
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +307 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +75 -0
- package/contracts/type/RoleId.sol +180 -0
- package/contracts/type/Seconds.sol +120 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/{types → type}/StateId.sol +48 -4
- package/contracts/type/String.sol +65 -0
- package/contracts/{types → type}/Timestamp.sol +36 -20
- package/contracts/type/UFixed.sol +263 -0
- package/contracts/{types → type}/Version.sol +61 -6
- package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
- package/contracts/upgradeability/ProxyManager.sol +246 -0
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
- package/contracts/upgradeability/Versionable.sol +62 -0
- package/package.json +12 -8
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -314
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -774
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -754
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -930
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -604
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- 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/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
- package/contracts/components/BaseComponent.sol +0 -86
- package/contracts/components/Distribution.sol +0 -166
- package/contracts/components/IBaseComponent.sol +0 -24
- package/contracts/components/IDistributionComponent.sol +0 -43
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -259
- package/contracts/components/Product.sol +0 -297
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagedSimple.sol +0 -122
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/InstanceAccessManager.sol +0 -288
- package/contracts/instance/base/ComponentServiceBase.sol +0 -39
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/IAccess.sol +0 -38
- package/contracts/instance/module/ISetup.sol +0 -43
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -70
- package/contracts/instance/service/DistributionServiceManager.sol +0 -53
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -37
- package/contracts/instance/service/IProductService.sol +0 -107
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/ERC165.sol +0 -21
- package/contracts/shared/ProxyManager.sol +0 -94
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
- package/contracts/shared/Versionable.sol +0 -147
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/Fee.sol +0 -56
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RiskId.sol +0 -43
- package/contracts/types/RoleId.sol +0 -82
- package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,780 @@
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
6
|
+
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
7
|
+
|
8
|
+
import {IAccess} from "./IAccess.sol";
|
9
|
+
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
10
|
+
import {IAuthorization} from "./IAuthorization.sol";
|
11
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
12
|
+
|
13
|
+
import {ADMIN_ROLE_NAME, PUBLIC_ROLE_NAME} from "./AccessAdmin.sol";
|
14
|
+
import {AccessAdminLib} from "./AccessAdminLib.sol";
|
15
|
+
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
18
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
19
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
20
|
+
import {Selector, SelectorSetLib} from "../type/Selector.sol";
|
21
|
+
import {Str, StrLib} from "../type/String.sol";
|
22
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
23
|
+
import {VersionPart} from "../type/Version.sol";
|
24
|
+
|
25
|
+
function ADMIN_ROLE_NAME() pure returns (string memory) { return "AdminRole"; }
|
26
|
+
function PUBLIC_ROLE_NAME() pure returns (string memory) { return "PublicRole"; }
|
27
|
+
|
28
|
+
|
29
|
+
/**
|
30
|
+
* @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
|
31
|
+
* The contract provides read functions to query all available roles, targets and access rights.
|
32
|
+
* This contract works for both a constructor based deployment or a deployment based on cloning and initialization.
|
33
|
+
*/
|
34
|
+
contract AccessAdmin is
|
35
|
+
AccessManagedUpgradeable,
|
36
|
+
ReentrancyGuardUpgradeable,
|
37
|
+
IAccessAdmin
|
38
|
+
{
|
39
|
+
using EnumerableSet for EnumerableSet.AddressSet;
|
40
|
+
|
41
|
+
/// @dev admin name used for logging only
|
42
|
+
string internal _adminName;
|
43
|
+
|
44
|
+
/// @dev the access manager driving the access admin contract
|
45
|
+
/// hold link to registry and release version
|
46
|
+
AccessManagerCloneable internal _authority;
|
47
|
+
|
48
|
+
/// @dev the authorization contract used for initial access control
|
49
|
+
IAuthorization internal _authorization;
|
50
|
+
|
51
|
+
/// @dev stores the deployer address and allows to create initializers
|
52
|
+
/// that are restricted to the deployer address.
|
53
|
+
address internal _deployer;
|
54
|
+
|
55
|
+
/// @dev the linked NFT ID
|
56
|
+
NftId internal _linkedNftId;
|
57
|
+
|
58
|
+
/// @dev store role info per role id
|
59
|
+
mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
|
60
|
+
|
61
|
+
/// @dev store role name info per role name
|
62
|
+
mapping(Str roleName => RoleNameInfo nameInfo) internal _roleForName;
|
63
|
+
|
64
|
+
/// @dev store array with all created roles
|
65
|
+
RoleId [] internal _roleIds;
|
66
|
+
|
67
|
+
/// @dev store set of current role members for given role
|
68
|
+
mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
|
69
|
+
|
70
|
+
/// @dev store target info per target address
|
71
|
+
mapping(address target => TargetInfo info) internal _targetInfo;
|
72
|
+
|
73
|
+
/// @dev store role name info per role name
|
74
|
+
mapping(Str targetName => address target) internal _targetForName;
|
75
|
+
|
76
|
+
/// @dev store array with all created targets
|
77
|
+
address [] internal _targets;
|
78
|
+
|
79
|
+
/// @dev store all managed functions per target
|
80
|
+
mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
|
81
|
+
|
82
|
+
/// @dev function infos array
|
83
|
+
mapping(address target => mapping(Selector selector => FunctionInfo)) internal _functionInfo;
|
84
|
+
|
85
|
+
/// @dev temporary dynamic functions array
|
86
|
+
bytes4[] private _functions;
|
87
|
+
|
88
|
+
// @dev target type specific role id counters
|
89
|
+
mapping(TargetType => uint64) internal _nextRoleId;
|
90
|
+
|
91
|
+
modifier onlyDeployer() {
|
92
|
+
// special case for cloned AccessAdmin contracts
|
93
|
+
// IMPORTANT cloning and initialize authority needs to be done in a single transaction
|
94
|
+
if (_deployer == address(0)) {
|
95
|
+
_deployer = msg.sender;
|
96
|
+
}
|
97
|
+
|
98
|
+
if (msg.sender != _deployer) {
|
99
|
+
revert ErrorAccessAdminNotDeployer();
|
100
|
+
}
|
101
|
+
_;
|
102
|
+
}
|
103
|
+
|
104
|
+
|
105
|
+
//-------------- initialization functions ------------------------------//
|
106
|
+
|
107
|
+
/// @dev Initializes this admin with the provided accessManager (and authorization specification).
|
108
|
+
/// Internally initializes access manager with this admin and creates basic role setup.
|
109
|
+
function initialize(
|
110
|
+
address authority,
|
111
|
+
string memory adminName
|
112
|
+
)
|
113
|
+
public
|
114
|
+
initializer()
|
115
|
+
{
|
116
|
+
__AccessAdmin_init(authority, adminName);
|
117
|
+
}
|
118
|
+
|
119
|
+
|
120
|
+
function __AccessAdmin_init(
|
121
|
+
address authority,
|
122
|
+
string memory adminName
|
123
|
+
)
|
124
|
+
internal
|
125
|
+
onlyInitializing()
|
126
|
+
onlyDeployer()
|
127
|
+
{
|
128
|
+
// checks
|
129
|
+
// only contract check (authority might not yet be initialized at this time)
|
130
|
+
if (!ContractLib.isContract(authority)) {
|
131
|
+
revert ErrorAccessAdminAuthorityNotContract(authority);
|
132
|
+
}
|
133
|
+
|
134
|
+
// check name not empty
|
135
|
+
if (bytes(adminName).length == 0) {
|
136
|
+
revert ErrorAccessAdminAccessManagerEmptyName();
|
137
|
+
}
|
138
|
+
|
139
|
+
_authority = AccessManagerCloneable(authority);
|
140
|
+
_authority.initialize(address(this));
|
141
|
+
|
142
|
+
// delayed additional check for authority after its initialization
|
143
|
+
if (!ContractLib.isAuthority(authority)) {
|
144
|
+
revert ErrorAccessAdminAccessManagerNotAccessManager(authority);
|
145
|
+
}
|
146
|
+
|
147
|
+
// effects
|
148
|
+
// set and initialize this access manager contract as
|
149
|
+
// the admin (ADMIN_ROLE) of the provided authority
|
150
|
+
__AccessManaged_init(authority);
|
151
|
+
|
152
|
+
// set name for logging
|
153
|
+
_adminName = adminName;
|
154
|
+
|
155
|
+
// set initial linked NFT ID to zero
|
156
|
+
_linkedNftId = NftIdLib.zero();
|
157
|
+
|
158
|
+
// create admin and public roles
|
159
|
+
_initializeAdminAndPublicRoles();
|
160
|
+
}
|
161
|
+
|
162
|
+
//--- view functions for access amdin ---------------------------------------//
|
163
|
+
|
164
|
+
function getRelease() public view virtual returns (VersionPart release) {
|
165
|
+
return _authority.getRelease();
|
166
|
+
}
|
167
|
+
|
168
|
+
|
169
|
+
function getRegistry() public view returns (IRegistry registry) {
|
170
|
+
return _authority.getRegistry();
|
171
|
+
}
|
172
|
+
|
173
|
+
|
174
|
+
function getLinkedNftId() external view returns (NftId linkedNftId) {
|
175
|
+
return _linkedNftId;
|
176
|
+
}
|
177
|
+
|
178
|
+
|
179
|
+
function getLinkedOwner() external view returns (address linkedOwner) {
|
180
|
+
return getRegistry().ownerOf(_linkedNftId);
|
181
|
+
}
|
182
|
+
|
183
|
+
|
184
|
+
function getAuthorization() public view returns (IAuthorization authorization) {
|
185
|
+
return _authorization;
|
186
|
+
}
|
187
|
+
|
188
|
+
|
189
|
+
function isLocked() public view returns (bool locked) {
|
190
|
+
return _authority.isLocked();
|
191
|
+
}
|
192
|
+
|
193
|
+
//--- view functions for roles ------------------------------------------//
|
194
|
+
|
195
|
+
function roles() external view returns (uint256 numberOfRoles) {
|
196
|
+
return _roleIds.length;
|
197
|
+
}
|
198
|
+
|
199
|
+
function getRoleId(uint256 idx) external view returns (RoleId roleId) {
|
200
|
+
return _roleIds[idx];
|
201
|
+
}
|
202
|
+
|
203
|
+
function getAdminRole() public view returns (RoleId roleId) {
|
204
|
+
return RoleId.wrap(_authority.ADMIN_ROLE());
|
205
|
+
}
|
206
|
+
|
207
|
+
function getPublicRole() public view returns (RoleId roleId) {
|
208
|
+
return RoleId.wrap(_authority.PUBLIC_ROLE());
|
209
|
+
}
|
210
|
+
|
211
|
+
function roleExists(string memory name) public view returns (bool exists) {
|
212
|
+
// special case for admin and public roles
|
213
|
+
if (StrLib.eq(name, ADMIN_ROLE_NAME()) || StrLib.eq(name, PUBLIC_ROLE_NAME())) {
|
214
|
+
return true;
|
215
|
+
}
|
216
|
+
|
217
|
+
return _roleForName[StrLib.toStr(name)].roleId.gtz();
|
218
|
+
}
|
219
|
+
|
220
|
+
function roleExists(RoleId roleId) public view returns (bool exists) {
|
221
|
+
return _roleInfo[roleId].createdAt.gtz();
|
222
|
+
}
|
223
|
+
|
224
|
+
function getRoleForName(string memory name) public view returns (RoleId roleId) {
|
225
|
+
return _roleForName[StrLib.toStr(name)].roleId;
|
226
|
+
}
|
227
|
+
|
228
|
+
function getRoleInfo(RoleId roleId) public view returns (RoleInfo memory) {
|
229
|
+
return _roleInfo[roleId];
|
230
|
+
}
|
231
|
+
|
232
|
+
function isRoleActive(RoleId roleId) external view returns (bool isActive) {
|
233
|
+
return _roleInfo[roleId].pausedAt > TimestampLib.current();
|
234
|
+
}
|
235
|
+
|
236
|
+
function isRoleCustom(RoleId roleId) external view returns (bool isActive) {
|
237
|
+
return _roleInfo[roleId].roleType == RoleType.Custom;
|
238
|
+
}
|
239
|
+
|
240
|
+
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
241
|
+
return _roleMembers[roleId].length();
|
242
|
+
}
|
243
|
+
|
244
|
+
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
|
245
|
+
return _roleMembers[roleId].at(idx);
|
246
|
+
}
|
247
|
+
|
248
|
+
function isRoleMember(RoleId roleId, address account) public view returns (bool) {
|
249
|
+
(bool isMember, ) = _authority.hasRole(
|
250
|
+
RoleId.unwrap(roleId),
|
251
|
+
account);
|
252
|
+
return isMember;
|
253
|
+
}
|
254
|
+
|
255
|
+
function isRoleAdmin(RoleId roleId, address account) public virtual view returns (bool) {
|
256
|
+
return isRoleMember(_roleInfo[roleId].adminRoleId, account);
|
257
|
+
}
|
258
|
+
|
259
|
+
//--- view functions for targets ----------------------------------------//
|
260
|
+
|
261
|
+
function targetExists(address target) public view returns (bool exists) {
|
262
|
+
return _targetInfo[target].createdAt.gtz();
|
263
|
+
}
|
264
|
+
|
265
|
+
function targets() external view returns (uint256 numberOfTargets) {
|
266
|
+
return _targets.length;
|
267
|
+
}
|
268
|
+
|
269
|
+
function getTargetAddress(uint256 idx) external view returns (address target) {
|
270
|
+
return _targets[idx];
|
271
|
+
}
|
272
|
+
|
273
|
+
function getTargetInfo(address target) public view returns (TargetInfo memory targetInfo) {
|
274
|
+
return _targetInfo[target];
|
275
|
+
}
|
276
|
+
|
277
|
+
function getTargetForName(Str name) public view returns (address target) {
|
278
|
+
return _targetForName[name];
|
279
|
+
}
|
280
|
+
|
281
|
+
function isTargetLocked(address target) public view returns (bool locked) {
|
282
|
+
return _authority.isLocked() || _authority.isTargetClosed(target);
|
283
|
+
}
|
284
|
+
|
285
|
+
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
286
|
+
return SelectorSetLib.size(_targetFunctions[target]);
|
287
|
+
}
|
288
|
+
|
289
|
+
function getAuthorizedFunction(
|
290
|
+
address target,
|
291
|
+
uint256 idx
|
292
|
+
)
|
293
|
+
external
|
294
|
+
view
|
295
|
+
returns (
|
296
|
+
FunctionInfo memory func,
|
297
|
+
RoleId roleId
|
298
|
+
)
|
299
|
+
{
|
300
|
+
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
301
|
+
func = _functionInfo[target][selector];
|
302
|
+
roleId = RoleIdLib.toRoleId(
|
303
|
+
_authority.getTargetFunctionRole(
|
304
|
+
target,
|
305
|
+
selector.toBytes4()));
|
306
|
+
}
|
307
|
+
|
308
|
+
function deployer() public view returns (address) {
|
309
|
+
return _deployer;
|
310
|
+
}
|
311
|
+
|
312
|
+
//--- internal/private functions -------------------------------------------------//
|
313
|
+
|
314
|
+
function _linkToNftOwnable(address registerable) internal {
|
315
|
+
if (!getRegistry().isRegistered(registerable)) {
|
316
|
+
revert ErrorAccessAdminNotRegistered(registerable);
|
317
|
+
}
|
318
|
+
|
319
|
+
_linkedNftId = getRegistry().getNftIdForAddress(registerable);
|
320
|
+
}
|
321
|
+
|
322
|
+
|
323
|
+
function _initializeAdminAndPublicRoles()
|
324
|
+
internal
|
325
|
+
virtual
|
326
|
+
onlyInitializing()
|
327
|
+
{
|
328
|
+
// setup admin role
|
329
|
+
_createRoleUnchecked(
|
330
|
+
ADMIN_ROLE(),
|
331
|
+
AccessAdminLib.toRole({
|
332
|
+
adminRoleId: ADMIN_ROLE(),
|
333
|
+
roleType: RoleType.Contract,
|
334
|
+
maxMemberCount: 1,
|
335
|
+
name: ADMIN_ROLE_NAME()}));
|
336
|
+
|
337
|
+
// add this contract as admin role member, as contract roles cannot be revoked
|
338
|
+
// and max member count is 1 for admin role this access admin contract will
|
339
|
+
// always be the only admin of the access manager.
|
340
|
+
_roleMembers[
|
341
|
+
RoleIdLib.toRoleId(_authority.ADMIN_ROLE())].add(address(this));
|
342
|
+
|
343
|
+
// setup public role
|
344
|
+
_createRoleUnchecked(
|
345
|
+
PUBLIC_ROLE(),
|
346
|
+
AccessAdminLib.toRole({
|
347
|
+
adminRoleId: ADMIN_ROLE(),
|
348
|
+
roleType: RoleType.Core,
|
349
|
+
maxMemberCount: type(uint32).max,
|
350
|
+
name: PUBLIC_ROLE_NAME()}));
|
351
|
+
}
|
352
|
+
|
353
|
+
|
354
|
+
/// @dev Authorize the functions of the target for the specified role.
|
355
|
+
function _authorizeFunctions(IAuthorization authorization, Str target, RoleId roleId)
|
356
|
+
internal
|
357
|
+
{
|
358
|
+
_authorizeTargetFunctions(
|
359
|
+
getTargetForName(target),
|
360
|
+
_toAuthorizedRoleId(authorization, roleId),
|
361
|
+
authorization.getAuthorizedFunctions(
|
362
|
+
target,
|
363
|
+
roleId),
|
364
|
+
true);
|
365
|
+
}
|
366
|
+
|
367
|
+
|
368
|
+
function _toAuthorizedRoleId(IAuthorization authorization, RoleId roleId)
|
369
|
+
internal
|
370
|
+
returns (RoleId authorizedRoleId)
|
371
|
+
{
|
372
|
+
// special case for service roles (service roles have predefined role ids)
|
373
|
+
if (roleId.isServiceRole()) {
|
374
|
+
|
375
|
+
// create service role if missing
|
376
|
+
if (!roleExists(roleId)) {
|
377
|
+
_createRole(
|
378
|
+
roleId,
|
379
|
+
AccessAdminLib.toRole(
|
380
|
+
ADMIN_ROLE(),
|
381
|
+
RoleType.Contract,
|
382
|
+
1,
|
383
|
+
authorization.getRoleName(roleId)));
|
384
|
+
}
|
385
|
+
|
386
|
+
return roleId;
|
387
|
+
}
|
388
|
+
|
389
|
+
string memory roleName = authorization.getRoleInfo(roleId).name.toString();
|
390
|
+
return authorizedRoleId = getRoleForName(roleName);
|
391
|
+
}
|
392
|
+
|
393
|
+
|
394
|
+
function _authorizeTargetFunctions(
|
395
|
+
address target,
|
396
|
+
RoleId roleId,
|
397
|
+
FunctionInfo[] memory functions,
|
398
|
+
bool addFunctions
|
399
|
+
)
|
400
|
+
internal
|
401
|
+
{
|
402
|
+
if (addFunctions && roleId == getAdminRole()) {
|
403
|
+
revert ErrorAccessAdminAuthorizeForAdminRoleInvalid(target);
|
404
|
+
}
|
405
|
+
|
406
|
+
// apply authz via access manager
|
407
|
+
_grantRoleAccessToFunctions(
|
408
|
+
target,
|
409
|
+
roleId,
|
410
|
+
functions,
|
411
|
+
addFunctions); // add functions
|
412
|
+
}
|
413
|
+
|
414
|
+
|
415
|
+
/// @dev grant the specified role access to all functions in the provided selector list
|
416
|
+
function _grantRoleAccessToFunctions(
|
417
|
+
address target,
|
418
|
+
RoleId roleId,
|
419
|
+
FunctionInfo[] memory functions,
|
420
|
+
bool addFunctions
|
421
|
+
)
|
422
|
+
internal
|
423
|
+
{
|
424
|
+
_checkTargetExists(target);
|
425
|
+
_checkRoleExists(roleId, true, true);
|
426
|
+
|
427
|
+
_authority.setTargetFunctionRole(
|
428
|
+
target,
|
429
|
+
AccessAdminLib.getSelectors(functions),
|
430
|
+
RoleId.unwrap(roleId));
|
431
|
+
|
432
|
+
// update function set and log function grantings
|
433
|
+
for (uint256 i = 0; i < functions.length; i++) {
|
434
|
+
_updateFunctionAccess(
|
435
|
+
target,
|
436
|
+
roleId,
|
437
|
+
functions[i],
|
438
|
+
addFunctions);
|
439
|
+
}
|
440
|
+
}
|
441
|
+
|
442
|
+
|
443
|
+
function _updateFunctionAccess(
|
444
|
+
address target,
|
445
|
+
RoleId roleId,
|
446
|
+
FunctionInfo memory func,
|
447
|
+
bool addFunction
|
448
|
+
)
|
449
|
+
internal
|
450
|
+
{
|
451
|
+
// update functions info
|
452
|
+
Selector selector = func.selector;
|
453
|
+
_functionInfo[target][selector] = func;
|
454
|
+
|
455
|
+
// update function sets
|
456
|
+
if (addFunction) { SelectorSetLib.add(_targetFunctions[target], selector); }
|
457
|
+
else { SelectorSetLib.remove(_targetFunctions[target], selector); }
|
458
|
+
|
459
|
+
// logging
|
460
|
+
emit LogAccessAdminFunctionGranted(
|
461
|
+
_adminName,
|
462
|
+
target,
|
463
|
+
string(abi.encodePacked(
|
464
|
+
func.name.toString(),
|
465
|
+
"(): ",
|
466
|
+
_getRoleName(roleId))));
|
467
|
+
}
|
468
|
+
|
469
|
+
|
470
|
+
/// @dev grant the specified role to the provided account
|
471
|
+
function _grantRoleToAccount(RoleId roleId, address account)
|
472
|
+
internal
|
473
|
+
{
|
474
|
+
_checkRoleExists(roleId, true, false);
|
475
|
+
|
476
|
+
// check max role members will not be exceeded
|
477
|
+
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
478
|
+
revert ErrorAccessAdminRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
479
|
+
}
|
480
|
+
|
481
|
+
// check account is contract for contract role
|
482
|
+
if (
|
483
|
+
_roleInfo[roleId].roleType == RoleType.Contract &&
|
484
|
+
!ContractLib.isContract(account) // will fail in account's constructor
|
485
|
+
) {
|
486
|
+
revert ErrorAccessAdminRoleMemberNotContract(roleId, account);
|
487
|
+
}
|
488
|
+
|
489
|
+
// effects
|
490
|
+
_roleMembers[roleId].add(account);
|
491
|
+
_authority.grantRole(
|
492
|
+
RoleId.unwrap(roleId),
|
493
|
+
account,
|
494
|
+
0);
|
495
|
+
|
496
|
+
emit LogAccessAdminRoleGranted(_adminName, account, _getRoleName(roleId));
|
497
|
+
}
|
498
|
+
|
499
|
+
|
500
|
+
/// @dev revoke the specified role from the provided account
|
501
|
+
function _revokeRoleFromAccount(RoleId roleId, address account)
|
502
|
+
internal
|
503
|
+
{
|
504
|
+
_checkRoleExists(roleId, false, false);
|
505
|
+
|
506
|
+
// check for attempt to revoke contract role
|
507
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
508
|
+
revert ErrorAccessAdminRoleMemberRemovalDisabled(roleId, account);
|
509
|
+
}
|
510
|
+
|
511
|
+
// effects
|
512
|
+
_roleMembers[roleId].remove(account);
|
513
|
+
_authority.revokeRole(
|
514
|
+
RoleId.unwrap(roleId),
|
515
|
+
account);
|
516
|
+
|
517
|
+
emit LogAccessAdminRoleRevoked(_adminName, account, _roleInfo[roleId].name.toString());
|
518
|
+
}
|
519
|
+
|
520
|
+
|
521
|
+
/// @dev Creates a role based on the provided parameters.
|
522
|
+
/// Checks that the provided role and role id and role name not already used.
|
523
|
+
function _createRole(
|
524
|
+
RoleId roleId,
|
525
|
+
RoleInfo memory info
|
526
|
+
)
|
527
|
+
internal
|
528
|
+
{
|
529
|
+
// skip admin and public roles (they are created during initialization)
|
530
|
+
if (roleId == ADMIN_ROLE() || roleId == PUBLIC_ROLE()) {
|
531
|
+
return;
|
532
|
+
}
|
533
|
+
|
534
|
+
AccessAdminLib.checkRoleCreation(this, roleId, info);
|
535
|
+
_createRoleUnchecked(roleId, info);
|
536
|
+
}
|
537
|
+
|
538
|
+
|
539
|
+
/// @dev Activates or deactivates role.
|
540
|
+
/// The role activ property is indirectly controlled over the pausedAt timestamp.
|
541
|
+
function _setRoleActive(RoleId roleId, bool active)
|
542
|
+
internal
|
543
|
+
{
|
544
|
+
if (active) {
|
545
|
+
_roleInfo[roleId].pausedAt = TimestampLib.max();
|
546
|
+
} else {
|
547
|
+
_roleInfo[roleId].pausedAt = TimestampLib.current();
|
548
|
+
}
|
549
|
+
}
|
550
|
+
|
551
|
+
|
552
|
+
function _createManagedTarget(
|
553
|
+
address target,
|
554
|
+
string memory targetName,
|
555
|
+
TargetType targetType
|
556
|
+
)
|
557
|
+
internal
|
558
|
+
returns (RoleId contractRoleId)
|
559
|
+
{
|
560
|
+
return _createTarget(target, targetName, targetType, true);
|
561
|
+
}
|
562
|
+
|
563
|
+
|
564
|
+
function _createUncheckedTarget(
|
565
|
+
address target,
|
566
|
+
string memory targetName,
|
567
|
+
TargetType targetType
|
568
|
+
)
|
569
|
+
internal
|
570
|
+
{
|
571
|
+
_createTarget(target, targetName, targetType, false);
|
572
|
+
}
|
573
|
+
|
574
|
+
|
575
|
+
function _createTarget(
|
576
|
+
address target,
|
577
|
+
string memory targetName,
|
578
|
+
TargetType targetType,
|
579
|
+
bool checkAuthority
|
580
|
+
)
|
581
|
+
private
|
582
|
+
returns (RoleId contractRoleId)
|
583
|
+
{
|
584
|
+
// checks
|
585
|
+
AccessAdminLib.checkTargetCreation(this, target, targetName, checkAuthority);
|
586
|
+
|
587
|
+
// effects
|
588
|
+
contractRoleId = _createTargetUnchecked(
|
589
|
+
target,
|
590
|
+
targetName,
|
591
|
+
targetType,
|
592
|
+
checkAuthority);
|
593
|
+
|
594
|
+
// deal with token handler, if applicable
|
595
|
+
(
|
596
|
+
address tokenHandler,
|
597
|
+
string memory tokenHandlerName
|
598
|
+
) = AccessAdminLib.getTokenHandler(target, targetName, targetType);
|
599
|
+
|
600
|
+
if (tokenHandler != address(0)) {
|
601
|
+
_createTargetUnchecked(
|
602
|
+
tokenHandler,
|
603
|
+
tokenHandlerName,
|
604
|
+
targetType,
|
605
|
+
checkAuthority);
|
606
|
+
}
|
607
|
+
}
|
608
|
+
|
609
|
+
|
610
|
+
function _createRoleUnchecked(
|
611
|
+
RoleId roleId,
|
612
|
+
RoleInfo memory info
|
613
|
+
)
|
614
|
+
private
|
615
|
+
{
|
616
|
+
// create role info
|
617
|
+
info.createdAt = TimestampLib.current();
|
618
|
+
info.pausedAt = TimestampLib.max();
|
619
|
+
_roleInfo[roleId] = info;
|
620
|
+
|
621
|
+
// create role name info
|
622
|
+
_roleForName[info.name] = RoleNameInfo({
|
623
|
+
roleId: roleId,
|
624
|
+
exists: true});
|
625
|
+
|
626
|
+
// add role to list of roles
|
627
|
+
_roleIds.push(roleId);
|
628
|
+
|
629
|
+
emit LogAccessAdminRoleCreated(_adminName, roleId, info.roleType, info.adminRoleId, info.name.toString());
|
630
|
+
}
|
631
|
+
|
632
|
+
|
633
|
+
/// @dev Creates a new target and a corresponding contract role.
|
634
|
+
/// The function assigns the role to the target and logs the creation.
|
635
|
+
function _createTargetUnchecked(
|
636
|
+
address target,
|
637
|
+
string memory targetName,
|
638
|
+
TargetType targetType,
|
639
|
+
bool managed
|
640
|
+
)
|
641
|
+
internal
|
642
|
+
returns (RoleId targetRoleId)
|
643
|
+
{
|
644
|
+
// create target role (if not existing)
|
645
|
+
string memory roleName;
|
646
|
+
(targetRoleId, roleName) = _getOrCreateTargetRoleIdAndName(target, targetName, targetType);
|
647
|
+
|
648
|
+
if (!roleExists(targetRoleId)) {
|
649
|
+
_createRole(
|
650
|
+
targetRoleId,
|
651
|
+
AccessAdminLib.toRole(ADMIN_ROLE(), IAccess.RoleType.Contract, 1, roleName));
|
652
|
+
}
|
653
|
+
|
654
|
+
// create target info
|
655
|
+
Str name = StrLib.toStr(targetName);
|
656
|
+
_targetInfo[target] = TargetInfo({
|
657
|
+
name: name,
|
658
|
+
targetType: targetType,
|
659
|
+
roleId: targetRoleId,
|
660
|
+
createdAt: TimestampLib.current()
|
661
|
+
});
|
662
|
+
|
663
|
+
// create name to target mapping
|
664
|
+
_targetForName[name] = target;
|
665
|
+
|
666
|
+
// add target to list of targets
|
667
|
+
_targets.push(target);
|
668
|
+
|
669
|
+
// grant contract role to target
|
670
|
+
_grantRoleToAccount(targetRoleId, target);
|
671
|
+
|
672
|
+
emit LogAccessAdminTargetCreated(_adminName, targetName, managed, target, targetRoleId);
|
673
|
+
}
|
674
|
+
|
675
|
+
|
676
|
+
function _getOrCreateTargetRoleIdAndName(
|
677
|
+
address target,
|
678
|
+
string memory targetName,
|
679
|
+
TargetType targetType
|
680
|
+
)
|
681
|
+
internal
|
682
|
+
returns (
|
683
|
+
RoleId roleId,
|
684
|
+
string memory roleName
|
685
|
+
)
|
686
|
+
{
|
687
|
+
// get roleId
|
688
|
+
if (targetType == TargetType.Service || targetType == TargetType.GenericService) {
|
689
|
+
roleId = AccessAdminLib.getServiceRoleId(target, targetType);
|
690
|
+
} else {
|
691
|
+
roleId = AccessAdminLib.getTargetRoleId(target, targetType, _nextRoleId[targetType]);
|
692
|
+
|
693
|
+
// increment target type specific role id counter
|
694
|
+
_nextRoleId[targetType]++;
|
695
|
+
}
|
696
|
+
|
697
|
+
// create role name
|
698
|
+
roleName = AccessAdminLib.toRoleName(targetName);
|
699
|
+
}
|
700
|
+
|
701
|
+
|
702
|
+
function _setTargetLocked(address target, bool locked)
|
703
|
+
internal
|
704
|
+
{
|
705
|
+
_checkTargetExists(target);
|
706
|
+
_authority.setTargetClosed(target, locked);
|
707
|
+
}
|
708
|
+
|
709
|
+
|
710
|
+
function _getRoleName(RoleId roleId) internal view returns (string memory) {
|
711
|
+
if (roleExists(roleId)) {
|
712
|
+
return _roleInfo[roleId].name.toString();
|
713
|
+
}
|
714
|
+
return "<unknown-role>";
|
715
|
+
}
|
716
|
+
|
717
|
+
|
718
|
+
function _checkAuthorization(
|
719
|
+
address authorization,
|
720
|
+
ObjectType expectedDomain,
|
721
|
+
VersionPart expectedRelease,
|
722
|
+
bool expectServiceAuthorization,
|
723
|
+
bool checkAlreadyInitialized
|
724
|
+
)
|
725
|
+
internal
|
726
|
+
view
|
727
|
+
{
|
728
|
+
AccessAdminLib.checkAuthorization(
|
729
|
+
address(_authorization),
|
730
|
+
authorization,
|
731
|
+
expectedDomain,
|
732
|
+
expectedRelease,
|
733
|
+
expectServiceAuthorization,
|
734
|
+
checkAlreadyInitialized);
|
735
|
+
}
|
736
|
+
|
737
|
+
|
738
|
+
function _checkRoleExists(
|
739
|
+
RoleId roleId,
|
740
|
+
bool onlyActiveRole,
|
741
|
+
bool allowAdminAndPublicRoles
|
742
|
+
)
|
743
|
+
internal
|
744
|
+
view
|
745
|
+
{
|
746
|
+
if (!roleExists(roleId)) {
|
747
|
+
revert ErrorAccessAdminRoleUnknown(roleId);
|
748
|
+
}
|
749
|
+
|
750
|
+
if (!allowAdminAndPublicRoles) {
|
751
|
+
if (roleId == ADMIN_ROLE()) {
|
752
|
+
revert ErrorAccessAdminInvalidUserOfAdminRole();
|
753
|
+
}
|
754
|
+
|
755
|
+
// check role is not public role
|
756
|
+
if (roleId == PUBLIC_ROLE()) {
|
757
|
+
revert ErrorAccessAdminInvalidUserOfPublicRole();
|
758
|
+
}
|
759
|
+
}
|
760
|
+
|
761
|
+
// check if role is disabled
|
762
|
+
if (onlyActiveRole && _roleInfo[roleId].pausedAt <= TimestampLib.current()) {
|
763
|
+
revert ErrorAccessAdminRoleIsPaused(roleId);
|
764
|
+
}
|
765
|
+
}
|
766
|
+
|
767
|
+
|
768
|
+
/// @dev check if target exists and reverts if it doesn't
|
769
|
+
function _checkTargetExists(
|
770
|
+
address target
|
771
|
+
)
|
772
|
+
internal
|
773
|
+
view
|
774
|
+
{
|
775
|
+
// check not yet created
|
776
|
+
if (!targetExists(target)) {
|
777
|
+
revert ErrorAccessAdminTargetNotCreated(target);
|
778
|
+
}
|
779
|
+
}
|
780
|
+
}
|