@etherisc/gif-next 0.0.2-ceb30b2-601 → 0.0.2-cf22d7b-845
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 +2 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +239 -155
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +118 -99
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +39 -307
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +254 -2310
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +72 -22
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2818
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +507 -350
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +147 -193
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +113 -103
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +45 -56
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +200 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +144 -156
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +305 -103
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +30 -2
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +127 -71
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +53 -136
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +284 -106
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +1 -56
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +304 -52
- 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 +415 -43
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +337 -72
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -41
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +824 -91
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -76
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +17 -122
- 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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +114 -75
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +170 -288
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +56 -7
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- 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/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +5 -5
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/{components → distribution}/Distribution.sol +41 -64
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
- package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
- package/contracts/instance/BundleManager.sol +5 -5
- package/contracts/instance/IInstance.sol +45 -70
- package/contracts/instance/IInstanceService.sol +29 -11
- package/contracts/instance/Instance.sol +112 -195
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
- package/contracts/instance/InstanceReader.sol +106 -58
- package/contracts/instance/InstanceService.sol +166 -288
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +6 -6
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +21 -10
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +20 -14
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
- package/contracts/{components → pool}/IPoolComponent.sol +16 -17
- package/contracts/{instance/service → pool}/IPoolService.sol +57 -51
- package/contracts/{components → pool}/Pool.sol +52 -55
- package/contracts/pool/PoolService.sol +453 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/ClaimService.sol +167 -86
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
- package/contracts/{instance/service → product}/IClaimService.sol +18 -15
- package/contracts/{instance/service → product}/IPolicyService.sol +24 -26
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/{components → product}/Product.sol +83 -77
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +44 -21
- package/contracts/registry/IRegistryService.sol +37 -34
- package/contracts/registry/Registry.sol +191 -82
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +66 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -25
- package/contracts/registry/ReleaseManager.sol +458 -183
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- package/contracts/shared/AccessManagerExtended.sol +470 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +278 -0
- package/contracts/shared/ComponentService.sol +596 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/{components → shared}/IComponent.sol +23 -29
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +14 -7
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +9 -5
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -14
- package/contracts/shared/PolicyHolder.sol +32 -17
- package/contracts/shared/ProxyManager.sol +34 -4
- package/contracts/shared/Registerable.sol +3 -3
- package/contracts/shared/Service.sol +9 -4
- package/contracts/shared/TokenHandler.sol +27 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +149 -0
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +551 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +406 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +572 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/{types → type}/Amount.sol +59 -1
- package/contracts/{types → type}/Blocknumber.sol +20 -3
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/{types → type}/ObjectType.sol +15 -3
- package/contracts/{types → type}/Referral.sol +1 -1
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/{types → type}/RoleId.sol +55 -9
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/{types → type}/StateId.sol +17 -4
- package/contracts/{types → type}/Version.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- 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/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +0 -10
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1313
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -712
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1316
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -724
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1598
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -696
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/Component.sol +0 -253
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -130
- package/contracts/instance/base/KeyValueStore.sol +0 -149
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -356
- package/contracts/instance/service/BundleService.sol +0 -443
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -431
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -358
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -349
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- /package/contracts/{types → type}/ClaimId.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/PayoutId.sol +0 -0
- /package/contracts/{types → type}/Timestamp.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -0,0 +1,237 @@
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
|
+
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
6
|
+
import {AuthorityUtils} from "@openzeppelin/contracts/access/manager/AuthorityUtils.sol";
|
7
|
+
|
8
|
+
import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
|
9
|
+
|
10
|
+
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
11
|
+
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
12
|
+
|
13
|
+
import {IRegistry} from "./IRegistry.sol";
|
14
|
+
import {ReleaseManager} from "./ReleaseManager.sol";
|
15
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
16
|
+
|
17
|
+
/*
|
18
|
+
1) GIF_MANAGER_ROLE
|
19
|
+
- can have arbitrary number of members
|
20
|
+
- responsible for services registrations
|
21
|
+
- responsible for token registration and activation
|
22
|
+
|
23
|
+
2) GIF_ADMIN_ROLE
|
24
|
+
- admin of GIF_MANAGER_ROLE
|
25
|
+
- MUST have 1 member at any time
|
26
|
+
- granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
|
27
|
+
- responsible for creation and activation of releases
|
28
|
+
*/
|
29
|
+
|
30
|
+
// !!! USE BUILDER PATTERN FOR CONFIG
|
31
|
+
// introduce class - config
|
32
|
+
// create instance of this class in admin initializer function
|
33
|
+
// call it "add"/"push" function for each entry in config (provide entry parameneters)
|
34
|
+
// each call will configure access manager for given parameneters
|
35
|
+
// in the end you have fully configured access manager and config object
|
36
|
+
|
37
|
+
// grants GIF_ADMIN_ROLE to registry owner as registryOwner is transaction sender
|
38
|
+
// grants GIF_MANAGER_ROLE to registry owner via contructor argument
|
39
|
+
contract RegistryAdmin is
|
40
|
+
AccessManaged,
|
41
|
+
InitializableCustom
|
42
|
+
{
|
43
|
+
error ErrorRegistryAdminReleaseManagerAuthorityMismatch();
|
44
|
+
error ErrorRegistryAdminTokenRegistryAuthorityMismatch();
|
45
|
+
error ErrorRegistryAdminStakingAuthorityMismatch();
|
46
|
+
|
47
|
+
string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
|
48
|
+
string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
|
49
|
+
|
50
|
+
string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
|
51
|
+
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
52
|
+
string public constant STAKING_TARGET_NAME = "Staking";
|
53
|
+
|
54
|
+
address private _releaseManager;
|
55
|
+
address private _tokenRegistry;
|
56
|
+
address private _staking;
|
57
|
+
|
58
|
+
constructor()
|
59
|
+
AccessManaged(msg.sender)
|
60
|
+
InitializableCustom()
|
61
|
+
{
|
62
|
+
AccessManagerExtendedInitializeable accessManager = new AccessManagerExtendedInitializeable();
|
63
|
+
accessManager.initialize(address(this));
|
64
|
+
setAuthority(address(accessManager));
|
65
|
+
}
|
66
|
+
|
67
|
+
function initialize(
|
68
|
+
IRegistry registry,
|
69
|
+
address gifAdmin,
|
70
|
+
address gifManager
|
71
|
+
)
|
72
|
+
external
|
73
|
+
initializer
|
74
|
+
{
|
75
|
+
// validate input
|
76
|
+
address releaseManagerAddress = registry.getReleaseManagerAddress();
|
77
|
+
if(IAccessManaged(releaseManagerAddress).authority() != authority()) {
|
78
|
+
revert ErrorRegistryAdminReleaseManagerAuthorityMismatch();
|
79
|
+
}
|
80
|
+
|
81
|
+
address tokenRegistryAddress = registry.getTokenRegistryAddress();
|
82
|
+
if(IAccessManaged(tokenRegistryAddress).authority() != authority()) {
|
83
|
+
revert ErrorRegistryAdminTokenRegistryAuthorityMismatch();
|
84
|
+
}
|
85
|
+
|
86
|
+
address stakingAddress = registry.getStakingAddress();
|
87
|
+
if(IAccessManaged(stakingAddress).authority() != authority()) {
|
88
|
+
revert ErrorRegistryAdminStakingAuthorityMismatch();
|
89
|
+
}
|
90
|
+
|
91
|
+
_releaseManager = releaseManagerAddress;
|
92
|
+
_tokenRegistry = tokenRegistryAddress;
|
93
|
+
_staking = stakingAddress;
|
94
|
+
|
95
|
+
// at this moment all registry contracts are deployed and fully intialized
|
96
|
+
_createRole(GIF_ADMIN_ROLE(), GIF_ADMIN_ROLE_NAME);
|
97
|
+
_createRole(GIF_MANAGER_ROLE(), GIF_MANAGER_ROLE_NAME);
|
98
|
+
|
99
|
+
_createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
|
100
|
+
_createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME);
|
101
|
+
_createTarget(_staking, STAKING_TARGET_NAME);
|
102
|
+
|
103
|
+
_setGifAdminRole();
|
104
|
+
_setGifManagerRole();
|
105
|
+
|
106
|
+
_grantRole(GIF_ADMIN_ROLE(), gifAdmin, 0);
|
107
|
+
_grantRole(GIF_MANAGER_ROLE(), gifManager, 0);
|
108
|
+
|
109
|
+
// set gif manager role admin
|
110
|
+
_setRoleAdmin(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE());
|
111
|
+
}
|
112
|
+
|
113
|
+
// TODO makes sense to do this in intialize() function
|
114
|
+
// it is a single contract
|
115
|
+
// but if many token registries a possible...
|
116
|
+
/*function setTokenRegistry(
|
117
|
+
address tokenRegistry
|
118
|
+
)
|
119
|
+
external
|
120
|
+
restricted() // GIF_ADMIN_ROLE
|
121
|
+
{
|
122
|
+
// for TokenRegistry
|
123
|
+
bytes4[] memory functionSelector = new bytes4[](5);
|
124
|
+
functionSelector[0] = TokenRegistry.registerToken.selector;
|
125
|
+
functionSelector[1] = TokenRegistry.registerRemoteToken.selector;
|
126
|
+
functionSelector[2] = TokenRegistry.setActive.selector;
|
127
|
+
functionSelector[3] = TokenRegistry.setActiveForVersion.selector;
|
128
|
+
|
129
|
+
// only needed for testing TODO find a better way
|
130
|
+
functionSelector[4] = TokenRegistry.setActiveWithVersionCheck.selector;
|
131
|
+
_setTargetFunctionRole(address(tokenRegistry), functionSelector, GIF_MANAGER_ROLE());
|
132
|
+
}*/
|
133
|
+
|
134
|
+
|
135
|
+
function setTargetFunctionRole(
|
136
|
+
address target,
|
137
|
+
bytes4[] memory selector,
|
138
|
+
RoleId roleId
|
139
|
+
)
|
140
|
+
external
|
141
|
+
restricted // RELEASE_MANAGER_ROLE -> TODO create this role
|
142
|
+
{
|
143
|
+
_setTargetFunctionRole(target, selector, roleId);
|
144
|
+
}
|
145
|
+
|
146
|
+
/*function transferAdmin(address to)
|
147
|
+
external
|
148
|
+
restricted // only with GIF_ADMIN_ROLE or nft owner
|
149
|
+
{
|
150
|
+
_accessManager.revoke(GIF_ADMIN_ROLE, );
|
151
|
+
_accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
|
152
|
+
}*/
|
153
|
+
|
154
|
+
//--- view functions ----------------------------------------------------//
|
155
|
+
|
156
|
+
function hasRole(address account, RoleId roleId) external view returns(bool) {
|
157
|
+
(bool isMember,) = AccessManagerExtendedInitializeable(authority()).hasRole(roleId.toInt(), account);
|
158
|
+
return isMember;
|
159
|
+
}
|
160
|
+
|
161
|
+
|
162
|
+
function canCall(
|
163
|
+
address account,
|
164
|
+
address target,
|
165
|
+
bytes4 functionSelector
|
166
|
+
)
|
167
|
+
external
|
168
|
+
view
|
169
|
+
returns(bool)
|
170
|
+
{
|
171
|
+
(bool immediate,) = AuthorityUtils.canCallWithDelay(
|
172
|
+
authority(),
|
173
|
+
account,
|
174
|
+
target,
|
175
|
+
functionSelector);
|
176
|
+
|
177
|
+
return immediate;
|
178
|
+
}
|
179
|
+
|
180
|
+
//--- private functions -------------------------------------------------//
|
181
|
+
|
182
|
+
function _setGifAdminRole() private
|
183
|
+
{
|
184
|
+
// for ReleaseManager
|
185
|
+
bytes4[] memory functionSelector2 = new bytes4[](2);
|
186
|
+
//functionSelector2[0] = ReleaseManager.registerStaking.selector;
|
187
|
+
functionSelector2[0] = ReleaseManager.createNextRelease.selector;
|
188
|
+
functionSelector2[1] = ReleaseManager.activateNextRelease.selector;
|
189
|
+
|
190
|
+
_setTargetFunctionRole(_releaseManager, functionSelector2, GIF_ADMIN_ROLE());
|
191
|
+
|
192
|
+
// for Staking
|
193
|
+
}
|
194
|
+
|
195
|
+
function _setGifManagerRole() private
|
196
|
+
{
|
197
|
+
// for TokenRegistry
|
198
|
+
bytes4[] memory functionSelectorTr = new bytes4[](5);
|
199
|
+
functionSelectorTr[0] = TokenRegistry.registerToken.selector;
|
200
|
+
functionSelectorTr[1] = TokenRegistry.registerRemoteToken.selector;
|
201
|
+
functionSelectorTr[2] = TokenRegistry.setActive.selector;
|
202
|
+
functionSelectorTr[3] = TokenRegistry.setActiveForVersion.selector;
|
203
|
+
|
204
|
+
// only needed for testing TODO find a better way
|
205
|
+
functionSelectorTr[4] = TokenRegistry.setActiveWithVersionCheck.selector;
|
206
|
+
_setTargetFunctionRole(_tokenRegistry, functionSelectorTr, GIF_MANAGER_ROLE());
|
207
|
+
|
208
|
+
// for ReleaseManager
|
209
|
+
bytes4[] memory functionSelectorRm = new bytes4[](2);
|
210
|
+
functionSelectorRm[0] = ReleaseManager.registerService.selector;
|
211
|
+
functionSelectorRm[1] = ReleaseManager.prepareNextRelease.selector;
|
212
|
+
_setTargetFunctionRole(_releaseManager, functionSelectorRm, GIF_MANAGER_ROLE());
|
213
|
+
|
214
|
+
// for Staking
|
215
|
+
}
|
216
|
+
|
217
|
+
|
218
|
+
function _setTargetFunctionRole(address target, bytes4[] memory selectors, RoleId roleId) private {
|
219
|
+
AccessManagerExtendedInitializeable(authority()).setTargetFunctionRole(target, selectors, roleId.toInt());
|
220
|
+
}
|
221
|
+
|
222
|
+
function _setRoleAdmin(RoleId roleId, RoleId adminRoleId) private {
|
223
|
+
AccessManagerExtendedInitializeable(authority()).setRoleAdmin(roleId.toInt(), adminRoleId.toInt());
|
224
|
+
}
|
225
|
+
|
226
|
+
function _grantRole(RoleId roleId, address account, uint32 executionDelay) private {
|
227
|
+
AccessManagerExtendedInitializeable(authority()).grantRole(roleId.toInt(), account, executionDelay);
|
228
|
+
}
|
229
|
+
|
230
|
+
function _createRole(RoleId roleId, string memory roleName) private {
|
231
|
+
AccessManagerExtendedInitializeable(authority()).createRole(roleId.toInt(), roleName);
|
232
|
+
}
|
233
|
+
|
234
|
+
function _createTarget(address target, string memory targetName) private {
|
235
|
+
AccessManagerExtendedInitializeable(authority()).createTarget(target, targetName);
|
236
|
+
}
|
237
|
+
}
|
@@ -7,23 +7,21 @@ import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165C
|
|
7
7
|
import {IRegistry} from "./IRegistry.sol";
|
8
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
9
|
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
|
10
|
+
import {IComponent} from "../../contracts/shared/IComponent.sol";
|
11
|
+
import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
|
12
|
+
import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
|
13
|
+
import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
|
15
14
|
|
16
15
|
import {IVersionable} from "../../contracts/shared/IVersionable.sol";
|
17
16
|
import {Versionable} from "../../contracts/shared/Versionable.sol";
|
18
17
|
import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
19
|
-
import {Registerable} from "../../contracts/shared/Registerable.sol";
|
20
18
|
|
21
|
-
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/
|
22
|
-
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE} from "../../contracts/
|
23
|
-
import {StateId, ACTIVE, PAUSED} from "../../contracts/
|
24
|
-
import {NftId, NftIdLib
|
25
|
-
import {Fee, FeeLib} from "../../contracts/
|
26
|
-
import {Version, VersionPart, VersionLib} from "../../contracts/
|
19
|
+
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
|
20
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
|
21
|
+
import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
|
22
|
+
import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
|
23
|
+
import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
|
24
|
+
import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
|
27
25
|
|
28
26
|
import {Service} from "../shared/Service.sol";
|
29
27
|
import {IService} from "../shared/IService.sol";
|
@@ -61,19 +59,33 @@ contract RegistryService is
|
|
61
59
|
) = abi.decode(data, (address, address));
|
62
60
|
|
63
61
|
initializeService(registryAddress, initialAuthority, owner);
|
64
|
-
|
65
62
|
registerInterface(type(IRegistryService).interfaceId);
|
66
63
|
}
|
67
64
|
|
65
|
+
|
66
|
+
function registerStaking(IRegisterable staking, address owner)
|
67
|
+
external
|
68
|
+
virtual
|
69
|
+
restricted()
|
70
|
+
returns(
|
71
|
+
IRegistry.ObjectInfo memory info
|
72
|
+
)
|
73
|
+
{
|
74
|
+
info = _getAndVerifyContractInfo(staking, STAKING(), owner);
|
75
|
+
info.nftId = getRegistry().register(info);
|
76
|
+
}
|
77
|
+
|
78
|
+
|
68
79
|
function registerInstance(IRegisterable instance, address owner)
|
69
80
|
external
|
81
|
+
virtual
|
70
82
|
restricted
|
71
83
|
returns(
|
72
84
|
IRegistry.ObjectInfo memory info
|
73
85
|
)
|
74
86
|
{
|
75
87
|
if(!instance.supportsInterface(type(IInstance).interfaceId)) {
|
76
|
-
revert
|
88
|
+
revert ErrorRegistryServiceNotInstance(address(instance));
|
77
89
|
}
|
78
90
|
|
79
91
|
info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
|
@@ -91,13 +103,33 @@ contract RegistryService is
|
|
91
103
|
{
|
92
104
|
// CAN revert if no ERC165 support -> will revert with empty message
|
93
105
|
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
94
|
-
revert
|
106
|
+
revert ErrorRegistryServiceNotProduct(address(product));
|
95
107
|
}
|
96
108
|
|
97
109
|
info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
|
98
110
|
info.nftId = getRegistry().register(info);
|
99
111
|
}
|
100
112
|
|
113
|
+
function registerComponent(
|
114
|
+
IComponent component,
|
115
|
+
ObjectType objectType,
|
116
|
+
address initialOwner
|
117
|
+
)
|
118
|
+
external
|
119
|
+
restricted
|
120
|
+
returns(
|
121
|
+
IRegistry.ObjectInfo memory info
|
122
|
+
)
|
123
|
+
{
|
124
|
+
// CAN revert if no ERC165 support -> will revert with empty message
|
125
|
+
if(!component.supportsInterface(type(IComponent).interfaceId)) {
|
126
|
+
revert ErrorRegistryServiceNotComponent(address(component));
|
127
|
+
}
|
128
|
+
|
129
|
+
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
130
|
+
info.nftId = getRegistry().register(info);
|
131
|
+
}
|
132
|
+
|
101
133
|
function registerPool(IComponent pool, address owner)
|
102
134
|
external
|
103
135
|
restricted
|
@@ -106,7 +138,7 @@ contract RegistryService is
|
|
106
138
|
)
|
107
139
|
{
|
108
140
|
if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
109
|
-
revert
|
141
|
+
revert ErrorRegistryServiceNotPool(address(pool));
|
110
142
|
}
|
111
143
|
|
112
144
|
info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
@@ -121,7 +153,7 @@ contract RegistryService is
|
|
121
153
|
)
|
122
154
|
{
|
123
155
|
if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
124
|
-
revert
|
156
|
+
revert ErrorRegistryServiceNotDistribution(address(distribution));
|
125
157
|
}
|
126
158
|
|
127
159
|
info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
@@ -143,7 +175,6 @@ contract RegistryService is
|
|
143
175
|
returns(NftId nftId)
|
144
176
|
{
|
145
177
|
_verifyObjectInfo(info, POLICY());
|
146
|
-
|
147
178
|
nftId = getRegistry().register(info);
|
148
179
|
}
|
149
180
|
|
@@ -153,7 +184,6 @@ contract RegistryService is
|
|
153
184
|
returns(NftId nftId)
|
154
185
|
{
|
155
186
|
_verifyObjectInfo(info, BUNDLE());
|
156
|
-
|
157
187
|
nftId = getRegistry().register(info);
|
158
188
|
}
|
159
189
|
|
@@ -163,59 +193,9 @@ contract RegistryService is
|
|
163
193
|
returns(NftId nftId)
|
164
194
|
{
|
165
195
|
_verifyObjectInfo(info, STAKE());
|
166
|
-
|
167
196
|
nftId = getRegistry().register(info);
|
168
197
|
}
|
169
198
|
|
170
|
-
// from IRegisterable
|
171
|
-
|
172
|
-
function getFunctionConfigs()
|
173
|
-
external
|
174
|
-
pure
|
175
|
-
returns(
|
176
|
-
FunctionConfig[] memory config
|
177
|
-
)
|
178
|
-
{
|
179
|
-
config = new FunctionConfig[](8);
|
180
|
-
|
181
|
-
// order of service registrations MUST be reverse to this array
|
182
|
-
/*config[-1].serviceDomain = STAKE();
|
183
|
-
config[-1].selector = RegistryService.registerStake.selector;*/
|
184
|
-
|
185
|
-
config[0].serviceDomain = POLICY();
|
186
|
-
config[0].selectors = new bytes4[](0);
|
187
|
-
|
188
|
-
config[1].serviceDomain = APPLICATION();
|
189
|
-
config[1].selectors = new bytes4[](1);
|
190
|
-
config[1].selectors[0] = RegistryService.registerPolicy.selector;
|
191
|
-
|
192
|
-
config[2].serviceDomain = CLAIM();
|
193
|
-
config[2].selectors = new bytes4[](0);
|
194
|
-
|
195
|
-
config[3].serviceDomain = PRODUCT();
|
196
|
-
config[3].selectors = new bytes4[](1);
|
197
|
-
config[3].selectors[0] = RegistryService.registerProduct.selector;
|
198
|
-
|
199
|
-
config[4].serviceDomain = POOL();
|
200
|
-
config[4].selectors = new bytes4[](1);
|
201
|
-
config[4].selectors[0] = RegistryService.registerPool.selector;
|
202
|
-
|
203
|
-
// registration of bundle service must preceed registration of pool service
|
204
|
-
config[5].serviceDomain = BUNDLE();
|
205
|
-
config[5].selectors = new bytes4[](1);
|
206
|
-
config[5].selectors[0] = RegistryService.registerBundle.selector;
|
207
|
-
|
208
|
-
config[6].serviceDomain = DISTRIBUTION();
|
209
|
-
config[6].selectors = new bytes4[](2);
|
210
|
-
config[6].selectors[0] = RegistryService.registerDistribution.selector;
|
211
|
-
config[6].selectors[1] = RegistryService.registerDistributor.selector;
|
212
|
-
|
213
|
-
// registerInstance() have no restriction
|
214
|
-
config[7].serviceDomain = INSTANCE();
|
215
|
-
config[7].selectors = new bytes4[](1);
|
216
|
-
config[7].selectors[0] = RegistryService.registerInstance.selector;
|
217
|
-
}
|
218
|
-
|
219
199
|
// Internal
|
220
200
|
|
221
201
|
function _getAndVerifyContractInfo(
|
@@ -224,34 +204,37 @@ contract RegistryService is
|
|
224
204
|
address expectedOwner // assume can be 0 when given by other service
|
225
205
|
)
|
226
206
|
internal
|
227
|
-
|
207
|
+
view
|
228
208
|
returns(
|
229
209
|
IRegistry.ObjectInfo memory info
|
230
210
|
)
|
231
211
|
{
|
232
212
|
info = registerable.getInitialInfo();
|
233
|
-
|
213
|
+
|
214
|
+
if(info.objectAddress != address(registerable)) {
|
215
|
+
revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
|
216
|
+
}
|
234
217
|
|
235
218
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
236
|
-
revert
|
219
|
+
revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
|
237
220
|
}
|
238
221
|
|
239
222
|
address owner = info.initialOwner;
|
240
223
|
|
241
224
|
if(owner != expectedOwner) { // registerable owner protection
|
242
|
-
revert
|
225
|
+
revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
|
243
226
|
}
|
244
227
|
|
245
228
|
if(owner == address(registerable)) {
|
246
|
-
revert
|
229
|
+
revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
|
247
230
|
}
|
248
231
|
|
249
232
|
if(owner == address(0)) {
|
250
|
-
revert
|
233
|
+
revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
|
251
234
|
}
|
252
235
|
|
253
236
|
if(getRegistry().isRegistered(owner)) {
|
254
|
-
revert
|
237
|
+
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
|
255
238
|
}
|
256
239
|
}
|
257
240
|
|
@@ -262,21 +245,22 @@ contract RegistryService is
|
|
262
245
|
internal
|
263
246
|
view
|
264
247
|
{
|
265
|
-
|
266
|
-
|
248
|
+
if(info.objectAddress > address(0)) {
|
249
|
+
revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
|
250
|
+
}
|
267
251
|
|
268
252
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
269
|
-
revert
|
253
|
+
revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
|
270
254
|
}
|
271
255
|
|
272
256
|
address owner = info.initialOwner;
|
273
257
|
|
274
258
|
if(owner == address(0)) {
|
275
|
-
revert
|
259
|
+
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
276
260
|
}
|
277
261
|
|
278
262
|
if(getRegistry().isRegistered(owner)) {
|
279
|
-
revert
|
263
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
280
264
|
}
|
281
265
|
}
|
282
|
-
}
|
266
|
+
}
|
@@ -1,10 +1,8 @@
|
|
1
|
-
// SPDX-License-Identifier:
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
5
|
|
6
|
-
import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
|
7
|
-
|
8
6
|
import {Registry} from "./Registry.sol";
|
9
7
|
import {IVersionable} from "../shared/IVersionable.sol";
|
10
8
|
import {ProxyManager} from "../shared/ProxyManager.sol";
|
@@ -15,39 +13,37 @@ import {TokenRegistry} from "./TokenRegistry.sol";
|
|
15
13
|
contract RegistryServiceManager is
|
16
14
|
ProxyManager
|
17
15
|
{
|
16
|
+
error ErrorRegistryAccessManagerAuthorityZero();
|
17
|
+
error ErrorRegistryAccessManagerRegistryZero();
|
18
|
+
|
18
19
|
bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
|
19
20
|
|
20
21
|
RegistryService private immutable _registryService;
|
21
22
|
|
22
23
|
/// @dev initializes proxy manager with registry service implementation and deploys registry
|
23
24
|
constructor(
|
24
|
-
address
|
25
|
-
address
|
26
|
-
|
25
|
+
address authority, // used by implementation
|
26
|
+
address registry, // used by implementation
|
27
|
+
bytes32 salt
|
28
|
+
)
|
29
|
+
ProxyManager(registry)
|
27
30
|
{
|
28
|
-
|
29
|
-
|
31
|
+
if(authority == address(0)) {
|
32
|
+
revert ErrorRegistryAccessManagerAuthorityZero();
|
33
|
+
}
|
34
|
+
|
35
|
+
if(registry == address(0)) {
|
36
|
+
revert ErrorRegistryAccessManagerRegistryZero();
|
37
|
+
}
|
30
38
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
IVersionable versionable = deploy(
|
39
|
+
RegistryService srv = new RegistryService{ salt: salt }();
|
40
|
+
bytes memory data = abi.encode(registry, authority);
|
41
|
+
IVersionable versionable = deployDetermenistic(
|
35
42
|
address(srv),
|
36
|
-
data
|
43
|
+
data,
|
44
|
+
salt);
|
37
45
|
|
38
46
|
_registryService = RegistryService(address(versionable));
|
39
|
-
|
40
|
-
// _linkToNftOwnable(address(_registryService));
|
41
|
-
}
|
42
|
-
|
43
|
-
// // from IRegisterable
|
44
|
-
|
45
|
-
// // IMPORTANT: registry here and in constructor MUST be the same
|
46
|
-
function linkOwnershipToServiceNft()
|
47
|
-
public
|
48
|
-
onlyOwner
|
49
|
-
{
|
50
|
-
_linkToNftOwnable(address(_registryService));
|
51
47
|
}
|
52
48
|
|
53
49
|
//--- view functions ----------------------------------------------------//
|