@etherisc/gif-next 0.0.2-fd2113c-488 → 0.0.2-fd41099-706
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/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- 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/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
- 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 +17 -242
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +106 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +55 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -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 +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- 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 +110 -76
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +84 -91
- 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/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
- 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 +55 -55
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +40 -40
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -36
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +36 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +32 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -34
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +72 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +50 -50
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +43 -43
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +58 -58
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -153
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
- 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 +1474 -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 -47
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -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 +193 -81
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +330 -378
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- 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 +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +62 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- 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/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- 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/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 +13 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- 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/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/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -44
- 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 +40 -40
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +145 -169
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
- 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 +8 -8
- 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 +4 -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 +55 -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 +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- 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 +117 -14
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -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/{shared → authorization}/AccessAdmin.sol +135 -304
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
- 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 +12 -21
- 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 +8 -9
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +61 -70
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +22 -9
- package/contracts/instance/InstanceService.sol +74 -70
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +11 -4
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/Oracle.sol +61 -49
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +14 -26
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +11 -27
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +12 -36
- 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 +5 -31
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +7 -32
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/ChainNft.sol +37 -23
- package/contracts/registry/GlobalRegistry.sol +104 -0
- package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
- package/contracts/registry/IGlobalRegistry.sol +17 -0
- package/contracts/registry/IRegistry.sol +25 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +131 -148
- package/contracts/registry/RegistryAdmin.sol +242 -130
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +533 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/ComponentService.sol +20 -56
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/MainnetContract.sol +15 -0
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/Service.sol +3 -4
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/Staking.sol +11 -14
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/type/ObjectType.sol +37 -7
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +6 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- 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 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- 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/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- 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/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -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
|
|
@@ -58,134 +66,138 @@ contract Registry is
|
|
58
66
|
|
59
67
|
address public _tokenRegistryAddress;
|
60
68
|
address public _stakingAddress;
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
// 2). Keep onlyReleaseManager modifier
|
67
|
-
// 3). Delete onlyRegistryService in favor of restricted, introduce aditional "domain role", REGISTRY_SERVICE_ROLE
|
68
|
-
// 4). (For GlobalRegistry ONLY) make registerChainRegistry() restricted to GIF_ADMIN_ROLE
|
69
|
-
modifier onlyRegistryService() {
|
70
|
-
if(!_releaseManager.isActiveRegistryService(msg.sender)) {
|
71
|
-
revert ErrorRegistryCallerNotRegistryService();
|
69
|
+
ReleaseRegistry public _releaseRegistry;
|
70
|
+
|
71
|
+
modifier onlyDeployer() {
|
72
|
+
if (msg.sender != _deployer) {
|
73
|
+
revert ErrorRegistryCallerNotDeployer();
|
72
74
|
}
|
73
75
|
_;
|
74
76
|
}
|
75
77
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
revert ErrorRegistryCallerNotReleaseManager();
|
78
|
+
modifier onlyReleaseRegistry() {
|
79
|
+
if(msg.sender != address(_releaseRegistry)) {
|
80
|
+
revert ErrorRegistryCallerNotReleaseRegistry();
|
80
81
|
}
|
81
82
|
_;
|
82
83
|
}
|
83
84
|
|
84
|
-
|
85
|
-
|
86
|
-
|
85
|
+
/// @dev Creates the registry contract and populates it with the protocol and registry objects.
|
86
|
+
/// Internally deploys the ChainNft contract.
|
87
|
+
// TODO consider storing global registry address as constant
|
88
|
+
constructor(RegistryAdmin admin, address globalRegistry)
|
89
|
+
AccessManaged(admin.authority())
|
87
90
|
{
|
91
|
+
_deployer = msg.sender;
|
88
92
|
_admin = admin;
|
89
93
|
// deploy NFT
|
90
94
|
_chainNft = new ChainNft(address(this));
|
91
95
|
|
92
96
|
// initial registry setup
|
93
97
|
_protocolNftId = _registerProtocol();
|
94
|
-
_registryNftId = _registerRegistry();
|
98
|
+
_registryNftId = _registerRegistry(globalRegistry);
|
95
99
|
|
96
100
|
// set object types and object parent relations
|
97
101
|
_setupValidCoreTypesAndCombinations();
|
98
102
|
}
|
99
103
|
|
100
104
|
|
101
|
-
/// @dev
|
102
|
-
/// MUST be called by release
|
105
|
+
/// @dev Wires release registry and token to registry (this contract).
|
106
|
+
/// MUST be called by release registry.
|
103
107
|
function initialize(
|
104
|
-
address
|
108
|
+
address releaseRegistry,
|
105
109
|
address tokenRegistry,
|
106
110
|
address staking
|
107
111
|
)
|
108
112
|
external
|
109
113
|
initializer()
|
114
|
+
onlyDeployer()
|
110
115
|
{
|
111
|
-
|
116
|
+
_releaseRegistry = ReleaseRegistry(releaseRegistry);
|
112
117
|
_tokenRegistryAddress = tokenRegistry;
|
113
118
|
_stakingAddress = staking;
|
114
119
|
|
115
120
|
_stakingNftId = _registerStaking();
|
116
121
|
}
|
117
122
|
|
123
|
+
/// @inheritdoc IRegistry
|
124
|
+
function register(ObjectInfo memory info)
|
125
|
+
external
|
126
|
+
restricted
|
127
|
+
returns(NftId nftId)
|
128
|
+
{
|
129
|
+
ObjectType objectType = info.objectType;
|
130
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
131
|
+
|
132
|
+
// check type combinations for core objects
|
133
|
+
if(info.objectAddress == address(0)) {
|
134
|
+
if(_coreObjectCombinations[objectType][parentType] == false) {
|
135
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
136
|
+
}
|
137
|
+
}
|
138
|
+
// check type combinations for contract objects
|
139
|
+
else {
|
140
|
+
if(_coreContractCombinations[objectType][parentType] == false) {
|
141
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
142
|
+
}
|
143
|
+
}
|
144
|
+
|
145
|
+
nftId = _register(info);
|
146
|
+
}
|
147
|
+
|
148
|
+
|
149
|
+
/// @inheritdoc IRegistry
|
118
150
|
function registerService(
|
119
151
|
ObjectInfo memory info,
|
120
152
|
VersionPart version,
|
121
153
|
ObjectType domain
|
122
154
|
)
|
123
155
|
external
|
124
|
-
|
156
|
+
onlyReleaseRegistry
|
125
157
|
returns(NftId nftId)
|
126
158
|
{
|
159
|
+
// check service address is defined
|
127
160
|
address service = info.objectAddress;
|
128
|
-
/* must be guaranteed by release manager
|
129
161
|
if(service == address(0)) {
|
130
|
-
revert();
|
162
|
+
revert ErrorRegistryServiceAddressZero();
|
131
163
|
}
|
132
164
|
|
165
|
+
// check version is defined
|
133
166
|
if(version.eqz()) {
|
134
|
-
revert();
|
135
|
-
}
|
136
|
-
|
137
|
-
if(info.objectType != SERVICE()) {
|
138
|
-
revert();
|
167
|
+
revert ErrorRegistryServiceVersionZero();
|
139
168
|
}
|
140
|
-
if(info.parentType != REGISTRY()) {
|
141
|
-
revert();
|
142
|
-
}
|
143
|
-
info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
|
144
|
-
*/
|
145
169
|
|
170
|
+
// check domain is defined
|
146
171
|
if(domain.eqz()) {
|
147
172
|
revert ErrorRegistryDomainZero(service);
|
148
173
|
}
|
149
174
|
|
150
|
-
|
175
|
+
// check contract has not already been registered
|
176
|
+
if(_service[version][domain] != address(0)) {
|
151
177
|
revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
|
152
178
|
}
|
153
|
-
|
154
|
-
_service[version][domain] = service;
|
155
179
|
|
180
|
+
// check service has proper type
|
181
|
+
if(info.objectType != SERVICE()) {
|
182
|
+
revert ErrorRegistryNotService(service, info.objectType);
|
183
|
+
}
|
184
|
+
|
185
|
+
// check that parent has registry type
|
186
|
+
if(info.parentNftId != _registryNftId) {
|
187
|
+
revert ErrorRegistryServiceParentNotRegistry(info.parentNftId);
|
188
|
+
}
|
189
|
+
|
190
|
+
_service[version][domain] = service;
|
156
191
|
nftId = _register(info);
|
157
192
|
|
158
193
|
emit LogServiceRegistration(version, domain);
|
159
194
|
}
|
160
195
|
|
161
|
-
function register(ObjectInfo memory info)
|
162
|
-
external
|
163
|
-
onlyRegistryService
|
164
|
-
returns(NftId nftId)
|
165
|
-
{
|
166
|
-
ObjectType objectType = info.objectType;
|
167
|
-
ObjectType parentType = _info[info.parentNftId].objectType;
|
168
|
-
|
169
|
-
// only valid core types combinations
|
170
|
-
if(info.objectAddress == address(0))
|
171
|
-
{
|
172
|
-
if(_coreObjectCombinations[objectType][parentType] == false) {
|
173
|
-
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
174
|
-
}
|
175
|
-
}
|
176
|
-
else
|
177
|
-
{
|
178
|
-
if(_coreContractCombinations[objectType][parentType] == false) {
|
179
|
-
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
180
|
-
}
|
181
|
-
}
|
182
|
-
|
183
|
-
nftId = _register(info);
|
184
|
-
}
|
185
196
|
|
197
|
+
/// @inheritdoc IRegistry
|
186
198
|
function registerWithCustomType(ObjectInfo memory info)
|
187
199
|
external
|
188
|
-
|
200
|
+
restricted
|
189
201
|
returns(NftId nftId)
|
190
202
|
{
|
191
203
|
ObjectType objectType = info.objectType;
|
@@ -197,33 +209,32 @@ contract Registry is
|
|
197
209
|
|
198
210
|
if(
|
199
211
|
parentType == PROTOCOL() ||
|
200
|
-
parentType == REGISTRY() ||
|
201
212
|
parentType == SERVICE()
|
202
213
|
) {
|
203
214
|
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
204
215
|
}
|
205
216
|
|
206
|
-
_register(info);
|
217
|
+
nftId = _register(info);
|
207
218
|
}
|
208
219
|
|
209
220
|
|
210
221
|
/// @dev earliest GIF major version
|
211
222
|
function getInitialVersion() external view returns (VersionPart) {
|
212
|
-
return
|
223
|
+
return _releaseRegistry.getInitialVersion();
|
213
224
|
}
|
214
225
|
|
215
226
|
/// @dev next GIF release version to be released
|
216
227
|
function getNextVersion() external view returns (VersionPart) {
|
217
|
-
return
|
228
|
+
return _releaseRegistry.getNextVersion();
|
218
229
|
}
|
219
230
|
|
220
231
|
/// @dev latest active GIF release version
|
221
232
|
function getLatestVersion() external view returns (VersionPart) {
|
222
|
-
return
|
233
|
+
return _releaseRegistry.getLatestVersion();
|
223
234
|
}
|
224
235
|
|
225
236
|
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
226
|
-
return
|
237
|
+
return _releaseRegistry.getReleaseInfo(version);
|
227
238
|
}
|
228
239
|
|
229
240
|
function getObjectCount() external view returns (uint256) {
|
@@ -277,7 +288,7 @@ contract Registry is
|
|
277
288
|
|
278
289
|
function isActiveRelease(VersionPart version) external view returns (bool)
|
279
290
|
{
|
280
|
-
return
|
291
|
+
return _releaseRegistry.isActiveRelease(version);
|
281
292
|
}
|
282
293
|
|
283
294
|
function getStakingAddress() external view returns (address staking) {
|
@@ -298,12 +309,8 @@ contract Registry is
|
|
298
309
|
service = _service[releaseVersion][serviceDomain];
|
299
310
|
}
|
300
311
|
|
301
|
-
function
|
302
|
-
return address(
|
303
|
-
}
|
304
|
-
|
305
|
-
function getReleaseManagerAddress() external view returns (address) {
|
306
|
-
return address(_releaseManager);
|
312
|
+
function getReleaseRegistryAddress() external view returns (address) {
|
313
|
+
return address(_releaseRegistry);
|
307
314
|
}
|
308
315
|
|
309
316
|
function getChainNftAddress() external view override returns (address) {
|
@@ -335,7 +342,6 @@ contract Registry is
|
|
335
342
|
// Internals
|
336
343
|
|
337
344
|
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
338
|
-
// TODO registration of precompile addresses
|
339
345
|
function _register(ObjectInfo memory info)
|
340
346
|
internal
|
341
347
|
returns(NftId nftId)
|
@@ -449,29 +455,42 @@ contract Registry is
|
|
449
455
|
_chainNft.mint(NFT_LOCK_ADDRESS, protocolId);
|
450
456
|
}
|
451
457
|
|
452
|
-
/// @dev registry registration
|
453
|
-
|
454
|
-
function _registerRegistry()
|
458
|
+
/// @dev global registry registration
|
459
|
+
function _registerGlobalRegistry(address globalRegistry)
|
455
460
|
private
|
461
|
+
returns (NftId globalRegistryNftId)
|
462
|
+
{
|
463
|
+
uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
|
464
|
+
globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
|
465
|
+
|
466
|
+
_info[globalRegistryNftId] = ObjectInfo({
|
467
|
+
nftId: globalRegistryNftId,
|
468
|
+
parentNftId: _protocolNftId,
|
469
|
+
objectType: REGISTRY(),
|
470
|
+
isInterceptor: false,
|
471
|
+
objectAddress: globalRegistry,
|
472
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
473
|
+
data: ""
|
474
|
+
});
|
475
|
+
|
476
|
+
_nftIdByAddress[address(this)] = globalRegistryNftId;
|
477
|
+
_chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
|
478
|
+
}
|
479
|
+
|
480
|
+
/// @dev registry registration
|
481
|
+
function _registerRegistry(address globalRegistry)
|
482
|
+
internal
|
483
|
+
virtual
|
456
484
|
returns (NftId registryNftId)
|
457
485
|
{
|
486
|
+
NftId globalRegistryNftId = _registerGlobalRegistry(globalRegistry);
|
487
|
+
|
458
488
|
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
459
489
|
registryNftId = NftIdLib.toNftId(registryId);
|
460
|
-
NftId parentNftId;
|
461
|
-
|
462
|
-
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
463
|
-
{// we're not the global registry
|
464
|
-
_registerGlobalRegistry();
|
465
|
-
parentNftId = NftIdLib.toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
466
|
-
}
|
467
|
-
else
|
468
|
-
{// we are global registry
|
469
|
-
parentNftId = _protocolNftId;
|
470
|
-
}
|
471
490
|
|
472
491
|
_info[registryNftId] = ObjectInfo({
|
473
492
|
nftId: registryNftId,
|
474
|
-
parentNftId:
|
493
|
+
parentNftId: globalRegistryNftId,
|
475
494
|
objectType: REGISTRY(),
|
476
495
|
isInterceptor: false,
|
477
496
|
objectAddress: address(this),
|
@@ -483,28 +502,10 @@ contract Registry is
|
|
483
502
|
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
484
503
|
}
|
485
504
|
|
486
|
-
/// @dev
|
487
|
-
function _registerGlobalRegistry()
|
488
|
-
private
|
489
|
-
{
|
490
|
-
uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
|
491
|
-
NftId globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
|
492
|
-
|
493
|
-
_info[globalRegistryNftId] = ObjectInfo({
|
494
|
-
nftId: globalRegistryNftId,
|
495
|
-
parentNftId: NftIdLib.toNftId(_chainNft.PROTOCOL_NFT_ID()),
|
496
|
-
objectType: REGISTRY(),
|
497
|
-
isInterceptor: false,
|
498
|
-
objectAddress: address(0),
|
499
|
-
initialOwner: NFT_LOCK_ADDRESS,
|
500
|
-
data: ""
|
501
|
-
});
|
502
|
-
|
503
|
-
_chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
|
504
|
-
}
|
505
|
-
// depends on _registryNftId and _stakingAddress
|
505
|
+
/// @dev staking registration
|
506
506
|
function _registerStaking()
|
507
507
|
private
|
508
|
+
onlyInitializing()
|
508
509
|
returns (NftId stakingNftId)
|
509
510
|
{
|
510
511
|
address stakingOwner = IRegisterable(_stakingAddress).getOwner();
|
@@ -522,22 +523,16 @@ contract Registry is
|
|
522
523
|
});
|
523
524
|
|
524
525
|
_nftIdByAddress[_stakingAddress] = stakingNftId;
|
525
|
-
// reverts if nftId was already minted
|
526
526
|
_chainNft.mint(stakingOwner, stakingId);
|
527
527
|
}
|
528
528
|
|
529
529
|
/// @dev defines which object - parent types relations are allowed to register
|
530
|
-
|
531
|
-
// 1) EACH object type MUST have only one parent type across ALL mappings
|
532
|
-
// 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
|
533
|
-
// 3) DO NOT use REGISTRY as object type
|
534
|
-
// 2) DO NOT use PROTOCOL and "ObjectTypeLib.zero"
|
530
|
+
/// EACH object type MUST have only one parent type across ALL mappings
|
535
531
|
function _setupValidCoreTypesAndCombinations()
|
536
|
-
private
|
532
|
+
private
|
537
533
|
{
|
538
534
|
_coreTypes[REGISTRY()] = true;
|
539
535
|
_coreTypes[SERVICE()] = true;
|
540
|
-
_coreTypes[TOKEN()] = true;
|
541
536
|
_coreTypes[INSTANCE()] = true;
|
542
537
|
_coreTypes[PRODUCT()] = true;
|
543
538
|
_coreTypes[POOL()] = true;
|
@@ -549,28 +544,16 @@ contract Registry is
|
|
549
544
|
_coreTypes[STAKING()] = true;
|
550
545
|
_coreTypes[STAKE()] = true;
|
551
546
|
|
552
|
-
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
553
|
-
if(registryId == _chainNft.GLOBAL_REGISTRY_ID()) {
|
554
|
-
// we are global registry
|
555
|
-
// object is registry from different chain
|
556
|
-
// parent is global registry, this contract
|
557
|
-
_coreContractCombinations[REGISTRY()][REGISTRY()] = true; // only for global regstry
|
558
|
-
//_coreObjectCombinations[REGISTRY()][REGISTRY()] = true;
|
559
|
-
} else {
|
560
|
-
// we are not global registry
|
561
|
-
// object is local registry, this contract
|
562
|
-
// parent is global registry, object with 0 address or registry from mainnet???
|
563
|
-
}
|
564
547
|
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
565
|
-
_coreContractCombinations[TOKEN()][REGISTRY()] = true;
|
566
|
-
//_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
|
567
548
|
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
568
549
|
|
550
|
+
// components with instance parent
|
569
551
|
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
570
552
|
_coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
|
571
553
|
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
572
554
|
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
573
555
|
|
556
|
+
// objects with coponent parents
|
574
557
|
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
575
558
|
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
576
559
|
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|