@etherisc/gif-next 0.0.2-f18fb8b-243 → 0.0.2-f1b01e0-214
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 +89 -8
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +496 -255
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +277 -20
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +395 -203
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +143 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +180 -476
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +265 -31
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +119 -380
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +473 -287
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +151 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +123 -194
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +318 -90
- 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 +1445 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -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 +1388 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +242 -45
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +147 -96
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +263 -130
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +738 -328
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +209 -94
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1080 -357
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -281
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +96 -96
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +863 -726
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +133 -350
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +247 -33
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +117 -136
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +109 -318
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +175 -421
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +265 -31
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +337 -210
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +212 -35
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -212
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -308
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -392
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +673 -552
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +194 -178
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +100 -90
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +276 -435
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +265 -31
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -229
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +459 -309
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +232 -333
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +109 -131
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -427
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -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 +370 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +597 -80
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +645 -373
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- 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 +67 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +608 -539
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +142 -110
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +568 -252
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +106 -136
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -318
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -143
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +152 -20
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +274 -391
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +126 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +35 -67
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +205 -168
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +198 -138
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +82 -36
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
- 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 +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- 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 +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +338 -225
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +350 -203
- package/contracts/authorization/IAccess.sol +13 -4
- package/contracts/authorization/IAccessAdmin.sol +69 -35
- package/contracts/authorization/IAuthorization.sol +33 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +20 -28
- package/contracts/distribution/BasicDistributionAuthorization.sol +26 -9
- package/contracts/distribution/Distribution.sol +41 -80
- package/contracts/distribution/DistributionService.sol +206 -123
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +9 -14
- package/contracts/distribution/IDistributionService.sol +40 -22
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +68 -48
- package/contracts/instance/IInstanceService.sol +30 -34
- package/contracts/instance/Instance.sol +121 -71
- package/contracts/instance/InstanceAdmin.sol +289 -105
- package/contracts/instance/InstanceAuthorizationV3.sol +99 -66
- package/contracts/instance/InstanceReader.sol +288 -43
- package/contracts/instance/InstanceService.sol +209 -193
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +24 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +30 -20
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +1 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +21 -24
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +37 -28
- package/contracts/pool/BasicPoolAuthorization.sol +36 -9
- package/contracts/pool/BundleService.sol +204 -105
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -10
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +145 -113
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +544 -241
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +98 -78
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +12 -45
- package/contracts/product/BasicProductAuthorization.sol +25 -9
- package/contracts/product/ClaimService.sol +365 -175
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +28 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +458 -269
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +69 -60
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +168 -93
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +78 -29
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -216
- package/contracts/registry/RegistryAdmin.sol +166 -273
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +41 -66
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +183 -52
- package/contracts/registry/TokenRegistry.sol +8 -10
- package/contracts/shared/Component.sol +65 -136
- package/contracts/shared/ComponentService.sol +463 -336
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +51 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +81 -37
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +18 -36
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +20 -13
- package/contracts/staking/IStakingService.sol +28 -9
- package/contracts/staking/Staking.sol +118 -85
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +26 -33
- package/contracts/staking/StakingService.sol +90 -37
- package/contracts/staking/StakingServiceManager.sol +8 -7
- package/contracts/staking/StakingStore.sol +14 -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/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +60 -41
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +56 -126
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +5 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- 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/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/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/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/base/ObjectManager.sol +0 -79
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -487
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -5,13 +5,24 @@ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/acce
|
|
5
5
|
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
6
6
|
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
7
7
|
|
8
|
-
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
9
8
|
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
9
|
+
import {IAuthorization} from "./IAuthorization.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
+
|
12
|
+
import {AccessAdminLib} from "./AccessAdminLib.sol";
|
13
|
+
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
14
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
15
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
16
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
10
17
|
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
11
18
|
import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
|
12
19
|
import {Str, StrLib} from "../type/String.sol";
|
13
|
-
import {
|
20
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
21
|
+
import {VersionPart} from "../type/Version.sol";
|
14
22
|
|
23
|
+
interface IAccessManagedChecker {
|
24
|
+
function authority() external view returns (address);
|
25
|
+
}
|
15
26
|
|
16
27
|
/**
|
17
28
|
* @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
|
@@ -28,13 +39,23 @@ contract AccessAdmin is
|
|
28
39
|
string public constant ADMIN_ROLE_NAME = "AdminRole";
|
29
40
|
string public constant PUBLIC_ROLE_NAME = "PublicRole";
|
30
41
|
|
31
|
-
/// @dev
|
42
|
+
/// @dev admin name used for logging only
|
43
|
+
string internal _adminName;
|
44
|
+
|
45
|
+
/// @dev the access manager driving the access admin contract
|
46
|
+
/// hold link to registry and release version
|
32
47
|
AccessManagerCloneable internal _authority;
|
33
48
|
|
49
|
+
/// @dev the authorization contract used for initial access control
|
50
|
+
IAuthorization internal _authorization;
|
51
|
+
|
34
52
|
/// @dev stores the deployer address and allows to create initializers
|
35
53
|
/// that are restricted to the deployer address.
|
36
54
|
address internal _deployer;
|
37
55
|
|
56
|
+
/// @dev the linked NFT ID
|
57
|
+
NftId internal _linkedNftId;
|
58
|
+
|
38
59
|
/// @dev store role info per role id
|
39
60
|
mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
|
40
61
|
|
@@ -67,53 +88,139 @@ contract AccessAdmin is
|
|
67
88
|
|
68
89
|
modifier onlyDeployer() {
|
69
90
|
// special case for cloned AccessAdmin contracts
|
70
|
-
// IMPORTANT cloning and
|
91
|
+
// IMPORTANT cloning and initialize authority needs to be done in a single transaction
|
71
92
|
if (_deployer == address(0)) {
|
72
93
|
_deployer = msg.sender;
|
73
94
|
}
|
74
95
|
|
75
96
|
if (msg.sender != _deployer) {
|
76
|
-
revert
|
97
|
+
revert ErrorAccessAdminNotDeployer();
|
77
98
|
}
|
78
99
|
_;
|
79
100
|
}
|
80
101
|
|
81
|
-
modifier
|
82
|
-
|
83
|
-
revert ErrorRoleUnknown(roleId);
|
84
|
-
}
|
102
|
+
modifier onlyRoleMember(RoleId roleId, address account) {
|
103
|
+
_checkRoleExists(roleId, false);
|
85
104
|
|
86
|
-
if (!
|
87
|
-
revert
|
105
|
+
if (!hasRole(account, roleId)) {
|
106
|
+
revert ErrorAccessAdminNotRoleOwner(roleId, account);
|
88
107
|
}
|
89
108
|
_;
|
90
109
|
}
|
91
110
|
|
92
|
-
modifier
|
93
|
-
|
94
|
-
|
111
|
+
modifier onlyRoleAdmin(RoleId roleId, address account) {
|
112
|
+
_checkRoleExists(roleId, false);
|
113
|
+
|
114
|
+
if (!hasAdminRole(account, roleId)) {
|
115
|
+
revert ErrorAccessAdminNotAdminOfRole(_roleInfo[roleId].adminRoleId, account);
|
95
116
|
}
|
96
117
|
_;
|
97
118
|
}
|
98
119
|
|
99
|
-
modifier onlyExistingRole(
|
100
|
-
|
120
|
+
modifier onlyExistingRole(
|
121
|
+
RoleId roleId,
|
122
|
+
bool onlyActiveRole,
|
123
|
+
bool allowLockedRoles
|
124
|
+
)
|
125
|
+
{
|
126
|
+
if (!allowLockedRoles) {
|
127
|
+
_checkRoleExists(roleId, onlyActiveRole);
|
128
|
+
}
|
101
129
|
_;
|
102
130
|
}
|
103
131
|
|
104
132
|
modifier onlyExistingTarget(address target) {
|
105
|
-
|
133
|
+
_checkTargetExists(target);
|
106
134
|
_;
|
107
135
|
}
|
108
136
|
|
109
|
-
|
110
|
-
|
111
|
-
|
137
|
+
//-------------- initialization functions ------------------------------//
|
138
|
+
|
139
|
+
// event LogAccessAdminDebug(string message);
|
140
|
+
|
141
|
+
/// @dev Initializes this admin with the provided accessManager (and authorization specification).
|
142
|
+
/// Internally initializes access manager with this admin and creates basic role setup.
|
143
|
+
function initialize(
|
144
|
+
address authority,
|
145
|
+
string memory adminName
|
146
|
+
)
|
147
|
+
public
|
148
|
+
initializer()
|
149
|
+
{
|
150
|
+
__AccessAdmin_init(authority, adminName);
|
151
|
+
}
|
152
|
+
|
153
|
+
|
154
|
+
function __AccessAdmin_init(
|
155
|
+
address authority,
|
156
|
+
string memory adminName
|
157
|
+
)
|
158
|
+
internal
|
159
|
+
onlyInitializing()
|
160
|
+
onlyDeployer()
|
161
|
+
{
|
162
|
+
// checks
|
163
|
+
// check authority is contract
|
164
|
+
if (!ContractLib.isContract(authority)) {
|
165
|
+
revert ErrorAccessAdminAuthorityNotContract(authority);
|
166
|
+
}
|
167
|
+
|
168
|
+
// check name not empty
|
169
|
+
if (bytes(adminName).length == 0) {
|
170
|
+
revert ErrorAccessAdminAccessManagerEmptyName();
|
171
|
+
}
|
172
|
+
|
173
|
+
_authority = AccessManagerCloneable(authority);
|
112
174
|
_authority.initialize(address(this));
|
113
175
|
|
114
|
-
|
115
|
-
|
116
|
-
|
176
|
+
// delayed additional check for authority after its initialization
|
177
|
+
if (!ContractLib.isAuthority(authority)) {
|
178
|
+
revert ErrorAccessAdminAccessManagerNotAccessManager(authority);
|
179
|
+
}
|
180
|
+
|
181
|
+
// effects
|
182
|
+
// set and initialize this access manager contract as
|
183
|
+
// the admin (ADMIN_ROLE) of the provided authority
|
184
|
+
__AccessManaged_init(authority);
|
185
|
+
|
186
|
+
// set name for logging
|
187
|
+
_adminName = adminName;
|
188
|
+
|
189
|
+
// set initial linked NFT ID to zero
|
190
|
+
_linkedNftId = NftIdLib.zero();
|
191
|
+
|
192
|
+
// create admin and public roles
|
193
|
+
_initializeAdminAndPublicRoles();
|
194
|
+
}
|
195
|
+
|
196
|
+
|
197
|
+
function getRelease() public view virtual returns (VersionPart release) {
|
198
|
+
return _authority.getRelease();
|
199
|
+
}
|
200
|
+
|
201
|
+
|
202
|
+
function getRegistry() public view returns (IRegistry registry) {
|
203
|
+
return _authority.getRegistry();
|
204
|
+
}
|
205
|
+
|
206
|
+
|
207
|
+
function getLinkedNftId() external view returns (NftId linkedNftId) {
|
208
|
+
return _linkedNftId;
|
209
|
+
}
|
210
|
+
|
211
|
+
|
212
|
+
function getLinkedOwner() external view returns (address linkedOwner) {
|
213
|
+
return getRegistry().ownerOf(_linkedNftId);
|
214
|
+
}
|
215
|
+
|
216
|
+
|
217
|
+
function getAuthorization() public view returns (IAuthorization authorization) {
|
218
|
+
return _authorization;
|
219
|
+
}
|
220
|
+
|
221
|
+
|
222
|
+
function isLocked() public view returns (bool locked) {
|
223
|
+
return _authority.isLocked();
|
117
224
|
}
|
118
225
|
|
119
226
|
//--- view functions for roles ------------------------------------------//
|
@@ -138,12 +245,12 @@ contract AccessAdmin is
|
|
138
245
|
return _roleInfo[roleId].createdAt.gtz();
|
139
246
|
}
|
140
247
|
|
141
|
-
function
|
142
|
-
return
|
248
|
+
function getRoleForName(string memory name) external view returns (RoleId roleId) {
|
249
|
+
return _roleForName[StrLib.toStr(name)].roleId;
|
143
250
|
}
|
144
251
|
|
145
|
-
function
|
146
|
-
return
|
252
|
+
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
|
253
|
+
return _roleInfo[roleId];
|
147
254
|
}
|
148
255
|
|
149
256
|
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
@@ -154,6 +261,7 @@ contract AccessAdmin is
|
|
154
261
|
return _roleMembers[roleId].at(idx);
|
155
262
|
}
|
156
263
|
|
264
|
+
// TODO false because not role member or because role not exists?
|
157
265
|
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
158
266
|
(bool isMember, ) = _authority.hasRole(
|
159
267
|
RoleId.unwrap(roleId),
|
@@ -219,44 +327,59 @@ contract AccessAdmin is
|
|
219
327
|
selector.toBytes4()));
|
220
328
|
}
|
221
329
|
|
222
|
-
function
|
223
|
-
|
224
|
-
|
225
|
-
}
|
330
|
+
function deployer() public view returns (address) {
|
331
|
+
return _deployer;
|
332
|
+
}
|
226
333
|
|
227
|
-
|
228
|
-
abi.encodeWithSelector(
|
229
|
-
AccessManagedUpgradeable.authority.selector));
|
334
|
+
//--- internal/private functions -------------------------------------------------//
|
230
335
|
|
231
|
-
|
232
|
-
|
336
|
+
function _linkToNftOwnable(address registerable) internal {
|
337
|
+
if (!getRegistry().isRegistered(registerable)) {
|
338
|
+
revert ErrorAccessAdminNotRegistered(registerable);
|
339
|
+
}
|
233
340
|
|
234
|
-
|
235
|
-
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
341
|
+
_linkedNftId = getRegistry().getNftIdForAddress(registerable);
|
236
342
|
}
|
237
343
|
|
238
|
-
function
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
createdAt: TimestampLib.blockTimestamp()
|
245
|
-
});
|
246
|
-
}
|
344
|
+
function _initializeAdminAndPublicRoles()
|
345
|
+
internal
|
346
|
+
virtual
|
347
|
+
onlyInitializing()
|
348
|
+
{
|
349
|
+
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
247
350
|
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
351
|
+
// setup admin role
|
352
|
+
_createRoleUnchecked(
|
353
|
+
ADMIN_ROLE(),
|
354
|
+
AccessAdminLib.toRole({
|
355
|
+
adminRoleId: ADMIN_ROLE(),
|
356
|
+
roleType: RoleType.Contract,
|
357
|
+
maxMemberCount: 1,
|
358
|
+
name: ADMIN_ROLE_NAME}));
|
254
359
|
|
255
|
-
|
256
|
-
|
360
|
+
// add this contract as admin role member
|
361
|
+
_roleMembers[adminRoleId].add(address(this));
|
362
|
+
|
363
|
+
// setup public role
|
364
|
+
_createRoleUnchecked(
|
365
|
+
PUBLIC_ROLE(),
|
366
|
+
AccessAdminLib.toRole({
|
367
|
+
adminRoleId: ADMIN_ROLE(),
|
368
|
+
roleType: RoleType.Gif,
|
369
|
+
maxMemberCount: type(uint32).max,
|
370
|
+
name: PUBLIC_ROLE_NAME}));
|
257
371
|
}
|
258
372
|
|
259
|
-
|
373
|
+
function _createTargetWithRole(
|
374
|
+
address target,
|
375
|
+
string memory targetName,
|
376
|
+
RoleId targetRoleId
|
377
|
+
)
|
378
|
+
internal
|
379
|
+
{
|
380
|
+
_createTarget(target, targetName, true, false);
|
381
|
+
_grantRoleToAccount(targetRoleId, target);
|
382
|
+
}
|
260
383
|
|
261
384
|
function _authorizeTargetFunctions(
|
262
385
|
address target,
|
@@ -266,14 +389,21 @@ contract AccessAdmin is
|
|
266
389
|
internal
|
267
390
|
{
|
268
391
|
if (roleId == getAdminRole()) {
|
269
|
-
revert
|
392
|
+
revert ErrorAccessAdminAuthorizeForAdminRoleInvalid(target);
|
270
393
|
}
|
271
394
|
|
272
|
-
|
273
|
-
|
395
|
+
(
|
396
|
+
bytes4[] memory functionSelectors,
|
397
|
+
string[] memory functionNames
|
398
|
+
) = _processFunctionSelectors(target, functions, true);
|
274
399
|
|
275
400
|
// apply authz via access manager
|
276
|
-
_grantRoleAccessToFunctions(
|
401
|
+
_grantRoleAccessToFunctions(
|
402
|
+
target,
|
403
|
+
roleId,
|
404
|
+
functionSelectors,
|
405
|
+
functionNames,
|
406
|
+
false); // allow locked roles
|
277
407
|
}
|
278
408
|
|
279
409
|
function _unauthorizeTargetFunctions(
|
@@ -282,9 +412,17 @@ contract AccessAdmin is
|
|
282
412
|
)
|
283
413
|
internal
|
284
414
|
{
|
285
|
-
|
286
|
-
|
287
|
-
|
415
|
+
(
|
416
|
+
bytes4[] memory functionSelectors,
|
417
|
+
string[] memory functionNames
|
418
|
+
) = _processFunctionSelectors(target, functions, false);
|
419
|
+
|
420
|
+
_grantRoleAccessToFunctions(
|
421
|
+
target,
|
422
|
+
getAdminRole(),
|
423
|
+
functionSelectors,
|
424
|
+
functionNames,
|
425
|
+
true); // allowLockedRoles
|
288
426
|
}
|
289
427
|
|
290
428
|
function _processFunctionSelectors(
|
@@ -293,12 +431,15 @@ contract AccessAdmin is
|
|
293
431
|
bool addFunctions
|
294
432
|
)
|
295
433
|
internal
|
434
|
+
onlyExistingTarget(target)
|
296
435
|
returns (
|
297
|
-
bytes4[] memory functionSelectors
|
436
|
+
bytes4[] memory functionSelectors,
|
437
|
+
string[] memory functionNames
|
298
438
|
)
|
299
439
|
{
|
300
440
|
uint256 n = functions.length;
|
301
441
|
functionSelectors = new bytes4[](n);
|
442
|
+
functionNames = new string[](n);
|
302
443
|
FunctionInfo memory func;
|
303
444
|
Selector selector;
|
304
445
|
|
@@ -315,70 +456,7 @@ contract AccessAdmin is
|
|
315
456
|
|
316
457
|
// add bytes4 selector to function selector array
|
317
458
|
functionSelectors[i] = selector.toBytes4();
|
318
|
-
|
319
|
-
}
|
320
|
-
|
321
|
-
function _initializeAuthority(
|
322
|
-
address authorityAddress
|
323
|
-
)
|
324
|
-
internal
|
325
|
-
virtual
|
326
|
-
onlyInitializing()
|
327
|
-
onlyDeployer()
|
328
|
-
{
|
329
|
-
if (authority() != address(0)) {
|
330
|
-
revert ErrorAuthorityAlreadySet();
|
331
|
-
}
|
332
|
-
|
333
|
-
_authority = AccessManagerCloneable(authorityAddress);
|
334
|
-
__AccessManaged_init(address(_authority));
|
335
|
-
}
|
336
|
-
|
337
|
-
|
338
|
-
function _initializeAdminAndPublicRoles()
|
339
|
-
internal
|
340
|
-
virtual
|
341
|
-
onlyInitializing()
|
342
|
-
{
|
343
|
-
_createAdminAndPublicRoles();
|
344
|
-
}
|
345
|
-
|
346
|
-
|
347
|
-
/// @dev internal setup function that can be used in both constructor and initializer.
|
348
|
-
function _createAdminAndPublicRoles()
|
349
|
-
internal
|
350
|
-
{
|
351
|
-
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
352
|
-
FunctionInfo[] memory functions;
|
353
|
-
|
354
|
-
// setup admin role
|
355
|
-
_createRoleUnchecked(
|
356
|
-
ADMIN_ROLE(),
|
357
|
-
toRole({
|
358
|
-
adminRoleId: ADMIN_ROLE(),
|
359
|
-
roleType: RoleType.Contract,
|
360
|
-
maxMemberCount: 1,
|
361
|
-
name: ADMIN_ROLE_NAME}));
|
362
|
-
|
363
|
-
// add this contract as admin role member
|
364
|
-
_roleMembers[adminRoleId].add(address(this));
|
365
|
-
|
366
|
-
// setup public role
|
367
|
-
_createRoleUnchecked(
|
368
|
-
PUBLIC_ROLE(),
|
369
|
-
toRole({
|
370
|
-
adminRoleId: ADMIN_ROLE(),
|
371
|
-
roleType: RoleType.Gif,
|
372
|
-
maxMemberCount: type(uint32).max,
|
373
|
-
name: PUBLIC_ROLE_NAME}));
|
374
|
-
}
|
375
|
-
|
376
|
-
/// @dev check if target exists and reverts if it doesn't
|
377
|
-
function _checkTarget(address target)
|
378
|
-
internal
|
379
|
-
{
|
380
|
-
if (_targetInfo[target].createdAt.eqz()) {
|
381
|
-
revert ErrorTargetUnknown(target);
|
459
|
+
functionNames[i] = func.name.toString();
|
382
460
|
}
|
383
461
|
}
|
384
462
|
|
@@ -386,78 +464,82 @@ contract AccessAdmin is
|
|
386
464
|
function _grantRoleAccessToFunctions(
|
387
465
|
address target,
|
388
466
|
RoleId roleId,
|
389
|
-
bytes4[] memory functionSelectors
|
467
|
+
bytes4[] memory functionSelectors,
|
468
|
+
string[] memory functionNames,
|
469
|
+
bool allowLockedRoles // admin and public roles are locked
|
390
470
|
)
|
391
471
|
internal
|
472
|
+
onlyExistingTarget(target)
|
473
|
+
onlyExistingRole(roleId, true, allowLockedRoles)
|
392
474
|
{
|
475
|
+
|
393
476
|
_authority.setTargetFunctionRole(
|
394
477
|
target,
|
395
478
|
functionSelectors,
|
396
479
|
RoleId.unwrap(roleId));
|
397
480
|
|
398
|
-
//
|
481
|
+
// log function grantings
|
482
|
+
for (uint256 i = 0; i < functionSelectors.length; i++) {
|
483
|
+
emit LogAccessAdminFunctionGranted(
|
484
|
+
_adminName,
|
485
|
+
target,
|
486
|
+
string(abi.encodePacked(
|
487
|
+
functionNames[i],
|
488
|
+
"(): ",
|
489
|
+
_getRoleName(roleId))));
|
490
|
+
}
|
399
491
|
}
|
400
492
|
|
493
|
+
|
401
494
|
/// @dev grant the specified role to the provided account
|
402
495
|
function _grantRoleToAccount(RoleId roleId, address account)
|
403
496
|
internal
|
497
|
+
onlyExistingRole(roleId, true, false)
|
404
498
|
{
|
405
|
-
_checkRoleId(roleId);
|
406
|
-
|
407
499
|
// check max role members will not be exceeded
|
408
500
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
409
|
-
revert
|
501
|
+
revert ErrorAccessAdminRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
410
502
|
}
|
411
503
|
|
412
504
|
// check account is contract for contract role
|
413
|
-
|
414
|
-
|
505
|
+
if (
|
506
|
+
_roleInfo[roleId].roleType == RoleType.Contract &&
|
507
|
+
!ContractLib.isContract(account) // will fail in account's constructor
|
508
|
+
) {
|
509
|
+
revert ErrorAccessAdminRoleMemberNotContract(roleId, account);
|
415
510
|
}
|
416
511
|
|
512
|
+
// TODO check account already have roleId
|
417
513
|
_roleMembers[roleId].add(account);
|
418
514
|
_authority.grantRole(
|
419
515
|
RoleId.unwrap(roleId),
|
420
516
|
account,
|
421
517
|
0);
|
422
518
|
|
423
|
-
|
519
|
+
emit LogAccessAdminRoleGranted(_adminName, account, _getRoleName(roleId));
|
424
520
|
}
|
425
521
|
|
426
522
|
/// @dev revoke the specified role from the provided account
|
427
523
|
function _revokeRoleFromAccount(RoleId roleId, address account)
|
428
524
|
internal
|
525
|
+
onlyExistingRole(roleId, false, false)
|
429
526
|
{
|
430
|
-
_checkRoleId(roleId);
|
431
527
|
|
432
528
|
// check role removal is permitted
|
433
529
|
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
434
|
-
revert
|
530
|
+
revert ErrorAccessAdminRoleMemberRemovalDisabled(roleId, account);
|
435
531
|
}
|
436
532
|
|
533
|
+
// TODO check account have roleId?
|
437
534
|
_roleMembers[roleId].remove(account);
|
438
535
|
_authority.revokeRole(
|
439
536
|
RoleId.unwrap(roleId),
|
440
537
|
account);
|
441
538
|
|
442
|
-
|
539
|
+
emit LogAccessAdminRoleRevoked(_adminName, account, _roleInfo[roleId].name.toString());
|
443
540
|
}
|
444
541
|
|
445
542
|
|
446
|
-
function _checkRoleId(RoleId roleId)
|
447
|
-
internal
|
448
|
-
{
|
449
|
-
if (_roleInfo[roleId].createdAt.eqz()) {
|
450
|
-
revert ErrorRoleUnknown(roleId);
|
451
|
-
}
|
452
|
-
|
453
|
-
uint64 roleIdInt = RoleId.unwrap(roleId);
|
454
|
-
if (roleIdInt == _authority.ADMIN_ROLE()
|
455
|
-
|| roleIdInt == _authority.PUBLIC_ROLE())
|
456
|
-
{
|
457
|
-
revert ErrorRoleIsLocked(roleId);
|
458
|
-
}
|
459
|
-
}
|
460
|
-
|
461
543
|
/// @dev Creates a role based on the provided parameters.
|
462
544
|
/// Checks that the provided role and role id and role name not already used.
|
463
545
|
function _createRole(
|
@@ -466,32 +548,21 @@ contract AccessAdmin is
|
|
466
548
|
)
|
467
549
|
internal
|
468
550
|
{
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
roleId,
|
473
|
-
_roleInfo[roleId].name.toString());
|
474
|
-
}
|
475
|
-
|
476
|
-
// check admin role exists
|
477
|
-
if(!roleExists(info.adminRoleId)) {
|
478
|
-
revert ErrorRoleAdminNotExisting(info.adminRoleId);
|
479
|
-
}
|
480
|
-
|
481
|
-
// check role name is not empty
|
482
|
-
if(info.name.length() == 0) {
|
483
|
-
revert ErrorRoleNameEmpty(roleId);
|
484
|
-
}
|
551
|
+
AccessAdminLib.checkRoleCreation(this, roleId, info);
|
552
|
+
_createRoleUnchecked(roleId, info);
|
553
|
+
}
|
485
554
|
|
486
|
-
// check role name is not used for another role
|
487
|
-
if(_roleForName[info.name].exists) {
|
488
|
-
revert ErrorRoleNameAlreadyExists(
|
489
|
-
roleId,
|
490
|
-
info.name.toString(),
|
491
|
-
_roleForName[info.name].roleId);
|
492
|
-
}
|
493
555
|
|
494
|
-
|
556
|
+
function _createTarget(
|
557
|
+
address target,
|
558
|
+
string memory targetName,
|
559
|
+
bool checkAuthority,
|
560
|
+
bool custom
|
561
|
+
)
|
562
|
+
internal
|
563
|
+
{
|
564
|
+
AccessAdminLib.checkTargetCreation(this, target, targetName, checkAuthority);
|
565
|
+
_createTargetUnchecked(target, targetName, custom);
|
495
566
|
}
|
496
567
|
|
497
568
|
|
@@ -513,54 +584,19 @@ contract AccessAdmin is
|
|
513
584
|
// add role to list of roles
|
514
585
|
_roleIds.push(roleId);
|
515
586
|
|
516
|
-
emit
|
587
|
+
emit LogAccessAdminRoleCreated(_adminName, roleId, info.roleType, info.adminRoleId, info.name.toString());
|
517
588
|
}
|
518
589
|
|
519
590
|
|
520
|
-
function
|
591
|
+
function _createTargetUnchecked(
|
521
592
|
address target,
|
522
593
|
string memory targetName,
|
523
|
-
bool checkAuthority,
|
524
594
|
bool custom
|
525
595
|
)
|
526
596
|
internal
|
527
|
-
nonReentrant()
|
528
597
|
{
|
529
|
-
// check target does not yet exist
|
530
|
-
if(targetExists(target)) {
|
531
|
-
revert ErrorTargetAlreadyCreated(
|
532
|
-
target,
|
533
|
-
_targetInfo[target].name.toString());
|
534
|
-
}
|
535
|
-
|
536
|
-
// check target name is not empty
|
537
|
-
Str name = StrLib.toStr(targetName);
|
538
|
-
if(name.length() == 0) {
|
539
|
-
revert ErrorTargetNameEmpty(target);
|
540
|
-
}
|
541
|
-
|
542
|
-
// check target name is not used for another target
|
543
|
-
if( _targetForName[name] != address(0)) {
|
544
|
-
revert ErrorTargetNameAlreadyExists(
|
545
|
-
target,
|
546
|
-
targetName,
|
547
|
-
_targetForName[name]);
|
548
|
-
}
|
549
|
-
|
550
|
-
// check target is an access managed contract
|
551
|
-
if (!isAccessManaged(target)) {
|
552
|
-
revert ErrorTargetNotAccessManaged(target);
|
553
|
-
}
|
554
|
-
|
555
|
-
// check target shares authority with this contract
|
556
|
-
if (checkAuthority) {
|
557
|
-
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
558
|
-
if (targetAuthority != authority()) {
|
559
|
-
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
560
|
-
}
|
561
|
-
}
|
562
|
-
|
563
598
|
// create target info
|
599
|
+
Str name = StrLib.toStr(targetName);
|
564
600
|
_targetInfo[target] = TargetInfo({
|
565
601
|
name: name,
|
566
602
|
isCustom: custom,
|
@@ -573,19 +609,96 @@ contract AccessAdmin is
|
|
573
609
|
// add role to list of roles
|
574
610
|
_targets.push(target);
|
575
611
|
|
576
|
-
emit
|
612
|
+
emit LogAccessAdminTargetCreated(_adminName, target, targetName);
|
577
613
|
}
|
578
614
|
|
579
|
-
|
615
|
+
|
616
|
+
function _setTargetLocked(address target, bool locked)
|
580
617
|
internal
|
581
|
-
|
582
|
-
|
618
|
+
onlyExistingTarget(target)
|
619
|
+
{
|
620
|
+
_authority.setTargetClosed(target, locked);
|
621
|
+
}
|
622
|
+
|
623
|
+
|
624
|
+
function _getRoleName(RoleId roleId) internal view returns (string memory) {
|
625
|
+
if (roleExists(roleId)) {
|
626
|
+
return _roleInfo[roleId].name.toString();
|
627
|
+
}
|
628
|
+
return "<unknown-role>";
|
629
|
+
}
|
630
|
+
|
631
|
+
|
632
|
+
function _checkAuthorization(
|
633
|
+
address authorization,
|
634
|
+
ObjectType expectedDomain,
|
635
|
+
VersionPart expectedRelease,
|
636
|
+
bool checkAlreadyInitialized
|
637
|
+
)
|
638
|
+
internal
|
639
|
+
view
|
640
|
+
{
|
641
|
+
AccessAdminLib.checkAuthorization(
|
642
|
+
address(_authorization),
|
643
|
+
authorization,
|
644
|
+
expectedDomain,
|
645
|
+
expectedRelease,
|
646
|
+
checkAlreadyInitialized);
|
647
|
+
}
|
648
|
+
|
649
|
+
|
650
|
+
function _checkRoleExists(
|
651
|
+
RoleId roleId,
|
652
|
+
bool onlyActiveRole
|
653
|
+
)
|
654
|
+
internal
|
655
|
+
view
|
656
|
+
{
|
657
|
+
if (!roleExists(roleId)) {
|
658
|
+
revert ErrorAccessAdminRoleUnknown(roleId);
|
659
|
+
}
|
660
|
+
|
661
|
+
uint64 roleIdInt = RoleId.unwrap(roleId);
|
662
|
+
if (roleIdInt == _authority.ADMIN_ROLE()) {
|
663
|
+
revert ErrorAccessAdminRoleIsLocked(roleId);
|
664
|
+
}
|
665
|
+
|
666
|
+
// check if role is disabled
|
667
|
+
if (onlyActiveRole && _roleInfo[roleId].pausedAt <= TimestampLib.blockTimestamp()) {
|
668
|
+
revert ErrorAccessAdminRoleIsPaused(roleId);
|
669
|
+
}
|
670
|
+
}
|
671
|
+
|
672
|
+
|
673
|
+
|
674
|
+
/// @dev check if target exists and reverts if it doesn't
|
675
|
+
function _checkTargetExists(
|
676
|
+
address target
|
677
|
+
)
|
678
|
+
internal
|
679
|
+
view
|
583
680
|
{
|
584
|
-
|
585
|
-
|
586
|
-
|
681
|
+
// check not yet created
|
682
|
+
if (!targetExists(target)) {
|
683
|
+
revert ErrorAccessAdminTargetNotCreated(target);
|
684
|
+
}
|
685
|
+
}
|
686
|
+
|
687
|
+
|
688
|
+
function _checkIsRegistered(
|
689
|
+
address registry,
|
690
|
+
address target,
|
691
|
+
ObjectType expectedType
|
692
|
+
)
|
693
|
+
internal
|
694
|
+
view
|
695
|
+
{
|
696
|
+
AccessAdminLib.checkIsRegistered(registry, target, expectedType);
|
697
|
+
}
|
698
|
+
|
699
|
+
function _checkRegistry(address registry) internal view {
|
700
|
+
if (!ContractLib.isRegistry(registry)) {
|
701
|
+
revert ErrorAccessAdminNotRegistry(registry);
|
587
702
|
}
|
588
|
-
return size > 0;
|
589
703
|
}
|
590
|
-
|
591
704
|
}
|