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