@etherisc/gif-next 0.0.2-82c6d88-499 → 0.0.2-8311e70-020
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 +67 -8
- 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 +1341 -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 +414 -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 +181 -278
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +48 -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 +470 -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 +368 -245
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -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 +230 -49
- 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 +502 -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 +470 -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 +470 -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 +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -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 +134 -78
- 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 +162 -215
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1354 -262
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +966 -328
- 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 +651 -531
- 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 +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/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -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 +502 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +435 -202
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
- 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 +448 -217
- 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/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
- 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 +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
- 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 +318 -8
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -113
- 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 +455 -318
- 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 +340 -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 +566 -112
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +396 -436
- 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 +1795 -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 +1325 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +101 -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 +578 -492
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -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 +550 -209
- 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 +45 -3
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- 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 +55 -88
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- 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 +697 -25
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -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 +134 -125
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
- 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 +210 -366
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +186 -164
- 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 +117 -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 +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +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 +271 -371
- package/contracts/authorization/AccessManagerCloneable.sol +149 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +31 -59
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +11 -6
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +45 -25
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +147 -121
- package/contracts/distribution/DistributionService.sol +160 -100
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +26 -40
- package/contracts/distribution/IDistributionService.sol +28 -9
- 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 +107 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +23 -44
- package/contracts/instance/IInstanceService.sol +16 -41
- package/contracts/instance/Instance.sol +92 -120
- package/contracts/instance/InstanceAdmin.sol +250 -255
- package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
- package/contracts/instance/InstanceReader.sol +238 -34
- package/contracts/instance/InstanceService.sol +145 -180
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +35 -6
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- 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 +0 -1
- 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 +46 -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 +68 -0
- package/contracts/pool/BundleService.sol +231 -102
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +33 -18
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +53 -50
- package/contracts/pool/Pool.sol +208 -162
- package/contracts/pool/PoolService.sol +343 -180
- 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 +41 -0
- package/contracts/product/ClaimService.sol +425 -159
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -7
- package/contracts/product/IPolicyService.sol +46 -34
- 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 +520 -259
- 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 +220 -134
- package/contracts/product/RiskService.sol +151 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +72 -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 +364 -220
- package/contracts/registry/RegistryAdmin.sol +228 -217
- 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 +32 -0
- package/contracts/registry/ReleaseRegistry.sol +511 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +102 -60
- package/contracts/registry/TokenRegistry.sol +8 -10
- package/contracts/shared/Component.sol +71 -126
- package/contracts/shared/ComponentService.sol +463 -380
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +29 -18
- package/contracts/shared/ContractLib.sol +252 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +53 -39
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +3 -2
- 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 +95 -42
- package/contracts/shared/KeyValueStore.sol +7 -3
- package/contracts/shared/Lifecycle.sol +30 -72
- 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 +357 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +12 -7
- package/contracts/staking/IStakingService.sol +12 -8
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +86 -73
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +23 -20
- package/contracts/staking/StakingService.sol +64 -36
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +15 -23
- 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 +73 -24
- 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 +57 -93
- package/contracts/type/Seconds.sol +21 -1
- 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 +8 -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/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 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/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/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/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
|
+
});
|
360
321
|
}
|
361
322
|
|
362
|
-
function toFunction(bytes4 selector, string memory name) public
|
363
|
-
|
364
|
-
|
365
|
-
|
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()});
|
328
|
+
}
|
329
|
+
|
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
|
{
|
@@ -382,33 +348,43 @@ contract AccessAdmin is
|
|
382
348
|
bytes4[] memory functionSelectors = _processFunctionSelectors(target, functions, addFunctions);
|
383
349
|
|
384
350
|
// apply authz via access manager
|
385
|
-
_grantRoleAccessToFunctions(
|
351
|
+
_grantRoleAccessToFunctions(
|
352
|
+
target,
|
353
|
+
roleId,
|
354
|
+
functionSelectors,
|
355
|
+
false); // allowLockedRoles
|
386
356
|
}
|
387
357
|
|
388
358
|
function _unauthorizeTargetFunctions(
|
389
359
|
address target,
|
390
|
-
|
360
|
+
FunctionInfo[] memory functions
|
391
361
|
)
|
392
362
|
internal
|
393
363
|
{
|
394
364
|
bool addFunctions = false;
|
395
365
|
bytes4[] memory functionSelectors = _processFunctionSelectors(target, functions, addFunctions);
|
396
|
-
|
366
|
+
|
367
|
+
_grantRoleAccessToFunctions(
|
368
|
+
target,
|
369
|
+
getAdminRole(),
|
370
|
+
functionSelectors,
|
371
|
+
true); // allowLockedRoles
|
397
372
|
}
|
398
373
|
|
399
374
|
function _processFunctionSelectors(
|
400
375
|
address target,
|
401
|
-
|
376
|
+
FunctionInfo[] memory functions,
|
402
377
|
bool addFunctions
|
403
378
|
)
|
404
379
|
internal
|
380
|
+
onlyExistingTarget(target)
|
405
381
|
returns (
|
406
382
|
bytes4[] memory functionSelectors
|
407
383
|
)
|
408
384
|
{
|
409
385
|
uint256 n = functions.length;
|
410
386
|
functionSelectors = new bytes4[](n);
|
411
|
-
|
387
|
+
FunctionInfo memory func;
|
412
388
|
Selector selector;
|
413
389
|
|
414
390
|
for (uint256 i = 0; i < n; i++) {
|
@@ -420,112 +396,23 @@ contract AccessAdmin is
|
|
420
396
|
else { SelectorSetLib.remove(_targetFunctions[target], selector); }
|
421
397
|
|
422
398
|
// set function name
|
423
|
-
|
399
|
+
_functionInfo[target][selector] = func;
|
424
400
|
|
425
401
|
// add bytes4 selector to function selector array
|
426
402
|
functionSelectors[i] = selector.toBytes4();
|
427
403
|
}
|
428
404
|
}
|
429
405
|
|
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);
|
519
|
-
}
|
520
|
-
}
|
521
|
-
|
522
406
|
/// @dev grant the specified role access to all functions in the provided selector list
|
523
407
|
function _grantRoleAccessToFunctions(
|
524
408
|
address target,
|
525
409
|
RoleId roleId,
|
526
|
-
bytes4[] memory functionSelectors
|
410
|
+
bytes4[] memory functionSelectors,
|
411
|
+
bool allowLockedRoles // admin and public roles are locked
|
527
412
|
)
|
528
413
|
internal
|
414
|
+
onlyExistingTarget(target)
|
415
|
+
onlyExistingRole(roleId, true, allowLockedRoles)
|
529
416
|
{
|
530
417
|
_authority.setTargetFunctionRole(
|
531
418
|
target,
|
@@ -535,18 +422,26 @@ contract AccessAdmin is
|
|
535
422
|
// implizit logging: rely on OpenZeppelin log TargetFunctionRoleUpdated
|
536
423
|
}
|
537
424
|
|
425
|
+
|
538
426
|
/// @dev grant the specified role to the provided account
|
539
427
|
function _grantRoleToAccount(RoleId roleId, address account)
|
540
428
|
internal
|
429
|
+
onlyExistingRole(roleId, true, false)
|
541
430
|
{
|
542
|
-
_checkRoleId(roleId);
|
543
|
-
_checkRoleIsActive(roleId);
|
544
|
-
|
545
431
|
// check max role members will not be exceeded
|
546
432
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
547
433
|
revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
548
434
|
}
|
549
435
|
|
436
|
+
// check account is contract for contract role
|
437
|
+
if (
|
438
|
+
_roleInfo[roleId].roleType == RoleType.Contract &&
|
439
|
+
!ContractLib.isContract(account) // will fail in account's constructor
|
440
|
+
) {
|
441
|
+
revert ErrorRoleMemberNotContract(roleId, account);
|
442
|
+
}
|
443
|
+
|
444
|
+
// TODO check account already have roleId
|
550
445
|
_roleMembers[roleId].add(account);
|
551
446
|
_authority.grantRole(
|
552
447
|
RoleId.unwrap(roleId),
|
@@ -559,14 +454,15 @@ contract AccessAdmin is
|
|
559
454
|
/// @dev revoke the specified role from the provided account
|
560
455
|
function _revokeRoleFromAccount(RoleId roleId, address account)
|
561
456
|
internal
|
457
|
+
onlyExistingRole(roleId, false, false)
|
562
458
|
{
|
563
|
-
_checkRoleId(roleId);
|
564
459
|
|
565
460
|
// check role removal is permitted
|
566
|
-
if (_roleInfo[roleId].
|
567
|
-
revert
|
461
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
462
|
+
revert ErrorRoleMemberRemovalDisabled(roleId, account);
|
568
463
|
}
|
569
464
|
|
465
|
+
// TODO check account have roleId?
|
570
466
|
_roleMembers[roleId].remove(account);
|
571
467
|
_authority.revokeRole(
|
572
468
|
RoleId.unwrap(roleId),
|
@@ -576,37 +472,11 @@ contract AccessAdmin is
|
|
576
472
|
}
|
577
473
|
|
578
474
|
|
579
|
-
|
580
|
-
|
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
|
-
}
|
601
|
-
}
|
602
|
-
|
603
|
-
|
475
|
+
/// @dev Creates a role based on the provided parameters.
|
476
|
+
/// Checks that the provided role and role id and role name not already used.
|
604
477
|
function _createRole(
|
605
478
|
RoleId roleId,
|
606
|
-
|
607
|
-
string memory roleName,
|
608
|
-
uint256 maxMemberCount,
|
609
|
-
bool memberRemovalDisabled
|
479
|
+
RoleInfo memory info
|
610
480
|
)
|
611
481
|
internal
|
612
482
|
{
|
@@ -618,83 +488,55 @@ contract AccessAdmin is
|
|
618
488
|
}
|
619
489
|
|
620
490
|
// check admin role exists
|
621
|
-
if(!roleExists(adminRoleId)) {
|
622
|
-
revert ErrorRoleAdminNotExisting(adminRoleId);
|
491
|
+
if(!roleExists(info.adminRoleId)) {
|
492
|
+
revert ErrorRoleAdminNotExisting(info.adminRoleId);
|
623
493
|
}
|
624
494
|
|
625
495
|
// check role name is not empty
|
626
|
-
|
627
|
-
if(name.length() == 0) {
|
496
|
+
if(info.name.length() == 0) {
|
628
497
|
revert ErrorRoleNameEmpty(roleId);
|
629
498
|
}
|
630
499
|
|
631
500
|
// check role name is not used for another role
|
632
|
-
if(_roleForName[name].exists) {
|
501
|
+
if(_roleForName[info.name].exists) {
|
633
502
|
revert ErrorRoleNameAlreadyExists(
|
634
503
|
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();
|
504
|
+
info.name.toString(),
|
505
|
+
_roleForName[info.name].roleId);
|
661
506
|
}
|
662
507
|
|
663
|
-
|
508
|
+
_createRoleUnchecked(roleId, info);
|
664
509
|
}
|
665
510
|
|
666
511
|
|
667
512
|
function _createRoleUnchecked(
|
668
513
|
RoleId roleId,
|
669
|
-
|
670
|
-
Str name,
|
671
|
-
uint256 maxMemberCount,
|
672
|
-
bool memberRemovalDisabled
|
514
|
+
RoleInfo memory info
|
673
515
|
)
|
674
516
|
private
|
675
517
|
{
|
676
518
|
// create role info
|
677
|
-
|
678
|
-
|
679
|
-
name: name,
|
680
|
-
maxMemberCount: maxMemberCount,
|
681
|
-
memberRemovalDisabled: memberRemovalDisabled,
|
682
|
-
disabledAt: TimestampLib.max(),
|
683
|
-
exists: true});
|
519
|
+
info.createdAt = TimestampLib.blockTimestamp();
|
520
|
+
_roleInfo[roleId] = info;
|
684
521
|
|
685
522
|
// create role name info
|
686
|
-
_roleForName[name] = RoleNameInfo({
|
523
|
+
_roleForName[info.name] = RoleNameInfo({
|
687
524
|
roleId: roleId,
|
688
525
|
exists: true});
|
689
526
|
|
690
527
|
// add role to list of roles
|
691
528
|
_roleIds.push(roleId);
|
692
529
|
|
693
|
-
emit LogRoleCreated(roleId, adminRoleId, name.toString());
|
530
|
+
emit LogRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
|
694
531
|
}
|
695
532
|
|
696
533
|
|
697
|
-
function _createTarget(
|
534
|
+
function _createTarget(
|
535
|
+
address target,
|
536
|
+
string memory targetName,
|
537
|
+
bool checkAuthority,
|
538
|
+
bool custom
|
539
|
+
)
|
698
540
|
internal
|
699
541
|
{
|
700
542
|
// check target does not yet exist
|
@@ -710,7 +552,7 @@ contract AccessAdmin is
|
|
710
552
|
revert ErrorTargetNameEmpty(target);
|
711
553
|
}
|
712
554
|
|
713
|
-
// check target name is not used for another
|
555
|
+
// check target name is not used for another target
|
714
556
|
if( _targetForName[name] != address(0)) {
|
715
557
|
revert ErrorTargetNameAlreadyExists(
|
716
558
|
target,
|
@@ -719,19 +561,22 @@ contract AccessAdmin is
|
|
719
561
|
}
|
720
562
|
|
721
563
|
// check target is an access managed contract
|
722
|
-
if (!
|
564
|
+
if (!_isAccessManaged(target)) {
|
723
565
|
revert ErrorTargetNotAccessManaged(target);
|
724
566
|
}
|
725
567
|
|
726
568
|
// check target shares authority with this contract
|
727
|
-
|
728
|
-
|
729
|
-
|
569
|
+
if (checkAuthority) {
|
570
|
+
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
571
|
+
if (targetAuthority != authority()) {
|
572
|
+
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
573
|
+
}
|
730
574
|
}
|
731
575
|
|
732
576
|
// create target info
|
733
577
|
_targetInfo[target] = TargetInfo({
|
734
578
|
name: name,
|
579
|
+
isCustom: custom,
|
735
580
|
createdAt: TimestampLib.blockTimestamp()
|
736
581
|
});
|
737
582
|
|
@@ -744,16 +589,71 @@ contract AccessAdmin is
|
|
744
589
|
emit LogTargetCreated(target, targetName);
|
745
590
|
}
|
746
591
|
|
747
|
-
|
592
|
+
|
593
|
+
function _isAccessManaged(address target)
|
748
594
|
internal
|
749
|
-
view
|
595
|
+
view
|
750
596
|
returns (bool)
|
751
597
|
{
|
752
|
-
|
753
|
-
|
754
|
-
|
598
|
+
if (!ContractLib.isContract(target)) {
|
599
|
+
return false;
|
600
|
+
}
|
601
|
+
|
602
|
+
(bool success, ) = target.staticcall(
|
603
|
+
abi.encodeWithSelector(
|
604
|
+
IAccessManagedChecker.authority.selector));
|
605
|
+
|
606
|
+
return success;
|
607
|
+
}
|
608
|
+
|
609
|
+
|
610
|
+
function _setTargetClosed(address target, bool locked)
|
611
|
+
internal
|
612
|
+
{
|
613
|
+
_checkTarget(target);
|
614
|
+
|
615
|
+
// target locked/unlocked already
|
616
|
+
if(_authority.isTargetClosed(target) == locked) {
|
617
|
+
revert ErrorTargetAlreadyLocked(target, locked);
|
618
|
+
}
|
619
|
+
|
620
|
+
_authority.setTargetClosed(target, locked);
|
621
|
+
}
|
622
|
+
|
623
|
+
|
624
|
+
function _checkRoleExists(
|
625
|
+
RoleId roleId,
|
626
|
+
bool onlyActiveRole
|
627
|
+
)
|
628
|
+
internal
|
629
|
+
view
|
630
|
+
{
|
631
|
+
if (!roleExists(roleId)) {
|
632
|
+
revert ErrorRoleUnknown(roleId);
|
633
|
+
}
|
634
|
+
|
635
|
+
uint64 roleIdInt = RoleId.unwrap(roleId);
|
636
|
+
if (roleIdInt == _authority.ADMIN_ROLE())
|
637
|
+
// TODO cleanup
|
638
|
+
//|| roleIdInt == _authority.PUBLIC_ROLE()) prevents granting of public role
|
639
|
+
{
|
640
|
+
revert ErrorRoleIsLocked(roleId);
|
641
|
+
}
|
642
|
+
|
643
|
+
// check if role is disabled
|
644
|
+
if (onlyActiveRole && _roleInfo[roleId].pausedAt <= TimestampLib.blockTimestamp()) {
|
645
|
+
revert ErrorRoleIsPaused(roleId);
|
646
|
+
}
|
647
|
+
}
|
648
|
+
|
649
|
+
|
650
|
+
/// @dev check if target exists and reverts if it doesn't
|
651
|
+
function _checkTarget(address target)
|
652
|
+
internal
|
653
|
+
view
|
654
|
+
{
|
655
|
+
if (!targetExists(target)) {
|
656
|
+
revert ErrorTargetUnknown(target);
|
755
657
|
}
|
756
|
-
return size > 0;
|
757
658
|
}
|
758
|
-
|
759
659
|
}
|