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