@etherisc/gif-next 0.0.2-67e0249-997 → 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 +21 -0
- 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 +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 -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 +206 -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 +89 -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 +129 -146
- 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 +5 -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
|
|
|
@@ -53,44 +61,42 @@ contract Registry is
|
|
|
53
61
|
ChainNft public immutable _chainNft;
|
|
54
62
|
|
|
55
63
|
NftId public immutable _protocolNftId;
|
|
64
|
+
NftId public immutable _globalRegistryNftId;
|
|
56
65
|
NftId public immutable _registryNftId;
|
|
57
66
|
NftId public _stakingNftId;
|
|
58
67
|
|
|
59
68
|
address public _tokenRegistryAddress;
|
|
60
69
|
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();
|
|
70
|
+
ReleaseRegistry public _releaseRegistry;
|
|
71
|
+
|
|
72
|
+
modifier onlyDeployer() {
|
|
73
|
+
if (msg.sender != _deployer) {
|
|
74
|
+
revert ErrorRegistryCallerNotDeployer();
|
|
72
75
|
}
|
|
73
76
|
_;
|
|
74
77
|
}
|
|
75
78
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
revert ErrorRegistryCallerNotReleaseManager();
|
|
79
|
+
modifier onlyReleaseRegistry() {
|
|
80
|
+
if(msg.sender != address(_releaseRegistry)) {
|
|
81
|
+
revert ErrorRegistryCallerNotReleaseRegistry();
|
|
80
82
|
}
|
|
81
83
|
_;
|
|
82
84
|
}
|
|
83
85
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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())
|
|
87
91
|
{
|
|
92
|
+
_deployer = msg.sender;
|
|
88
93
|
_admin = admin;
|
|
89
94
|
// deploy NFT
|
|
90
95
|
_chainNft = new ChainNft(address(this));
|
|
91
96
|
|
|
92
97
|
// initial registry setup
|
|
93
98
|
_protocolNftId = _registerProtocol();
|
|
99
|
+
_globalRegistryNftId = _registerGlobalRegistry(globalRegistry);
|
|
94
100
|
_registryNftId = _registerRegistry();
|
|
95
101
|
|
|
96
102
|
// set object types and object parent relations
|
|
@@ -98,94 +104,102 @@ contract Registry is
|
|
|
98
104
|
}
|
|
99
105
|
|
|
100
106
|
|
|
101
|
-
/// @dev
|
|
102
|
-
/// MUST be called by release
|
|
107
|
+
/// @dev Wires release registry and token to registry (this contract).
|
|
108
|
+
/// MUST be called by release registry.
|
|
103
109
|
function initialize(
|
|
104
|
-
address
|
|
110
|
+
address releaseRegistry,
|
|
105
111
|
address tokenRegistry,
|
|
106
112
|
address staking
|
|
107
113
|
)
|
|
108
114
|
external
|
|
109
115
|
initializer()
|
|
116
|
+
onlyDeployer()
|
|
110
117
|
{
|
|
111
|
-
|
|
118
|
+
_releaseRegistry = ReleaseRegistry(releaseRegistry);
|
|
112
119
|
_tokenRegistryAddress = tokenRegistry;
|
|
113
120
|
_stakingAddress = staking;
|
|
114
121
|
|
|
115
122
|
_stakingNftId = _registerStaking();
|
|
116
123
|
}
|
|
117
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
|
|
118
152
|
function registerService(
|
|
119
153
|
ObjectInfo memory info,
|
|
120
154
|
VersionPart version,
|
|
121
155
|
ObjectType domain
|
|
122
156
|
)
|
|
123
157
|
external
|
|
124
|
-
|
|
158
|
+
onlyReleaseRegistry
|
|
125
159
|
returns(NftId nftId)
|
|
126
160
|
{
|
|
161
|
+
// check service address is defined
|
|
127
162
|
address service = info.objectAddress;
|
|
128
|
-
/* must be guaranteed by release manager
|
|
129
163
|
if(service == address(0)) {
|
|
130
|
-
revert();
|
|
164
|
+
revert ErrorRegistryServiceAddressZero();
|
|
131
165
|
}
|
|
132
166
|
|
|
167
|
+
// check version is defined
|
|
133
168
|
if(version.eqz()) {
|
|
134
|
-
revert();
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if(info.objectType != SERVICE()) {
|
|
138
|
-
revert();
|
|
169
|
+
revert ErrorRegistryServiceVersionZero();
|
|
139
170
|
}
|
|
140
|
-
if(info.parentType != REGISTRY()) {
|
|
141
|
-
revert();
|
|
142
|
-
}
|
|
143
|
-
info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
|
|
144
|
-
*/
|
|
145
171
|
|
|
172
|
+
// check domain is defined
|
|
146
173
|
if(domain.eqz()) {
|
|
147
174
|
revert ErrorRegistryDomainZero(service);
|
|
148
175
|
}
|
|
149
176
|
|
|
150
|
-
|
|
177
|
+
// check contract has not already been registered
|
|
178
|
+
if(_service[version][domain] != address(0)) {
|
|
151
179
|
revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
|
|
152
180
|
}
|
|
153
|
-
|
|
154
|
-
_service[version][domain] = service;
|
|
155
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;
|
|
156
193
|
nftId = _register(info);
|
|
157
194
|
|
|
158
195
|
emit LogServiceRegistration(version, domain);
|
|
159
196
|
}
|
|
160
197
|
|
|
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
198
|
|
|
199
|
+
/// @inheritdoc IRegistry
|
|
186
200
|
function registerWithCustomType(ObjectInfo memory info)
|
|
187
201
|
external
|
|
188
|
-
|
|
202
|
+
restricted
|
|
189
203
|
returns(NftId nftId)
|
|
190
204
|
{
|
|
191
205
|
ObjectType objectType = info.objectType;
|
|
@@ -197,33 +211,32 @@ contract Registry is
|
|
|
197
211
|
|
|
198
212
|
if(
|
|
199
213
|
parentType == PROTOCOL() ||
|
|
200
|
-
parentType == REGISTRY() ||
|
|
201
214
|
parentType == SERVICE()
|
|
202
215
|
) {
|
|
203
216
|
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
|
204
217
|
}
|
|
205
218
|
|
|
206
|
-
_register(info);
|
|
219
|
+
nftId = _register(info);
|
|
207
220
|
}
|
|
208
221
|
|
|
209
222
|
|
|
210
223
|
/// @dev earliest GIF major version
|
|
211
224
|
function getInitialVersion() external view returns (VersionPart) {
|
|
212
|
-
return
|
|
225
|
+
return _releaseRegistry.getInitialVersion();
|
|
213
226
|
}
|
|
214
227
|
|
|
215
228
|
/// @dev next GIF release version to be released
|
|
216
229
|
function getNextVersion() external view returns (VersionPart) {
|
|
217
|
-
return
|
|
230
|
+
return _releaseRegistry.getNextVersion();
|
|
218
231
|
}
|
|
219
232
|
|
|
220
233
|
/// @dev latest active GIF release version
|
|
221
234
|
function getLatestVersion() external view returns (VersionPart) {
|
|
222
|
-
return
|
|
235
|
+
return _releaseRegistry.getLatestVersion();
|
|
223
236
|
}
|
|
224
237
|
|
|
225
238
|
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
|
226
|
-
return
|
|
239
|
+
return _releaseRegistry.getReleaseInfo(version);
|
|
227
240
|
}
|
|
228
241
|
|
|
229
242
|
function getObjectCount() external view returns (uint256) {
|
|
@@ -277,7 +290,7 @@ contract Registry is
|
|
|
277
290
|
|
|
278
291
|
function isActiveRelease(VersionPart version) external view returns (bool)
|
|
279
292
|
{
|
|
280
|
-
return
|
|
293
|
+
return _releaseRegistry.isActiveRelease(version);
|
|
281
294
|
}
|
|
282
295
|
|
|
283
296
|
function getStakingAddress() external view returns (address staking) {
|
|
@@ -298,12 +311,8 @@ 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) {
|
|
@@ -335,7 +344,6 @@ contract Registry is
|
|
|
335
344
|
// Internals
|
|
336
345
|
|
|
337
346
|
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
|
338
|
-
// TODO registration of precompile addresses
|
|
339
347
|
function _register(ObjectInfo memory info)
|
|
340
348
|
internal
|
|
341
349
|
returns(NftId nftId)
|
|
@@ -449,29 +457,40 @@ contract Registry is
|
|
|
449
457
|
_chainNft.mint(NFT_LOCK_ADDRESS, protocolId);
|
|
450
458
|
}
|
|
451
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
|
+
|
|
452
482
|
/// @dev registry registration
|
|
453
|
-
/// might also register the global registry when not on mainnet
|
|
454
483
|
function _registerRegistry()
|
|
455
|
-
|
|
484
|
+
internal
|
|
485
|
+
virtual
|
|
456
486
|
returns (NftId registryNftId)
|
|
457
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;
|