@etherisc/gif-next 0.0.2-e3f4f82-063 → 0.0.2-e3f92e5-870
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 +146 -22
- 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 +1494 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/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 +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -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 +1209 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +930 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1580 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1071 -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 +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 +439 -1275
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +487 -159
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +570 -3115
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1666 -630
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +525 -402
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +351 -125
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3728 -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/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
- 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 +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- 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 +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 +938 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -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 +753 -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 +854 -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 +1231 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -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 +886 -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 +1006 -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 +879 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -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/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +260 -381
- 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/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +315 -361
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +199 -185
- 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 +911 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +764 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
- 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 +72 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +677 -112
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +325 -229
- 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 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +1017 -150
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
- 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 +312 -336
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +341 -123
- 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 +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 +1337 -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 +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -101
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +686 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1556 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +165 -220
- 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 +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IComponent.sol/IComponent.json} +332 -167
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1196 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
- 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 +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +137 -159
- 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 +776 -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 +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
- 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 +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
- 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 +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +156 -171
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
- 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 +1491 -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/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
- 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 +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 +792 -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 +373 -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 +241 -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 +204 -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 +572 -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 +167 -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 +704 -0
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +365 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +170 -0
- package/contracts/authorization/IAuthorization.sol +80 -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 +244 -0
- package/contracts/distribution/DistributionService.sol +385 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +43 -0
- package/contracts/distribution/IDistributionService.sol +103 -0
- 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 +89 -37
- package/contracts/instance/IInstanceService.sol +75 -17
- package/contracts/instance/Instance.sol +214 -353
- package/contracts/instance/InstanceAdmin.sol +450 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +415 -80
- package/contracts/instance/InstanceService.sol +419 -158
- package/contracts/instance/InstanceServiceManager.sol +14 -32
- 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 +9 -9
- package/contracts/instance/module/IComponents.sol +50 -0
- package/contracts/instance/module/IDistribution.sol +12 -8
- package/contracts/instance/module/IPolicy.sol +59 -19
- package/contracts/instance/module/IRisk.sol +4 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +45 -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 +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +173 -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 +343 -0
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +755 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +274 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +49 -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 +69 -0
- package/contracts/product/IClaimService.sol +135 -0
- package/contracts/product/IPolicyService.sol +95 -0
- package/contracts/product/IPricingService.sol +40 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +664 -0
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +309 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +467 -0
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +82 -35
- package/contracts/registry/IRegistry.sol +122 -37
- package/contracts/registry/IRegistryService.sol +40 -28
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -1
- package/contracts/registry/Registry.sol +555 -273
- package/contracts/registry/RegistryAdmin.sol +258 -0
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +116 -233
- package/contracts/registry/RegistryServiceManager.sol +26 -53
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
- package/contracts/registry/TokenRegistry.sol +261 -59
- package/contracts/shared/Component.sol +210 -0
- package/contracts/shared/ComponentService.sol +708 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +58 -0
- package/contracts/shared/IComponentService.sol +112 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +15 -12
- package/contracts/shared/IPolicyHolder.sol +35 -0
- package/contracts/shared/IRegisterable.sol +25 -5
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +13 -5
- package/contracts/shared/InitializableERC165.sol +35 -0
- package/contracts/shared/InstanceLinkedComponent.sol +195 -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 +75 -82
- package/contracts/shared/PolicyHolder.sol +62 -0
- package/contracts/shared/Registerable.sol +54 -38
- package/contracts/shared/RegistryLinked.sol +38 -0
- package/contracts/shared/Service.sol +43 -33
- package/contracts/shared/TokenHandler.sol +327 -12
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +175 -0
- package/contracts/staking/IStakingService.sol +172 -0
- package/contracts/staking/Staking.sol +546 -0
- package/contracts/staking/StakingLib.sol +281 -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/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +150 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/type/ClaimId.sol +80 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/type/Fee.sol +65 -0
- package/contracts/{types → type}/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/{types → type}/NftId.sol +28 -15
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +294 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +75 -0
- package/contracts/type/RoleId.sol +182 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/{types → type}/StateId.sol +48 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +33 -19
- package/contracts/type/UFixed.sol +262 -0
- package/contracts/{types → type}/Version.sol +59 -7
- package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
- package/contracts/upgradeability/ProxyManager.sol +232 -0
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +12 -8
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -787
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -729
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -971
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/BaseComponent.sol +0 -91
- package/contracts/components/Distribution.sol +0 -163
- package/contracts/components/IBaseComponent.sol +0 -25
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -247
- package/contracts/components/Product.sol +0 -289
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagedSimple.sol +0 -115
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/InstanceAccessManager.sol +0 -288
- package/contracts/instance/base/ComponentServiceBase.sol +0 -134
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/IAccess.sol +0 -38
- package/contracts/instance/module/ISetup.sol +0 -47
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -88
- package/contracts/instance/service/DistributionServiceManager.sol +0 -54
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -43
- package/contracts/instance/service/IProductService.sol +0 -110
- package/contracts/instance/service/PoolService.sol +0 -204
- package/contracts/instance/service/PoolServiceManager.sol +0 -54
- package/contracts/instance/service/ProductService.sol +0 -562
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/ERC165.sol +0 -25
- package/contracts/shared/ProxyManager.sol +0 -94
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/shared/Versionable.sol +0 -147
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/Fee.sol +0 -56
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RiskId.sol +0 -43
- package/contracts/types/RoleId.sol +0 -90
- package/contracts/types/UFixed.sol +0 -325
@@ -1,391 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
2
|
-
// OpenZeppelin Contracts (last updated v5.0.0) (access/manager/IAccessManager.sol)
|
3
|
-
|
4
|
-
pragma solidity ^0.8.20;
|
5
|
-
|
6
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
7
|
-
|
8
|
-
interface IAccessManagerSimple {
|
9
|
-
/**
|
10
|
-
* @dev A delayed operation was scheduled.
|
11
|
-
*/
|
12
|
-
event OperationScheduled(
|
13
|
-
bytes32 indexed operationId,
|
14
|
-
uint32 indexed nonce,
|
15
|
-
uint48 schedule,
|
16
|
-
address caller,
|
17
|
-
address target,
|
18
|
-
bytes data
|
19
|
-
);
|
20
|
-
|
21
|
-
/**
|
22
|
-
* @dev A scheduled operation was executed.
|
23
|
-
*/
|
24
|
-
event OperationExecuted(bytes32 indexed operationId, uint32 indexed nonce);
|
25
|
-
|
26
|
-
/**
|
27
|
-
* @dev A scheduled operation was canceled.
|
28
|
-
*/
|
29
|
-
event OperationCanceled(bytes32 indexed operationId, uint32 indexed nonce);
|
30
|
-
|
31
|
-
/**
|
32
|
-
* @dev Informational labelling for a roleId.
|
33
|
-
*/
|
34
|
-
event RoleLabel(uint64 indexed roleId, string label);
|
35
|
-
|
36
|
-
/**
|
37
|
-
* @dev Emitted when `account` is granted `roleId`.
|
38
|
-
*
|
39
|
-
* NOTE: The meaning of the `since` argument depends on the `newMember` argument.
|
40
|
-
* If the role is granted to a new member, the `since` argument indicates when the account becomes a member of the role,
|
41
|
-
* otherwise it indicates the execution delay for this account and roleId is updated.
|
42
|
-
*/
|
43
|
-
event RoleGranted(uint64 indexed roleId, address indexed account, uint32 delay, uint48 since, bool newMember);
|
44
|
-
|
45
|
-
/**
|
46
|
-
* @dev Emitted when `account` membership or `roleId` is revoked. Unlike granting, revoking is instantaneous.
|
47
|
-
*/
|
48
|
-
event RoleRevoked(uint64 indexed roleId, address indexed account);
|
49
|
-
|
50
|
-
/**
|
51
|
-
* @dev Role acting as admin over a given `roleId` is updated.
|
52
|
-
*/
|
53
|
-
event RoleAdminChanged(uint64 indexed roleId, uint64 indexed admin);
|
54
|
-
|
55
|
-
/**
|
56
|
-
* @dev Role acting as guardian over a given `roleId` is updated.
|
57
|
-
*/
|
58
|
-
event RoleGuardianChanged(uint64 indexed roleId, uint64 indexed guardian);
|
59
|
-
|
60
|
-
/**
|
61
|
-
* @dev Grant delay for a given `roleId` will be updated to `delay` when `since` is reached.
|
62
|
-
*/
|
63
|
-
event RoleGrantDelayChanged(uint64 indexed roleId, uint32 delay, uint48 since);
|
64
|
-
|
65
|
-
/**
|
66
|
-
* @dev Target mode is updated (true = closed, false = open).
|
67
|
-
*/
|
68
|
-
event TargetClosed(address indexed target, bool closed);
|
69
|
-
|
70
|
-
/**
|
71
|
-
* @dev Role required to invoke `selector` on `target` is updated to `roleId`.
|
72
|
-
*/
|
73
|
-
event TargetFunctionRoleUpdated(address indexed target, bytes4 selector, uint64 indexed roleId);
|
74
|
-
|
75
|
-
/**
|
76
|
-
* @dev Admin delay for a given `target` will be updated to `delay` when `since` is reached.
|
77
|
-
*/
|
78
|
-
event TargetAdminDelayUpdated(address indexed target, uint32 delay, uint48 since);
|
79
|
-
|
80
|
-
error AccessManagerAlreadyScheduled(bytes32 operationId);
|
81
|
-
error AccessManagerNotScheduled(bytes32 operationId);
|
82
|
-
error AccessManagerNotReady(bytes32 operationId);
|
83
|
-
error AccessManagerExpired(bytes32 operationId);
|
84
|
-
error AccessManagerLockedAccount(address account);
|
85
|
-
error AccessManagerLockedRole(uint64 roleId);
|
86
|
-
error AccessManagerBadConfirmation();
|
87
|
-
error AccessManagerUnauthorizedAccount(address msgsender, uint64 roleId);
|
88
|
-
error AccessManagerUnauthorizedCall(address caller, address target, bytes4 selector);
|
89
|
-
error AccessManagerUnauthorizedConsume(address target);
|
90
|
-
error AccessManagerUnauthorizedCancel(address msgsender, address caller, address target, bytes4 selector);
|
91
|
-
error AccessManagerInvalidInitialAdmin(address initialAdmin);
|
92
|
-
|
93
|
-
/**
|
94
|
-
* @dev Check if an address (`caller`) is authorised to call a given function on a given contract directly (with
|
95
|
-
* no restriction). Additionally, it returns the delay needed to perform the call indirectly through the {schedule}
|
96
|
-
* & {execute} workflow.
|
97
|
-
*
|
98
|
-
* This function is usually called by the targeted contract to control immediate execution of restricted functions.
|
99
|
-
* Therefore we only return true if the call can be performed without any delay. If the call is subject to a
|
100
|
-
* previously set delay (not zero), then the function should return false and the caller should schedule the operation
|
101
|
-
* for future execution.
|
102
|
-
*
|
103
|
-
* If `immediate` is true, the delay can be disregarded and the operation can be immediately executed, otherwise
|
104
|
-
* the operation can be executed if and only if delay is greater than 0.
|
105
|
-
*
|
106
|
-
* NOTE: The IAuthority interface does not include the `uint32` delay. This is an extension of that interface that
|
107
|
-
* is backward compatible. Some contracts may thus ignore the second return argument. In that case they will fail
|
108
|
-
* to identify the indirect workflow, and will consider calls that require a delay to be forbidden.
|
109
|
-
*
|
110
|
-
* NOTE: This function does not report the permissions of this manager itself. These are defined by the
|
111
|
-
* {_canCallSelf} function instead.
|
112
|
-
*/
|
113
|
-
function canCall(
|
114
|
-
address caller,
|
115
|
-
address target,
|
116
|
-
bytes4 selector
|
117
|
-
) external view returns (bool allowed, uint32 delay);
|
118
|
-
|
119
|
-
/**
|
120
|
-
* @dev Expiration delay for scheduled proposals. Defaults to 1 week.
|
121
|
-
*
|
122
|
-
* IMPORTANT: Avoid overriding the expiration with 0. Otherwise every contract proposal will be expired immediately,
|
123
|
-
* disabling any scheduling usage.
|
124
|
-
*/
|
125
|
-
function expiration() external view returns (uint32);
|
126
|
-
|
127
|
-
/**
|
128
|
-
* @dev Minimum setback for all delay updates, with the exception of execution delays. It
|
129
|
-
* can be increased without setback (and reset via {revokeRole} in the case event of an
|
130
|
-
* accidental increase). Defaults to 5 days.
|
131
|
-
*/
|
132
|
-
function minSetback() external view returns (uint32);
|
133
|
-
|
134
|
-
/**
|
135
|
-
* @dev Get whether the contract is closed disabling any access. Otherwise role permissions are applied.
|
136
|
-
*/
|
137
|
-
function isTargetClosed(address target) external view returns (bool);
|
138
|
-
|
139
|
-
/**
|
140
|
-
* @dev Get the role required to call a function.
|
141
|
-
*/
|
142
|
-
function getTargetFunctionRole(address target, bytes4 selector) external view returns (uint64);
|
143
|
-
|
144
|
-
/**
|
145
|
-
* @dev Get the admin delay for a target contract. Changes to contract configuration are subject to this delay.
|
146
|
-
*/
|
147
|
-
function getTargetAdminDelay(address target) external view returns (uint32);
|
148
|
-
|
149
|
-
/**
|
150
|
-
* @dev Get the id of the role that acts as an admin for the given role.
|
151
|
-
*
|
152
|
-
* The admin permission is required to grant the role, revoke the role and update the execution delay to execute
|
153
|
-
* an operation that is restricted to this role.
|
154
|
-
*/
|
155
|
-
function getRoleAdmin(uint64 roleId) external view returns (uint64);
|
156
|
-
|
157
|
-
/**
|
158
|
-
* @dev Get the role that acts as a guardian for a given role.
|
159
|
-
*
|
160
|
-
* The guardian permission allows canceling operations that have been scheduled under the role.
|
161
|
-
*/
|
162
|
-
function getRoleGuardian(uint64 roleId) external view returns (uint64);
|
163
|
-
|
164
|
-
/**
|
165
|
-
* @dev Get the role current grant delay.
|
166
|
-
*
|
167
|
-
* Its value may change at any point without an event emitted following a call to {setGrantDelay}.
|
168
|
-
* Changes to this value, including effect timepoint are notified in advance by the {RoleGrantDelayChanged} event.
|
169
|
-
*/
|
170
|
-
function getRoleGrantDelay(uint64 roleId) external view returns (uint32);
|
171
|
-
|
172
|
-
/**
|
173
|
-
* @dev Get the access details for a given account for a given role. These details include the timepoint at which
|
174
|
-
* membership becomes active, and the delay applied to all operation by this user that requires this permission
|
175
|
-
* level.
|
176
|
-
*
|
177
|
-
* Returns:
|
178
|
-
* [0] Timestamp at which the account membership becomes valid. 0 means role is not granted.
|
179
|
-
* [1] Current execution delay for the account.
|
180
|
-
* [2] Pending execution delay for the account.
|
181
|
-
* [3] Timestamp at which the pending execution delay will become active. 0 means no delay update is scheduled.
|
182
|
-
*/
|
183
|
-
function getAccess(uint64 roleId, address account) external view returns (uint48, uint32, uint32, uint48);
|
184
|
-
|
185
|
-
/**
|
186
|
-
* @dev Check if a given account currently has the permission level corresponding to a given role. Note that this
|
187
|
-
* permission might be associated with an execution delay. {getAccess} can provide more details.
|
188
|
-
*/
|
189
|
-
function hasRole(uint64 roleId, address account) external view returns (bool, uint32);
|
190
|
-
|
191
|
-
/**
|
192
|
-
* @dev Give a label to a role, for improved role discoverability by UIs.
|
193
|
-
*
|
194
|
-
* Requirements:
|
195
|
-
*
|
196
|
-
* - the caller must be a global admin
|
197
|
-
*
|
198
|
-
* Emits a {RoleLabel} event.
|
199
|
-
*/
|
200
|
-
function labelRole(uint64 roleId, string calldata label) external;
|
201
|
-
|
202
|
-
/**
|
203
|
-
* @dev Add `account` to `roleId`, or change its execution delay.
|
204
|
-
*
|
205
|
-
* This gives the account the authorization to call any function that is restricted to this role. An optional
|
206
|
-
* execution delay (in seconds) can be set. If that delay is non 0, the user is required to schedule any operation
|
207
|
-
* that is restricted to members of this role. The user will only be able to execute the operation after the delay has
|
208
|
-
* passed, before it has expired. During this period, admin and guardians can cancel the operation (see {cancel}).
|
209
|
-
*
|
210
|
-
* If the account has already been granted this role, the execution delay will be updated. This update is not
|
211
|
-
* immediate and follows the delay rules. For example, if a user currently has a delay of 3 hours, and this is
|
212
|
-
* called to reduce that delay to 1 hour, the new delay will take some time to take effect, enforcing that any
|
213
|
-
* operation executed in the 3 hours that follows this update was indeed scheduled before this update.
|
214
|
-
*
|
215
|
-
* Requirements:
|
216
|
-
*
|
217
|
-
* - the caller must be an admin for the role (see {getRoleAdmin})
|
218
|
-
* - granted role must not be the `PUBLIC_ROLE`
|
219
|
-
*
|
220
|
-
* Emits a {RoleGranted} event.
|
221
|
-
*/
|
222
|
-
function grantRole(uint64 roleId, address account, uint32 executionDelay) external;
|
223
|
-
|
224
|
-
/**
|
225
|
-
* @dev Remove an account from a role, with immediate effect. If the account does not have the role, this call has
|
226
|
-
* no effect.
|
227
|
-
*
|
228
|
-
* Requirements:
|
229
|
-
*
|
230
|
-
* - the caller must be an admin for the role (see {getRoleAdmin})
|
231
|
-
* - revoked role must not be the `PUBLIC_ROLE`
|
232
|
-
*
|
233
|
-
* Emits a {RoleRevoked} event if the account had the role.
|
234
|
-
*/
|
235
|
-
function revokeRole(uint64 roleId, address account) external;
|
236
|
-
|
237
|
-
/**
|
238
|
-
* @dev Renounce role permissions for the calling account with immediate effect. If the sender is not in
|
239
|
-
* the role this call has no effect.
|
240
|
-
*
|
241
|
-
* Requirements:
|
242
|
-
*
|
243
|
-
* - the caller must be `callerConfirmation`.
|
244
|
-
*
|
245
|
-
* Emits a {RoleRevoked} event if the account had the role.
|
246
|
-
*/
|
247
|
-
function renounceRole(uint64 roleId, address callerConfirmation) external;
|
248
|
-
|
249
|
-
/**
|
250
|
-
* @dev Change admin role for a given role.
|
251
|
-
*
|
252
|
-
* Requirements:
|
253
|
-
*
|
254
|
-
* - the caller must be a global admin
|
255
|
-
*
|
256
|
-
* Emits a {RoleAdminChanged} event
|
257
|
-
*/
|
258
|
-
function setRoleAdmin(uint64 roleId, uint64 admin) external;
|
259
|
-
|
260
|
-
/**
|
261
|
-
* @dev Change guardian role for a given role.
|
262
|
-
*
|
263
|
-
* Requirements:
|
264
|
-
*
|
265
|
-
* - the caller must be a global admin
|
266
|
-
*
|
267
|
-
* Emits a {RoleGuardianChanged} event
|
268
|
-
*/
|
269
|
-
function setRoleGuardian(uint64 roleId, uint64 guardian) external;
|
270
|
-
|
271
|
-
/**
|
272
|
-
* @dev Update the delay for granting a `roleId`.
|
273
|
-
*
|
274
|
-
* Requirements:
|
275
|
-
*
|
276
|
-
* - the caller must be a global admin
|
277
|
-
*
|
278
|
-
* Emits a {RoleGrantDelayChanged} event.
|
279
|
-
*/
|
280
|
-
function setGrantDelay(uint64 roleId, uint32 newDelay) external;
|
281
|
-
|
282
|
-
/**
|
283
|
-
* @dev Set the role required to call functions identified by the `selectors` in the `target` contract.
|
284
|
-
*
|
285
|
-
* Requirements:
|
286
|
-
*
|
287
|
-
* - the caller must be a global admin
|
288
|
-
*
|
289
|
-
* Emits a {TargetFunctionRoleUpdated} event per selector.
|
290
|
-
*/
|
291
|
-
function setTargetFunctionRole(address target, bytes4[] calldata selectors, uint64 roleId) external;
|
292
|
-
|
293
|
-
/**
|
294
|
-
* @dev Set the delay for changing the configuration of a given target contract.
|
295
|
-
*
|
296
|
-
* Requirements:
|
297
|
-
*
|
298
|
-
* - the caller must be a global admin
|
299
|
-
*
|
300
|
-
* Emits a {TargetAdminDelayUpdated} event.
|
301
|
-
*/
|
302
|
-
function setTargetAdminDelay(address target, uint32 newDelay) external;
|
303
|
-
|
304
|
-
/**
|
305
|
-
* @dev Set the closed flag for a contract.
|
306
|
-
*
|
307
|
-
* Requirements:
|
308
|
-
*
|
309
|
-
* - the caller must be a global admin
|
310
|
-
*
|
311
|
-
* Emits a {TargetClosed} event.
|
312
|
-
*/
|
313
|
-
function setTargetClosed(address target, bool closed) external;
|
314
|
-
|
315
|
-
/**
|
316
|
-
* @dev Return the timepoint at which a scheduled operation will be ready for execution. This returns 0 if the
|
317
|
-
* operation is not yet scheduled, has expired, was executed, or was canceled.
|
318
|
-
*/
|
319
|
-
function getSchedule(bytes32 id) external view returns (uint48);
|
320
|
-
|
321
|
-
/**
|
322
|
-
* @dev Return the nonce for the latest scheduled operation with a given id. Returns 0 if the operation has never
|
323
|
-
* been scheduled.
|
324
|
-
*/
|
325
|
-
function getNonce(bytes32 id) external view returns (uint32);
|
326
|
-
|
327
|
-
/**
|
328
|
-
* @dev Schedule a delayed operation for future execution, and return the operation identifier. It is possible to
|
329
|
-
* choose the timestamp at which the operation becomes executable as long as it satisfies the execution delays
|
330
|
-
* required for the caller. The special value zero will automatically set the earliest possible time.
|
331
|
-
*
|
332
|
-
* Returns the `operationId` that was scheduled. Since this value is a hash of the parameters, it can reoccur when
|
333
|
-
* the same parameters are used; if this is relevant, the returned `nonce` can be used to uniquely identify this
|
334
|
-
* scheduled operation from other occurrences of the same `operationId` in invocations of {execute} and {cancel}.
|
335
|
-
*
|
336
|
-
* Emits a {OperationScheduled} event.
|
337
|
-
*
|
338
|
-
* NOTE: It is not possible to concurrently schedule more than one operation with the same `target` and `data`. If
|
339
|
-
* this is necessary, a random byte can be appended to `data` to act as a salt that will be ignored by the target
|
340
|
-
* contract if it is using standard Solidity ABI encoding.
|
341
|
-
*/
|
342
|
-
function schedule(address target, bytes calldata data, uint48 when) external returns (bytes32, uint32);
|
343
|
-
|
344
|
-
/**
|
345
|
-
* @dev Execute a function that is delay restricted, provided it was properly scheduled beforehand, or the
|
346
|
-
* execution delay is 0.
|
347
|
-
*
|
348
|
-
* Returns the nonce that identifies the previously scheduled operation that is executed, or 0 if the
|
349
|
-
* operation wasn't previously scheduled (if the caller doesn't have an execution delay).
|
350
|
-
*
|
351
|
-
* Emits an {OperationExecuted} event only if the call was scheduled and delayed.
|
352
|
-
*/
|
353
|
-
function execute(address target, bytes calldata data) external payable returns (uint32);
|
354
|
-
|
355
|
-
/**
|
356
|
-
* @dev Cancel a scheduled (delayed) operation. Returns the nonce that identifies the previously scheduled
|
357
|
-
* operation that is cancelled.
|
358
|
-
*
|
359
|
-
* Requirements:
|
360
|
-
*
|
361
|
-
* - the caller must be the proposer, a guardian of the targeted function, or a global admin
|
362
|
-
*
|
363
|
-
* Emits a {OperationCanceled} event.
|
364
|
-
*/
|
365
|
-
function cancel(address caller, address target, bytes calldata data) external returns (uint32);
|
366
|
-
|
367
|
-
/**
|
368
|
-
* @dev Consume a scheduled operation targeting the caller. If such an operation exists, mark it as consumed
|
369
|
-
* (emit an {OperationExecuted} event and clean the state). Otherwise, throw an error.
|
370
|
-
*
|
371
|
-
* This is useful for contract that want to enforce that calls targeting them were scheduled on the manager,
|
372
|
-
* with all the verifications that it implies.
|
373
|
-
*
|
374
|
-
* Emit a {OperationExecuted} event.
|
375
|
-
*/
|
376
|
-
function consumeScheduledOp(address caller, bytes calldata data) external;
|
377
|
-
|
378
|
-
/**
|
379
|
-
* @dev Hashing function for delayed operations.
|
380
|
-
*/
|
381
|
-
function hashOperation(address caller, address target, bytes calldata data) external view returns (bytes32);
|
382
|
-
|
383
|
-
/**
|
384
|
-
* @dev Changes the authority of a target managed by this manager instance.
|
385
|
-
*
|
386
|
-
* Requirements:
|
387
|
-
*
|
388
|
-
* - the caller must be a global admin
|
389
|
-
*/
|
390
|
-
function updateAuthority(address target, address newAuthority) external;
|
391
|
-
}
|
@@ -1,288 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
5
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
|
-
|
7
|
-
import {AccessManagedSimple} from "./AccessManagedSimple.sol";
|
8
|
-
import {AccessManagerSimple} from "./AccessManagerSimple.sol";
|
9
|
-
import {IBundle} from "./module/IBundle.sol";
|
10
|
-
import {IPolicy} from "./module/IPolicy.sol";
|
11
|
-
import {IRisk} from "./module/IRisk.sol";
|
12
|
-
import {ISetup} from "./module/ISetup.sol";
|
13
|
-
import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
|
14
|
-
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
15
|
-
import {NftId} from "../types/NftId.sol";
|
16
|
-
import {NumberId} from "../types/NumberId.sol";
|
17
|
-
import {ObjectType, BUNDLE, DISTRIBUTION, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
|
18
|
-
import {RiskId, RiskIdLib} from "../types/RiskId.sol";
|
19
|
-
import {RoleId, RoleIdLib} from "../types/RoleId.sol";
|
20
|
-
import {StateId, ACTIVE} from "../types/StateId.sol";
|
21
|
-
import {Timestamp, TimestampLib} from "../types/Timestamp.sol";
|
22
|
-
|
23
|
-
contract InstanceAccessManager is
|
24
|
-
AccessManagedSimple
|
25
|
-
{
|
26
|
-
string public constant ADMIN_ROLE_NAME = "AdminRole";
|
27
|
-
string public constant PUBLIC_ROLE_NAME = "PublicRole";
|
28
|
-
|
29
|
-
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
|
30
|
-
uint32 public constant EXECUTION_DELAY = 0;
|
31
|
-
|
32
|
-
struct RoleInfo {
|
33
|
-
ShortString name;
|
34
|
-
bool isCustom;
|
35
|
-
bool isLocked;
|
36
|
-
Timestamp createdAt;
|
37
|
-
Timestamp updatedAt;
|
38
|
-
}
|
39
|
-
|
40
|
-
struct TargetInfo {
|
41
|
-
ShortString name;
|
42
|
-
bool isCustom;
|
43
|
-
bool isLocked;
|
44
|
-
Timestamp createdAt;
|
45
|
-
Timestamp updatedAt;
|
46
|
-
}
|
47
|
-
|
48
|
-
error ErrorRoleIdInvalid(RoleId roleId);
|
49
|
-
error ErrorRoleIdTooBig(RoleId roleId);
|
50
|
-
error ErrorRoleIdTooSmall(RoleId roleId);
|
51
|
-
error ErrorRoleIdAlreadyExists(RoleId roleId, ShortString name);
|
52
|
-
error ErrorRoleIdNotActive(RoleId roleId);
|
53
|
-
error ErrorRoleNameEmpty(RoleId roleId);
|
54
|
-
error ErrorRoleNameNotUnique(RoleId roleId, ShortString name);
|
55
|
-
error ErrorRoleInvalidUpdate(RoleId roleId, bool isCustom);
|
56
|
-
error ErrorRoleIsCustomIsImmutable(RoleId roleId, bool isCustom, bool isCustomExisting);
|
57
|
-
error ErrorSetLockedForNonexstentRole(RoleId roleId);
|
58
|
-
error ErrorGrantNonexstentRole(RoleId roleId);
|
59
|
-
error ErrorRevokeNonexstentRole(RoleId roleId);
|
60
|
-
error ErrorRenounceNonexstentRole(RoleId roleId);
|
61
|
-
|
62
|
-
error ErrorTargetAddressZero();
|
63
|
-
error ErrorTargetAlreadyExists(address target, ShortString name);
|
64
|
-
error ErrorTargetNameEmpty(address target);
|
65
|
-
error ErrorTargetNameExists(address target, address existingTarget, ShortString name);
|
66
|
-
error ErrorSetLockedForNonexstentTarget(address target);
|
67
|
-
|
68
|
-
// role specific state
|
69
|
-
mapping(RoleId roleId => RoleInfo info) internal _role;
|
70
|
-
mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
|
71
|
-
mapping(ShortString name => RoleId roleId) internal _roleForName;
|
72
|
-
RoleId [] internal _roles;
|
73
|
-
|
74
|
-
// target specific state
|
75
|
-
mapping(address target => TargetInfo info) internal _target;
|
76
|
-
mapping(ShortString name => address target) internal _targetForName;
|
77
|
-
address [] internal _targets;
|
78
|
-
|
79
|
-
AccessManagerSimple internal _accessManager;
|
80
|
-
|
81
|
-
constructor(address accessManager)
|
82
|
-
{
|
83
|
-
_accessManager = AccessManagerSimple(accessManager);
|
84
|
-
initializeAccessManagedSimple(accessManager);
|
85
|
-
|
86
|
-
_createRole(RoleIdLib.toRoleId(_accessManager.ADMIN_ROLE()), ADMIN_ROLE_NAME, false, false);
|
87
|
-
_createRole(RoleIdLib.toRoleId(_accessManager.PUBLIC_ROLE()), PUBLIC_ROLE_NAME, false, false);
|
88
|
-
}
|
89
|
-
|
90
|
-
//--- Role ------------------------------------------------------//
|
91
|
-
|
92
|
-
function createDefaultRole(RoleId roleId, string memory name) external restricted() {
|
93
|
-
_createRole(roleId, name, false, true);
|
94
|
-
}
|
95
|
-
|
96
|
-
function createRole(RoleId roleId, string memory name) external restricted() {
|
97
|
-
_createRole(roleId, name, true, true);
|
98
|
-
}
|
99
|
-
|
100
|
-
function setRoleLocked(RoleId roleId, bool locked) external restricted() {
|
101
|
-
if (!roleExists(roleId)) {
|
102
|
-
revert ErrorSetLockedForNonexstentRole(roleId);
|
103
|
-
}
|
104
|
-
|
105
|
-
_role[roleId].isLocked = locked;
|
106
|
-
_role[roleId].updatedAt = TimestampLib.blockTimestamp();
|
107
|
-
}
|
108
|
-
|
109
|
-
function roleExists(RoleId roleId) public view returns (bool exists) {
|
110
|
-
return _role[roleId].createdAt.gtz();
|
111
|
-
}
|
112
|
-
|
113
|
-
function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
|
114
|
-
if (!roleExists(roleId)) {
|
115
|
-
revert ErrorGrantNonexstentRole(roleId);
|
116
|
-
}
|
117
|
-
|
118
|
-
if (_role[roleId].isLocked) {
|
119
|
-
revert ErrorRoleIdNotActive(roleId);
|
120
|
-
}
|
121
|
-
|
122
|
-
if (!EnumerableSet.contains(_roleMembers[roleId], member)) {
|
123
|
-
_accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
|
124
|
-
EnumerableSet.add(_roleMembers[roleId], member);
|
125
|
-
return true;
|
126
|
-
}
|
127
|
-
|
128
|
-
return false;
|
129
|
-
}
|
130
|
-
|
131
|
-
function revokeRole(RoleId roleId, address member) external restricted() returns (bool revoked) {
|
132
|
-
if (!roleExists(roleId)) {
|
133
|
-
revert ErrorRevokeNonexstentRole(roleId);
|
134
|
-
}
|
135
|
-
|
136
|
-
if (EnumerableSet.contains(_roleMembers[roleId], member)) {
|
137
|
-
_accessManager.revokeRole(roleId.toInt(), member);
|
138
|
-
EnumerableSet.remove(_roleMembers[roleId], member);
|
139
|
-
return true;
|
140
|
-
}
|
141
|
-
|
142
|
-
return false;
|
143
|
-
}
|
144
|
-
|
145
|
-
/// @dev not restricted function by intention
|
146
|
-
/// the restriction to role members is already enforced by the call to the access manger
|
147
|
-
function renounceRole(RoleId roleId) external returns (bool revoked) {
|
148
|
-
address member = msg.sender;
|
149
|
-
|
150
|
-
if (!roleExists(roleId)) {
|
151
|
-
revert ErrorRenounceNonexstentRole(roleId);
|
152
|
-
}
|
153
|
-
|
154
|
-
if (EnumerableSet.contains(_roleMembers[roleId], member)) {
|
155
|
-
// cannot use accessManger.renounce as it directly checks against msg.sender
|
156
|
-
_accessManager.revokeRole(roleId.toInt(), member);
|
157
|
-
EnumerableSet.remove(_roleMembers[roleId], member);
|
158
|
-
return true;
|
159
|
-
}
|
160
|
-
|
161
|
-
return false;
|
162
|
-
}
|
163
|
-
|
164
|
-
function roles() external view returns (uint256 numberOfRoles) {
|
165
|
-
return _roles.length;
|
166
|
-
}
|
167
|
-
|
168
|
-
function getRoleId(uint256 idx) external view returns (RoleId roleId) {
|
169
|
-
return _roles[idx];
|
170
|
-
}
|
171
|
-
|
172
|
-
function getRoleIdForName(string memory name) external view returns (RoleId roleId) {
|
173
|
-
return _roleForName[ShortStrings.toShortString(name)];
|
174
|
-
}
|
175
|
-
|
176
|
-
function getRole(RoleId roleId) external view returns (RoleInfo memory role) {
|
177
|
-
return _role[roleId];
|
178
|
-
}
|
179
|
-
|
180
|
-
function hasRole(RoleId roleId, address account) external view returns (bool accountHasRole) {
|
181
|
-
(accountHasRole, ) = _accessManager.hasRole(roleId.toInt(), account);
|
182
|
-
}
|
183
|
-
|
184
|
-
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
185
|
-
return EnumerableSet.length(_roleMembers[roleId]);
|
186
|
-
}
|
187
|
-
|
188
|
-
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address roleMember) {
|
189
|
-
return EnumerableSet.at(_roleMembers[roleId], idx);
|
190
|
-
}
|
191
|
-
|
192
|
-
//--- Target ------------------------------------------------------//
|
193
|
-
function createTarget(address target, string memory name) external restricted() {
|
194
|
-
_createTarget(target, name, true, true);
|
195
|
-
}
|
196
|
-
|
197
|
-
function setTargetLocked(address target, bool locked) external restricted() {
|
198
|
-
if (!targetExists(target)) {
|
199
|
-
revert ErrorSetLockedForNonexstentTarget(target);
|
200
|
-
}
|
201
|
-
|
202
|
-
_target[target].isLocked = locked;
|
203
|
-
_accessManager.setTargetClosed(target, locked);
|
204
|
-
}
|
205
|
-
|
206
|
-
function targetExists(address target) public view returns (bool exists) {
|
207
|
-
return _target[target].createdAt.gtz();
|
208
|
-
}
|
209
|
-
|
210
|
-
//--- internal view/pure functions --------------------------------------//
|
211
|
-
|
212
|
-
function _createRole(RoleId roleId, string memory name, bool isCustom, bool validateParameters) internal {
|
213
|
-
if (validateParameters) {
|
214
|
-
_validateRoleParameters(roleId, name, isCustom);
|
215
|
-
}
|
216
|
-
|
217
|
-
RoleInfo memory role = RoleInfo(
|
218
|
-
ShortStrings.toShortString(name),
|
219
|
-
isCustom,
|
220
|
-
false, // role un-locked,
|
221
|
-
TimestampLib.blockTimestamp(),
|
222
|
-
TimestampLib.blockTimestamp());
|
223
|
-
|
224
|
-
_role[roleId] = role;
|
225
|
-
_roleForName[role.name] = roleId;
|
226
|
-
_roles.push(roleId);
|
227
|
-
}
|
228
|
-
|
229
|
-
function _validateRoleParameters(
|
230
|
-
RoleId roleId,
|
231
|
-
string memory name,
|
232
|
-
bool isCustom
|
233
|
-
)
|
234
|
-
internal
|
235
|
-
view
|
236
|
-
returns (RoleInfo memory existingRole)
|
237
|
-
{
|
238
|
-
// check role id
|
239
|
-
uint64 roleIdInt = RoleId.unwrap(roleId);
|
240
|
-
if(roleIdInt == _accessManager.ADMIN_ROLE() || roleIdInt == _accessManager.PUBLIC_ROLE()) {
|
241
|
-
revert ErrorRoleIdInvalid(roleId);
|
242
|
-
}
|
243
|
-
|
244
|
-
// prevent changing isCustom for existing roles
|
245
|
-
existingRole = _role[roleId];
|
246
|
-
|
247
|
-
if (existingRole.createdAt.gtz() && isCustom != existingRole.isCustom) {
|
248
|
-
revert ErrorRoleIsCustomIsImmutable(roleId, isCustom, existingRole.isCustom);
|
249
|
-
}
|
250
|
-
|
251
|
-
if (isCustom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
|
252
|
-
revert ErrorRoleIdTooSmall(roleId);
|
253
|
-
} else if (!isCustom && roleIdInt >= CUSTOM_ROLE_ID_MIN) {
|
254
|
-
revert ErrorRoleIdTooBig(roleId);
|
255
|
-
}
|
256
|
-
|
257
|
-
// role name checks
|
258
|
-
ShortString nameShort = ShortStrings.toShortString(name);
|
259
|
-
if (ShortStrings.byteLength(nameShort) == 0) {
|
260
|
-
revert ErrorRoleNameEmpty(roleId);
|
261
|
-
}
|
262
|
-
|
263
|
-
if (_roleForName[nameShort] != RoleIdLib.zero() && _roleForName[nameShort] != roleId) {
|
264
|
-
revert ErrorRoleNameNotUnique(_roleForName[nameShort], nameShort);
|
265
|
-
}
|
266
|
-
}
|
267
|
-
|
268
|
-
function _createTarget(address target, string memory name, bool isCustom, bool validateParameters) internal {
|
269
|
-
if (validateParameters) {
|
270
|
-
_validateTargetParameters(target, name, isCustom);
|
271
|
-
}
|
272
|
-
|
273
|
-
TargetInfo memory info = TargetInfo(
|
274
|
-
ShortStrings.toShortString(name),
|
275
|
-
isCustom,
|
276
|
-
_accessManager.isTargetClosed(target), // sync with state in access manager
|
277
|
-
TimestampLib.blockTimestamp(),
|
278
|
-
TimestampLib.blockTimestamp());
|
279
|
-
|
280
|
-
_target[target] = info;
|
281
|
-
_targetForName[info.name] = target;
|
282
|
-
_targets.push(target);
|
283
|
-
}
|
284
|
-
|
285
|
-
function _validateTargetParameters(address target, string memory name, bool isCustom) internal view {
|
286
|
-
|
287
|
-
}
|
288
|
-
}
|