@etherisc/gif-next 0.0.2-c0dadcd-773 → 0.0.2-c16a73d-798
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 +152 -281
- 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/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 +2072 -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 +381 -396
- 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 +101 -16
- 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 -353
- 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 +26 -57
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +11 -6
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- 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 +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 +73 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +415 -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 -219
- 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 -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/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 -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,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,157 +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
|
-
virtual
|
134
|
-
restricted()
|
135
|
-
{
|
136
|
-
_createRole(roleId, adminRoleId, name, maxMemberCount, memberRemovalDisabled);
|
137
|
-
}
|
138
|
-
|
139
|
-
function setRoleDisabled(
|
140
|
-
RoleId roleId,
|
141
|
-
bool disabled
|
142
|
-
)
|
143
|
-
external
|
144
|
-
virtual
|
145
|
-
restricted()
|
146
|
-
{
|
147
|
-
_setRoleDisabled(roleId, disabled);
|
148
|
-
}
|
149
|
-
|
150
|
-
function grantRole(
|
151
|
-
address account,
|
152
|
-
RoleId roleId
|
153
|
-
)
|
154
|
-
external
|
155
|
-
virtual
|
156
|
-
onlyRoleAdmin(roleId)
|
157
|
-
restricted()
|
158
|
-
{
|
159
|
-
_grantRoleToAccount(roleId, account);
|
160
|
-
}
|
161
|
-
|
162
|
-
function revokeRole(
|
163
|
-
address account,
|
164
|
-
RoleId roleId
|
165
|
-
)
|
166
|
-
external
|
167
|
-
virtual
|
168
|
-
onlyRoleAdmin(roleId)
|
169
|
-
restricted()
|
170
|
-
{
|
171
|
-
_revokeRoleFromAccount(roleId, account);
|
172
|
-
}
|
110
|
+
_authority = new AccessManagerCloneable();
|
111
|
+
_authority.initialize(address(this));
|
173
112
|
|
174
|
-
|
175
|
-
|
176
|
-
)
|
177
|
-
external
|
178
|
-
virtual
|
179
|
-
onlyRoleMember(roleId)
|
180
|
-
restricted()
|
181
|
-
{
|
182
|
-
_revokeRoleFromAccount(roleId, msg.sender);
|
113
|
+
_setAuthority(address(_authority)); // set authority for oz access managed
|
114
|
+
_createAdminAndPublicRoles();
|
183
115
|
}
|
184
116
|
|
185
|
-
//---
|
186
|
-
|
187
|
-
function createTarget(
|
188
|
-
address target,
|
189
|
-
string memory name
|
190
|
-
)
|
191
|
-
external
|
192
|
-
virtual
|
193
|
-
restricted()
|
194
|
-
{
|
195
|
-
_createTarget(target, name);
|
196
|
-
}
|
197
|
-
|
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
|
-
|
209
|
-
// implizit logging: rely on OpenZeppelin log TargetClosed
|
210
|
-
}
|
211
|
-
|
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
|
-
|
226
|
-
function unauthorizeFunctions(
|
227
|
-
address target,
|
228
|
-
Function[] memory functions
|
229
|
-
)
|
230
|
-
external
|
231
|
-
virtual
|
232
|
-
restricted()
|
233
|
-
{
|
234
|
-
_unauthorizeTargetFunctions(target, functions);
|
235
|
-
}
|
236
|
-
|
237
|
-
|
238
|
-
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
239
|
-
return SelectorSetLib.size(_targetFunctions[target]);
|
240
|
-
}
|
241
|
-
|
242
|
-
function getAuthorizedFunction(
|
243
|
-
address target,
|
244
|
-
uint256 idx
|
245
|
-
)
|
246
|
-
external
|
247
|
-
view
|
248
|
-
returns (
|
249
|
-
Function memory func,
|
250
|
-
RoleId roleId
|
251
|
-
)
|
252
|
-
{
|
253
|
-
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
254
|
-
|
255
|
-
func = Function({
|
256
|
-
selector: selector,
|
257
|
-
name: _functionName[target][selector]});
|
258
|
-
|
259
|
-
roleId = RoleIdLib.toRoleId(
|
260
|
-
_authority.getTargetFunctionRole(
|
261
|
-
target,
|
262
|
-
selector.toBytes4()));
|
263
|
-
}
|
264
|
-
|
265
|
-
//--- view functions ----------------------------------------------------//
|
117
|
+
//--- view functions for roles ------------------------------------------//
|
266
118
|
|
267
119
|
function roles() external view returns (uint256 numberOfRoles) {
|
268
120
|
return _roleIds.length;
|
@@ -280,16 +132,8 @@ contract AccessAdmin is
|
|
280
132
|
return RoleId.wrap(_authority.PUBLIC_ROLE());
|
281
133
|
}
|
282
134
|
|
283
|
-
function getManagerRole() public view returns (RoleId roleId) {
|
284
|
-
return _managerRoleId;
|
285
|
-
}
|
286
|
-
|
287
135
|
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();
|
136
|
+
return _roleInfo[roleId].createdAt.gtz();
|
293
137
|
}
|
294
138
|
|
295
139
|
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
|
@@ -300,6 +144,14 @@ contract AccessAdmin is
|
|
300
144
|
return _roleForName[name];
|
301
145
|
}
|
302
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
|
+
|
303
155
|
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
304
156
|
(bool isMember, ) = _authority.hasRole(
|
305
157
|
RoleId.unwrap(roleId),
|
@@ -307,22 +159,21 @@ contract AccessAdmin is
|
|
307
159
|
return isMember;
|
308
160
|
}
|
309
161
|
|
310
|
-
function
|
311
|
-
|
162
|
+
function hasAdminRole(address account, RoleId roleId)
|
163
|
+
public
|
164
|
+
virtual
|
165
|
+
view
|
166
|
+
returns (bool)
|
167
|
+
{
|
168
|
+
return hasRole(account, _roleInfo[roleId].adminRoleId);
|
312
169
|
}
|
313
170
|
|
314
|
-
|
315
|
-
return _roleMembers[roleId].at(idx);
|
316
|
-
}
|
171
|
+
//--- view functions for targets ----------------------------------------//
|
317
172
|
|
318
173
|
function targetExists(address target) public view returns (bool exists) {
|
319
174
|
return _targetInfo[target].createdAt.gtz();
|
320
175
|
}
|
321
176
|
|
322
|
-
function isTargetLocked(address target) public view returns (bool locked) {
|
323
|
-
return _authority.isTargetClosed(target);
|
324
|
-
}
|
325
|
-
|
326
177
|
function targets() external view returns (uint256 numberOfTargets) {
|
327
178
|
return _targets.length;
|
328
179
|
}
|
@@ -335,34 +186,61 @@ contract AccessAdmin is
|
|
335
186
|
return _targetInfo[target];
|
336
187
|
}
|
337
188
|
|
338
|
-
function getTargetForName(Str name)
|
189
|
+
function getTargetForName(Str name) public view returns (address target) {
|
339
190
|
return _targetForName[name];
|
340
191
|
}
|
341
192
|
|
342
|
-
function
|
343
|
-
|
344
|
-
|
345
|
-
}
|
193
|
+
function isTargetLocked(address target) public view returns (bool locked) {
|
194
|
+
return _authority.isTargetClosed(target);
|
195
|
+
}
|
346
196
|
|
347
|
-
|
348
|
-
|
349
|
-
|
197
|
+
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
198
|
+
return SelectorSetLib.size(_targetFunctions[target]);
|
199
|
+
}
|
350
200
|
|
351
|
-
|
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()));
|
352
218
|
}
|
353
219
|
|
354
|
-
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) {
|
355
221
|
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
356
222
|
}
|
357
223
|
|
358
|
-
function
|
359
|
-
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
|
+
});
|
360
233
|
}
|
361
234
|
|
362
|
-
function toFunction(bytes4 selector, string memory name) public
|
363
|
-
|
364
|
-
|
365
|
-
|
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;
|
366
244
|
}
|
367
245
|
|
368
246
|
//--- internal/private functions -------------------------------------------------//
|
@@ -370,7 +248,7 @@ contract AccessAdmin is
|
|
370
248
|
function _authorizeTargetFunctions(
|
371
249
|
address target,
|
372
250
|
RoleId roleId,
|
373
|
-
|
251
|
+
FunctionInfo[] memory functions
|
374
252
|
)
|
375
253
|
internal
|
376
254
|
{
|
@@ -387,7 +265,7 @@ contract AccessAdmin is
|
|
387
265
|
|
388
266
|
function _unauthorizeTargetFunctions(
|
389
267
|
address target,
|
390
|
-
|
268
|
+
FunctionInfo[] memory functions
|
391
269
|
)
|
392
270
|
internal
|
393
271
|
{
|
@@ -398,7 +276,7 @@ contract AccessAdmin is
|
|
398
276
|
|
399
277
|
function _processFunctionSelectors(
|
400
278
|
address target,
|
401
|
-
|
279
|
+
FunctionInfo[] memory functions,
|
402
280
|
bool addFunctions
|
403
281
|
)
|
404
282
|
internal
|
@@ -408,7 +286,7 @@ contract AccessAdmin is
|
|
408
286
|
{
|
409
287
|
uint256 n = functions.length;
|
410
288
|
functionSelectors = new bytes4[](n);
|
411
|
-
|
289
|
+
FunctionInfo memory func;
|
412
290
|
Selector selector;
|
413
291
|
|
414
292
|
for (uint256 i = 0; i < n; i++) {
|
@@ -420,7 +298,7 @@ contract AccessAdmin is
|
|
420
298
|
else { SelectorSetLib.remove(_targetFunctions[target], selector); }
|
421
299
|
|
422
300
|
// set function name
|
423
|
-
|
301
|
+
_functionInfo[target][selector] = func;
|
424
302
|
|
425
303
|
// add bytes4 selector to function selector array
|
426
304
|
functionSelectors[i] = selector.toBytes4();
|
@@ -439,85 +317,48 @@ contract AccessAdmin is
|
|
439
317
|
revert ErrorAuthorityAlreadySet();
|
440
318
|
}
|
441
319
|
|
442
|
-
_authority =
|
443
|
-
|
444
|
-
if(!hasRole(address(this), RoleId.wrap(_authority.ADMIN_ROLE()))) {
|
445
|
-
revert ErrorAdminRoleMissing();
|
446
|
-
}
|
447
|
-
|
320
|
+
_authority = AccessManagerCloneable(authorityAddress);
|
448
321
|
__AccessManaged_init(address(_authority));
|
449
322
|
}
|
450
323
|
|
451
324
|
|
452
|
-
function
|
325
|
+
function _initializeAdminAndPublicRoles()
|
453
326
|
internal
|
454
327
|
virtual
|
455
328
|
onlyInitializing()
|
456
329
|
{
|
457
|
-
|
330
|
+
_createAdminAndPublicRoles();
|
458
331
|
}
|
459
332
|
|
460
333
|
|
461
|
-
function
|
334
|
+
/// @dev internal setup function that can be used in both constructor and initializer.
|
335
|
+
function _createAdminAndPublicRoles()
|
462
336
|
internal
|
463
337
|
{
|
464
338
|
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
465
|
-
Function[] memory functions;
|
466
339
|
|
467
340
|
// setup admin role
|
468
341
|
_createRoleUnchecked(
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
342
|
+
ADMIN_ROLE(),
|
343
|
+
toRole({
|
344
|
+
adminRoleId: ADMIN_ROLE(),
|
345
|
+
roleType: RoleType.Contract,
|
346
|
+
maxMemberCount: 1,
|
347
|
+
name: ADMIN_ROLE_NAME}));
|
474
348
|
|
475
349
|
// add this contract as admin role member
|
476
350
|
_roleMembers[adminRoleId].add(address(this));
|
477
351
|
|
478
352
|
// setup public role
|
479
353
|
_createRoleUnchecked(
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
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);
|
354
|
+
PUBLIC_ROLE(),
|
355
|
+
toRole({
|
356
|
+
adminRoleId: ADMIN_ROLE(),
|
357
|
+
roleType: RoleType.Gif,
|
358
|
+
maxMemberCount: type(uint32).max,
|
359
|
+
name: PUBLIC_ROLE_NAME}));
|
511
360
|
}
|
512
361
|
|
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
362
|
|
522
363
|
/// @dev grant the specified role access to all functions in the provided selector list
|
523
364
|
function _grantRoleAccessToFunctions(
|
@@ -535,18 +376,26 @@ contract AccessAdmin is
|
|
535
376
|
// implizit logging: rely on OpenZeppelin log TargetFunctionRoleUpdated
|
536
377
|
}
|
537
378
|
|
379
|
+
|
538
380
|
/// @dev grant the specified role to the provided account
|
539
381
|
function _grantRoleToAccount(RoleId roleId, address account)
|
540
382
|
internal
|
383
|
+
onlyExistingRole(roleId, true)
|
541
384
|
{
|
542
|
-
_checkRoleId(roleId);
|
543
|
-
_checkRoleIsActive(roleId);
|
544
|
-
|
545
385
|
// check max role members will not be exceeded
|
546
386
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
547
387
|
revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
548
388
|
}
|
549
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
|
550
399
|
_roleMembers[roleId].add(account);
|
551
400
|
_authority.grantRole(
|
552
401
|
RoleId.unwrap(roleId),
|
@@ -559,14 +408,15 @@ contract AccessAdmin is
|
|
559
408
|
/// @dev revoke the specified role from the provided account
|
560
409
|
function _revokeRoleFromAccount(RoleId roleId, address account)
|
561
410
|
internal
|
411
|
+
onlyExistingRole(roleId, false)
|
562
412
|
{
|
563
|
-
_checkRoleId(roleId);
|
564
413
|
|
565
414
|
// check role removal is permitted
|
566
|
-
if (_roleInfo[roleId].
|
567
|
-
revert
|
415
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
416
|
+
revert ErrorRoleMemberRemovalDisabled(roleId, account);
|
568
417
|
}
|
569
418
|
|
419
|
+
// TODO check account have roleId?
|
570
420
|
_roleMembers[roleId].remove(account);
|
571
421
|
_authority.revokeRole(
|
572
422
|
RoleId.unwrap(roleId),
|
@@ -576,37 +426,11 @@ contract AccessAdmin is
|
|
576
426
|
}
|
577
427
|
|
578
428
|
|
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
|
-
|
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.
|
604
431
|
function _createRole(
|
605
432
|
RoleId roleId,
|
606
|
-
|
607
|
-
string memory roleName,
|
608
|
-
uint256 maxMemberCount,
|
609
|
-
bool memberRemovalDisabled
|
433
|
+
RoleInfo memory info
|
610
434
|
)
|
611
435
|
internal
|
612
436
|
{
|
@@ -618,84 +442,57 @@ contract AccessAdmin is
|
|
618
442
|
}
|
619
443
|
|
620
444
|
// check admin role exists
|
621
|
-
if(!roleExists(adminRoleId)) {
|
622
|
-
revert ErrorRoleAdminNotExisting(adminRoleId);
|
445
|
+
if(!roleExists(info.adminRoleId)) {
|
446
|
+
revert ErrorRoleAdminNotExisting(info.adminRoleId);
|
623
447
|
}
|
624
448
|
|
625
449
|
// check role name is not empty
|
626
|
-
|
627
|
-
if(name.length() == 0) {
|
450
|
+
if(info.name.length() == 0) {
|
628
451
|
revert ErrorRoleNameEmpty(roleId);
|
629
452
|
}
|
630
453
|
|
631
454
|
// check role name is not used for another role
|
632
|
-
if(_roleForName[name].exists) {
|
455
|
+
if(_roleForName[info.name].exists) {
|
633
456
|
revert ErrorRoleNameAlreadyExists(
|
634
457
|
roleId,
|
635
|
-
|
636
|
-
_roleForName[name].roleId);
|
458
|
+
info.name.toString(),
|
459
|
+
_roleForName[info.name].roleId);
|
637
460
|
}
|
638
461
|
|
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();
|
661
|
-
}
|
662
|
-
|
663
|
-
emit LogRoleDisabled(roleId, disabled, disabledAtOld);
|
462
|
+
_createRoleUnchecked(roleId, info);
|
664
463
|
}
|
665
464
|
|
666
465
|
|
667
466
|
function _createRoleUnchecked(
|
668
467
|
RoleId roleId,
|
669
|
-
|
670
|
-
Str name,
|
671
|
-
uint256 maxMemberCount,
|
672
|
-
bool memberRemovalDisabled
|
468
|
+
RoleInfo memory info
|
673
469
|
)
|
674
470
|
private
|
675
471
|
{
|
676
472
|
// create role info
|
677
|
-
|
678
|
-
|
679
|
-
name: name,
|
680
|
-
maxMemberCount: maxMemberCount,
|
681
|
-
memberRemovalDisabled: memberRemovalDisabled,
|
682
|
-
disabledAt: TimestampLib.max(),
|
683
|
-
exists: true});
|
473
|
+
info.createdAt = TimestampLib.blockTimestamp();
|
474
|
+
_roleInfo[roleId] = info;
|
684
475
|
|
685
476
|
// create role name info
|
686
|
-
_roleForName[name] = RoleNameInfo({
|
477
|
+
_roleForName[info.name] = RoleNameInfo({
|
687
478
|
roleId: roleId,
|
688
479
|
exists: true});
|
689
480
|
|
690
481
|
// add role to list of roles
|
691
482
|
_roleIds.push(roleId);
|
692
483
|
|
693
|
-
emit LogRoleCreated(roleId, adminRoleId, name.toString());
|
484
|
+
emit LogRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
|
694
485
|
}
|
695
486
|
|
696
487
|
|
697
|
-
function _createTarget(
|
488
|
+
function _createTarget(
|
489
|
+
address target,
|
490
|
+
string memory targetName,
|
491
|
+
bool checkAuthority,
|
492
|
+
bool custom
|
493
|
+
)
|
698
494
|
internal
|
495
|
+
nonReentrant()
|
699
496
|
{
|
700
497
|
// check target does not yet exist
|
701
498
|
if(targetExists(target)) {
|
@@ -710,7 +507,7 @@ contract AccessAdmin is
|
|
710
507
|
revert ErrorTargetNameEmpty(target);
|
711
508
|
}
|
712
509
|
|
713
|
-
// check target name is not used for another
|
510
|
+
// check target name is not used for another target
|
714
511
|
if( _targetForName[name] != address(0)) {
|
715
512
|
revert ErrorTargetNameAlreadyExists(
|
716
513
|
target,
|
@@ -719,19 +516,22 @@ contract AccessAdmin is
|
|
719
516
|
}
|
720
517
|
|
721
518
|
// check target is an access managed contract
|
722
|
-
if (!isAccessManaged(target)) {
|
519
|
+
if (!ContractLib.isAccessManaged(target)) {
|
723
520
|
revert ErrorTargetNotAccessManaged(target);
|
724
521
|
}
|
725
522
|
|
726
523
|
// check target shares authority with this contract
|
727
|
-
|
728
|
-
|
729
|
-
|
524
|
+
if (checkAuthority) {
|
525
|
+
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
526
|
+
if (targetAuthority != authority()) {
|
527
|
+
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
528
|
+
}
|
730
529
|
}
|
731
530
|
|
732
531
|
// create target info
|
733
532
|
_targetInfo[target] = TargetInfo({
|
734
533
|
name: name,
|
534
|
+
isCustom: custom,
|
735
535
|
createdAt: TimestampLib.blockTimestamp()
|
736
536
|
});
|
737
537
|
|
@@ -744,16 +544,53 @@ contract AccessAdmin is
|
|
744
544
|
emit LogTargetCreated(target, targetName);
|
745
545
|
}
|
746
546
|
|
747
|
-
|
547
|
+
|
548
|
+
function _setTargetClosed(address target, bool locked)
|
748
549
|
internal
|
749
|
-
view
|
750
|
-
returns (bool)
|
751
550
|
{
|
752
|
-
|
753
|
-
|
754
|
-
|
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);
|
755
594
|
}
|
756
|
-
return size > 0;
|
757
595
|
}
|
758
|
-
|
759
596
|
}
|