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