@etherisc/gif-next 0.0.2-fc8b370-882 → 0.0.2-fd2113c-488
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 +250 -14
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +709 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +285 -1486
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +769 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +489 -1720
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1220 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → 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/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.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/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ModuleBase.sol/ModuleBase.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -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} +256 -221
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +207 -171
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1218 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -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/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -138
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +163 -143
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -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 +179 -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 +312 -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/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -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 +186 -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 +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -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/{types → type}/StateId.sol/StateIdLib.json +3 -3
- 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 +293 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
- package/contracts/distribution/Distribution.sol +261 -0
- package/contracts/distribution/DistributionService.sol +297 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/IInstance.sol +79 -44
- package/contracts/instance/IInstanceService.sol +97 -0
- package/contracts/instance/Instance.sol +247 -52
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +392 -0
- package/contracts/instance/InstanceService.sol +439 -0
- package/contracts/instance/InstanceServiceManager.sol +44 -0
- package/contracts/instance/InstanceStore.sol +269 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectManager.sol +80 -0
- package/contracts/instance/module/IAccess.sol +46 -0
- package/contracts/instance/module/IBundle.sol +20 -0
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +42 -0
- package/contracts/instance/module/IPolicy.sol +84 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +150 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +452 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +95 -37
- package/contracts/registry/IRegistry.sol +95 -28
- package/contracts/registry/IRegistryService.sol +69 -0
- package/contracts/registry/IServiceAuthorization.sol +35 -0
- package/contracts/registry/ITransferInterceptor.sol +7 -0
- package/contracts/registry/Registry.sol +482 -281
- package/contracts/registry/RegistryAdmin.sol +333 -0
- package/contracts/registry/RegistryService.sol +266 -0
- package/contracts/registry/RegistryServiceManager.sol +53 -0
- package/contracts/registry/ReleaseManager.sol +527 -0
- package/contracts/registry/ServiceAuthorization.sol +86 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +315 -0
- package/contracts/shared/AccessAdmin.sol +759 -0
- package/contracts/shared/AccessManagerCustom.sol +741 -0
- package/contracts/shared/AccessManagerExtended.sol +481 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +617 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +15 -9
- package/contracts/shared/IAccessAdmin.sol +168 -0
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/shared/IKeyValueStore.sol +53 -0
- package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
- package/contracts/shared/INftOwnable.sol +23 -0
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +10 -19
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +25 -0
- package/contracts/shared/IVersionable.sol +38 -37
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/shared/Lifecycle.sol +130 -0
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +107 -0
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/ProxyManager.sol +199 -0
- package/contracts/shared/Registerable.sol +54 -65
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +83 -0
- package/contracts/shared/TokenHandler.sol +58 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +38 -68
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +153 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +613 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +21 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/type/DistributorType.sol +55 -0
- package/contracts/type/Fee.sol +66 -0
- package/contracts/{types → type}/Key32.sol +8 -3
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +241 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/type/Referral.sol +89 -0
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +43 -0
- package/contracts/type/RoleId.sol +201 -0
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +39 -5
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +27 -14
- package/contracts/{types → type}/UFixed.sol +129 -12
- package/contracts/{types → type}/Version.sol +15 -2
- package/package.json +8 -7
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -305
- 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/IA.sol/ISharedA.json +0 -37
- 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/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
- 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/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.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 -692
- 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/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
- 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 -471
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- 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/TestPool.sol/TestPool.dbg.json +0 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
- 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 -379
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
- 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 -206
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- 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/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
- 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/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
- package/contracts/components/BaseComponent.sol +0 -88
- package/contracts/components/IBaseComponent.sol +0 -19
- package/contracts/components/IPoolComponent.sol +0 -57
- package/contracts/components/IProductComponent.sol +0 -19
- package/contracts/components/Pool.sol +0 -174
- package/contracts/components/Product.sol +0 -117
- 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/README.md +0 -112
- 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/IInstanceLinked.sol +0 -8
- package/contracts/instance/base/ComponentServiceBase.sol +0 -42
- package/contracts/instance/base/IInstanceBase.sol +0 -14
- package/contracts/instance/base/IKeyValueStore.sol +0 -49
- package/contracts/instance/base/IService.sol +0 -15
- package/contracts/instance/base/InstanceBase.sol +0 -80
- package/contracts/instance/base/KeyValueStore.sol +0 -156
- package/contracts/instance/base/Lifecycle.sol +0 -95
- package/contracts/instance/base/ModuleBase.sol +0 -52
- package/contracts/instance/base/ServiceBase.sol +0 -37
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/instance/module/bundle/BundleModule.sol +0 -136
- package/contracts/instance/module/bundle/IBundle.sol +0 -58
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
- package/contracts/instance/module/component/ComponentModule.sol +0 -95
- package/contracts/instance/module/component/IComponent.sol +0 -53
- package/contracts/instance/module/policy/IPolicy.sol +0 -60
- package/contracts/instance/module/policy/PolicyModule.sol +0 -76
- package/contracts/instance/module/pool/IPoolModule.sol +0 -41
- package/contracts/instance/module/pool/PoolModule.sol +0 -87
- package/contracts/instance/module/risk/IRisk.sol +0 -10
- package/contracts/instance/module/risk/RiskModule.sol +0 -8
- package/contracts/instance/module/treasury/ITreasury.sol +0 -103
- package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
- package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
- package/contracts/instance/service/ComponentOwnerService.sol +0 -170
- package/contracts/instance/service/IComponentOwnerService.sol +0 -22
- package/contracts/instance/service/IPoolService.sol +0 -30
- package/contracts/instance/service/IProductService.sol +0 -58
- package/contracts/instance/service/PoolService.sol +0 -123
- package/contracts/instance/service/ProductService.sol +0 -354
- package/contracts/registry/IChainNft.sol +0 -21
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/shared/IOwnable.sol +0 -6
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestPool.sol +0 -22
- package/contracts/test/TestProduct.sol +0 -44
- package/contracts/test/TestRegisterable.sol +0 -19
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -32
- 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 -51
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/ObjectType.sol +0 -115
- package/contracts/types/RoleId.sol +0 -38
@@ -0,0 +1,759 @@
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
6
|
+
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
7
|
+
|
8
|
+
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
9
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
10
|
+
import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
|
11
|
+
import {Str, StrLib} from "../type/String.sol";
|
12
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
13
|
+
|
14
|
+
|
15
|
+
/**
|
16
|
+
* @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
|
17
|
+
* The contract provides read functions to query all available roles, targets and access rights.
|
18
|
+
* This contract works for both a constructor based deployment or a deployment based on cloning and initialization.
|
19
|
+
*/
|
20
|
+
contract AccessAdmin is
|
21
|
+
AccessManagedUpgradeable,
|
22
|
+
IAccessAdmin
|
23
|
+
{
|
24
|
+
using EnumerableSet for EnumerableSet.AddressSet;
|
25
|
+
|
26
|
+
string public constant ADMIN_ROLE_NAME = "AdminRole";
|
27
|
+
string public constant PUBLIC_ROLE_NAME = "PublicRole";
|
28
|
+
|
29
|
+
uint64 public constant MANAGER_ROLE = type(uint64).min + 1;
|
30
|
+
string public constant MANAGER_ROLE_NAME = "ManagerRole";
|
31
|
+
|
32
|
+
/// @dev the OpenZeppelin access manager driving the access admin contract
|
33
|
+
AccessManager internal _authority;
|
34
|
+
|
35
|
+
/// @dev stores the deployer address and allows to create initializers
|
36
|
+
/// that are restricted to the deployer address.
|
37
|
+
address internal _deployer;
|
38
|
+
|
39
|
+
/// @dev required role for state changes to this contract
|
40
|
+
RoleId internal _managerRoleId;
|
41
|
+
|
42
|
+
/// @dev store role info per role id
|
43
|
+
mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
|
44
|
+
|
45
|
+
/// @dev store role name info per role name
|
46
|
+
mapping(Str roleName => RoleNameInfo nameInfo) internal _roleForName;
|
47
|
+
|
48
|
+
/// @dev store array with all created roles
|
49
|
+
RoleId [] internal _roleIds;
|
50
|
+
|
51
|
+
/// @dev store set of current role members for given role
|
52
|
+
mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
|
53
|
+
|
54
|
+
/// @dev store target info per target address
|
55
|
+
mapping(address target => TargetInfo info) internal _targetInfo;
|
56
|
+
|
57
|
+
/// @dev store role name info per role name
|
58
|
+
mapping(Str targetName => address target) internal _targetForName;
|
59
|
+
|
60
|
+
/// @dev store array with all created targets
|
61
|
+
address [] internal _targets;
|
62
|
+
|
63
|
+
/// @dev store all managed functions per target
|
64
|
+
mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
|
65
|
+
|
66
|
+
/// @dev temporary dynamic function infos array
|
67
|
+
mapping(address target => mapping(Selector selector => Str functionName)) internal _functionName;
|
68
|
+
|
69
|
+
/// @dev temporary dynamic functions array
|
70
|
+
bytes4[] private _functions;
|
71
|
+
|
72
|
+
modifier onlyDeployer() {
|
73
|
+
// special case for cloned AccessAdmin contracts
|
74
|
+
// IMPORTANT cloning and _initializeAuthority needs to be done in a single transaction
|
75
|
+
if (_deployer == address(0)) {
|
76
|
+
_deployer = msg.sender;
|
77
|
+
}
|
78
|
+
|
79
|
+
if (msg.sender != _deployer) {
|
80
|
+
revert ErrorNotDeployer();
|
81
|
+
}
|
82
|
+
_;
|
83
|
+
}
|
84
|
+
|
85
|
+
modifier onlyRoleAdmin(RoleId roleId) {
|
86
|
+
if (!roleExists(roleId)) {
|
87
|
+
revert ErrorRoleUnknown(roleId);
|
88
|
+
}
|
89
|
+
|
90
|
+
if (!hasRole(msg.sender, _roleInfo[roleId].adminRoleId)) {
|
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(RoleId roleId) {
|
104
|
+
_checkRoleId(roleId);
|
105
|
+
_;
|
106
|
+
}
|
107
|
+
|
108
|
+
modifier onlyExistingTarget(address target) {
|
109
|
+
_checkTarget(target);
|
110
|
+
_;
|
111
|
+
}
|
112
|
+
|
113
|
+
constructor() {
|
114
|
+
_deployer = msg.sender;
|
115
|
+
_authority = new AccessManager(address(this));
|
116
|
+
|
117
|
+
_setAuthority(address(_authority));
|
118
|
+
_createInitialRoleSetup();
|
119
|
+
|
120
|
+
_disableInitializers();
|
121
|
+
}
|
122
|
+
|
123
|
+
//--- role management functions -----------------------------------------//
|
124
|
+
|
125
|
+
function createRole(
|
126
|
+
RoleId roleId,
|
127
|
+
RoleId adminRoleId,
|
128
|
+
string memory name,
|
129
|
+
uint256 maxMemberCount,
|
130
|
+
bool memberRemovalDisabled
|
131
|
+
)
|
132
|
+
external
|
133
|
+
virtual
|
134
|
+
restricted()
|
135
|
+
{
|
136
|
+
_createRole(roleId, adminRoleId, name, maxMemberCount, memberRemovalDisabled);
|
137
|
+
}
|
138
|
+
|
139
|
+
function setRoleDisabled(
|
140
|
+
RoleId roleId,
|
141
|
+
bool disabled
|
142
|
+
)
|
143
|
+
external
|
144
|
+
virtual
|
145
|
+
restricted()
|
146
|
+
{
|
147
|
+
_setRoleDisabled(roleId, disabled);
|
148
|
+
}
|
149
|
+
|
150
|
+
function grantRole(
|
151
|
+
address account,
|
152
|
+
RoleId roleId
|
153
|
+
)
|
154
|
+
external
|
155
|
+
virtual
|
156
|
+
onlyRoleAdmin(roleId)
|
157
|
+
restricted()
|
158
|
+
{
|
159
|
+
_grantRoleToAccount(roleId, account);
|
160
|
+
}
|
161
|
+
|
162
|
+
function revokeRole(
|
163
|
+
address account,
|
164
|
+
RoleId roleId
|
165
|
+
)
|
166
|
+
external
|
167
|
+
virtual
|
168
|
+
onlyRoleAdmin(roleId)
|
169
|
+
restricted()
|
170
|
+
{
|
171
|
+
_revokeRoleFromAccount(roleId, account);
|
172
|
+
}
|
173
|
+
|
174
|
+
function renounceRole(
|
175
|
+
RoleId roleId
|
176
|
+
)
|
177
|
+
external
|
178
|
+
virtual
|
179
|
+
onlyRoleMember(roleId)
|
180
|
+
restricted()
|
181
|
+
{
|
182
|
+
_revokeRoleFromAccount(roleId, msg.sender);
|
183
|
+
}
|
184
|
+
|
185
|
+
//--- target management functions ---------------------------------------//
|
186
|
+
|
187
|
+
function createTarget(
|
188
|
+
address target,
|
189
|
+
string memory name
|
190
|
+
)
|
191
|
+
external
|
192
|
+
virtual
|
193
|
+
restricted()
|
194
|
+
{
|
195
|
+
_createTarget(target, name);
|
196
|
+
}
|
197
|
+
|
198
|
+
function setTargetLocked(
|
199
|
+
address target,
|
200
|
+
bool locked
|
201
|
+
)
|
202
|
+
external
|
203
|
+
virtual
|
204
|
+
onlyExistingTarget(target)
|
205
|
+
restricted()
|
206
|
+
{
|
207
|
+
_authority.setTargetClosed(target, locked);
|
208
|
+
|
209
|
+
// implizit logging: rely on OpenZeppelin log TargetClosed
|
210
|
+
}
|
211
|
+
|
212
|
+
function authorizeFunctions(
|
213
|
+
address target,
|
214
|
+
RoleId roleId,
|
215
|
+
Function[] memory functions
|
216
|
+
)
|
217
|
+
external
|
218
|
+
virtual
|
219
|
+
onlyExistingTarget(target)
|
220
|
+
onlyExistingRole(roleId)
|
221
|
+
restricted()
|
222
|
+
{
|
223
|
+
_authorizeTargetFunctions(target, roleId, functions);
|
224
|
+
}
|
225
|
+
|
226
|
+
function unauthorizeFunctions(
|
227
|
+
address target,
|
228
|
+
Function[] memory functions
|
229
|
+
)
|
230
|
+
external
|
231
|
+
virtual
|
232
|
+
restricted()
|
233
|
+
{
|
234
|
+
_unauthorizeTargetFunctions(target, functions);
|
235
|
+
}
|
236
|
+
|
237
|
+
|
238
|
+
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
239
|
+
return SelectorSetLib.size(_targetFunctions[target]);
|
240
|
+
}
|
241
|
+
|
242
|
+
function getAuthorizedFunction(
|
243
|
+
address target,
|
244
|
+
uint256 idx
|
245
|
+
)
|
246
|
+
external
|
247
|
+
view
|
248
|
+
returns (
|
249
|
+
Function memory func,
|
250
|
+
RoleId roleId
|
251
|
+
)
|
252
|
+
{
|
253
|
+
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
254
|
+
|
255
|
+
func = Function({
|
256
|
+
selector: selector,
|
257
|
+
name: _functionName[target][selector]});
|
258
|
+
|
259
|
+
roleId = RoleIdLib.toRoleId(
|
260
|
+
_authority.getTargetFunctionRole(
|
261
|
+
target,
|
262
|
+
selector.toBytes4()));
|
263
|
+
}
|
264
|
+
|
265
|
+
//--- view functions ----------------------------------------------------//
|
266
|
+
|
267
|
+
function roles() external view returns (uint256 numberOfRoles) {
|
268
|
+
return _roleIds.length;
|
269
|
+
}
|
270
|
+
|
271
|
+
function getRoleId(uint256 idx) external view returns (RoleId roleId) {
|
272
|
+
return _roleIds[idx];
|
273
|
+
}
|
274
|
+
|
275
|
+
function getAdminRole() public view returns (RoleId roleId) {
|
276
|
+
return RoleId.wrap(_authority.ADMIN_ROLE());
|
277
|
+
}
|
278
|
+
|
279
|
+
function getPublicRole() public view returns (RoleId roleId) {
|
280
|
+
return RoleId.wrap(_authority.PUBLIC_ROLE());
|
281
|
+
}
|
282
|
+
|
283
|
+
function getManagerRole() public view returns (RoleId roleId) {
|
284
|
+
return _managerRoleId;
|
285
|
+
}
|
286
|
+
|
287
|
+
function roleExists(RoleId roleId) public view returns (bool exists) {
|
288
|
+
return _roleInfo[roleId].exists;
|
289
|
+
}
|
290
|
+
|
291
|
+
function isRoleDisabled(RoleId roleId) public view returns (bool isActive) {
|
292
|
+
return _roleInfo[roleId].disabledAt <= TimestampLib.blockTimestamp();
|
293
|
+
}
|
294
|
+
|
295
|
+
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
|
296
|
+
return _roleInfo[roleId];
|
297
|
+
}
|
298
|
+
|
299
|
+
function getRoleForName(Str name) external view returns (RoleNameInfo memory) {
|
300
|
+
return _roleForName[name];
|
301
|
+
}
|
302
|
+
|
303
|
+
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
304
|
+
(bool isMember, ) = _authority.hasRole(
|
305
|
+
RoleId.unwrap(roleId),
|
306
|
+
account);
|
307
|
+
return isMember;
|
308
|
+
}
|
309
|
+
|
310
|
+
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
311
|
+
return _roleMembers[roleId].length();
|
312
|
+
}
|
313
|
+
|
314
|
+
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
|
315
|
+
return _roleMembers[roleId].at(idx);
|
316
|
+
}
|
317
|
+
|
318
|
+
function targetExists(address target) public view returns (bool exists) {
|
319
|
+
return _targetInfo[target].createdAt.gtz();
|
320
|
+
}
|
321
|
+
|
322
|
+
function isTargetLocked(address target) public view returns (bool locked) {
|
323
|
+
return _authority.isTargetClosed(target);
|
324
|
+
}
|
325
|
+
|
326
|
+
function targets() external view returns (uint256 numberOfTargets) {
|
327
|
+
return _targets.length;
|
328
|
+
}
|
329
|
+
|
330
|
+
function getTargetAddress(uint256 idx) external view returns (address target) {
|
331
|
+
return _targets[idx];
|
332
|
+
}
|
333
|
+
|
334
|
+
function getTargetInfo(address target) external view returns (TargetInfo memory targetInfo) {
|
335
|
+
return _targetInfo[target];
|
336
|
+
}
|
337
|
+
|
338
|
+
function getTargetForName(Str name) external view returns (address target) {
|
339
|
+
return _targetForName[name];
|
340
|
+
}
|
341
|
+
|
342
|
+
function isAccessManaged(address target) public view returns (bool) {
|
343
|
+
if (!_isContract(target)) {
|
344
|
+
return false;
|
345
|
+
}
|
346
|
+
|
347
|
+
(bool success, ) = target.staticcall(
|
348
|
+
abi.encodeWithSelector(
|
349
|
+
AccessManagedUpgradeable.authority.selector));
|
350
|
+
|
351
|
+
return success;
|
352
|
+
}
|
353
|
+
|
354
|
+
function canCall(address caller, address target, Selector selector) external view returns (bool can) {
|
355
|
+
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
356
|
+
}
|
357
|
+
|
358
|
+
function deployer() public view returns (address) {
|
359
|
+
return _deployer;
|
360
|
+
}
|
361
|
+
|
362
|
+
function toFunction(bytes4 selector, string memory name) public pure returns (Function memory) {
|
363
|
+
return Function({
|
364
|
+
selector: SelectorLib.toSelector(selector),
|
365
|
+
name: StrLib.toStr(name)});
|
366
|
+
}
|
367
|
+
|
368
|
+
//--- internal/private functions -------------------------------------------------//
|
369
|
+
|
370
|
+
function _authorizeTargetFunctions(
|
371
|
+
address target,
|
372
|
+
RoleId roleId,
|
373
|
+
Function[] memory functions
|
374
|
+
)
|
375
|
+
internal
|
376
|
+
{
|
377
|
+
if (roleId == getAdminRole()) {
|
378
|
+
revert ErrorAuthorizeForAdminRoleInvalid(target);
|
379
|
+
}
|
380
|
+
|
381
|
+
bool addFunctions = true;
|
382
|
+
bytes4[] memory functionSelectors = _processFunctionSelectors(target, functions, addFunctions);
|
383
|
+
|
384
|
+
// apply authz via access manager
|
385
|
+
_grantRoleAccessToFunctions(target, roleId, functionSelectors);
|
386
|
+
}
|
387
|
+
|
388
|
+
function _unauthorizeTargetFunctions(
|
389
|
+
address target,
|
390
|
+
Function[] memory functions
|
391
|
+
)
|
392
|
+
internal
|
393
|
+
{
|
394
|
+
bool addFunctions = false;
|
395
|
+
bytes4[] memory functionSelectors = _processFunctionSelectors(target, functions, addFunctions);
|
396
|
+
_grantRoleAccessToFunctions(target, getAdminRole(), functionSelectors);
|
397
|
+
}
|
398
|
+
|
399
|
+
function _processFunctionSelectors(
|
400
|
+
address target,
|
401
|
+
Function[] memory functions,
|
402
|
+
bool addFunctions
|
403
|
+
)
|
404
|
+
internal
|
405
|
+
returns (
|
406
|
+
bytes4[] memory functionSelectors
|
407
|
+
)
|
408
|
+
{
|
409
|
+
uint256 n = functions.length;
|
410
|
+
functionSelectors = new bytes4[](n);
|
411
|
+
Function memory func;
|
412
|
+
Selector selector;
|
413
|
+
|
414
|
+
for (uint256 i = 0; i < n; i++) {
|
415
|
+
func = functions[i];
|
416
|
+
selector = func.selector;
|
417
|
+
|
418
|
+
// add function selector to target selector set if not in set
|
419
|
+
if (addFunctions) { SelectorSetLib.add(_targetFunctions[target], selector); }
|
420
|
+
else { SelectorSetLib.remove(_targetFunctions[target], selector); }
|
421
|
+
|
422
|
+
// set function name
|
423
|
+
_functionName[target][selector] = func.name;
|
424
|
+
|
425
|
+
// add bytes4 selector to function selector array
|
426
|
+
functionSelectors[i] = selector.toBytes4();
|
427
|
+
}
|
428
|
+
}
|
429
|
+
|
430
|
+
function _initializeAuthority(
|
431
|
+
address authorityAddress
|
432
|
+
)
|
433
|
+
internal
|
434
|
+
virtual
|
435
|
+
onlyInitializing()
|
436
|
+
onlyDeployer()
|
437
|
+
{
|
438
|
+
if (authority() != address(0)) {
|
439
|
+
revert ErrorAuthorityAlreadySet();
|
440
|
+
}
|
441
|
+
|
442
|
+
_authority = AccessManager(authorityAddress);
|
443
|
+
|
444
|
+
if(!hasRole(address(this), RoleId.wrap(_authority.ADMIN_ROLE()))) {
|
445
|
+
revert ErrorAdminRoleMissing();
|
446
|
+
}
|
447
|
+
|
448
|
+
__AccessManaged_init(address(_authority));
|
449
|
+
}
|
450
|
+
|
451
|
+
|
452
|
+
function _initializeRoleSetup()
|
453
|
+
internal
|
454
|
+
virtual
|
455
|
+
onlyInitializing()
|
456
|
+
{
|
457
|
+
_createInitialRoleSetup();
|
458
|
+
}
|
459
|
+
|
460
|
+
|
461
|
+
function _createInitialRoleSetup()
|
462
|
+
internal
|
463
|
+
{
|
464
|
+
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
465
|
+
Function[] memory functions;
|
466
|
+
|
467
|
+
// setup admin role
|
468
|
+
_createRoleUnchecked(
|
469
|
+
adminRoleId,
|
470
|
+
adminRoleId,
|
471
|
+
StrLib.toStr(ADMIN_ROLE_NAME),
|
472
|
+
1,
|
473
|
+
true);
|
474
|
+
|
475
|
+
// add this contract as admin role member
|
476
|
+
_roleMembers[adminRoleId].add(address(this));
|
477
|
+
|
478
|
+
// setup public role
|
479
|
+
_createRoleUnchecked(
|
480
|
+
RoleIdLib.toRoleId(_authority.PUBLIC_ROLE()),
|
481
|
+
adminRoleId,
|
482
|
+
StrLib.toStr(PUBLIC_ROLE_NAME),
|
483
|
+
type(uint256).max,
|
484
|
+
true);
|
485
|
+
|
486
|
+
// setup manager role
|
487
|
+
_managerRoleId = RoleIdLib.toRoleId(MANAGER_ROLE);
|
488
|
+
_createRole(
|
489
|
+
_managerRoleId,
|
490
|
+
adminRoleId,
|
491
|
+
MANAGER_ROLE_NAME,
|
492
|
+
3, // TODO think about max member count
|
493
|
+
false);
|
494
|
+
|
495
|
+
// grant public role access to grant and revoke, renounce
|
496
|
+
functions = new Function[](3);
|
497
|
+
functions[0] = toFunction(IAccessAdmin.grantRole.selector, "grantRole");
|
498
|
+
functions[1] = toFunction(IAccessAdmin.revokeRole.selector, "revokeRole");
|
499
|
+
functions[2] = toFunction(IAccessAdmin.renounceRole.selector, "renounceRole");
|
500
|
+
_authorizeTargetFunctions(address(this), getPublicRole(), functions);
|
501
|
+
|
502
|
+
// grant manager role access to the specified functions
|
503
|
+
functions = new Function[](6);
|
504
|
+
functions[0] = toFunction(IAccessAdmin.createRole.selector, "createRole");
|
505
|
+
functions[1] = toFunction(IAccessAdmin.setRoleDisabled.selector, "setRoleDisabled");
|
506
|
+
functions[2] = toFunction(IAccessAdmin.createTarget.selector, "createTarget");
|
507
|
+
functions[3] = toFunction(IAccessAdmin.setTargetLocked.selector, "setTargetLocked");
|
508
|
+
functions[4] = toFunction(IAccessAdmin.authorizeFunctions.selector, "authorizeFunctions");
|
509
|
+
functions[5] = toFunction(IAccessAdmin.unauthorizeFunctions.selector, "unauthorizeFunctions");
|
510
|
+
_authorizeTargetFunctions(address(this), getManagerRole(), functions);
|
511
|
+
}
|
512
|
+
|
513
|
+
/// @dev check if target exists and reverts if it doesn't
|
514
|
+
function _checkTarget(address target)
|
515
|
+
internal
|
516
|
+
{
|
517
|
+
if (_targetInfo[target].createdAt.eqz()) {
|
518
|
+
revert ErrorTargetUnknown(target);
|
519
|
+
}
|
520
|
+
}
|
521
|
+
|
522
|
+
/// @dev grant the specified role access to all functions in the provided selector list
|
523
|
+
function _grantRoleAccessToFunctions(
|
524
|
+
address target,
|
525
|
+
RoleId roleId,
|
526
|
+
bytes4[] memory functionSelectors
|
527
|
+
)
|
528
|
+
internal
|
529
|
+
{
|
530
|
+
_authority.setTargetFunctionRole(
|
531
|
+
target,
|
532
|
+
functionSelectors,
|
533
|
+
RoleId.unwrap(roleId));
|
534
|
+
|
535
|
+
// implizit logging: rely on OpenZeppelin log TargetFunctionRoleUpdated
|
536
|
+
}
|
537
|
+
|
538
|
+
/// @dev grant the specified role to the provided account
|
539
|
+
function _grantRoleToAccount(RoleId roleId, address account)
|
540
|
+
internal
|
541
|
+
{
|
542
|
+
_checkRoleId(roleId);
|
543
|
+
_checkRoleIsActive(roleId);
|
544
|
+
|
545
|
+
// check max role members will not be exceeded
|
546
|
+
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
547
|
+
revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
548
|
+
}
|
549
|
+
|
550
|
+
_roleMembers[roleId].add(account);
|
551
|
+
_authority.grantRole(
|
552
|
+
RoleId.unwrap(roleId),
|
553
|
+
account,
|
554
|
+
0);
|
555
|
+
|
556
|
+
// indirect logging: rely on OpenZeppelin log RoleGranted
|
557
|
+
}
|
558
|
+
|
559
|
+
/// @dev revoke the specified role from the provided account
|
560
|
+
function _revokeRoleFromAccount(RoleId roleId, address account)
|
561
|
+
internal
|
562
|
+
{
|
563
|
+
_checkRoleId(roleId);
|
564
|
+
|
565
|
+
// check role removal is permitted
|
566
|
+
if (_roleInfo[roleId].memberRemovalDisabled) {
|
567
|
+
revert ErrorRoleRemovalDisabled(roleId);
|
568
|
+
}
|
569
|
+
|
570
|
+
_roleMembers[roleId].remove(account);
|
571
|
+
_authority.revokeRole(
|
572
|
+
RoleId.unwrap(roleId),
|
573
|
+
account);
|
574
|
+
|
575
|
+
// indirect logging: rely on OpenZeppelin log RoleGranted
|
576
|
+
}
|
577
|
+
|
578
|
+
|
579
|
+
function _checkRoleId(RoleId roleId)
|
580
|
+
internal
|
581
|
+
{
|
582
|
+
if (!_roleInfo[roleId].exists) {
|
583
|
+
revert ErrorRoleUnknown(roleId);
|
584
|
+
}
|
585
|
+
|
586
|
+
uint64 roleIdInt = RoleId.unwrap(roleId);
|
587
|
+
if (roleIdInt == _authority.ADMIN_ROLE()
|
588
|
+
|| roleIdInt == _authority.PUBLIC_ROLE())
|
589
|
+
{
|
590
|
+
revert ErrorRoleIsLocked(roleId);
|
591
|
+
}
|
592
|
+
}
|
593
|
+
|
594
|
+
|
595
|
+
function _checkRoleIsActive(RoleId roleId)
|
596
|
+
internal
|
597
|
+
{
|
598
|
+
if (isRoleDisabled(roleId)) {
|
599
|
+
revert ErrorRoleIsDisabled(roleId);
|
600
|
+
}
|
601
|
+
}
|
602
|
+
|
603
|
+
|
604
|
+
function _createRole(
|
605
|
+
RoleId roleId,
|
606
|
+
RoleId adminRoleId,
|
607
|
+
string memory roleName,
|
608
|
+
uint256 maxMemberCount,
|
609
|
+
bool memberRemovalDisabled
|
610
|
+
)
|
611
|
+
internal
|
612
|
+
{
|
613
|
+
// check role does not yet exist
|
614
|
+
if(roleExists(roleId)) {
|
615
|
+
revert ErrorRoleAlreadyCreated(
|
616
|
+
roleId,
|
617
|
+
_roleInfo[roleId].name.toString());
|
618
|
+
}
|
619
|
+
|
620
|
+
// check admin role exists
|
621
|
+
if(!roleExists(adminRoleId)) {
|
622
|
+
revert ErrorRoleAdminNotExisting(adminRoleId);
|
623
|
+
}
|
624
|
+
|
625
|
+
// check role name is not empty
|
626
|
+
Str name = StrLib.toStr(roleName);
|
627
|
+
if(name.length() == 0) {
|
628
|
+
revert ErrorRoleNameEmpty(roleId);
|
629
|
+
}
|
630
|
+
|
631
|
+
// check role name is not used for another role
|
632
|
+
if(_roleForName[name].exists) {
|
633
|
+
revert ErrorRoleNameAlreadyExists(
|
634
|
+
roleId,
|
635
|
+
roleName,
|
636
|
+
_roleForName[name].roleId);
|
637
|
+
}
|
638
|
+
|
639
|
+
_createRoleUnchecked(
|
640
|
+
roleId, adminRoleId,
|
641
|
+
name,
|
642
|
+
maxMemberCount,
|
643
|
+
memberRemovalDisabled);
|
644
|
+
}
|
645
|
+
|
646
|
+
|
647
|
+
function _setRoleDisabled(
|
648
|
+
RoleId roleId,
|
649
|
+
bool disabled
|
650
|
+
)
|
651
|
+
internal
|
652
|
+
{
|
653
|
+
|
654
|
+
_checkRoleId(roleId);
|
655
|
+
Timestamp disabledAtOld = _roleInfo[roleId].disabledAt;
|
656
|
+
|
657
|
+
if (disabled) {
|
658
|
+
_roleInfo[roleId].disabledAt = TimestampLib.blockTimestamp();
|
659
|
+
} else {
|
660
|
+
_roleInfo[roleId].disabledAt = TimestampLib.max();
|
661
|
+
}
|
662
|
+
|
663
|
+
emit LogRoleDisabled(roleId, disabled, disabledAtOld);
|
664
|
+
}
|
665
|
+
|
666
|
+
|
667
|
+
function _createRoleUnchecked(
|
668
|
+
RoleId roleId,
|
669
|
+
RoleId adminRoleId,
|
670
|
+
Str name,
|
671
|
+
uint256 maxMemberCount,
|
672
|
+
bool memberRemovalDisabled
|
673
|
+
)
|
674
|
+
private
|
675
|
+
{
|
676
|
+
// create role info
|
677
|
+
_roleInfo[roleId] = RoleInfo({
|
678
|
+
adminRoleId: adminRoleId,
|
679
|
+
name: name,
|
680
|
+
maxMemberCount: maxMemberCount,
|
681
|
+
memberRemovalDisabled: memberRemovalDisabled,
|
682
|
+
disabledAt: TimestampLib.max(),
|
683
|
+
exists: true});
|
684
|
+
|
685
|
+
// create role name info
|
686
|
+
_roleForName[name] = RoleNameInfo({
|
687
|
+
roleId: roleId,
|
688
|
+
exists: true});
|
689
|
+
|
690
|
+
// add role to list of roles
|
691
|
+
_roleIds.push(roleId);
|
692
|
+
|
693
|
+
emit LogRoleCreated(roleId, adminRoleId, name.toString());
|
694
|
+
}
|
695
|
+
|
696
|
+
|
697
|
+
function _createTarget(address target, string memory targetName)
|
698
|
+
internal
|
699
|
+
{
|
700
|
+
// check target does not yet exist
|
701
|
+
if(targetExists(target)) {
|
702
|
+
revert ErrorTargetAlreadyCreated(
|
703
|
+
target,
|
704
|
+
_targetInfo[target].name.toString());
|
705
|
+
}
|
706
|
+
|
707
|
+
// check target name is not empty
|
708
|
+
Str name = StrLib.toStr(targetName);
|
709
|
+
if(name.length() == 0) {
|
710
|
+
revert ErrorTargetNameEmpty(target);
|
711
|
+
}
|
712
|
+
|
713
|
+
// check target name is not used for another role
|
714
|
+
if( _targetForName[name] != address(0)) {
|
715
|
+
revert ErrorTargetNameAlreadyExists(
|
716
|
+
target,
|
717
|
+
targetName,
|
718
|
+
_targetForName[name]);
|
719
|
+
}
|
720
|
+
|
721
|
+
// check target is an access managed contract
|
722
|
+
if (!isAccessManaged(target)) {
|
723
|
+
revert ErrorTargetNotAccessManaged(target);
|
724
|
+
}
|
725
|
+
|
726
|
+
// check target shares authority with this contract
|
727
|
+
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
728
|
+
if (targetAuthority != authority()) {
|
729
|
+
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
730
|
+
}
|
731
|
+
|
732
|
+
// create target info
|
733
|
+
_targetInfo[target] = TargetInfo({
|
734
|
+
name: name,
|
735
|
+
createdAt: TimestampLib.blockTimestamp()
|
736
|
+
});
|
737
|
+
|
738
|
+
// create name to target mapping
|
739
|
+
_targetForName[name] = target;
|
740
|
+
|
741
|
+
// add role to list of roles
|
742
|
+
_targets.push(target);
|
743
|
+
|
744
|
+
emit LogTargetCreated(target, targetName);
|
745
|
+
}
|
746
|
+
|
747
|
+
function _isContract(address target)
|
748
|
+
internal
|
749
|
+
view
|
750
|
+
returns (bool)
|
751
|
+
{
|
752
|
+
uint256 size;
|
753
|
+
assembly {
|
754
|
+
size := extcodesize(target)
|
755
|
+
}
|
756
|
+
return size > 0;
|
757
|
+
}
|
758
|
+
|
759
|
+
}
|