@etherisc/gif-next 0.0.2-8e4a894-234 → 0.0.2-8e5f0ee-617
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 +21 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -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 +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +154 -339
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +158 -320
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +127 -81
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +151 -251
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +67 -64
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -108
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +71 -72
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +188 -47
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +87 -120
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +500 -334
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +277 -96
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +120 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1125 -371
- 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 +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- 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 +182 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -78
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +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 +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -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 +772 -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 +1063 -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/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -249
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +115 -57
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -51
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +149 -285
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +136 -135
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +197 -335
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +186 -355
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +102 -68
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +97 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -34
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +135 -196
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +130 -56
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +30 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +94 -25
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +40 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +253 -148
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +184 -282
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +113 -87
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +167 -159
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +141 -43
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +296 -237
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -203
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +94 -32
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +135 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +317 -52
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +367 -39
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +370 -68
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -35
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +692 -92
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +105 -82
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +901 -45
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -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 +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -81
- 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 +718 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +12 -16
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- 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 +996 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -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 +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +64 -16
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +40 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- 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 +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
- 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/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -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 +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +661 -85
- 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 +2237 -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 +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
- 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 +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +144 -146
- package/contracts/distribution/DistributionService.sol +64 -110
- package/contracts/distribution/DistributionServiceManager.sol +9 -18
- package/contracts/distribution/IDistributionComponent.sol +20 -43
- package/contracts/distribution/IDistributionService.sol +7 -9
- package/contracts/instance/IInstance.sol +21 -12
- package/contracts/instance/IInstanceService.sol +41 -22
- package/contracts/instance/Instance.sol +111 -86
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +84 -47
- package/contracts/instance/InstanceService.sol +259 -124
- package/contracts/instance/InstanceServiceManager.sol +10 -20
- package/contracts/instance/InstanceStore.sol +131 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/ObjectManager.sol +7 -10
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -4
- package/contracts/instance/module/IPolicy.sol +12 -5
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +76 -162
- package/contracts/pool/BundleServiceManager.sol +9 -18
- package/contracts/pool/IBundleService.sol +4 -16
- package/contracts/pool/IPoolComponent.sol +4 -66
- package/contracts/pool/IPoolService.sol +45 -9
- package/contracts/pool/Pool.sol +150 -141
- package/contracts/pool/PoolService.sol +198 -149
- package/contracts/pool/PoolServiceManager.sol +9 -18
- package/contracts/product/ApplicationService.sol +114 -46
- package/contracts/product/ApplicationServiceManager.sol +9 -6
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +33 -28
- package/contracts/product/ClaimServiceManager.sol +9 -6
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +12 -3
- package/contracts/product/IPolicyService.sol +6 -8
- package/contracts/product/IPricingService.sol +3 -1
- package/contracts/product/IProductComponent.sol +9 -11
- package/contracts/product/IProductService.sol +1 -8
- package/contracts/product/PolicyService.sol +231 -132
- package/contracts/product/PolicyServiceManager.sol +9 -21
- package/contracts/product/PricingService.sol +78 -53
- package/contracts/product/PricingServiceManager.sol +9 -18
- package/contracts/product/Product.sol +126 -109
- package/contracts/product/ProductService.sol +32 -118
- package/contracts/product/ProductServiceManager.sol +9 -21
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +37 -17
- package/contracts/registry/IRegistryService.sol +33 -30
- package/contracts/registry/Registry.sol +193 -82
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +63 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -28
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseManager.sol +354 -191
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +139 -129
- package/contracts/shared/ComponentService.sol +524 -93
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IComponent.sol +17 -37
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +151 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -73
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +2 -13
- package/contracts/shared/PolicyHolder.sol +21 -13
- package/contracts/shared/ProxyManager.sol +31 -1
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +32 -21
- package/contracts/shared/TokenHandler.sol +24 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +98 -47
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +290 -45
- package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +11 -4
- package/contracts/staking/StakingStore.sol +615 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +20 -1
- package/contracts/type/Blocknumber.sol +20 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +176 -63
- package/contracts/type/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +117 -40
- package/contracts/type/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +1 -1
- package/package.json +8 -5
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- 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 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- 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/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
- package/contracts/instance/InstanceAccessManager.sol +0 -541
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -120
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -0,0 +1,365 @@
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
5
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
6
|
+
import {IRegistry} from "./IRegistry.sol";
|
7
|
+
import {IService} from "../shared/IService.sol";
|
8
|
+
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
9
|
+
import {IStaking} from "../staking/IStaking.sol";
|
10
|
+
import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
|
11
|
+
import {ReleaseManager} from "./ReleaseManager.sol";
|
12
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
13
|
+
import {StakingStore} from "../staking/StakingStore.sol";
|
14
|
+
import {STAKING} from "../type/ObjectType.sol";
|
15
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
16
|
+
import {VersionPart} from "../type/Version.sol";
|
17
|
+
|
18
|
+
/*
|
19
|
+
1) GIF_MANAGER_ROLE
|
20
|
+
- can have arbitrary number of members
|
21
|
+
- responsible for services registrations
|
22
|
+
- responsible for token registration and activation
|
23
|
+
|
24
|
+
2) GIF_ADMIN_ROLE
|
25
|
+
- admin of GIF_MANAGER_ROLE
|
26
|
+
- MUST have 1 member at any time
|
27
|
+
- granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
|
28
|
+
- responsible for creation and activation of releases
|
29
|
+
|
30
|
+
createServiceTarget(type, release)
|
31
|
+
createServiceRole(type,release)
|
32
|
+
getServiceRole(type, release)
|
33
|
+
*/
|
34
|
+
contract RegistryAdmin is
|
35
|
+
AccessAdmin
|
36
|
+
{
|
37
|
+
error ErrorRegistryAdminIsAlreadySetUp();
|
38
|
+
|
39
|
+
string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
|
40
|
+
string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
|
41
|
+
string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
|
42
|
+
string public constant RELEASE_MANAGER_ROLE_NAME = "ReleaseManagerRole";
|
43
|
+
string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
|
44
|
+
string public constant STAKING_ROLE_NAME = "StakingRole";
|
45
|
+
|
46
|
+
string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
|
47
|
+
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
48
|
+
string public constant STAKING_TARGET_NAME = "Staking";
|
49
|
+
string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
|
50
|
+
|
51
|
+
uint8 public constant MAX_NUM_RELEASES = 99;
|
52
|
+
|
53
|
+
mapping(address service => VersionPart majorVersion) private _ServiceRelease;
|
54
|
+
|
55
|
+
address private _releaseManager;
|
56
|
+
address private _tokenRegistry;
|
57
|
+
address private _staking;
|
58
|
+
address private _stakingStore;
|
59
|
+
bool private _setupCompleted;
|
60
|
+
|
61
|
+
constructor() AccessAdmin() { }
|
62
|
+
|
63
|
+
function completeSetup(
|
64
|
+
IRegistry registry,
|
65
|
+
address gifAdmin,
|
66
|
+
address gifManager
|
67
|
+
)
|
68
|
+
external
|
69
|
+
onlyDeployer()
|
70
|
+
{
|
71
|
+
if (_setupCompleted) { revert ErrorRegistryAdminIsAlreadySetUp(); }
|
72
|
+
else { _setupCompleted = true; }
|
73
|
+
|
74
|
+
_releaseManager = registry.getReleaseManagerAddress();
|
75
|
+
_tokenRegistry = registry.getTokenRegistryAddress();
|
76
|
+
_staking = registry.getStakingAddress();
|
77
|
+
_stakingStore = address(
|
78
|
+
IStaking(_staking).getStakingStore());
|
79
|
+
|
80
|
+
// at this moment all registry contracts are deployed and fully intialized
|
81
|
+
_createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
|
82
|
+
|
83
|
+
_setupGifAdminRole(gifAdmin);
|
84
|
+
_setupGifManagerRole(gifManager);
|
85
|
+
|
86
|
+
_setupReleaseManager();
|
87
|
+
_setupStaking();
|
88
|
+
}
|
89
|
+
|
90
|
+
|
91
|
+
/// @dev Sets up authorizaion for specified service.
|
92
|
+
/// For all authorized services its authorized functions are enabled.
|
93
|
+
/// Permissioned function: Access is restricted to release manager.
|
94
|
+
function authorizeService(
|
95
|
+
IServiceAuthorization serviceAuthorization,
|
96
|
+
IService service
|
97
|
+
)
|
98
|
+
external
|
99
|
+
restricted()
|
100
|
+
{
|
101
|
+
_createServiceTargetAndRole(service);
|
102
|
+
_authorizeServiceFunctions(serviceAuthorization, service);
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
function grantServiceRoleForAllVersions(IService service, ObjectType domain)
|
107
|
+
external
|
108
|
+
restricted()
|
109
|
+
{
|
110
|
+
_grantRoleToAccount(
|
111
|
+
RoleIdLib.roleForTypeAndAllVersions(domain),
|
112
|
+
address(service));
|
113
|
+
}
|
114
|
+
|
115
|
+
|
116
|
+
function _createServiceTargetAndRole(IService service)
|
117
|
+
private
|
118
|
+
{
|
119
|
+
ObjectType serviceDomain = service.getDomain();
|
120
|
+
string memory baseName = ObjectTypeLib.toName(serviceDomain);
|
121
|
+
VersionPart version = service.getVersion().toMajorPart();
|
122
|
+
uint256 versionInt = version.toInt();
|
123
|
+
|
124
|
+
// create service target
|
125
|
+
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
126
|
+
baseName, "Service", versionInt);
|
127
|
+
|
128
|
+
_createTarget(
|
129
|
+
address(service),
|
130
|
+
serviceTargetName,
|
131
|
+
true,
|
132
|
+
false);
|
133
|
+
|
134
|
+
// create service role
|
135
|
+
RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
|
136
|
+
serviceDomain,
|
137
|
+
version);
|
138
|
+
|
139
|
+
_createRole(
|
140
|
+
serviceRoleId,
|
141
|
+
toRole({
|
142
|
+
adminRoleId: ADMIN_ROLE(),
|
143
|
+
roleType: RoleType.Contract,
|
144
|
+
maxMemberCount: 1,
|
145
|
+
name: ObjectTypeLib.toVersionedName(
|
146
|
+
baseName,
|
147
|
+
"ServiceRole",
|
148
|
+
versionInt)}));
|
149
|
+
|
150
|
+
_grantRoleToAccount(
|
151
|
+
serviceRoleId,
|
152
|
+
address(service));
|
153
|
+
}
|
154
|
+
|
155
|
+
|
156
|
+
function _authorizeServiceFunctions(
|
157
|
+
IServiceAuthorization serviceAuthorization,
|
158
|
+
IService service
|
159
|
+
)
|
160
|
+
private
|
161
|
+
{
|
162
|
+
ObjectType serviceDomain = service.getDomain();
|
163
|
+
ObjectType authorizedDomain;
|
164
|
+
RoleId authorizedRoleId;
|
165
|
+
|
166
|
+
VersionPart release = service.getVersion().toMajorPart();
|
167
|
+
ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
|
168
|
+
|
169
|
+
for (uint256 i = 0; i < authorizedDomains.length; i++) {
|
170
|
+
authorizedDomain = authorizedDomains[i];
|
171
|
+
|
172
|
+
// derive authorized role from authorized domain
|
173
|
+
if (authorizedDomain == ALL()) {
|
174
|
+
authorizedRoleId = PUBLIC_ROLE();
|
175
|
+
} else {
|
176
|
+
authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
|
177
|
+
authorizedDomain,
|
178
|
+
release);
|
179
|
+
}
|
180
|
+
|
181
|
+
// get authorized functions for authorized domain
|
182
|
+
IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
|
183
|
+
serviceDomain,
|
184
|
+
authorizedDomain);
|
185
|
+
|
186
|
+
_authorizeTargetFunctions(
|
187
|
+
address(service),
|
188
|
+
authorizedRoleId,
|
189
|
+
authorizatedFunctions);
|
190
|
+
}
|
191
|
+
}
|
192
|
+
|
193
|
+
/*function transferAdmin(address to)
|
194
|
+
external
|
195
|
+
restricted // only with GIF_ADMIN_ROLE or nft owner
|
196
|
+
{
|
197
|
+
_accessManager.revoke(GIF_ADMIN_ROLE, );
|
198
|
+
_accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
|
199
|
+
}*/
|
200
|
+
|
201
|
+
//--- view functions ----------------------------------------------------//
|
202
|
+
|
203
|
+
function getGifAdminRole() external view returns (RoleId) {
|
204
|
+
return GIF_ADMIN_ROLE();
|
205
|
+
}
|
206
|
+
|
207
|
+
function getGifManagerRole() external view returns (RoleId) {
|
208
|
+
return GIF_MANAGER_ROLE();
|
209
|
+
}
|
210
|
+
|
211
|
+
//--- private functions -------------------------------------------------//
|
212
|
+
|
213
|
+
function _setupGifAdminRole(address gifAdmin) private {
|
214
|
+
|
215
|
+
_createRole(
|
216
|
+
GIF_ADMIN_ROLE(),
|
217
|
+
toRole({
|
218
|
+
adminRoleId: ADMIN_ROLE(),
|
219
|
+
roleType: RoleType.Gif,
|
220
|
+
maxMemberCount: 2, // TODO decide on max member count
|
221
|
+
name: GIF_ADMIN_ROLE_NAME}));
|
222
|
+
|
223
|
+
// for ReleaseManager
|
224
|
+
FunctionInfo[] memory functions;
|
225
|
+
functions = new FunctionInfo[](4);
|
226
|
+
functions[0] = toFunction(ReleaseManager.createNextRelease.selector, "createNextRelease");
|
227
|
+
functions[1] = toFunction(ReleaseManager.activateNextRelease.selector, "activateNextRelease");
|
228
|
+
functions[2] = toFunction(ReleaseManager.pauseRelease.selector, "pauseRelease");
|
229
|
+
functions[3] = toFunction(ReleaseManager.unpauseRelease.selector, "unpauseRelease");
|
230
|
+
_authorizeTargetFunctions(_releaseManager, GIF_ADMIN_ROLE(), functions);
|
231
|
+
|
232
|
+
_grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
|
233
|
+
}
|
234
|
+
|
235
|
+
function _setupGifManagerRole(address gifManager) private {
|
236
|
+
|
237
|
+
_createRole(
|
238
|
+
GIF_MANAGER_ROLE(),
|
239
|
+
toRole({
|
240
|
+
adminRoleId: ADMIN_ROLE(),
|
241
|
+
roleType: RoleType.Gif,
|
242
|
+
maxMemberCount: 1,
|
243
|
+
name: GIF_MANAGER_ROLE_NAME}));
|
244
|
+
|
245
|
+
// for TokenRegistry
|
246
|
+
FunctionInfo[] memory functions;
|
247
|
+
functions = new FunctionInfo[](5);
|
248
|
+
functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
|
249
|
+
functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
|
250
|
+
functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
|
251
|
+
functions[3] = toFunction(TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
|
252
|
+
// TODO find a better way (only needed for testing)
|
253
|
+
functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
|
254
|
+
_authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
|
255
|
+
|
256
|
+
// for ReleaseManager
|
257
|
+
functions = new FunctionInfo[](2);
|
258
|
+
functions[0] = toFunction(ReleaseManager.prepareNextRelease.selector, "prepareNextRelease");
|
259
|
+
functions[1] = toFunction(ReleaseManager.registerService.selector, "registerService");
|
260
|
+
_authorizeTargetFunctions(_releaseManager, GIF_MANAGER_ROLE(), functions);
|
261
|
+
|
262
|
+
_grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
|
263
|
+
}
|
264
|
+
|
265
|
+
|
266
|
+
function _setupReleaseManager() private {
|
267
|
+
|
268
|
+
_createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME, true, false);
|
269
|
+
|
270
|
+
RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
|
271
|
+
_createRole(
|
272
|
+
releaseManagerRoleId,
|
273
|
+
toRole({
|
274
|
+
adminRoleId: ADMIN_ROLE(),
|
275
|
+
roleType: RoleType.Contract,
|
276
|
+
maxMemberCount: 1,
|
277
|
+
name: RELEASE_MANAGER_ROLE_NAME}));
|
278
|
+
|
279
|
+
FunctionInfo[] memory functions;
|
280
|
+
functions = new FunctionInfo[](2);
|
281
|
+
functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
|
282
|
+
functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
|
283
|
+
_authorizeTargetFunctions(address(this), releaseManagerRoleId, functions);
|
284
|
+
|
285
|
+
_grantRoleToAccount(releaseManagerRoleId, _releaseManager);
|
286
|
+
}
|
287
|
+
|
288
|
+
|
289
|
+
function _setupStaking() private {
|
290
|
+
_createTarget(_staking, STAKING_TARGET_NAME, true, false);
|
291
|
+
_createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
|
292
|
+
|
293
|
+
// staking function authorization for staking service
|
294
|
+
RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
|
295
|
+
_createRole(
|
296
|
+
stakingServiceRoleId,
|
297
|
+
toRole({
|
298
|
+
adminRoleId: ADMIN_ROLE(),
|
299
|
+
roleType: RoleType.Contract,
|
300
|
+
maxMemberCount: MAX_NUM_RELEASES,
|
301
|
+
name: STAKING_SERVICE_ROLE_NAME}));
|
302
|
+
|
303
|
+
FunctionInfo[] memory functions;
|
304
|
+
functions = new FunctionInfo[](13);
|
305
|
+
functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
|
306
|
+
functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
|
307
|
+
functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
|
308
|
+
functions[3] = toFunction(IStaking.refillRewardReserves.selector, "refillRewardReserves");
|
309
|
+
functions[4] = toFunction(IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
|
310
|
+
functions[5] = toFunction(IStaking.createStake.selector, "createStake");
|
311
|
+
functions[6] = toFunction(IStaking.stake.selector, "stake");
|
312
|
+
functions[7] = toFunction(IStaking.unstake.selector, "unstake");
|
313
|
+
functions[8] = toFunction(IStaking.restake.selector, "restake");
|
314
|
+
functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
|
315
|
+
functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
|
316
|
+
functions[11] = toFunction(IStaking.collectDipAmount.selector, "collectDipAmount");
|
317
|
+
functions[12] = toFunction(IStaking.transferDipAmount.selector, "transferDipAmount");
|
318
|
+
_authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
|
319
|
+
|
320
|
+
// staking function authorization for pool service
|
321
|
+
RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
|
322
|
+
_createRole(
|
323
|
+
poolServiceRoleId,
|
324
|
+
toRole({
|
325
|
+
adminRoleId: ADMIN_ROLE(),
|
326
|
+
roleType: RoleType.Contract,
|
327
|
+
maxMemberCount: MAX_NUM_RELEASES,
|
328
|
+
name: POOL_SERVICE_ROLE_NAME}));
|
329
|
+
|
330
|
+
// staking function authorizations
|
331
|
+
functions = new FunctionInfo[](2);
|
332
|
+
functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
333
|
+
functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
334
|
+
_authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
|
335
|
+
|
336
|
+
// staking store function authorizations
|
337
|
+
RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
|
338
|
+
_createRole(
|
339
|
+
stakingRoleId,
|
340
|
+
toRole({
|
341
|
+
adminRoleId: ADMIN_ROLE(),
|
342
|
+
roleType: RoleType.Contract,
|
343
|
+
maxMemberCount: 1,
|
344
|
+
name: STAKING_ROLE_NAME}));
|
345
|
+
|
346
|
+
functions = new FunctionInfo[](14);
|
347
|
+
functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
|
348
|
+
functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
|
349
|
+
functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
|
350
|
+
functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
|
351
|
+
functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
|
352
|
+
functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
353
|
+
functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
354
|
+
functions[7] = toFunction(StakingStore.create.selector, "create");
|
355
|
+
functions[8] = toFunction(StakingStore.update.selector, "update");
|
356
|
+
functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
|
357
|
+
functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
|
358
|
+
functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
|
359
|
+
functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
|
360
|
+
functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
|
361
|
+
_authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
|
362
|
+
|
363
|
+
_grantRoleToAccount(stakingRoleId, _staking);
|
364
|
+
}
|
365
|
+
}
|
@@ -15,12 +15,11 @@ import {IDistributionComponent} from "../../contracts/distribution/IDistribution
|
|
15
15
|
import {IVersionable} from "../../contracts/shared/IVersionable.sol";
|
16
16
|
import {Versionable} from "../../contracts/shared/Versionable.sol";
|
17
17
|
import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
18
|
-
import {Registerable} from "../../contracts/shared/Registerable.sol";
|
19
18
|
|
20
19
|
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
|
21
|
-
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, PRICE} from "../../contracts/type/ObjectType.sol";
|
20
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
|
22
21
|
import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
|
23
|
-
import {NftId, NftIdLib
|
22
|
+
import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
|
24
23
|
import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
|
25
24
|
import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
|
26
25
|
|
@@ -38,11 +37,6 @@ contract RegistryService is
|
|
38
37
|
// TODO update to real hash when registry is stable
|
39
38
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
40
39
|
|
41
|
-
// From IService
|
42
|
-
function getDomain() public pure override returns(ObjectType serviceDomain) {
|
43
|
-
return REGISTRY();
|
44
|
-
}
|
45
|
-
|
46
40
|
// from Versionable
|
47
41
|
|
48
42
|
/// @dev top level initializer
|
@@ -60,19 +54,33 @@ contract RegistryService is
|
|
60
54
|
) = abi.decode(data, (address, address));
|
61
55
|
|
62
56
|
initializeService(registryAddress, initialAuthority, owner);
|
63
|
-
|
64
57
|
registerInterface(type(IRegistryService).interfaceId);
|
65
58
|
}
|
66
59
|
|
60
|
+
|
61
|
+
function registerStaking(IRegisterable staking, address owner)
|
62
|
+
external
|
63
|
+
virtual
|
64
|
+
restricted()
|
65
|
+
returns(
|
66
|
+
IRegistry.ObjectInfo memory info
|
67
|
+
)
|
68
|
+
{
|
69
|
+
info = _getAndVerifyContractInfo(staking, STAKING(), owner);
|
70
|
+
info.nftId = getRegistry().register(info);
|
71
|
+
}
|
72
|
+
|
73
|
+
|
67
74
|
function registerInstance(IRegisterable instance, address owner)
|
68
75
|
external
|
76
|
+
virtual
|
69
77
|
restricted
|
70
78
|
returns(
|
71
79
|
IRegistry.ObjectInfo memory info
|
72
80
|
)
|
73
81
|
{
|
74
82
|
if(!instance.supportsInterface(type(IInstance).interfaceId)) {
|
75
|
-
revert
|
83
|
+
revert ErrorRegistryServiceNotInstance(address(instance));
|
76
84
|
}
|
77
85
|
|
78
86
|
info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
|
@@ -90,13 +98,33 @@ contract RegistryService is
|
|
90
98
|
{
|
91
99
|
// CAN revert if no ERC165 support -> will revert with empty message
|
92
100
|
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
93
|
-
revert
|
101
|
+
revert ErrorRegistryServiceNotProduct(address(product));
|
94
102
|
}
|
95
103
|
|
96
104
|
info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
|
97
105
|
info.nftId = getRegistry().register(info);
|
98
106
|
}
|
99
107
|
|
108
|
+
function registerComponent(
|
109
|
+
IComponent component,
|
110
|
+
ObjectType objectType,
|
111
|
+
address initialOwner
|
112
|
+
)
|
113
|
+
external
|
114
|
+
restricted
|
115
|
+
returns(
|
116
|
+
IRegistry.ObjectInfo memory info
|
117
|
+
)
|
118
|
+
{
|
119
|
+
// CAN revert if no ERC165 support -> will revert with empty message
|
120
|
+
if(!component.supportsInterface(type(IComponent).interfaceId)) {
|
121
|
+
revert ErrorRegistryServiceNotComponent(address(component));
|
122
|
+
}
|
123
|
+
|
124
|
+
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
125
|
+
info.nftId = getRegistry().register(info);
|
126
|
+
}
|
127
|
+
|
100
128
|
function registerPool(IComponent pool, address owner)
|
101
129
|
external
|
102
130
|
restricted
|
@@ -105,7 +133,7 @@ contract RegistryService is
|
|
105
133
|
)
|
106
134
|
{
|
107
135
|
if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
108
|
-
revert
|
136
|
+
revert ErrorRegistryServiceNotPool(address(pool));
|
109
137
|
}
|
110
138
|
|
111
139
|
info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
@@ -120,7 +148,7 @@ contract RegistryService is
|
|
120
148
|
)
|
121
149
|
{
|
122
150
|
if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
123
|
-
revert
|
151
|
+
revert ErrorRegistryServiceNotDistribution(address(distribution));
|
124
152
|
}
|
125
153
|
|
126
154
|
info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
@@ -142,7 +170,6 @@ contract RegistryService is
|
|
142
170
|
returns(NftId nftId)
|
143
171
|
{
|
144
172
|
_verifyObjectInfo(info, POLICY());
|
145
|
-
|
146
173
|
nftId = getRegistry().register(info);
|
147
174
|
}
|
148
175
|
|
@@ -152,7 +179,6 @@ contract RegistryService is
|
|
152
179
|
returns(NftId nftId)
|
153
180
|
{
|
154
181
|
_verifyObjectInfo(info, BUNDLE());
|
155
|
-
|
156
182
|
nftId = getRegistry().register(info);
|
157
183
|
}
|
158
184
|
|
@@ -162,63 +188,9 @@ contract RegistryService is
|
|
162
188
|
returns(NftId nftId)
|
163
189
|
{
|
164
190
|
_verifyObjectInfo(info, STAKE());
|
165
|
-
|
166
191
|
nftId = getRegistry().register(info);
|
167
192
|
}
|
168
193
|
|
169
|
-
// from IRegisterable
|
170
|
-
|
171
|
-
function getFunctionConfigs()
|
172
|
-
external
|
173
|
-
pure
|
174
|
-
returns(
|
175
|
-
FunctionConfig[] memory config
|
176
|
-
)
|
177
|
-
{
|
178
|
-
config = new FunctionConfig[](9);
|
179
|
-
|
180
|
-
// order of service registrations MUST be reverse to this array
|
181
|
-
/*config[-1].serviceDomain = STAKE();
|
182
|
-
config[-1].selector = RegistryService.registerStake.selector;*/
|
183
|
-
|
184
|
-
config[0].serviceDomain = POLICY();
|
185
|
-
config[0].selectors = new bytes4[](0);
|
186
|
-
|
187
|
-
config[1].serviceDomain = APPLICATION();
|
188
|
-
config[1].selectors = new bytes4[](1);
|
189
|
-
config[1].selectors[0] = RegistryService.registerPolicy.selector;
|
190
|
-
|
191
|
-
config[2].serviceDomain = CLAIM();
|
192
|
-
config[2].selectors = new bytes4[](0);
|
193
|
-
|
194
|
-
config[3].serviceDomain = PRODUCT();
|
195
|
-
config[3].selectors = new bytes4[](1);
|
196
|
-
config[3].selectors[0] = RegistryService.registerProduct.selector;
|
197
|
-
|
198
|
-
config[4].serviceDomain = POOL();
|
199
|
-
config[4].selectors = new bytes4[](1);
|
200
|
-
config[4].selectors[0] = RegistryService.registerPool.selector;
|
201
|
-
|
202
|
-
// registration of bundle service must preceed registration of pool service
|
203
|
-
config[5].serviceDomain = BUNDLE();
|
204
|
-
config[5].selectors = new bytes4[](1);
|
205
|
-
config[5].selectors[0] = RegistryService.registerBundle.selector;
|
206
|
-
|
207
|
-
// registration of pricing service must preceed registration of application service
|
208
|
-
config[6].serviceDomain = PRICE();
|
209
|
-
config[6].selectors = new bytes4[](0);
|
210
|
-
|
211
|
-
// registration of distribution service must preceed registration of pricing service
|
212
|
-
config[7].serviceDomain = DISTRIBUTION();
|
213
|
-
config[7].selectors = new bytes4[](2);
|
214
|
-
config[7].selectors[0] = RegistryService.registerDistribution.selector;
|
215
|
-
config[7].selectors[1] = RegistryService.registerDistributor.selector;
|
216
|
-
|
217
|
-
config[8].serviceDomain = INSTANCE();
|
218
|
-
config[8].selectors = new bytes4[](1);
|
219
|
-
config[8].selectors[0] = RegistryService.registerInstance.selector;
|
220
|
-
}
|
221
|
-
|
222
194
|
// Internal
|
223
195
|
|
224
196
|
function _getAndVerifyContractInfo(
|
@@ -227,34 +199,37 @@ contract RegistryService is
|
|
227
199
|
address expectedOwner // assume can be 0 when given by other service
|
228
200
|
)
|
229
201
|
internal
|
230
|
-
|
202
|
+
view
|
231
203
|
returns(
|
232
204
|
IRegistry.ObjectInfo memory info
|
233
205
|
)
|
234
206
|
{
|
235
207
|
info = registerable.getInitialInfo();
|
236
|
-
|
208
|
+
|
209
|
+
if(info.objectAddress != address(registerable)) {
|
210
|
+
revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
|
211
|
+
}
|
237
212
|
|
238
213
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
239
|
-
revert
|
214
|
+
revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
|
240
215
|
}
|
241
216
|
|
242
217
|
address owner = info.initialOwner;
|
243
218
|
|
244
219
|
if(owner != expectedOwner) { // registerable owner protection
|
245
|
-
revert
|
220
|
+
revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
|
246
221
|
}
|
247
222
|
|
248
223
|
if(owner == address(registerable)) {
|
249
|
-
revert
|
224
|
+
revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
|
250
225
|
}
|
251
226
|
|
252
227
|
if(owner == address(0)) {
|
253
|
-
revert
|
228
|
+
revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
|
254
229
|
}
|
255
230
|
|
256
231
|
if(getRegistry().isRegistered(owner)) {
|
257
|
-
revert
|
232
|
+
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
|
258
233
|
}
|
259
234
|
}
|
260
235
|
|
@@ -265,21 +240,27 @@ contract RegistryService is
|
|
265
240
|
internal
|
266
241
|
view
|
267
242
|
{
|
268
|
-
|
269
|
-
|
243
|
+
if(info.objectAddress > address(0)) {
|
244
|
+
revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
|
245
|
+
}
|
270
246
|
|
271
247
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
272
|
-
revert
|
248
|
+
revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
|
273
249
|
}
|
274
250
|
|
275
251
|
address owner = info.initialOwner;
|
276
252
|
|
277
253
|
if(owner == address(0)) {
|
278
|
-
revert
|
254
|
+
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
279
255
|
}
|
280
256
|
|
281
257
|
if(getRegistry().isRegistered(owner)) {
|
282
|
-
revert
|
258
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
283
259
|
}
|
284
260
|
}
|
285
|
-
|
261
|
+
|
262
|
+
// From IService
|
263
|
+
function _getDomain() internal override pure returns(ObjectType serviceDomain) {
|
264
|
+
return REGISTRY();
|
265
|
+
}
|
266
|
+
}
|