@etherisc/gif-next 0.0.2-e5a2253-213 → 0.0.2-e69072e-892
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 +73 -1
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/{BaseComponent.sol/BaseComponent.json → Component.sol/Component.json} +340 -59
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +804 -211
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{IBaseComponent.sol/IBaseComponent.json → IComponent.sol/IComponent.json} +95 -56
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +699 -22
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +814 -60
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +519 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +896 -298
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +442 -129
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +38 -62
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +910 -289
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +110 -171
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +874 -557
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +52 -115
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +101 -168
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +346 -263
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +319 -86
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -32
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +119 -189
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +2 -2
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +13 -13
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.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/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +968 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +258 -283
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +305 -80
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +983 -221
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +441 -72
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +556 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +130 -217
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → instance/service/IClaimService.sol/IClaimService.json} +146 -179
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +552 -140
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +40 -292
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +22 -174
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +22 -174
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +161 -407
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +311 -114
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +139 -237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +302 -77
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +139 -237
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +302 -77
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +98 -5
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +112 -198
- 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 +112 -27
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +18 -18
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +216 -234
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +300 -81
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +70 -53
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +151 -50
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +22 -174
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +114 -157
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +135 -214
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +25 -7
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/components/Component.sol +221 -0
- package/contracts/components/Distribution.sol +206 -67
- package/contracts/components/IComponent.sol +68 -0
- package/contracts/components/IDistributionComponent.sol +44 -9
- package/contracts/components/IPoolComponent.sol +124 -39
- package/contracts/components/IProductComponent.sol +8 -3
- package/contracts/components/Pool.sol +284 -164
- package/contracts/components/Product.sol +110 -116
- package/contracts/instance/BundleManager.sol +8 -12
- package/contracts/instance/IInstance.sol +41 -9
- package/contracts/instance/IInstanceService.sol +20 -1
- package/contracts/instance/Instance.sol +90 -61
- package/contracts/instance/InstanceAccessManager.sol +18 -24
- package/contracts/instance/InstanceReader.sol +3 -25
- package/contracts/instance/InstanceService.sol +195 -50
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/ObjectManager.sol +7 -24
- package/contracts/instance/base/{ComponentServiceBase.sol → ComponentService.sol} +9 -13
- package/contracts/instance/module/IAccess.sol +3 -4
- package/contracts/instance/module/IBundle.sol +2 -1
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +30 -3
- package/contracts/instance/module/ISetup.sol +10 -10
- package/contracts/instance/service/ApplicationService.sol +350 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +17 -12
- package/contracts/instance/service/BundleServiceManager.sol +1 -1
- package/contracts/instance/service/ClaimService.sol +151 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +312 -33
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +14 -3
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +74 -0
- package/contracts/instance/service/IPolicyService.sol +26 -50
- package/contracts/instance/service/PolicyService.sol +127 -262
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolService.sol +12 -45
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductService.sol +50 -26
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/IRegistry.sol +16 -8
- package/contracts/registry/IRegistryService.sol +19 -10
- package/contracts/registry/Registry.sol +120 -52
- package/contracts/registry/RegistryAccessManager.sol +31 -25
- package/contracts/registry/RegistryService.sol +91 -128
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +86 -106
- package/contracts/registry/TokenRegistry.sol +19 -13
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/INftOwnable.sol +11 -10
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +4 -4
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +2 -0
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +66 -80
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +16 -32
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +19 -19
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/test/TestRegisterable.sol +1 -1
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/ObjectType.sol +9 -5
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/RoleId.sol +12 -7
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/Timestamp.sol +12 -13
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/contracts/components/BaseComponent.sol +0 -168
- package/contracts/components/IBaseComponent.sol +0 -35
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/IInstanceBase.sol +0 -25
- package/contracts/instance/InstanceBase.sol +0 -39
- package/contracts/instance/base/IInstanceBase.sol +0 -21
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -5,29 +5,31 @@ import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManage
|
|
5
5
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
6
6
|
|
7
7
|
import {RoleId, RoleIdLib,
|
8
|
-
|
9
|
-
|
8
|
+
GIF_MANAGER_ROLE,
|
9
|
+
GIF_ADMIN_ROLE,
|
10
10
|
RELEASE_MANAGER_ROLE} from "../types/RoleId.sol";
|
11
11
|
|
12
12
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
13
13
|
import {ReleaseManager} from "./ReleaseManager.sol";
|
14
14
|
|
15
15
|
/*
|
16
|
-
|
17
|
-
1)
|
18
|
-
-
|
19
|
-
-
|
20
|
-
|
21
|
-
|
16
|
+
4 types of roles:
|
17
|
+
1) RELEASE_MANAGER_ROLE
|
18
|
+
- has only ReleaseManager as member
|
19
|
+
- responsible for setting and granting of REGISTRAR roles
|
20
|
+
1) REGISTRAR roles
|
21
|
+
- set and granted by RELEASE_MANAGER_ROLE
|
22
|
+
- each has 1 unique member (regular service ver.X) (subject to change)
|
23
|
+
- each set to 1 target (registry service ver.X) and 1 selector (function of registry service ver.X) (subject to change)
|
24
|
+
2) GIF_MANAGER_ROLE
|
22
25
|
- can have arbitrary number of members
|
23
26
|
- responsible for services registrations
|
24
27
|
- responsible for token registration and activation
|
25
|
-
3)
|
26
|
-
- admin of
|
28
|
+
3) GIF_ADMIN_ROLE
|
29
|
+
- admin of GIF_MANAGER_ROLE
|
27
30
|
- MUST have 1 member at any time
|
28
31
|
- granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
|
29
|
-
- responsible for
|
30
|
-
- responsible for creation and activation of each release
|
32
|
+
- responsible for creation and activation of releases
|
31
33
|
|
32
34
|
*/
|
33
35
|
|
@@ -71,8 +73,8 @@ contract RegistryAccessManager is AccessManaged
|
|
71
73
|
_configureAdminRoleInitial();
|
72
74
|
|
73
75
|
address admin = msg.sender;
|
74
|
-
_grantRole(
|
75
|
-
_grantRole(
|
76
|
+
_grantRole(GIF_ADMIN_ROLE(), admin, 0);
|
77
|
+
_grantRole(GIF_MANAGER_ROLE(), manager, 0);
|
76
78
|
}
|
77
79
|
|
78
80
|
function initialize(address releaseManager, address tokenRegistry)
|
@@ -124,10 +126,10 @@ contract RegistryAccessManager is AccessManaged
|
|
124
126
|
|
125
127
|
/*function transferAdmin(address to)
|
126
128
|
external
|
127
|
-
restricted // only with
|
129
|
+
restricted // only with GIF_ADMIN_ROLE or nft owner
|
128
130
|
{
|
129
|
-
_accessManager.revoke(
|
130
|
-
_accesssManager.grant(
|
131
|
+
_accessManager.revoke(GIF_ADMIN_ROLE, );
|
132
|
+
_accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
|
131
133
|
}*/
|
132
134
|
|
133
135
|
//--- view functions ----------------------------------------------------//
|
@@ -147,7 +149,7 @@ contract RegistryAccessManager is AccessManaged
|
|
147
149
|
bytes4[] memory functionSelector = new bytes4[](1);
|
148
150
|
|
149
151
|
functionSelector[0] = RegistryAccessManager.initialize.selector;
|
150
|
-
_setTargetFunctionRole(address(this), functionSelector,
|
152
|
+
_setTargetFunctionRole(address(this), functionSelector, GIF_ADMIN_ROLE());
|
151
153
|
}
|
152
154
|
|
153
155
|
function _configureAdminRole() private
|
@@ -157,15 +159,16 @@ contract RegistryAccessManager is AccessManaged
|
|
157
159
|
// for RegistryServiceProxyManager
|
158
160
|
// TODO upgrading with releaseManager.upgrade()->proxy.upgrade()???
|
159
161
|
//functionSelector[0] = RegistryServiceManager.upgrade.selector;
|
160
|
-
//_setTargetFunctionRole(address(this), functionSelector,
|
162
|
+
//_setTargetFunctionRole(address(this), functionSelector, GIF_ADMIN_ROLE());
|
161
163
|
|
162
164
|
// for TokenRegistry
|
163
165
|
|
164
166
|
// for ReleaseManager
|
165
167
|
functionSelector[0] = ReleaseManager.createNextRelease.selector;
|
166
|
-
_setTargetFunctionRole(_releaseManager, functionSelector,
|
167
|
-
|
168
|
-
|
168
|
+
_setTargetFunctionRole(_releaseManager, functionSelector, GIF_ADMIN_ROLE());
|
169
|
+
|
170
|
+
functionSelector[0] = ReleaseManager.activateNextRelease.selector;
|
171
|
+
_setTargetFunctionRole(_releaseManager, functionSelector, GIF_ADMIN_ROLE());
|
169
172
|
}
|
170
173
|
|
171
174
|
function _configureManagerRole() private
|
@@ -174,14 +177,17 @@ contract RegistryAccessManager is AccessManaged
|
|
174
177
|
|
175
178
|
// for TokenRegistry
|
176
179
|
functionSelector[0] = TokenRegistry.setActive.selector;
|
177
|
-
_setTargetFunctionRole(address(_tokenRegistry), functionSelector,
|
180
|
+
_setTargetFunctionRole(address(_tokenRegistry), functionSelector, GIF_MANAGER_ROLE());
|
178
181
|
|
179
182
|
// for ReleaseManager
|
180
183
|
functionSelector[0] = ReleaseManager.registerService.selector;
|
181
|
-
_setTargetFunctionRole(_releaseManager, functionSelector,
|
184
|
+
_setTargetFunctionRole(_releaseManager, functionSelector, GIF_MANAGER_ROLE());
|
185
|
+
|
186
|
+
functionSelector[0] = ReleaseManager.registerRegistryService.selector;
|
187
|
+
_setTargetFunctionRole(_releaseManager, functionSelector, GIF_MANAGER_ROLE());
|
182
188
|
|
183
189
|
// set admin
|
184
|
-
_setRoleAdmin(
|
190
|
+
_setRoleAdmin(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE());
|
185
191
|
}
|
186
192
|
|
187
193
|
function _configureReleaseManagerRole() private
|
@@ -8,7 +8,7 @@ import {IRegistry} from "./IRegistry.sol";
|
|
8
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
9
|
|
10
10
|
import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
|
11
|
-
import {
|
11
|
+
import {IComponent} from "../../contracts/components/IComponent.sol";
|
12
12
|
import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
|
13
13
|
import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
|
14
14
|
import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
|
@@ -19,7 +19,7 @@ import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
|
19
19
|
import {Registerable} from "../../contracts/shared/Registerable.sol";
|
20
20
|
|
21
21
|
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
|
22
|
-
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, POLICY, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
|
22
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
|
23
23
|
import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
|
24
24
|
import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
|
25
25
|
import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
|
@@ -40,34 +40,55 @@ contract RegistryService is
|
|
40
40
|
// TODO update to real hash when registry is stable
|
41
41
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
42
42
|
|
43
|
-
|
43
|
+
// From IService
|
44
|
+
function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
|
45
|
+
return REGISTRY();
|
46
|
+
}
|
47
|
+
|
48
|
+
// from Versionable
|
49
|
+
|
50
|
+
/// @dev top level initializer
|
51
|
+
function _initialize(
|
52
|
+
address owner,
|
53
|
+
bytes memory data
|
54
|
+
)
|
55
|
+
internal
|
56
|
+
virtual override
|
57
|
+
initializer()
|
58
|
+
{
|
59
|
+
(
|
60
|
+
address registryAddress,
|
61
|
+
address initialAuthority
|
62
|
+
) = abi.decode(data, (address, address));
|
63
|
+
|
64
|
+
__AccessManaged_init(initialAuthority);
|
44
65
|
|
66
|
+
initializeService(registryAddress, owner);
|
67
|
+
registerInterface(type(IRegistryService).interfaceId);
|
68
|
+
}
|
45
69
|
|
46
|
-
function registerInstance(IRegisterable instance)
|
70
|
+
function registerInstance(IRegisterable instance, address owner)
|
47
71
|
external
|
72
|
+
restricted
|
48
73
|
returns(
|
49
|
-
IRegistry.ObjectInfo memory info
|
50
|
-
bytes memory data
|
74
|
+
IRegistry.ObjectInfo memory info
|
51
75
|
)
|
52
76
|
{
|
53
77
|
if(!instance.supportsInterface(type(IInstance).interfaceId)) {
|
54
78
|
revert NotInstance();
|
55
79
|
}
|
56
80
|
|
57
|
-
|
81
|
+
info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
|
82
|
+
info.nftId = getRegistry().register(info);
|
58
83
|
|
59
|
-
info.nftId = _registry.register(info);
|
60
84
|
instance.linkToRegisteredNftId(); // asume safe
|
61
|
-
|
62
|
-
return (info, data);
|
63
85
|
}
|
64
86
|
|
65
|
-
function registerProduct(
|
87
|
+
function registerProduct(IComponent product, address owner)
|
66
88
|
external
|
67
89
|
restricted
|
68
90
|
returns(
|
69
|
-
IRegistry.ObjectInfo memory info
|
70
|
-
bytes memory data
|
91
|
+
IRegistry.ObjectInfo memory info
|
71
92
|
)
|
72
93
|
{
|
73
94
|
// CAN revert if no ERC165 support -> will revert with empty message
|
@@ -75,49 +96,47 @@ contract RegistryService is
|
|
75
96
|
revert NotProduct();
|
76
97
|
}
|
77
98
|
|
78
|
-
|
79
|
-
|
80
|
-
info.nftId = _registry.register(info);
|
81
|
-
|
82
|
-
return (info, data);
|
99
|
+
info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
|
100
|
+
info.nftId = getRegistry().register(info);
|
83
101
|
}
|
84
102
|
|
85
|
-
function registerPool(
|
103
|
+
function registerPool(IComponent pool, address owner)
|
86
104
|
external
|
87
105
|
restricted
|
88
106
|
returns(
|
89
|
-
IRegistry.ObjectInfo memory info
|
90
|
-
bytes memory data
|
107
|
+
IRegistry.ObjectInfo memory info
|
91
108
|
)
|
92
109
|
{
|
93
110
|
if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
94
111
|
revert NotPool();
|
95
112
|
}
|
96
113
|
|
97
|
-
|
98
|
-
|
99
|
-
info.nftId = _registry.register(info);
|
100
|
-
|
101
|
-
return (info, data);
|
114
|
+
info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
115
|
+
info.nftId = getRegistry().register(info);
|
102
116
|
}
|
103
117
|
|
104
|
-
function registerDistribution(
|
118
|
+
function registerDistribution(IComponent distribution, address owner)
|
105
119
|
external
|
106
120
|
restricted
|
107
121
|
returns(
|
108
|
-
IRegistry.ObjectInfo memory info
|
109
|
-
bytes memory data
|
122
|
+
IRegistry.ObjectInfo memory info
|
110
123
|
)
|
111
124
|
{
|
112
125
|
if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
113
126
|
revert NotDistribution();
|
114
127
|
}
|
115
128
|
|
116
|
-
|
117
|
-
|
118
|
-
|
129
|
+
info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
130
|
+
info.nftId = getRegistry().register(info);
|
131
|
+
}
|
119
132
|
|
120
|
-
|
133
|
+
function registerDistributor(IRegistry.ObjectInfo memory info)
|
134
|
+
external
|
135
|
+
restricted
|
136
|
+
returns(NftId nftId)
|
137
|
+
{
|
138
|
+
_verifyObjectInfo(info, DISTRIBUTOR());
|
139
|
+
nftId = getRegistry().register(info);
|
121
140
|
}
|
122
141
|
|
123
142
|
function registerPolicy(IRegistry.ObjectInfo memory info)
|
@@ -127,7 +146,7 @@ contract RegistryService is
|
|
127
146
|
{
|
128
147
|
_verifyObjectInfo(info, POLICY());
|
129
148
|
|
130
|
-
nftId =
|
149
|
+
nftId = getRegistry().register(info);
|
131
150
|
}
|
132
151
|
|
133
152
|
function registerBundle(IRegistry.ObjectInfo memory info)
|
@@ -137,7 +156,7 @@ contract RegistryService is
|
|
137
156
|
{
|
138
157
|
_verifyObjectInfo(info, BUNDLE());
|
139
158
|
|
140
|
-
nftId =
|
159
|
+
nftId = getRegistry().register(info);
|
141
160
|
}
|
142
161
|
|
143
162
|
function registerStake(IRegistry.ObjectInfo memory info)
|
@@ -147,73 +166,55 @@ contract RegistryService is
|
|
147
166
|
{
|
148
167
|
_verifyObjectInfo(info, STAKE());
|
149
168
|
|
150
|
-
nftId =
|
151
|
-
}
|
152
|
-
|
153
|
-
// From IService
|
154
|
-
function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
|
155
|
-
return REGISTRY();
|
156
|
-
}
|
157
|
-
|
158
|
-
// from Versionable
|
159
|
-
|
160
|
-
/// @dev top level initializer
|
161
|
-
function _initialize(
|
162
|
-
address owner,
|
163
|
-
bytes memory data
|
164
|
-
)
|
165
|
-
internal
|
166
|
-
initializer
|
167
|
-
virtual override
|
168
|
-
{
|
169
|
-
(
|
170
|
-
address initialAuthority,
|
171
|
-
address registry
|
172
|
-
) = abi.decode(data, (address, address));
|
173
|
-
|
174
|
-
__AccessManaged_init(initialAuthority);
|
175
|
-
|
176
|
-
_initializeService(address(registry), owner);
|
177
|
-
|
178
|
-
_registerInterface(type(IRegistryService).interfaceId);
|
169
|
+
nftId = getRegistry().register(info);
|
179
170
|
}
|
180
171
|
|
181
172
|
// from IRegisterable
|
182
173
|
|
183
|
-
function
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
174
|
+
function getFunctionConfigs()
|
175
|
+
external
|
176
|
+
pure
|
177
|
+
returns(
|
178
|
+
FunctionConfig[] memory config
|
179
|
+
)
|
188
180
|
{
|
189
|
-
|
190
|
-
|
191
|
-
FunctionConfig[] memory config = new FunctionConfig[](6);
|
181
|
+
config = new FunctionConfig[](8);
|
192
182
|
|
193
183
|
// order of service registrations MUST be reverse to this array
|
194
184
|
/*config[-1].serviceDomain = STAKE();
|
195
185
|
config[-1].selector = RegistryService.registerStake.selector;*/
|
196
186
|
|
197
187
|
config[0].serviceDomain = POLICY();
|
198
|
-
config[0].
|
188
|
+
config[0].selectors = new bytes4[](0);
|
199
189
|
|
200
|
-
config[1].serviceDomain =
|
201
|
-
config[1].
|
190
|
+
config[1].serviceDomain = APPLICATION();
|
191
|
+
config[1].selectors = new bytes4[](1);
|
192
|
+
config[1].selectors[0] = RegistryService.registerPolicy.selector;
|
202
193
|
|
203
|
-
config[2].serviceDomain =
|
204
|
-
config[2].
|
194
|
+
config[2].serviceDomain = CLAIM();
|
195
|
+
config[2].selectors = new bytes4[](0);
|
205
196
|
|
206
|
-
config[3].serviceDomain =
|
207
|
-
config[3].
|
197
|
+
config[3].serviceDomain = BUNDLE();
|
198
|
+
config[3].selectors = new bytes4[](1);
|
199
|
+
config[3].selectors[0] = RegistryService.registerBundle.selector;
|
208
200
|
|
209
|
-
config[4].serviceDomain =
|
210
|
-
config[4].
|
201
|
+
config[4].serviceDomain = PRODUCT();
|
202
|
+
config[4].selectors = new bytes4[](1);
|
203
|
+
config[4].selectors[0] = RegistryService.registerProduct.selector;
|
211
204
|
|
212
|
-
|
213
|
-
config[5].
|
214
|
-
config[5].
|
205
|
+
config[5].serviceDomain = POOL();
|
206
|
+
config[5].selectors = new bytes4[](1);
|
207
|
+
config[5].selectors[0] = RegistryService.registerPool.selector;
|
208
|
+
|
209
|
+
config[6].serviceDomain = DISTRIBUTION();
|
210
|
+
config[6].selectors = new bytes4[](2);
|
211
|
+
config[6].selectors[0] = RegistryService.registerDistribution.selector;
|
212
|
+
config[6].selectors[1] = RegistryService.registerDistributor.selector;
|
215
213
|
|
216
|
-
|
214
|
+
// registerInstance() have no restriction
|
215
|
+
config[7].serviceDomain = INSTANCE();
|
216
|
+
config[7].selectors = new bytes4[](1);
|
217
|
+
config[7].selectors[0] = RegistryService.registerInstance.selector;
|
217
218
|
}
|
218
219
|
|
219
220
|
// Internal
|
@@ -224,16 +225,12 @@ contract RegistryService is
|
|
224
225
|
address expectedOwner // assume can be 0 when given by other service
|
225
226
|
)
|
226
227
|
internal
|
227
|
-
view
|
228
|
+
// view
|
228
229
|
returns(
|
229
|
-
IRegistry.ObjectInfo memory info
|
230
|
-
bytes memory data
|
230
|
+
IRegistry.ObjectInfo memory info
|
231
231
|
)
|
232
232
|
{
|
233
|
-
(
|
234
|
-
info,
|
235
|
-
data
|
236
|
-
) = registerable.getInitialInfo();
|
233
|
+
info = registerable.getInitialInfo();
|
237
234
|
info.objectAddress = address(registerable);
|
238
235
|
|
239
236
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
@@ -242,13 +239,8 @@ contract RegistryService is
|
|
242
239
|
|
243
240
|
address owner = info.initialOwner;
|
244
241
|
|
245
|
-
//
|
246
|
-
|
247
|
-
// any address may create a new instance via instance service
|
248
|
-
} else {
|
249
|
-
if(owner != expectedOwner) { // registerable owner protection
|
250
|
-
revert NotRegisterableOwner(expectedOwner);
|
251
|
-
}
|
242
|
+
if(owner != expectedOwner) { // registerable owner protection
|
243
|
+
revert NotRegisterableOwner(expectedOwner);
|
252
244
|
}
|
253
245
|
|
254
246
|
if(owner == address(registerable)) {
|
@@ -262,15 +254,6 @@ contract RegistryService is
|
|
262
254
|
if(getRegistry().isRegistered(owner)) {
|
263
255
|
revert RegisterableOwnerIsRegistered();
|
264
256
|
}
|
265
|
-
|
266
|
-
/*NftId parentNftId = info.parentNftId;
|
267
|
-
IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
|
268
|
-
|
269
|
-
if(parentInfo.objectType != parentType) { // parent registration + type
|
270
|
-
revert InvalidParent(parentNftId);
|
271
|
-
}*/
|
272
|
-
|
273
|
-
return(info, data);
|
274
257
|
}
|
275
258
|
|
276
259
|
function _verifyObjectInfo(
|
@@ -296,25 +279,5 @@ contract RegistryService is
|
|
296
279
|
if(getRegistry().isRegistered(owner)) {
|
297
280
|
revert RegisterableOwnerIsRegistered();
|
298
281
|
}
|
299
|
-
|
300
|
-
// can catch all 3 if check that initialOwner is not registered
|
301
|
-
/*if(info.initialOwner == msg.sender) {
|
302
|
-
revert InitialOwnerIsParent();
|
303
|
-
}
|
304
|
-
|
305
|
-
if(info.initialOwner == address(this)) {
|
306
|
-
revert InitialOwnerIsService();
|
307
|
-
}
|
308
|
-
|
309
|
-
if(info.initialOwner == address(getRegistry())) {
|
310
|
-
revert InitialOwnerIsRegistry();
|
311
|
-
}*/
|
312
|
-
|
313
|
-
/*NftId parentNftId = info.parentNftId;
|
314
|
-
IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
|
315
|
-
|
316
|
-
if(parentInfo.objectType != parentType) { // parent registration + type
|
317
|
-
revert InvalidParent(parentNftId);
|
318
|
-
}*/
|
319
282
|
}
|
320
283
|
}
|
@@ -22,32 +22,32 @@ contract RegistryServiceManager is
|
|
22
22
|
/// @dev initializes proxy manager with registry service implementation and deploys registry
|
23
23
|
constructor(
|
24
24
|
address initialAuthority, // used by implementation
|
25
|
-
address
|
26
|
-
ProxyManager()
|
25
|
+
address registryAddress) // used by implementation
|
26
|
+
ProxyManager(registryAddress)
|
27
27
|
{
|
28
28
|
require(initialAuthority > address(0), "RegistryServiceManager: initial authority is 0");
|
29
|
-
require(
|
29
|
+
require(registryAddress > address(0), "RegistryServiceManager: registry is 0");
|
30
30
|
|
31
31
|
// implementation's initializer func `data` argument
|
32
|
-
|
33
|
-
|
34
|
-
registry);
|
35
|
-
|
32
|
+
RegistryService srv = new RegistryService();
|
33
|
+
bytes memory data = abi.encode(registryAddress, initialAuthority);
|
36
34
|
IVersionable versionable = deploy(
|
37
|
-
address(
|
38
|
-
|
35
|
+
address(srv),
|
36
|
+
data);
|
39
37
|
|
40
38
|
_registryService = RegistryService(address(versionable));
|
39
|
+
|
40
|
+
// _linkToNftOwnable(address(_registryService));
|
41
41
|
}
|
42
42
|
|
43
|
-
// from IRegisterable
|
43
|
+
// // from IRegisterable
|
44
44
|
|
45
|
-
// IMPORTANT: registry here and in constructor MUST be the same
|
46
|
-
function
|
45
|
+
// // IMPORTANT: registry here and in constructor MUST be the same
|
46
|
+
function linkOwnershipToServiceNft()
|
47
47
|
public
|
48
48
|
onlyOwner
|
49
49
|
{
|
50
|
-
_linkToNftOwnable(
|
50
|
+
_linkToNftOwnable(address(_registryService));
|
51
51
|
}
|
52
52
|
|
53
53
|
//--- view functions ----------------------------------------------------//
|