@etherisc/gif-next 0.0.2-676522f-203 → 0.0.2-683d8b2-607
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 +30 -2
- 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/authorization/IAccess.sol/IAccess.json +10 -0
- 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 +29 -254
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +138 -93
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -58
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -150
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -16
- 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 +64 -84
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1214 -280
- 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 +230 -65
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +221 -106
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +53 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- 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/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/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 +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- 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 -58
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +54 -42
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -206
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +28 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -314
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +77 -41
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +43 -39
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -35
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +48 -36
- 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 +112 -67
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +68 -52
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +17 -46
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +90 -45
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +57 -41
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -61
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -49
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +24 -164
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +39 -31
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +40 -16
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1487 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1876 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +40 -60
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
- 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 +182 -88
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1599 -153
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -26
- 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 +1140 -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 +22 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +11 -11
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +89 -77
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +53 -57
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -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 +4 -4
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +20 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +17 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -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 +13 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +24 -64
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.dbg.json +4 -0
- package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.json +34 -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 +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- 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 +13 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +114 -117
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +179 -182
- 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 +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +44 -44
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +223 -21
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +264 -134
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +42 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +771 -216
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
- 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 +2 -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 +12 -12
- 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 +28 -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 +26 -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 +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 +590 -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 +126 -104
- package/contracts/distribution/DistributionService.sol +15 -25
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +20 -13
- package/contracts/instance/IInstanceService.sol +34 -23
- package/contracts/instance/Instance.sol +108 -89
- package/contracts/instance/InstanceAdmin.sol +202 -266
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +52 -12
- package/contracts/instance/InstanceService.sol +159 -78
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +38 -22
- package/contracts/instance/base/BalanceStore.sol +11 -6
- 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 → ObjectSet.sol} +11 -14
- 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 +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +32 -44
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/IPoolService.sol +3 -0
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +45 -33
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +17 -41
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +16 -37
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IClaimService.sol +6 -0
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/PolicyService.sol +8 -6
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +7 -8
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +12 -37
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/ChainNft.sol +37 -22
- package/contracts/registry/GlobalRegistry.sol +89 -0
- package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
- package/contracts/registry/IGlobalRegistry.sol +17 -0
- package/contracts/registry/IRegistry.sol +25 -18
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +129 -150
- package/contracts/registry/RegistryAdmin.sol +358 -150
- package/contracts/registry/RegistryService.sol +9 -23
- package/contracts/registry/RegistryServiceManager.sol +2 -7
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +533 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +9 -52
- package/contracts/shared/Component.sol +8 -13
- package/contracts/shared/ComponentService.sol +45 -60
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +13 -7
- package/contracts/shared/IComponent.sol +3 -7
- package/contracts/shared/IComponentService.sol +11 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/shared/KeyValueStore.sol +7 -6
- package/contracts/shared/Lifecycle.sol +16 -60
- package/contracts/shared/MainnetContract.sol +15 -0
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/Service.sol +27 -22
- package/contracts/staking/IStaking.sol +41 -26
- package/contracts/staking/IStakingService.sol +42 -44
- package/contracts/staking/StakeManagerLib.sol +101 -26
- package/contracts/staking/Staking.sol +139 -125
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +73 -36
- package/contracts/staking/StakingService.sol +121 -86
- package/contracts/staking/StakingServiceManager.sol +2 -3
- package/contracts/staking/StakingStore.sol +401 -127
- package/contracts/staking/TargetManagerLib.sol +28 -0
- package/contracts/type/Amount.sol +15 -1
- package/contracts/type/NftId.sol +8 -8
- package/contracts/type/ObjectType.sol +171 -69
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RoleId.sol +103 -72
- package/contracts/type/Seconds.sol +10 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +12 -0
- 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 +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +4 -5
- 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/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- 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/IStakingManager.sol/IStakingManager.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
- package/contracts/registry/ReleaseManager.sol +0 -596
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/staking/IStakingManager.sol +0 -15
- package/contracts/staking/IStakingStore.sol +0 -130
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
|
@@ -50,14 +50,14 @@ interface IRegistryService is
|
|
|
50
50
|
function registerComponent(IComponent component, ObjectType objectType, address owner)
|
|
51
51
|
external returns(IRegistry.ObjectInfo memory info);
|
|
52
52
|
|
|
53
|
-
function registerProduct(IComponent product, address owner)
|
|
54
|
-
|
|
53
|
+
// function registerProduct(IComponent product, address owner)
|
|
54
|
+
// external returns(IRegistry.ObjectInfo memory info);
|
|
55
55
|
|
|
56
|
-
function registerPool(IComponent pool, address owner)
|
|
57
|
-
|
|
56
|
+
// function registerPool(IComponent pool, address owner)
|
|
57
|
+
// external returns(IRegistry.ObjectInfo memory info);
|
|
58
58
|
|
|
59
|
-
function registerDistribution(IComponent distribution, address owner)
|
|
60
|
-
|
|
59
|
+
// function registerDistribution(IComponent distribution, address owner)
|
|
60
|
+
// external returns(IRegistry.ObjectInfo memory info);
|
|
61
61
|
|
|
62
62
|
function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
|
63
63
|
|
|
@@ -3,41 +3,49 @@ pragma solidity ^0.8.20;
|
|
|
3
3
|
|
|
4
4
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
6
|
-
|
|
7
|
-
import {
|
|
6
|
+
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
|
7
|
+
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
|
8
8
|
|
|
9
9
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
|
10
10
|
import {VersionPart} from "../type/Version.sol";
|
|
11
|
-
import {ObjectType, PROTOCOL, REGISTRY,
|
|
11
|
+
import {ObjectType, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE, STAKING, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
|
|
12
12
|
|
|
13
13
|
import {ChainNft} from "./ChainNft.sol";
|
|
14
14
|
import {IRegistry} from "./IRegistry.sol";
|
|
15
15
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
16
|
-
import {
|
|
16
|
+
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
|
17
17
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
|
18
18
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
/// @dev IMPORTANT
|
|
21
21
|
// Each NFT minted by registry is accosiated with:
|
|
22
22
|
// 1) NFT owner
|
|
23
23
|
// 2) registred contract OR object stored in registered (parent) contract
|
|
24
|
-
//
|
|
25
|
-
// 1) IService address by
|
|
26
|
-
// 2)
|
|
27
|
-
// 3)
|
|
28
|
-
// 4) state object by regular service (POLICY, BUNDLE, STAKE)
|
|
24
|
+
// Three registration flows:
|
|
25
|
+
// 1) registerService() -> registers IService address by ReleaseRegistry (ReleaseRegistry is set at deployment time)
|
|
26
|
+
// 2) register() -> registers IRegisterable address by IService (INSTANCE, PRODUCT, POOL, DISTRIBUTION, ORACLE)
|
|
27
|
+
// 3) -> registers object by IService (POLICY, BUNDLE, STAKE)
|
|
29
28
|
|
|
29
|
+
/// @title Chain Registry contract implementing IRegistry.
|
|
30
|
+
/// @notice See IRegistry for method details.
|
|
30
31
|
contract Registry is
|
|
31
|
-
|
|
32
|
+
Initializable,
|
|
33
|
+
AccessManaged,
|
|
32
34
|
IRegistry
|
|
33
35
|
{
|
|
36
|
+
using NftIdLib for NftId;
|
|
37
|
+
|
|
34
38
|
address public NFT_LOCK_ADDRESS = address(0x1);
|
|
35
39
|
uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
|
|
36
40
|
uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
|
|
37
41
|
string public constant EMPTY_URI = "";
|
|
38
42
|
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
/// @dev stores the deployer address and allows to create initializers
|
|
44
|
+
/// that are restricted to the deployer address.
|
|
45
|
+
address public immutable _deployer;
|
|
46
|
+
|
|
47
|
+
mapping(NftId nftId => ObjectInfo info) internal _info;
|
|
48
|
+
mapping(address object => NftId nftId) internal _nftIdByAddress;
|
|
41
49
|
|
|
42
50
|
mapping(VersionPart version => mapping(ObjectType serviceDomain => address)) private _service;
|
|
43
51
|
|
|
@@ -50,46 +58,45 @@ contract Registry is
|
|
|
50
58
|
ObjectType parentType => bool)) private _coreObjectCombinations;
|
|
51
59
|
|
|
52
60
|
RegistryAdmin public immutable _admin;
|
|
53
|
-
IERC20Metadata public immutable _dipToken;
|
|
54
61
|
ChainNft public immutable _chainNft;
|
|
55
62
|
|
|
56
63
|
NftId public immutable _protocolNftId;
|
|
64
|
+
NftId public immutable _globalRegistryNftId;
|
|
57
65
|
NftId public immutable _registryNftId;
|
|
58
66
|
NftId public _stakingNftId;
|
|
59
67
|
|
|
60
68
|
address public _tokenRegistryAddress;
|
|
61
69
|
address public _stakingAddress;
|
|
62
|
-
|
|
70
|
+
ReleaseRegistry public _releaseRegistry;
|
|
63
71
|
|
|
64
|
-
modifier
|
|
65
|
-
if(
|
|
66
|
-
revert
|
|
72
|
+
modifier onlyDeployer() {
|
|
73
|
+
if (msg.sender != _deployer) {
|
|
74
|
+
revert ErrorRegistryCallerNotDeployer();
|
|
67
75
|
}
|
|
68
76
|
_;
|
|
69
77
|
}
|
|
70
78
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
revert ErrorRegistryCallerNotReleaseManager();
|
|
79
|
+
modifier onlyReleaseRegistry() {
|
|
80
|
+
if(msg.sender != address(_releaseRegistry)) {
|
|
81
|
+
revert ErrorRegistryCallerNotReleaseRegistry();
|
|
75
82
|
}
|
|
76
83
|
_;
|
|
77
84
|
}
|
|
78
85
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
InitializableCustom()
|
|
86
|
+
/// @dev Creates the registry contract and populates it with the protocol and registry objects.
|
|
87
|
+
/// Internally deploys the ChainNft contract.
|
|
88
|
+
// TODO consider storing global registry address as constant
|
|
89
|
+
constructor(RegistryAdmin admin, address globalRegistry)
|
|
90
|
+
AccessManaged(admin.authority())
|
|
85
91
|
{
|
|
92
|
+
_deployer = msg.sender;
|
|
86
93
|
_admin = admin;
|
|
87
|
-
_dipToken = dipToken;
|
|
88
94
|
// deploy NFT
|
|
89
95
|
_chainNft = new ChainNft(address(this));
|
|
90
96
|
|
|
91
97
|
// initial registry setup
|
|
92
98
|
_protocolNftId = _registerProtocol();
|
|
99
|
+
_globalRegistryNftId = _registerGlobalRegistry(globalRegistry);
|
|
93
100
|
_registryNftId = _registerRegistry();
|
|
94
101
|
|
|
95
102
|
// set object types and object parent relations
|
|
@@ -97,94 +104,102 @@ contract Registry is
|
|
|
97
104
|
}
|
|
98
105
|
|
|
99
106
|
|
|
100
|
-
/// @dev
|
|
101
|
-
/// MUST be called by release
|
|
107
|
+
/// @dev Wires release registry and token to registry (this contract).
|
|
108
|
+
/// MUST be called by release registry.
|
|
102
109
|
function initialize(
|
|
103
|
-
address
|
|
110
|
+
address releaseRegistry,
|
|
104
111
|
address tokenRegistry,
|
|
105
112
|
address staking
|
|
106
113
|
)
|
|
107
114
|
external
|
|
108
115
|
initializer()
|
|
116
|
+
onlyDeployer()
|
|
109
117
|
{
|
|
110
|
-
|
|
118
|
+
_releaseRegistry = ReleaseRegistry(releaseRegistry);
|
|
111
119
|
_tokenRegistryAddress = tokenRegistry;
|
|
112
120
|
_stakingAddress = staking;
|
|
113
121
|
|
|
114
122
|
_stakingNftId = _registerStaking();
|
|
115
123
|
}
|
|
116
124
|
|
|
125
|
+
/// @inheritdoc IRegistry
|
|
126
|
+
function register(ObjectInfo memory info)
|
|
127
|
+
external
|
|
128
|
+
restricted
|
|
129
|
+
returns(NftId nftId)
|
|
130
|
+
{
|
|
131
|
+
ObjectType objectType = info.objectType;
|
|
132
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
|
133
|
+
|
|
134
|
+
// check type combinations for core objects
|
|
135
|
+
if(info.objectAddress == address(0)) {
|
|
136
|
+
if(_coreObjectCombinations[objectType][parentType] == false) {
|
|
137
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// check type combinations for contract objects
|
|
141
|
+
else {
|
|
142
|
+
if(_coreContractCombinations[objectType][parentType] == false) {
|
|
143
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
nftId = _register(info);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
/// @inheritdoc IRegistry
|
|
117
152
|
function registerService(
|
|
118
153
|
ObjectInfo memory info,
|
|
119
154
|
VersionPart version,
|
|
120
155
|
ObjectType domain
|
|
121
156
|
)
|
|
122
157
|
external
|
|
123
|
-
|
|
158
|
+
onlyReleaseRegistry
|
|
124
159
|
returns(NftId nftId)
|
|
125
160
|
{
|
|
161
|
+
// check service address is defined
|
|
126
162
|
address service = info.objectAddress;
|
|
127
|
-
/* must be guaranteed by release manager
|
|
128
163
|
if(service == address(0)) {
|
|
129
|
-
revert();
|
|
164
|
+
revert ErrorRegistryServiceAddressZero();
|
|
130
165
|
}
|
|
131
166
|
|
|
167
|
+
// check version is defined
|
|
132
168
|
if(version.eqz()) {
|
|
133
|
-
revert();
|
|
169
|
+
revert ErrorRegistryServiceVersionZero();
|
|
134
170
|
}
|
|
135
171
|
|
|
136
|
-
|
|
137
|
-
revert();
|
|
138
|
-
}
|
|
139
|
-
if(info.parentType != REGISTRY()) {
|
|
140
|
-
revert();
|
|
141
|
-
}
|
|
142
|
-
info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
|
|
143
|
-
*/
|
|
144
|
-
|
|
172
|
+
// check domain is defined
|
|
145
173
|
if(domain.eqz()) {
|
|
146
174
|
revert ErrorRegistryDomainZero(service);
|
|
147
175
|
}
|
|
148
176
|
|
|
149
|
-
|
|
177
|
+
// check contract has not already been registered
|
|
178
|
+
if(_service[version][domain] != address(0)) {
|
|
150
179
|
revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
|
|
151
180
|
}
|
|
152
|
-
|
|
153
|
-
_service[version][domain] = service;
|
|
154
181
|
|
|
182
|
+
// check service has proper type
|
|
183
|
+
if(info.objectType != SERVICE()) {
|
|
184
|
+
revert ErrorRegistryNotService(service, info.objectType);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// check that parent has registry type
|
|
188
|
+
if(info.parentNftId != _registryNftId) {
|
|
189
|
+
revert ErrorRegistryServiceParentNotRegistry(info.parentNftId);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
_service[version][domain] = service;
|
|
155
193
|
nftId = _register(info);
|
|
156
194
|
|
|
157
195
|
emit LogServiceRegistration(version, domain);
|
|
158
196
|
}
|
|
159
197
|
|
|
160
|
-
function register(ObjectInfo memory info)
|
|
161
|
-
external
|
|
162
|
-
onlyRegistryService
|
|
163
|
-
returns(NftId nftId)
|
|
164
|
-
{
|
|
165
|
-
ObjectType objectType = info.objectType;
|
|
166
|
-
ObjectType parentType = _info[info.parentNftId].objectType;
|
|
167
|
-
|
|
168
|
-
// only valid core types combinations
|
|
169
|
-
if(info.objectAddress == address(0))
|
|
170
|
-
{
|
|
171
|
-
if(_coreObjectCombinations[objectType][parentType] == false) {
|
|
172
|
-
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
else
|
|
176
|
-
{
|
|
177
|
-
if(_coreContractCombinations[objectType][parentType] == false) {
|
|
178
|
-
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
nftId = _register(info);
|
|
183
|
-
}
|
|
184
198
|
|
|
199
|
+
/// @inheritdoc IRegistry
|
|
185
200
|
function registerWithCustomType(ObjectInfo memory info)
|
|
186
201
|
external
|
|
187
|
-
|
|
202
|
+
restricted
|
|
188
203
|
returns(NftId nftId)
|
|
189
204
|
{
|
|
190
205
|
ObjectType objectType = info.objectType;
|
|
@@ -196,33 +211,32 @@ contract Registry is
|
|
|
196
211
|
|
|
197
212
|
if(
|
|
198
213
|
parentType == PROTOCOL() ||
|
|
199
|
-
parentType == REGISTRY() ||
|
|
200
214
|
parentType == SERVICE()
|
|
201
215
|
) {
|
|
202
216
|
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
|
203
217
|
}
|
|
204
218
|
|
|
205
|
-
_register(info);
|
|
219
|
+
nftId = _register(info);
|
|
206
220
|
}
|
|
207
221
|
|
|
208
222
|
|
|
209
223
|
/// @dev earliest GIF major version
|
|
210
224
|
function getInitialVersion() external view returns (VersionPart) {
|
|
211
|
-
return
|
|
225
|
+
return _releaseRegistry.getInitialVersion();
|
|
212
226
|
}
|
|
213
227
|
|
|
214
228
|
/// @dev next GIF release version to be released
|
|
215
229
|
function getNextVersion() external view returns (VersionPart) {
|
|
216
|
-
return
|
|
230
|
+
return _releaseRegistry.getNextVersion();
|
|
217
231
|
}
|
|
218
232
|
|
|
219
233
|
/// @dev latest active GIF release version
|
|
220
234
|
function getLatestVersion() external view returns (VersionPart) {
|
|
221
|
-
return
|
|
235
|
+
return _releaseRegistry.getLatestVersion();
|
|
222
236
|
}
|
|
223
237
|
|
|
224
238
|
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
|
225
|
-
return
|
|
239
|
+
return _releaseRegistry.getReleaseInfo(version);
|
|
226
240
|
}
|
|
227
241
|
|
|
228
242
|
function getObjectCount() external view returns (uint256) {
|
|
@@ -276,7 +290,7 @@ contract Registry is
|
|
|
276
290
|
|
|
277
291
|
function isActiveRelease(VersionPart version) external view returns (bool)
|
|
278
292
|
{
|
|
279
|
-
return
|
|
293
|
+
return _releaseRegistry.isActiveRelease(version);
|
|
280
294
|
}
|
|
281
295
|
|
|
282
296
|
function getStakingAddress() external view returns (address staking) {
|
|
@@ -286,7 +300,6 @@ contract Registry is
|
|
|
286
300
|
}
|
|
287
301
|
|
|
288
302
|
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
|
289
|
-
require(_tokenRegistryAddress != address(0), "TokenRegistry address is zero");
|
|
290
303
|
return _tokenRegistryAddress;
|
|
291
304
|
}
|
|
292
305
|
|
|
@@ -298,22 +311,14 @@ contract Registry is
|
|
|
298
311
|
service = _service[releaseVersion][serviceDomain];
|
|
299
312
|
}
|
|
300
313
|
|
|
301
|
-
function
|
|
302
|
-
return address(
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
function getReleaseManagerAddress() external view returns (address) {
|
|
306
|
-
return address(_releaseManager);
|
|
314
|
+
function getReleaseRegistryAddress() external view returns (address) {
|
|
315
|
+
return address(_releaseRegistry);
|
|
307
316
|
}
|
|
308
317
|
|
|
309
318
|
function getChainNftAddress() external view override returns (address) {
|
|
310
319
|
return address(_chainNft);
|
|
311
320
|
}
|
|
312
321
|
|
|
313
|
-
function getDipTokenAddress() external view override returns (address) {
|
|
314
|
-
return address(_dipToken);
|
|
315
|
-
}
|
|
316
|
-
|
|
317
322
|
function getRegistryAdminAddress() external view returns (address) {
|
|
318
323
|
return address(_admin);
|
|
319
324
|
}
|
|
@@ -339,7 +344,6 @@ contract Registry is
|
|
|
339
344
|
// Internals
|
|
340
345
|
|
|
341
346
|
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
|
342
|
-
// TODO registration of precompile addresses
|
|
343
347
|
function _register(ObjectInfo memory info)
|
|
344
348
|
internal
|
|
345
349
|
returns(NftId nftId)
|
|
@@ -407,7 +411,7 @@ contract Registry is
|
|
|
407
411
|
address parentObjectAddress
|
|
408
412
|
)
|
|
409
413
|
internal
|
|
410
|
-
|
|
414
|
+
pure
|
|
411
415
|
returns (address interceptor)
|
|
412
416
|
{
|
|
413
417
|
// no intercepting calls for stakes
|
|
@@ -453,29 +457,40 @@ contract Registry is
|
|
|
453
457
|
_chainNft.mint(NFT_LOCK_ADDRESS, protocolId);
|
|
454
458
|
}
|
|
455
459
|
|
|
460
|
+
/// @dev global registry registration
|
|
461
|
+
function _registerGlobalRegistry(address globalRegistry)
|
|
462
|
+
internal
|
|
463
|
+
returns (NftId globalRegistryNftId)
|
|
464
|
+
{
|
|
465
|
+
uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
|
|
466
|
+
globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
|
|
467
|
+
|
|
468
|
+
_info[globalRegistryNftId] = ObjectInfo({
|
|
469
|
+
nftId: globalRegistryNftId,
|
|
470
|
+
parentNftId: _protocolNftId,
|
|
471
|
+
objectType: REGISTRY(),
|
|
472
|
+
isInterceptor: false,
|
|
473
|
+
objectAddress: globalRegistry,
|
|
474
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
|
475
|
+
data: ""
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
_nftIdByAddress[address(this)] = globalRegistryNftId;
|
|
479
|
+
_chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
|
|
480
|
+
}
|
|
481
|
+
|
|
456
482
|
/// @dev registry registration
|
|
457
|
-
/// might also register the global registry when not on mainnet
|
|
458
483
|
function _registerRegistry()
|
|
459
|
-
|
|
484
|
+
internal
|
|
485
|
+
virtual
|
|
460
486
|
returns (NftId registryNftId)
|
|
461
487
|
{
|
|
462
488
|
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
|
463
489
|
registryNftId = NftIdLib.toNftId(registryId);
|
|
464
|
-
NftId parentNftId;
|
|
465
|
-
|
|
466
|
-
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
|
467
|
-
{// we're not the global registry
|
|
468
|
-
_registerGlobalRegistry();
|
|
469
|
-
parentNftId = NftIdLib.toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
|
470
|
-
}
|
|
471
|
-
else
|
|
472
|
-
{// we are global registry
|
|
473
|
-
parentNftId = _protocolNftId;
|
|
474
|
-
}
|
|
475
490
|
|
|
476
491
|
_info[registryNftId] = ObjectInfo({
|
|
477
492
|
nftId: registryNftId,
|
|
478
|
-
parentNftId:
|
|
493
|
+
parentNftId: _globalRegistryNftId,
|
|
479
494
|
objectType: REGISTRY(),
|
|
480
495
|
isInterceptor: false,
|
|
481
496
|
objectAddress: address(this),
|
|
@@ -487,28 +502,10 @@ contract Registry is
|
|
|
487
502
|
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
|
488
503
|
}
|
|
489
504
|
|
|
490
|
-
/// @dev
|
|
491
|
-
function _registerGlobalRegistry()
|
|
492
|
-
private
|
|
493
|
-
{
|
|
494
|
-
uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
|
|
495
|
-
NftId globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
|
|
496
|
-
|
|
497
|
-
_info[globalRegistryNftId] = ObjectInfo({
|
|
498
|
-
nftId: globalRegistryNftId,
|
|
499
|
-
parentNftId: NftIdLib.toNftId(_chainNft.PROTOCOL_NFT_ID()),
|
|
500
|
-
objectType: REGISTRY(),
|
|
501
|
-
isInterceptor: false,
|
|
502
|
-
objectAddress: address(0),
|
|
503
|
-
initialOwner: NFT_LOCK_ADDRESS,
|
|
504
|
-
data: ""
|
|
505
|
-
});
|
|
506
|
-
|
|
507
|
-
_chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
|
|
508
|
-
}
|
|
509
|
-
// depends on _registryNftId and _stakingAddress
|
|
505
|
+
/// @dev staking registration
|
|
510
506
|
function _registerStaking()
|
|
511
507
|
private
|
|
508
|
+
onlyInitializing()
|
|
512
509
|
returns (NftId stakingNftId)
|
|
513
510
|
{
|
|
514
511
|
address stakingOwner = IRegisterable(_stakingAddress).getOwner();
|
|
@@ -526,22 +523,16 @@ contract Registry is
|
|
|
526
523
|
});
|
|
527
524
|
|
|
528
525
|
_nftIdByAddress[_stakingAddress] = stakingNftId;
|
|
529
|
-
// reverts if nftId was already minted
|
|
530
526
|
_chainNft.mint(stakingOwner, stakingId);
|
|
531
527
|
}
|
|
532
528
|
|
|
533
529
|
/// @dev defines which object - parent types relations are allowed to register
|
|
534
|
-
|
|
535
|
-
// 1) EACH object type MUST have only one parent type across ALL mappings
|
|
536
|
-
// 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
|
|
537
|
-
// 3) DO NOT use REGISTRY as object type
|
|
538
|
-
// 2) DO NOT use PROTOCOL and "zeroObjectType"
|
|
530
|
+
/// EACH object type MUST have only one parent type across ALL mappings
|
|
539
531
|
function _setupValidCoreTypesAndCombinations()
|
|
540
|
-
private
|
|
532
|
+
private
|
|
541
533
|
{
|
|
542
534
|
_coreTypes[REGISTRY()] = true;
|
|
543
535
|
_coreTypes[SERVICE()] = true;
|
|
544
|
-
_coreTypes[TOKEN()] = true;
|
|
545
536
|
_coreTypes[INSTANCE()] = true;
|
|
546
537
|
_coreTypes[PRODUCT()] = true;
|
|
547
538
|
_coreTypes[POOL()] = true;
|
|
@@ -553,28 +544,16 @@ contract Registry is
|
|
|
553
544
|
_coreTypes[STAKING()] = true;
|
|
554
545
|
_coreTypes[STAKE()] = true;
|
|
555
546
|
|
|
556
|
-
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
|
557
|
-
if(registryId == _chainNft.GLOBAL_REGISTRY_ID()) {
|
|
558
|
-
// we are global registry
|
|
559
|
-
// object is registry from different chain
|
|
560
|
-
// parent is global registry, this contract
|
|
561
|
-
_coreContractCombinations[REGISTRY()][REGISTRY()] = true; // only for global regstry
|
|
562
|
-
//_coreObjectCombinations[REGISTRY()][REGISTRY()] = true;
|
|
563
|
-
} else {
|
|
564
|
-
// we are not global registry
|
|
565
|
-
// object is local registry, this contract
|
|
566
|
-
// parent is global registry, object with 0 address or registry from mainnet???
|
|
567
|
-
}
|
|
568
547
|
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
|
569
|
-
_coreContractCombinations[TOKEN()][REGISTRY()] = true;
|
|
570
|
-
//_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
|
|
571
548
|
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
|
572
549
|
|
|
550
|
+
// components with instance parent
|
|
573
551
|
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
|
574
552
|
_coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
|
|
575
553
|
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
|
576
554
|
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
|
577
555
|
|
|
556
|
+
// objects with coponent parents
|
|
578
557
|
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
|
579
558
|
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
|
580
559
|
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|