@etherisc/gif-next 0.0.2-f1fe735-758 → 0.0.2-f2273b3-211
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 +59 -9
- 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 +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
- 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/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +211 -270
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +144 -544
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +396 -265
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +147 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +201 -261
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +244 -63
- 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 +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -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 +1479 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -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 +161 -73
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +116 -126
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +190 -211
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1462 -241
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1044 -316
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +135 -330
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +97 -111
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +650 -529
- 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 +48 -7
- 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 +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +141 -126
- 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 +127 -398
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +331 -204
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +206 -29
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -312
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
- 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 +653 -532
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -237
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +459 -309
- 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 +141 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +258 -536
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -55
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
- 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 +585 -112
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +449 -422
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +48 -7
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +82 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +5 -5
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +576 -516
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -113
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -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 +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +547 -224
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
- 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 +15 -47
- 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 +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -351
- 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 +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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- 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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +137 -139
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +130 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +216 -375
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +48 -7
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +126 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -63
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +183 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +181 -135
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/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 +55 -2
- 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 +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +181 -14
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- 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/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
- 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 +66 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/{shared → authorization}/AccessAdmin.sol +310 -380
- package/contracts/authorization/AccessManagerCloneable.sol +149 -0
- package/contracts/authorization/Authorization.sol +337 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +37 -62
- package/contracts/authorization/IAuthorization.sol +74 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -6
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +41 -25
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +153 -125
- package/contracts/distribution/DistributionService.sol +172 -111
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +26 -40
- package/contracts/distribution/IDistributionService.sol +42 -22
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +438 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +27 -44
- package/contracts/instance/IInstanceService.sol +16 -41
- package/contracts/instance/Instance.sol +103 -119
- package/contracts/instance/InstanceAdmin.sol +346 -240
- package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
- package/contracts/instance/InstanceReader.sol +293 -48
- package/contracts/instance/InstanceService.sol +145 -180
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +29 -3
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +14 -15
- package/contracts/instance/module/IDistribution.sol +2 -2
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +64 -53
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +204 -105
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +209 -163
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +546 -241
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +83 -78
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +51 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +365 -175
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +29 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +476 -269
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +66 -62
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +233 -132
- package/contracts/product/RiskService.sol +145 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +74 -32
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -220
- package/contracts/registry/RegistryAdmin.sol +238 -219
- package/contracts/registry/RegistryService.sol +41 -66
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +511 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +107 -60
- package/contracts/registry/TokenRegistry.sol +8 -10
- package/contracts/shared/Component.sol +74 -128
- package/contracts/shared/ComponentService.sol +456 -384
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +29 -18
- package/contracts/shared/ContractLib.sol +253 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +49 -39
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +96 -43
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +18 -36
- package/contracts/shared/TokenHandler.sol +309 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +9 -13
- package/contracts/staking/IStakingService.sol +24 -9
- package/contracts/staking/StakeManagerLib.sol +85 -43
- package/contracts/staking/Staking.sol +96 -79
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +21 -33
- package/contracts/staking/StakingService.sol +79 -37
- package/contracts/staking/StakingServiceManager.sol +8 -7
- package/contracts/staking/StakingStore.sol +12 -22
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +89 -27
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +35 -4
- package/contracts/type/RoleId.sol +75 -94
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +40 -121
- package/contracts/type/Version.sol +18 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +6 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1177
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/instance/base/ObjectManager.sol +0 -80
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -503
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,16 +1,23 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
6
5
|
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
6
|
+
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
7
7
|
|
8
|
+
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
9
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
8
10
|
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
9
|
-
import {
|
11
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
12
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
10
13
|
import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
|
11
14
|
import {Str, StrLib} from "../type/String.sol";
|
12
|
-
import {
|
15
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
16
|
+
import {VersionPart} from "../type/Version.sol";
|
13
17
|
|
18
|
+
interface IAccessManagedChecker {
|
19
|
+
function authority() external view returns (address);
|
20
|
+
}
|
14
21
|
|
15
22
|
/**
|
16
23
|
* @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
|
@@ -19,6 +26,7 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
|
19
26
|
*/
|
20
27
|
contract AccessAdmin is
|
21
28
|
AccessManagedUpgradeable,
|
29
|
+
ReentrancyGuardUpgradeable,
|
22
30
|
IAccessAdmin
|
23
31
|
{
|
24
32
|
using EnumerableSet for EnumerableSet.AddressSet;
|
@@ -26,19 +34,13 @@ contract AccessAdmin is
|
|
26
34
|
string public constant ADMIN_ROLE_NAME = "AdminRole";
|
27
35
|
string public constant PUBLIC_ROLE_NAME = "PublicRole";
|
28
36
|
|
29
|
-
uint64 public constant MANAGER_ROLE = type(uint64).min + 1;
|
30
|
-
string public constant MANAGER_ROLE_NAME = "ManagerRole";
|
31
|
-
|
32
37
|
/// @dev the OpenZeppelin access manager driving the access admin contract
|
33
|
-
|
38
|
+
AccessManagerCloneable internal _authority;
|
34
39
|
|
35
40
|
/// @dev stores the deployer address and allows to create initializers
|
36
41
|
/// that are restricted to the deployer address.
|
37
42
|
address internal _deployer;
|
38
43
|
|
39
|
-
/// @dev required role for state changes to this contract
|
40
|
-
RoleId internal _managerRoleId;
|
41
|
-
|
42
44
|
/// @dev store role info per role id
|
43
45
|
mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
|
44
46
|
|
@@ -63,15 +65,15 @@ contract AccessAdmin is
|
|
63
65
|
/// @dev store all managed functions per target
|
64
66
|
mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
|
65
67
|
|
66
|
-
/// @dev
|
67
|
-
mapping(address target => mapping(Selector selector =>
|
68
|
+
/// @dev function infos array
|
69
|
+
mapping(address target => mapping(Selector selector => FunctionInfo)) internal _functionInfo;
|
68
70
|
|
69
71
|
/// @dev temporary dynamic functions array
|
70
72
|
bytes4[] private _functions;
|
71
73
|
|
72
74
|
modifier onlyDeployer() {
|
73
75
|
// special case for cloned AccessAdmin contracts
|
74
|
-
// IMPORTANT cloning and
|
76
|
+
// IMPORTANT cloning and initialize authority needs to be done in a single transaction
|
75
77
|
if (_deployer == address(0)) {
|
76
78
|
_deployer = msg.sender;
|
77
79
|
}
|
@@ -83,11 +85,9 @@ contract AccessAdmin is
|
|
83
85
|
}
|
84
86
|
|
85
87
|
modifier onlyRoleAdmin(RoleId roleId) {
|
86
|
-
|
87
|
-
revert ErrorRoleUnknown(roleId);
|
88
|
-
}
|
88
|
+
_checkRoleExists(roleId, false);
|
89
89
|
|
90
|
-
if (!
|
90
|
+
if (!hasAdminRole(msg.sender, roleId)) {
|
91
91
|
revert ErrorNotAdminOfRole(_roleInfo[roleId].adminRoleId);
|
92
92
|
}
|
93
93
|
_;
|
@@ -100,8 +100,15 @@ contract AccessAdmin is
|
|
100
100
|
_;
|
101
101
|
}
|
102
102
|
|
103
|
-
modifier onlyExistingRole(
|
104
|
-
|
103
|
+
modifier onlyExistingRole(
|
104
|
+
RoleId roleId,
|
105
|
+
bool onlyActiveRole,
|
106
|
+
bool allowLockedRoles
|
107
|
+
)
|
108
|
+
{
|
109
|
+
if (!allowLockedRoles) {
|
110
|
+
_checkRoleExists(roleId, onlyActiveRole);
|
111
|
+
}
|
105
112
|
_;
|
106
113
|
}
|
107
114
|
|
@@ -110,159 +117,91 @@ contract AccessAdmin is
|
|
110
117
|
_;
|
111
118
|
}
|
112
119
|
|
113
|
-
|
114
|
-
_deployer = msg.sender;
|
115
|
-
_authority = new AccessManager(address(this));
|
120
|
+
//-------------- initialization functions ------------------------------//
|
116
121
|
|
117
|
-
|
118
|
-
_createInitialRoleSetup();
|
122
|
+
// event LogAccessAdminDebug(string message);
|
119
123
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
function createRole(
|
126
|
-
RoleId roleId,
|
127
|
-
RoleId adminRoleId,
|
128
|
-
string memory name,
|
129
|
-
uint256 maxMemberCount,
|
130
|
-
bool memberRemovalDisabled
|
124
|
+
/// @dev Initializes this admin with the provided accessManager (and authorization specification).
|
125
|
+
/// Internally initializes access manager with this admin and creates basic role setup.
|
126
|
+
function initialize(
|
127
|
+
AccessManagerCloneable authority
|
131
128
|
)
|
132
|
-
|
133
|
-
|
134
|
-
restricted()
|
129
|
+
public
|
130
|
+
initializer()
|
135
131
|
{
|
136
|
-
|
132
|
+
__AccessAdmin_init(authority);
|
137
133
|
}
|
138
134
|
|
139
|
-
function setRoleDisabled(
|
140
|
-
RoleId roleId,
|
141
|
-
bool disabled
|
142
|
-
)
|
143
|
-
external
|
144
|
-
virtual
|
145
|
-
restricted()
|
146
|
-
{
|
147
|
-
_setRoleDisabled(roleId, disabled);
|
148
|
-
}
|
149
135
|
|
150
|
-
function
|
151
|
-
|
152
|
-
RoleId roleId
|
136
|
+
function __AccessAdmin_init(
|
137
|
+
AccessManagerCloneable authority
|
153
138
|
)
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
restricted()
|
139
|
+
internal
|
140
|
+
onlyInitializing()
|
141
|
+
onlyDeployer() // initializes deployer if not initialized yet
|
158
142
|
{
|
159
|
-
|
160
|
-
}
|
143
|
+
authority.initialize(address(this));
|
161
144
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
external
|
167
|
-
virtual
|
168
|
-
onlyRoleAdmin(roleId)
|
169
|
-
restricted()
|
170
|
-
{
|
171
|
-
_revokeRoleFromAccount(roleId, account);
|
172
|
-
}
|
145
|
+
// set and initialize this access manager contract as
|
146
|
+
// the admin (ADMIN_ROLE) of the provided authority
|
147
|
+
__AccessManaged_init(address(authority));
|
148
|
+
_authority = authority;
|
173
149
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
onlyRoleMember(roleId)
|
180
|
-
restricted()
|
181
|
-
{
|
182
|
-
_revokeRoleFromAccount(roleId, msg.sender);
|
150
|
+
// create admin and public roles
|
151
|
+
_initializeAdminAndPublicRoles();
|
152
|
+
|
153
|
+
// additional use case specific initialization
|
154
|
+
_initializeCustom();
|
183
155
|
}
|
184
156
|
|
185
|
-
//--- target management functions ---------------------------------------//
|
186
157
|
|
187
|
-
function
|
188
|
-
|
189
|
-
string memory name
|
190
|
-
)
|
191
|
-
external
|
192
|
-
virtual
|
193
|
-
restricted()
|
194
|
-
{
|
195
|
-
_createTarget(target, name);
|
158
|
+
function getRegistry() public view returns (IRegistry registry) {
|
159
|
+
return _authority.getRegistry();
|
196
160
|
}
|
197
161
|
|
198
|
-
function setTargetLocked(
|
199
|
-
address target,
|
200
|
-
bool locked
|
201
|
-
)
|
202
|
-
external
|
203
|
-
virtual
|
204
|
-
onlyExistingTarget(target)
|
205
|
-
restricted()
|
206
|
-
{
|
207
|
-
_authority.setTargetClosed(target, locked);
|
208
162
|
|
209
|
-
|
163
|
+
function getRelease() public view returns (VersionPart release) {
|
164
|
+
return _authority.getRelease();
|
210
165
|
}
|
211
166
|
|
212
|
-
function authorizeFunctions(
|
213
|
-
address target,
|
214
|
-
RoleId roleId,
|
215
|
-
Function[] memory functions
|
216
|
-
)
|
217
|
-
external
|
218
|
-
virtual
|
219
|
-
onlyExistingTarget(target)
|
220
|
-
onlyExistingRole(roleId)
|
221
|
-
restricted()
|
222
|
-
{
|
223
|
-
_authorizeTargetFunctions(target, roleId, functions);
|
224
|
-
}
|
225
167
|
|
226
|
-
function
|
227
|
-
|
228
|
-
Function[] memory functions
|
229
|
-
)
|
230
|
-
external
|
168
|
+
function _initializeAdminAndPublicRoles()
|
169
|
+
internal
|
231
170
|
virtual
|
232
|
-
|
171
|
+
onlyInitializing()
|
233
172
|
{
|
234
|
-
|
235
|
-
}
|
173
|
+
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
236
174
|
|
175
|
+
// setup admin role
|
176
|
+
_createRoleUnchecked(
|
177
|
+
ADMIN_ROLE(),
|
178
|
+
toRole({
|
179
|
+
adminRoleId: ADMIN_ROLE(),
|
180
|
+
roleType: RoleType.Contract,
|
181
|
+
maxMemberCount: 1,
|
182
|
+
name: ADMIN_ROLE_NAME}));
|
237
183
|
|
238
|
-
|
239
|
-
|
240
|
-
}
|
184
|
+
// add this contract as admin role member
|
185
|
+
_roleMembers[adminRoleId].add(address(this));
|
241
186
|
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
)
|
252
|
-
{
|
253
|
-
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
187
|
+
// setup public role
|
188
|
+
_createRoleUnchecked(
|
189
|
+
PUBLIC_ROLE(),
|
190
|
+
toRole({
|
191
|
+
adminRoleId: ADMIN_ROLE(),
|
192
|
+
roleType: RoleType.Gif,
|
193
|
+
maxMemberCount: type(uint32).max,
|
194
|
+
name: PUBLIC_ROLE_NAME}));
|
195
|
+
}
|
254
196
|
|
255
|
-
func = Function({
|
256
|
-
selector: selector,
|
257
|
-
name: _functionName[target][selector]});
|
258
197
|
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
}
|
198
|
+
function _initializeCustom()
|
199
|
+
internal
|
200
|
+
virtual
|
201
|
+
onlyInitializing()
|
202
|
+
{ }
|
264
203
|
|
265
|
-
//--- view functions
|
204
|
+
//--- view functions for roles ------------------------------------------//
|
266
205
|
|
267
206
|
function roles() external view returns (uint256 numberOfRoles) {
|
268
207
|
return _roleIds.length;
|
@@ -280,16 +219,8 @@ contract AccessAdmin is
|
|
280
219
|
return RoleId.wrap(_authority.PUBLIC_ROLE());
|
281
220
|
}
|
282
221
|
|
283
|
-
function getManagerRole() public view returns (RoleId roleId) {
|
284
|
-
return _managerRoleId;
|
285
|
-
}
|
286
|
-
|
287
222
|
function roleExists(RoleId roleId) public view returns (bool exists) {
|
288
|
-
return _roleInfo[roleId].
|
289
|
-
}
|
290
|
-
|
291
|
-
function isRoleDisabled(RoleId roleId) public view returns (bool isActive) {
|
292
|
-
return _roleInfo[roleId].disabledAt <= TimestampLib.blockTimestamp();
|
223
|
+
return _roleInfo[roleId].createdAt.gtz();
|
293
224
|
}
|
294
225
|
|
295
226
|
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
|
@@ -300,6 +231,15 @@ contract AccessAdmin is
|
|
300
231
|
return _roleForName[name];
|
301
232
|
}
|
302
233
|
|
234
|
+
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
235
|
+
return _roleMembers[roleId].length();
|
236
|
+
}
|
237
|
+
|
238
|
+
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
|
239
|
+
return _roleMembers[roleId].at(idx);
|
240
|
+
}
|
241
|
+
|
242
|
+
// TODO false because not role member or because role not exists?
|
303
243
|
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
304
244
|
(bool isMember, ) = _authority.hasRole(
|
305
245
|
RoleId.unwrap(roleId),
|
@@ -307,22 +247,21 @@ contract AccessAdmin is
|
|
307
247
|
return isMember;
|
308
248
|
}
|
309
249
|
|
310
|
-
function
|
311
|
-
|
250
|
+
function hasAdminRole(address account, RoleId roleId)
|
251
|
+
public
|
252
|
+
virtual
|
253
|
+
view
|
254
|
+
returns (bool)
|
255
|
+
{
|
256
|
+
return hasRole(account, _roleInfo[roleId].adminRoleId);
|
312
257
|
}
|
313
258
|
|
314
|
-
|
315
|
-
return _roleMembers[roleId].at(idx);
|
316
|
-
}
|
259
|
+
//--- view functions for targets ----------------------------------------//
|
317
260
|
|
318
261
|
function targetExists(address target) public view returns (bool exists) {
|
319
262
|
return _targetInfo[target].createdAt.gtz();
|
320
263
|
}
|
321
264
|
|
322
|
-
function isTargetLocked(address target) public view returns (bool locked) {
|
323
|
-
return _authority.isTargetClosed(target);
|
324
|
-
}
|
325
|
-
|
326
265
|
function targets() external view returns (uint256 numberOfTargets) {
|
327
266
|
return _targets.length;
|
328
267
|
}
|
@@ -335,34 +274,61 @@ contract AccessAdmin is
|
|
335
274
|
return _targetInfo[target];
|
336
275
|
}
|
337
276
|
|
338
|
-
function getTargetForName(Str name)
|
277
|
+
function getTargetForName(Str name) public view returns (address target) {
|
339
278
|
return _targetForName[name];
|
340
279
|
}
|
341
280
|
|
342
|
-
function
|
343
|
-
|
344
|
-
|
345
|
-
}
|
281
|
+
function isTargetLocked(address target) public view returns (bool locked) {
|
282
|
+
return _authority.isTargetClosed(target);
|
283
|
+
}
|
346
284
|
|
347
|
-
|
348
|
-
|
349
|
-
|
285
|
+
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
286
|
+
return SelectorSetLib.size(_targetFunctions[target]);
|
287
|
+
}
|
350
288
|
|
351
|
-
|
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()));
|
352
306
|
}
|
353
307
|
|
354
|
-
function canCall(address caller, address target, Selector selector) external view returns (bool can) {
|
308
|
+
function canCall(address caller, address target, Selector selector) external virtual view returns (bool can) {
|
355
309
|
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
356
310
|
}
|
357
311
|
|
358
|
-
function
|
359
|
-
return
|
312
|
+
function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) public view returns (RoleInfo memory) {
|
313
|
+
return RoleInfo({
|
314
|
+
name: StrLib.toStr(name),
|
315
|
+
adminRoleId: adminRoleId,
|
316
|
+
roleType: roleType,
|
317
|
+
maxMemberCount: maxMemberCount,
|
318
|
+
createdAt: TimestampLib.blockTimestamp(),
|
319
|
+
pausedAt: TimestampLib.max()
|
320
|
+
});
|
321
|
+
}
|
322
|
+
|
323
|
+
function toFunction(bytes4 selector, string memory name) public view returns (FunctionInfo memory) {
|
324
|
+
return FunctionInfo({
|
325
|
+
name: StrLib.toStr(name),
|
326
|
+
selector: SelectorLib.toSelector(selector),
|
327
|
+
createdAt: TimestampLib.blockTimestamp()});
|
360
328
|
}
|
361
329
|
|
362
|
-
function
|
363
|
-
|
364
|
-
selector: SelectorLib.toSelector(selector),
|
365
|
-
name: StrLib.toStr(name)});
|
330
|
+
function deployer() public view returns (address) {
|
331
|
+
return _deployer;
|
366
332
|
}
|
367
333
|
|
368
334
|
//--- internal/private functions -------------------------------------------------//
|
@@ -370,7 +336,7 @@ contract AccessAdmin is
|
|
370
336
|
function _authorizeTargetFunctions(
|
371
337
|
address target,
|
372
338
|
RoleId roleId,
|
373
|
-
|
339
|
+
FunctionInfo[] memory functions
|
374
340
|
)
|
375
341
|
internal
|
376
342
|
{
|
@@ -378,37 +344,55 @@ contract AccessAdmin is
|
|
378
344
|
revert ErrorAuthorizeForAdminRoleInvalid(target);
|
379
345
|
}
|
380
346
|
|
381
|
-
|
382
|
-
|
347
|
+
(
|
348
|
+
bytes4[] memory functionSelectors,
|
349
|
+
string[] memory functionNames
|
350
|
+
) = _processFunctionSelectors(target, functions, true);
|
383
351
|
|
384
352
|
// apply authz via access manager
|
385
|
-
_grantRoleAccessToFunctions(
|
353
|
+
_grantRoleAccessToFunctions(
|
354
|
+
target,
|
355
|
+
roleId,
|
356
|
+
functionSelectors,
|
357
|
+
functionNames,
|
358
|
+
false); // allow locked roles
|
386
359
|
}
|
387
360
|
|
388
361
|
function _unauthorizeTargetFunctions(
|
389
362
|
address target,
|
390
|
-
|
363
|
+
FunctionInfo[] memory functions
|
391
364
|
)
|
392
365
|
internal
|
393
366
|
{
|
394
|
-
|
395
|
-
|
396
|
-
|
367
|
+
(
|
368
|
+
bytes4[] memory functionSelectors,
|
369
|
+
string[] memory functionNames
|
370
|
+
) = _processFunctionSelectors(target, functions, false);
|
371
|
+
|
372
|
+
_grantRoleAccessToFunctions(
|
373
|
+
target,
|
374
|
+
getAdminRole(),
|
375
|
+
functionSelectors,
|
376
|
+
functionNames,
|
377
|
+
true); // allowLockedRoles
|
397
378
|
}
|
398
379
|
|
399
380
|
function _processFunctionSelectors(
|
400
381
|
address target,
|
401
|
-
|
382
|
+
FunctionInfo[] memory functions,
|
402
383
|
bool addFunctions
|
403
384
|
)
|
404
385
|
internal
|
386
|
+
onlyExistingTarget(target)
|
405
387
|
returns (
|
406
|
-
bytes4[] memory functionSelectors
|
388
|
+
bytes4[] memory functionSelectors,
|
389
|
+
string[] memory functionNames
|
407
390
|
)
|
408
391
|
{
|
409
392
|
uint256 n = functions.length;
|
410
393
|
functionSelectors = new bytes4[](n);
|
411
|
-
|
394
|
+
functionNames = new string[](n);
|
395
|
+
FunctionInfo memory func;
|
412
396
|
Selector selector;
|
413
397
|
|
414
398
|
for (uint256 i = 0; i < n; i++) {
|
@@ -420,102 +404,11 @@ contract AccessAdmin is
|
|
420
404
|
else { SelectorSetLib.remove(_targetFunctions[target], selector); }
|
421
405
|
|
422
406
|
// set function name
|
423
|
-
|
407
|
+
_functionInfo[target][selector] = func;
|
424
408
|
|
425
409
|
// add bytes4 selector to function selector array
|
426
410
|
functionSelectors[i] = selector.toBytes4();
|
427
|
-
|
428
|
-
}
|
429
|
-
|
430
|
-
function _initializeAuthority(
|
431
|
-
address authorityAddress
|
432
|
-
)
|
433
|
-
internal
|
434
|
-
virtual
|
435
|
-
onlyInitializing()
|
436
|
-
onlyDeployer()
|
437
|
-
{
|
438
|
-
if (authority() != address(0)) {
|
439
|
-
revert ErrorAuthorityAlreadySet();
|
440
|
-
}
|
441
|
-
|
442
|
-
_authority = AccessManager(authorityAddress);
|
443
|
-
|
444
|
-
if(!hasRole(address(this), RoleId.wrap(_authority.ADMIN_ROLE()))) {
|
445
|
-
revert ErrorAdminRoleMissing();
|
446
|
-
}
|
447
|
-
|
448
|
-
__AccessManaged_init(address(_authority));
|
449
|
-
}
|
450
|
-
|
451
|
-
|
452
|
-
function _initializeRoleSetup()
|
453
|
-
internal
|
454
|
-
virtual
|
455
|
-
onlyInitializing()
|
456
|
-
{
|
457
|
-
_createInitialRoleSetup();
|
458
|
-
}
|
459
|
-
|
460
|
-
|
461
|
-
function _createInitialRoleSetup()
|
462
|
-
internal
|
463
|
-
{
|
464
|
-
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
465
|
-
Function[] memory functions;
|
466
|
-
|
467
|
-
// setup admin role
|
468
|
-
_createRoleUnchecked(
|
469
|
-
adminRoleId,
|
470
|
-
adminRoleId,
|
471
|
-
StrLib.toStr(ADMIN_ROLE_NAME),
|
472
|
-
1,
|
473
|
-
true);
|
474
|
-
|
475
|
-
// add this contract as admin role member
|
476
|
-
_roleMembers[adminRoleId].add(address(this));
|
477
|
-
|
478
|
-
// setup public role
|
479
|
-
_createRoleUnchecked(
|
480
|
-
RoleIdLib.toRoleId(_authority.PUBLIC_ROLE()),
|
481
|
-
adminRoleId,
|
482
|
-
StrLib.toStr(PUBLIC_ROLE_NAME),
|
483
|
-
type(uint256).max,
|
484
|
-
true);
|
485
|
-
|
486
|
-
// setup manager role
|
487
|
-
_managerRoleId = RoleIdLib.toRoleId(MANAGER_ROLE);
|
488
|
-
_createRole(
|
489
|
-
_managerRoleId,
|
490
|
-
adminRoleId,
|
491
|
-
MANAGER_ROLE_NAME,
|
492
|
-
3, // TODO think about max member count
|
493
|
-
false);
|
494
|
-
|
495
|
-
// grant public role access to grant and revoke, renounce
|
496
|
-
functions = new Function[](3);
|
497
|
-
functions[0] = toFunction(IAccessAdmin.grantRole.selector, "grantRole");
|
498
|
-
functions[1] = toFunction(IAccessAdmin.revokeRole.selector, "revokeRole");
|
499
|
-
functions[2] = toFunction(IAccessAdmin.renounceRole.selector, "renounceRole");
|
500
|
-
_authorizeTargetFunctions(address(this), getPublicRole(), functions);
|
501
|
-
|
502
|
-
// grant manager role access to the specified functions
|
503
|
-
functions = new Function[](6);
|
504
|
-
functions[0] = toFunction(IAccessAdmin.createRole.selector, "createRole");
|
505
|
-
functions[1] = toFunction(IAccessAdmin.setRoleDisabled.selector, "setRoleDisabled");
|
506
|
-
functions[2] = toFunction(IAccessAdmin.createTarget.selector, "createTarget");
|
507
|
-
functions[3] = toFunction(IAccessAdmin.setTargetLocked.selector, "setTargetLocked");
|
508
|
-
functions[4] = toFunction(IAccessAdmin.authorizeFunctions.selector, "authorizeFunctions");
|
509
|
-
functions[5] = toFunction(IAccessAdmin.unauthorizeFunctions.selector, "unauthorizeFunctions");
|
510
|
-
_authorizeTargetFunctions(address(this), getManagerRole(), functions);
|
511
|
-
}
|
512
|
-
|
513
|
-
/// @dev check if target exists and reverts if it doesn't
|
514
|
-
function _checkTarget(address target)
|
515
|
-
internal
|
516
|
-
{
|
517
|
-
if (_targetInfo[target].createdAt.eqz()) {
|
518
|
-
revert ErrorTargetUnknown(target);
|
411
|
+
functionNames[i] = func.name.toString();
|
519
412
|
}
|
520
413
|
}
|
521
414
|
|
@@ -523,90 +416,85 @@ contract AccessAdmin is
|
|
523
416
|
function _grantRoleAccessToFunctions(
|
524
417
|
address target,
|
525
418
|
RoleId roleId,
|
526
|
-
bytes4[] memory functionSelectors
|
419
|
+
bytes4[] memory functionSelectors,
|
420
|
+
string[] memory functionNames,
|
421
|
+
bool allowLockedRoles // admin and public roles are locked
|
527
422
|
)
|
528
423
|
internal
|
424
|
+
onlyExistingTarget(target)
|
425
|
+
onlyExistingRole(roleId, true, allowLockedRoles)
|
529
426
|
{
|
427
|
+
|
530
428
|
_authority.setTargetFunctionRole(
|
531
429
|
target,
|
532
430
|
functionSelectors,
|
533
431
|
RoleId.unwrap(roleId));
|
534
432
|
|
535
|
-
|
433
|
+
for (uint256 i = 0; i < functionSelectors.length; i++) {
|
434
|
+
emit LogAccessAdminFunctionGranted(
|
435
|
+
target,
|
436
|
+
// _getAccountName(target),
|
437
|
+
// string(abi.encodePacked("", functionSelectors[i])),
|
438
|
+
functionNames[i],
|
439
|
+
_getRoleName(roleId));
|
440
|
+
}
|
536
441
|
}
|
537
442
|
|
443
|
+
|
538
444
|
/// @dev grant the specified role to the provided account
|
539
445
|
function _grantRoleToAccount(RoleId roleId, address account)
|
540
446
|
internal
|
447
|
+
onlyExistingRole(roleId, true, false)
|
541
448
|
{
|
542
|
-
_checkRoleId(roleId);
|
543
|
-
_checkRoleIsActive(roleId);
|
544
|
-
|
545
449
|
// check max role members will not be exceeded
|
546
450
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
547
451
|
revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
548
452
|
}
|
549
453
|
|
454
|
+
// check account is contract for contract role
|
455
|
+
if (
|
456
|
+
_roleInfo[roleId].roleType == RoleType.Contract &&
|
457
|
+
!ContractLib.isContract(account) // will fail in account's constructor
|
458
|
+
) {
|
459
|
+
revert ErrorRoleMemberNotContract(roleId, account);
|
460
|
+
}
|
461
|
+
|
462
|
+
// TODO check account already have roleId
|
550
463
|
_roleMembers[roleId].add(account);
|
551
464
|
_authority.grantRole(
|
552
465
|
RoleId.unwrap(roleId),
|
553
466
|
account,
|
554
467
|
0);
|
555
468
|
|
556
|
-
|
469
|
+
emit LogAccessAdminRoleGranted(account, _getRoleName(roleId));
|
557
470
|
}
|
558
471
|
|
559
472
|
/// @dev revoke the specified role from the provided account
|
560
473
|
function _revokeRoleFromAccount(RoleId roleId, address account)
|
561
474
|
internal
|
475
|
+
onlyExistingRole(roleId, false, false)
|
562
476
|
{
|
563
|
-
_checkRoleId(roleId);
|
564
477
|
|
565
478
|
// check role removal is permitted
|
566
|
-
if (_roleInfo[roleId].
|
567
|
-
revert
|
479
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
480
|
+
revert ErrorRoleMemberRemovalDisabled(roleId, account);
|
568
481
|
}
|
569
482
|
|
483
|
+
// TODO check account have roleId?
|
570
484
|
_roleMembers[roleId].remove(account);
|
571
485
|
_authority.revokeRole(
|
572
486
|
RoleId.unwrap(roleId),
|
573
487
|
account);
|
574
488
|
|
575
|
-
|
576
|
-
}
|
577
|
-
|
578
|
-
|
579
|
-
function _checkRoleId(RoleId roleId)
|
580
|
-
internal
|
581
|
-
{
|
582
|
-
if (!_roleInfo[roleId].exists) {
|
583
|
-
revert ErrorRoleUnknown(roleId);
|
584
|
-
}
|
585
|
-
|
586
|
-
uint64 roleIdInt = RoleId.unwrap(roleId);
|
587
|
-
if (roleIdInt == _authority.ADMIN_ROLE()
|
588
|
-
|| roleIdInt == _authority.PUBLIC_ROLE())
|
589
|
-
{
|
590
|
-
revert ErrorRoleIsLocked(roleId);
|
591
|
-
}
|
592
|
-
}
|
593
|
-
|
594
|
-
|
595
|
-
function _checkRoleIsActive(RoleId roleId)
|
596
|
-
internal
|
597
|
-
{
|
598
|
-
if (isRoleDisabled(roleId)) {
|
599
|
-
revert ErrorRoleIsDisabled(roleId);
|
600
|
-
}
|
489
|
+
emit LogAccessAdminRoleRevoked(account, _roleInfo[roleId].name.toString());
|
601
490
|
}
|
602
491
|
|
603
492
|
|
493
|
+
/// @dev Creates a role based on the provided parameters.
|
494
|
+
/// Checks that the provided role and role id and role name not already used.
|
604
495
|
function _createRole(
|
605
496
|
RoleId roleId,
|
606
|
-
|
607
|
-
string memory roleName,
|
608
|
-
uint256 maxMemberCount,
|
609
|
-
bool memberRemovalDisabled
|
497
|
+
RoleInfo memory info
|
610
498
|
)
|
611
499
|
internal
|
612
500
|
{
|
@@ -618,83 +506,55 @@ contract AccessAdmin is
|
|
618
506
|
}
|
619
507
|
|
620
508
|
// check admin role exists
|
621
|
-
if(!roleExists(adminRoleId)) {
|
622
|
-
revert ErrorRoleAdminNotExisting(adminRoleId);
|
509
|
+
if(!roleExists(info.adminRoleId)) {
|
510
|
+
revert ErrorRoleAdminNotExisting(info.adminRoleId);
|
623
511
|
}
|
624
512
|
|
625
513
|
// check role name is not empty
|
626
|
-
|
627
|
-
if(name.length() == 0) {
|
514
|
+
if(info.name.length() == 0) {
|
628
515
|
revert ErrorRoleNameEmpty(roleId);
|
629
516
|
}
|
630
517
|
|
631
518
|
// check role name is not used for another role
|
632
|
-
if(_roleForName[name].exists) {
|
519
|
+
if(_roleForName[info.name].exists) {
|
633
520
|
revert ErrorRoleNameAlreadyExists(
|
634
521
|
roleId,
|
635
|
-
|
636
|
-
_roleForName[name].roleId);
|
637
|
-
}
|
638
|
-
|
639
|
-
_createRoleUnchecked(
|
640
|
-
roleId, adminRoleId,
|
641
|
-
name,
|
642
|
-
maxMemberCount,
|
643
|
-
memberRemovalDisabled);
|
644
|
-
}
|
645
|
-
|
646
|
-
|
647
|
-
function _setRoleDisabled(
|
648
|
-
RoleId roleId,
|
649
|
-
bool disabled
|
650
|
-
)
|
651
|
-
internal
|
652
|
-
{
|
653
|
-
|
654
|
-
_checkRoleId(roleId);
|
655
|
-
Timestamp disabledAtOld = _roleInfo[roleId].disabledAt;
|
656
|
-
|
657
|
-
if (disabled) {
|
658
|
-
_roleInfo[roleId].disabledAt = TimestampLib.blockTimestamp();
|
659
|
-
} else {
|
660
|
-
_roleInfo[roleId].disabledAt = TimestampLib.max();
|
522
|
+
info.name.toString(),
|
523
|
+
_roleForName[info.name].roleId);
|
661
524
|
}
|
662
525
|
|
663
|
-
|
526
|
+
_createRoleUnchecked(roleId, info);
|
664
527
|
}
|
665
528
|
|
666
529
|
|
667
530
|
function _createRoleUnchecked(
|
668
531
|
RoleId roleId,
|
669
|
-
|
670
|
-
Str name,
|
671
|
-
uint256 maxMemberCount,
|
672
|
-
bool memberRemovalDisabled
|
532
|
+
RoleInfo memory info
|
673
533
|
)
|
674
534
|
private
|
675
535
|
{
|
676
536
|
// create role info
|
677
|
-
|
678
|
-
|
679
|
-
name: name,
|
680
|
-
maxMemberCount: maxMemberCount,
|
681
|
-
memberRemovalDisabled: memberRemovalDisabled,
|
682
|
-
disabledAt: TimestampLib.max(),
|
683
|
-
exists: true});
|
537
|
+
info.createdAt = TimestampLib.blockTimestamp();
|
538
|
+
_roleInfo[roleId] = info;
|
684
539
|
|
685
540
|
// create role name info
|
686
|
-
_roleForName[name] = RoleNameInfo({
|
541
|
+
_roleForName[info.name] = RoleNameInfo({
|
687
542
|
roleId: roleId,
|
688
543
|
exists: true});
|
689
544
|
|
690
545
|
// add role to list of roles
|
691
546
|
_roleIds.push(roleId);
|
692
547
|
|
693
|
-
emit
|
548
|
+
emit LogAccessAdminRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
|
694
549
|
}
|
695
550
|
|
696
551
|
|
697
|
-
function _createTarget(
|
552
|
+
function _createTarget(
|
553
|
+
address target,
|
554
|
+
string memory targetName,
|
555
|
+
bool checkAuthority,
|
556
|
+
bool custom
|
557
|
+
)
|
698
558
|
internal
|
699
559
|
{
|
700
560
|
// check target does not yet exist
|
@@ -710,7 +570,7 @@ contract AccessAdmin is
|
|
710
570
|
revert ErrorTargetNameEmpty(target);
|
711
571
|
}
|
712
572
|
|
713
|
-
// check target name is not used for another
|
573
|
+
// check target name is not used for another target
|
714
574
|
if( _targetForName[name] != address(0)) {
|
715
575
|
revert ErrorTargetNameAlreadyExists(
|
716
576
|
target,
|
@@ -719,19 +579,22 @@ contract AccessAdmin is
|
|
719
579
|
}
|
720
580
|
|
721
581
|
// check target is an access managed contract
|
722
|
-
if (!
|
582
|
+
if (!_isAccessManaged(target)) {
|
723
583
|
revert ErrorTargetNotAccessManaged(target);
|
724
584
|
}
|
725
585
|
|
726
586
|
// check target shares authority with this contract
|
727
|
-
|
728
|
-
|
729
|
-
|
587
|
+
if (checkAuthority) {
|
588
|
+
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
589
|
+
if (targetAuthority != authority()) {
|
590
|
+
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
591
|
+
}
|
730
592
|
}
|
731
593
|
|
732
594
|
// create target info
|
733
595
|
_targetInfo[target] = TargetInfo({
|
734
596
|
name: name,
|
597
|
+
isCustom: custom,
|
735
598
|
createdAt: TimestampLib.blockTimestamp()
|
736
599
|
});
|
737
600
|
|
@@ -741,19 +604,86 @@ contract AccessAdmin is
|
|
741
604
|
// add role to list of roles
|
742
605
|
_targets.push(target);
|
743
606
|
|
744
|
-
emit
|
607
|
+
emit LogAccessAdminTargetCreated(target, targetName);
|
745
608
|
}
|
746
609
|
|
747
|
-
|
610
|
+
|
611
|
+
function _isAccessManaged(address target)
|
748
612
|
internal
|
749
|
-
view
|
613
|
+
view
|
750
614
|
returns (bool)
|
751
615
|
{
|
752
|
-
|
753
|
-
|
754
|
-
|
616
|
+
if (!ContractLib.isContract(target)) {
|
617
|
+
return false;
|
618
|
+
}
|
619
|
+
|
620
|
+
(bool success, ) = target.staticcall(
|
621
|
+
abi.encodeWithSelector(
|
622
|
+
IAccessManagedChecker.authority.selector));
|
623
|
+
|
624
|
+
return success;
|
625
|
+
}
|
626
|
+
|
627
|
+
|
628
|
+
function _setTargetClosed(address target, bool locked)
|
629
|
+
internal
|
630
|
+
{
|
631
|
+
_checkTarget(target);
|
632
|
+
|
633
|
+
// target locked/unlocked already
|
634
|
+
if(_authority.isTargetClosed(target) == locked) {
|
635
|
+
revert ErrorTargetAlreadyLocked(target, locked);
|
636
|
+
}
|
637
|
+
|
638
|
+
_authority.setTargetClosed(target, locked);
|
639
|
+
}
|
640
|
+
|
641
|
+
function _getAccountName(address account) internal view returns (string memory) {
|
642
|
+
if (targetExists(account)) {
|
643
|
+
return _targetInfo[account].name.toString();
|
644
|
+
}
|
645
|
+
return "<unknown-account>";
|
646
|
+
}
|
647
|
+
|
648
|
+
|
649
|
+
function _getRoleName(RoleId roleId) internal view returns (string memory) {
|
650
|
+
if (roleExists(roleId)) {
|
651
|
+
return _roleInfo[roleId].name.toString();
|
652
|
+
}
|
653
|
+
return "<unknown-role>";
|
654
|
+
}
|
655
|
+
|
656
|
+
|
657
|
+
function _checkRoleExists(
|
658
|
+
RoleId roleId,
|
659
|
+
bool onlyActiveRole
|
660
|
+
)
|
661
|
+
internal
|
662
|
+
view
|
663
|
+
{
|
664
|
+
if (!roleExists(roleId)) {
|
665
|
+
revert ErrorRoleUnknown(roleId);
|
666
|
+
}
|
667
|
+
|
668
|
+
uint64 roleIdInt = RoleId.unwrap(roleId);
|
669
|
+
if (roleIdInt == _authority.ADMIN_ROLE()) {
|
670
|
+
revert ErrorRoleIsLocked(roleId);
|
671
|
+
}
|
672
|
+
|
673
|
+
// check if role is disabled
|
674
|
+
if (onlyActiveRole && _roleInfo[roleId].pausedAt <= TimestampLib.blockTimestamp()) {
|
675
|
+
revert ErrorRoleIsPaused(roleId);
|
676
|
+
}
|
677
|
+
}
|
678
|
+
|
679
|
+
|
680
|
+
/// @dev check if target exists and reverts if it doesn't
|
681
|
+
function _checkTarget(address target)
|
682
|
+
internal
|
683
|
+
view
|
684
|
+
{
|
685
|
+
if (!targetExists(target)) {
|
686
|
+
revert ErrorTargetUnknown(target);
|
755
687
|
}
|
756
|
-
return size > 0;
|
757
688
|
}
|
758
|
-
|
759
689
|
}
|