@etherisc/gif-next 0.0.2-ec436bf-674 → 0.0.2-ed1536c-164
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 +71 -14
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1410 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1343 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +799 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +969 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +808 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +454 -554
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +356 -176
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +458 -3052
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +612 -181
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +504 -322
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +524 -352
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +331 -108
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -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/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +71 -45
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
- 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 +1091 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +294 -361
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1148 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +231 -204
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +701 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +257 -288
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +989 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → product/IProductService.sol/IProductService.json} +140 -86
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1391 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +340 -195
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +434 -194
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +429 -261
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +322 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +499 -338
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +320 -140
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1151 -0
- 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 +352 -109
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +890 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +196 -216
- 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/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +625 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +699 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -1
- 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 +27 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +35 -0
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +84 -178
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -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 +109 -29
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -53
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +185 -165
- 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/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → staking/IStakingManager.sol/IStakingManager.json} +10 -10
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +884 -0
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +357 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +402 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2002 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +748 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1207 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1690 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +494 -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 +281 -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/type/ClaimId.sol/ClaimIdLib.json +179 -0
- 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 +185 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- 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/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- 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 +174 -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 +39 -8
- 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/distribution/Distribution.sol +263 -0
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/distribution/DistributionServiceManager.sol +54 -0
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/IInstance.sol +62 -24
- package/contracts/instance/IInstanceService.sol +66 -13
- package/contracts/instance/Instance.sol +151 -366
- package/contracts/instance/InstanceAccessManager.sol +432 -177
- package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
- package/contracts/instance/InstanceReader.sol +143 -83
- package/contracts/instance/InstanceService.sol +309 -124
- package/contracts/instance/InstanceServiceManager.sol +12 -24
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/base/Cloneable.sol +51 -0
- package/contracts/instance/base/ObjectManager.sol +82 -0
- package/contracts/instance/module/IAccess.sol +37 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +147 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +424 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +437 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/product/IPolicyService.sol +78 -0
- 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 +473 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +14 -0
- package/contracts/registry/IRegistry.sol +76 -45
- package/contracts/registry/IRegistryService.sol +51 -16
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +358 -269
- package/contracts/registry/RegistryAccessManager.sol +196 -0
- package/contracts/registry/RegistryService.sol +126 -259
- package/contracts/registry/RegistryServiceManager.sol +34 -42
- package/contracts/registry/ReleaseManager.sol +563 -0
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +300 -57
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +286 -0
- package/contracts/shared/ComponentService.sol +595 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/IComponent.sol +74 -0
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +12 -11
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +7 -4
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InstanceLinkedComponent.sol +145 -0
- package/contracts/shared/KeyValueStore.sol +130 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +65 -83
- package/contracts/shared/PolicyHolder.sol +101 -0
- package/contracts/shared/ProxyManager.sol +126 -25
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +45 -23
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +152 -0
- package/contracts/staking/IStakingManager.sol +15 -0
- package/contracts/staking/IStakingService.sol +162 -0
- package/contracts/staking/IStakingStore.sol +130 -0
- package/contracts/staking/StakeManagerLib.sol +156 -0
- package/contracts/staking/Staking.sol +502 -0
- package/contracts/staking/StakingManager.sol +65 -0
- package/contracts/staking/StakingReader.sol +147 -0
- package/contracts/staking/StakingService.sol +375 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +329 -0
- package/contracts/staking/TargetManagerLib.sol +179 -0
- package/contracts/type/Amount.sol +114 -0
- package/contracts/{types → type}/Blocknumber.sol +20 -2
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +32 -22
- package/contracts/{types → type}/NftId.sol +17 -11
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/{types → type}/ObjectType.sol +26 -9
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +4 -0
- package/contracts/type/RoleId.sol +143 -0
- package/contracts/type/Seconds.sol +71 -0
- package/contracts/{types → type}/StateId.sol +24 -6
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -775
- 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/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- 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/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- 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 -113
- 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 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- 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/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -448
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- 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/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -855
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- 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 -305
- 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 -600
- 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 -286
- 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/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/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 -257
- 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 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
- 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/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- 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/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/BaseComponent.sol +0 -91
- package/contracts/components/Distribution.sol +0 -160
- package/contracts/components/IBaseComponent.sol +0 -25
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -243
- package/contracts/components/Product.sol +0 -297
- 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/AccessManagedSimple.sol +0 -115
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/base/ComponentServiceBase.sol +0 -118
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -44
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -87
- package/contracts/instance/service/DistributionServiceManager.sol +0 -53
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -37
- package/contracts/instance/service/IProductService.sol +0 -107
- package/contracts/instance/service/PoolService.sol +0 -193
- package/contracts/instance/service/PoolServiceManager.sol +0 -53
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- 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 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -89
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -2,219 +2,172 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
// import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
6
6
|
|
7
7
|
import {IRegistry} from "./IRegistry.sol";
|
8
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
9
|
|
10
|
-
import {
|
11
|
-
|
12
|
-
|
13
|
-
import {
|
14
|
-
import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
|
15
|
-
import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
|
16
|
-
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";
|
17
14
|
|
18
15
|
import {IVersionable} from "../../contracts/shared/IVersionable.sol";
|
19
16
|
import {Versionable} from "../../contracts/shared/Versionable.sol";
|
20
17
|
import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
18
|
+
import {Registerable} from "../../contracts/shared/Registerable.sol";
|
21
19
|
|
22
|
-
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/
|
23
|
-
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, POLICY, BUNDLE} from "../../contracts/
|
24
|
-
import {StateId, ACTIVE, PAUSED} from "../../contracts/
|
25
|
-
import {NftId, NftIdLib
|
26
|
-
import {Fee, FeeLib} from "../../contracts/
|
27
|
-
import {Version, VersionPart, VersionLib} from "../../contracts/
|
20
|
+
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
|
21
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
|
22
|
+
import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
|
23
|
+
import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
|
24
|
+
import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
|
25
|
+
import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
|
28
26
|
|
29
27
|
import {Service} from "../shared/Service.sol";
|
30
28
|
import {IService} from "../shared/IService.sol";
|
31
29
|
import {IRegistryService} from "./IRegistryService.sol";
|
32
30
|
import {Registry} from "./Registry.sol";
|
33
|
-
import {ChainNft} from "./ChainNft.sol";
|
34
31
|
|
35
32
|
contract RegistryService is
|
36
|
-
AccessManagedUpgradeable,
|
37
33
|
Service,
|
38
34
|
IRegistryService
|
39
35
|
{
|
40
36
|
using NftIdLib for NftId;
|
41
37
|
|
42
|
-
// TODO
|
43
|
-
|
44
|
-
error NotRegistryOwner();
|
38
|
+
// TODO update to real hash when registry is stable
|
39
|
+
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
45
40
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
error NotDistribution();
|
41
|
+
// From IService
|
42
|
+
function getDomain() public pure override returns(ObjectType serviceDomain) {
|
43
|
+
return REGISTRY();
|
44
|
+
}
|
51
45
|
|
52
|
-
|
53
|
-
error NotRegisterableOwner(address expectedOwner);
|
54
|
-
error RegisterableOwnerIsZero();
|
55
|
-
error RegisterableOwnerIsRegistered();
|
56
|
-
error InvalidInitialOwner(address initialOwner);
|
57
|
-
error InvalidAddress(address registerableAddress);
|
46
|
+
// from Versionable
|
58
47
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
48
|
+
/// @dev top level initializer
|
49
|
+
function _initialize(
|
50
|
+
address owner,
|
51
|
+
bytes memory data
|
52
|
+
)
|
53
|
+
internal
|
54
|
+
virtual override
|
55
|
+
initializer()
|
56
|
+
{
|
57
|
+
(
|
58
|
+
address registryAddress,
|
59
|
+
address initialAuthority
|
60
|
+
) = abi.decode(data, (address, address));
|
63
61
|
|
64
|
-
|
65
|
-
|
62
|
+
initializeService(registryAddress, initialAuthority, owner);
|
63
|
+
registerInterface(type(IRegistryService).interfaceId);
|
64
|
+
}
|
66
65
|
|
67
|
-
address public constant NFT_LOCK_ADDRESS = address(0x1);
|
68
66
|
|
69
|
-
|
70
|
-
// msg.sender - ONLY registry owner
|
71
|
-
// CAN NOT register itself
|
72
|
-
// CAN register ONLY valid object-parent types combinations for SERVICE
|
73
|
-
// CAN register ONLY IRegisterable address he owns
|
74
|
-
// IMPORTANT: MUST NOT check owner before calling external contract
|
75
|
-
function registerService(IService service)
|
67
|
+
function registerStaking(IRegisterable staking, address owner)
|
76
68
|
external
|
77
|
-
|
78
|
-
|
79
|
-
|
69
|
+
virtual
|
70
|
+
restricted()
|
80
71
|
returns(
|
81
|
-
IRegistry.ObjectInfo memory info
|
82
|
-
|
83
|
-
)
|
72
|
+
IRegistry.ObjectInfo memory info
|
73
|
+
)
|
84
74
|
{
|
85
|
-
|
86
|
-
|
87
|
-
if(!service.supportsInterface(type(IService).interfaceId)) {
|
88
|
-
revert NotService();
|
89
|
-
}
|
90
|
-
|
91
|
-
(
|
92
|
-
info,
|
93
|
-
data
|
94
|
-
) = _getAndVerifyContractInfo(service, SERVICE(), msg.sender);
|
95
|
-
|
96
|
-
info.nftId = _registry.register(info);
|
97
|
-
service.linkToRegisteredNftId();
|
98
|
-
return (
|
99
|
-
info,
|
100
|
-
data
|
101
|
-
);
|
75
|
+
info = _getAndVerifyContractInfo(staking, STAKING(), owner);
|
76
|
+
info.nftId = getRegistry().register(info);
|
102
77
|
}
|
103
78
|
|
104
|
-
|
105
|
-
|
106
|
-
// 2) check service allowance
|
107
|
-
// 3) comment self registrstion check
|
108
|
-
//function registerInstance(IRegisterable instance, address owner)
|
109
|
-
function registerInstance(IRegisterable instance)
|
79
|
+
|
80
|
+
function registerInstance(IRegisterable instance, address owner)
|
110
81
|
external
|
82
|
+
virtual
|
83
|
+
restricted
|
111
84
|
returns(
|
112
|
-
IRegistry.ObjectInfo memory info
|
113
|
-
bytes memory data
|
85
|
+
IRegistry.ObjectInfo memory info
|
114
86
|
)
|
115
87
|
{
|
116
88
|
if(!instance.supportsInterface(type(IInstance).interfaceId)) {
|
117
|
-
revert
|
89
|
+
revert ErrorRegistryServiceNotInstance(address(instance));
|
118
90
|
}
|
119
91
|
|
120
|
-
(
|
121
|
-
|
122
|
-
data
|
123
|
-
) = _getAndVerifyContractInfo(instance, INSTANCE(), msg.sender);
|
92
|
+
info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
|
93
|
+
info.nftId = getRegistry().register(info);
|
124
94
|
|
125
|
-
info.nftId = _registry.register(info);
|
126
95
|
instance.linkToRegisteredNftId(); // asume safe
|
127
|
-
|
128
|
-
return (
|
129
|
-
info,
|
130
|
-
data
|
131
|
-
);
|
132
96
|
}
|
133
97
|
|
134
|
-
function registerProduct(
|
98
|
+
function registerProduct(IComponent product, address owner)
|
135
99
|
external
|
136
100
|
restricted
|
137
101
|
returns(
|
138
|
-
IRegistry.ObjectInfo memory info
|
139
|
-
bytes memory data
|
102
|
+
IRegistry.ObjectInfo memory info
|
140
103
|
)
|
141
104
|
{
|
142
105
|
// CAN revert if no ERC165 support -> will revert with empty message
|
143
106
|
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
144
|
-
revert
|
107
|
+
revert ErrorRegistryServiceNotProduct(address(product));
|
145
108
|
}
|
146
109
|
|
147
|
-
(
|
148
|
-
|
149
|
-
|
150
|
-
) = _getAndVerifyContractInfo(product, PRODUCT(), owner);
|
151
|
-
|
152
|
-
NftId serviceNftId = _registry.getNftId(msg.sender);
|
110
|
+
info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
|
111
|
+
info.nftId = getRegistry().register(info);
|
112
|
+
}
|
153
113
|
|
154
|
-
|
155
|
-
|
156
|
-
|
114
|
+
function registerComponent(
|
115
|
+
IComponent component,
|
116
|
+
ObjectType objectType,
|
117
|
+
address initialOwner
|
118
|
+
)
|
119
|
+
external
|
120
|
+
restricted
|
121
|
+
returns(
|
122
|
+
IRegistry.ObjectInfo memory info
|
123
|
+
)
|
124
|
+
{
|
125
|
+
// CAN revert if no ERC165 support -> will revert with empty message
|
126
|
+
if(!component.supportsInterface(type(IComponent).interfaceId)) {
|
127
|
+
revert ErrorRegistryServiceNotComponent(address(component));
|
128
|
+
}
|
157
129
|
|
158
|
-
|
159
|
-
|
160
|
-
data
|
161
|
-
);
|
130
|
+
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
131
|
+
info.nftId = getRegistry().register(info);
|
162
132
|
}
|
163
133
|
|
164
|
-
function registerPool(
|
134
|
+
function registerPool(IComponent pool, address owner)
|
165
135
|
external
|
166
136
|
restricted
|
167
137
|
returns(
|
168
|
-
IRegistry.ObjectInfo memory info
|
169
|
-
bytes memory data
|
138
|
+
IRegistry.ObjectInfo memory info
|
170
139
|
)
|
171
140
|
{
|
172
141
|
if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
173
|
-
revert
|
142
|
+
revert ErrorRegistryServiceNotPool(address(pool));
|
174
143
|
}
|
175
144
|
|
176
|
-
(
|
177
|
-
|
178
|
-
data
|
179
|
-
) = _getAndVerifyContractInfo(pool, POOL(), owner);
|
180
|
-
|
181
|
-
NftId serviceNftId = _registry.getNftId(msg.sender);
|
182
|
-
|
183
|
-
info.nftId = _registry.register(info);
|
184
|
-
pool.linkToRegisteredNftId();
|
185
|
-
|
186
|
-
return (
|
187
|
-
info,
|
188
|
-
data
|
189
|
-
);
|
145
|
+
info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
146
|
+
info.nftId = getRegistry().register(info);
|
190
147
|
}
|
191
148
|
|
192
|
-
function registerDistribution(
|
149
|
+
function registerDistribution(IComponent distribution, address owner)
|
193
150
|
external
|
194
151
|
restricted
|
195
152
|
returns(
|
196
|
-
IRegistry.ObjectInfo memory info
|
197
|
-
bytes memory data
|
153
|
+
IRegistry.ObjectInfo memory info
|
198
154
|
)
|
199
155
|
{
|
200
156
|
if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
201
|
-
revert
|
157
|
+
revert ErrorRegistryServiceNotDistribution(address(distribution));
|
202
158
|
}
|
203
159
|
|
204
|
-
(
|
205
|
-
|
206
|
-
|
207
|
-
) = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
208
|
-
|
209
|
-
NftId serviceNftId = _registry.getNftId(msg.sender);
|
210
|
-
|
211
|
-
info.nftId = _registry.register(info);
|
212
|
-
distribution.linkToRegisteredNftId();
|
160
|
+
info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
161
|
+
info.nftId = getRegistry().register(info);
|
162
|
+
}
|
213
163
|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
)
|
164
|
+
function registerDistributor(IRegistry.ObjectInfo memory info)
|
165
|
+
external
|
166
|
+
restricted
|
167
|
+
returns(NftId nftId)
|
168
|
+
{
|
169
|
+
_verifyObjectInfo(info, DISTRIBUTOR());
|
170
|
+
nftId = getRegistry().register(info);
|
218
171
|
}
|
219
172
|
|
220
173
|
function registerPolicy(IRegistry.ObjectInfo memory info)
|
@@ -222,11 +175,8 @@ contract RegistryService is
|
|
222
175
|
restricted
|
223
176
|
returns(NftId nftId)
|
224
177
|
{
|
225
|
-
NftId senderNftId = _registry.getNftId(msg.sender);
|
226
|
-
|
227
178
|
_verifyObjectInfo(info, POLICY());
|
228
|
-
|
229
|
-
nftId = _registry.register(info);
|
179
|
+
nftId = getRegistry().register(info);
|
230
180
|
}
|
231
181
|
|
232
182
|
function registerBundle(IRegistry.ObjectInfo memory info)
|
@@ -234,166 +184,83 @@ contract RegistryService is
|
|
234
184
|
restricted
|
235
185
|
returns(NftId nftId)
|
236
186
|
{
|
237
|
-
|
238
|
-
NftId senderNftId = _registry.getNftId(msg.sender);
|
239
|
-
|
240
187
|
_verifyObjectInfo(info, BUNDLE());
|
241
|
-
|
242
|
-
nftId = _registry.register(info);
|
243
|
-
}
|
244
|
-
|
245
|
-
|
246
|
-
// From IService
|
247
|
-
function getName() public pure override(IService, Service) returns(string memory) {
|
248
|
-
return NAME;
|
188
|
+
nftId = getRegistry().register(info);
|
249
189
|
}
|
250
|
-
//function getType() public pure override(IService, ServiceBase) returns(ObjectType serviceType) {
|
251
|
-
// return SERVICE_TYPE;
|
252
|
-
//}
|
253
|
-
|
254
190
|
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
// 2) deploy registry service first -> from its initialization func it is easier to deploy registry then vice versa
|
260
|
-
// 3) deploy registry -> pass registry service address as constructor argument
|
261
|
-
// registry is getting instantiated and locked to registry service address forever
|
262
|
-
function _initialize(
|
263
|
-
address owner,
|
264
|
-
bytes memory data
|
265
|
-
)
|
266
|
-
internal
|
267
|
-
initializer
|
268
|
-
virtual override
|
191
|
+
function registerStake(IRegistry.ObjectInfo memory info)
|
192
|
+
external
|
193
|
+
restricted
|
194
|
+
returns(NftId nftId)
|
269
195
|
{
|
270
|
-
(
|
271
|
-
|
272
|
-
bytes memory registryByteCodeWithInitCode
|
273
|
-
) = abi.decode(data, (address, bytes));
|
274
|
-
|
275
|
-
__AccessManaged_init(initialAuthority);
|
276
|
-
|
277
|
-
bytes memory encodedConstructorArguments = abi.encode(
|
278
|
-
owner,
|
279
|
-
getMajorVersion());
|
280
|
-
|
281
|
-
bytes memory registryCreationCode = ContractDeployerLib.getCreationCode(
|
282
|
-
registryByteCodeWithInitCode,
|
283
|
-
encodedConstructorArguments);
|
284
|
-
|
285
|
-
IRegistry registry = IRegistry(ContractDeployerLib.deploy(
|
286
|
-
registryCreationCode,
|
287
|
-
REGISTRY_CREATION_CODE_HASH));
|
288
|
-
|
289
|
-
NftId registryNftId = registry.getNftId(address(registry));
|
290
|
-
|
291
|
-
_initializeService(address(registry), owner);
|
292
|
-
|
293
|
-
// TODO why do registry service proxy need to keep its nftId??? -> no registryServiceNftId checks in implementation
|
294
|
-
// if they are -> use registry address to obtain owner of registry service nft (works the same with any registerable and(or) implementation)
|
295
|
-
linkToRegisteredNftId();
|
296
|
-
_registerInterface(type(IRegistryService).interfaceId);
|
196
|
+
_verifyObjectInfo(info, STAKE());
|
197
|
+
nftId = getRegistry().register(info);
|
297
198
|
}
|
298
199
|
|
299
|
-
//
|
200
|
+
// Internal
|
201
|
+
|
300
202
|
function _getAndVerifyContractInfo(
|
301
203
|
IRegisterable registerable,
|
302
204
|
ObjectType expectedType, // assume can be valid only
|
303
|
-
address expectedOwner // assume can be 0
|
205
|
+
address expectedOwner // assume can be 0 when given by other service
|
304
206
|
)
|
305
207
|
internal
|
306
208
|
view
|
307
209
|
returns(
|
308
|
-
IRegistry.ObjectInfo memory info
|
309
|
-
bytes memory data
|
210
|
+
IRegistry.ObjectInfo memory info
|
310
211
|
)
|
311
212
|
{
|
312
|
-
(
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
213
|
+
info = registerable.getInitialInfo();
|
214
|
+
|
215
|
+
if(info.objectAddress != address(registerable)) {
|
216
|
+
revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
|
217
|
+
}
|
317
218
|
|
318
219
|
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
319
|
-
revert
|
220
|
+
revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
|
320
221
|
}
|
321
222
|
|
322
223
|
address owner = info.initialOwner;
|
323
224
|
|
324
|
-
//
|
325
|
-
|
326
|
-
// any address may create a new instance via instance service
|
327
|
-
} else {
|
328
|
-
if(owner != expectedOwner) { // registerable owner protection
|
329
|
-
revert NotRegisterableOwner(expectedOwner);
|
330
|
-
}
|
225
|
+
if(owner != expectedOwner) { // registerable owner protection
|
226
|
+
revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
|
331
227
|
}
|
332
228
|
|
333
229
|
if(owner == address(registerable)) {
|
334
|
-
revert
|
230
|
+
revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
|
335
231
|
}
|
336
232
|
|
337
233
|
if(owner == address(0)) {
|
338
|
-
revert
|
234
|
+
revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
|
339
235
|
}
|
340
236
|
|
341
237
|
if(getRegistry().isRegistered(owner)) {
|
342
|
-
revert
|
238
|
+
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
|
343
239
|
}
|
344
|
-
|
345
|
-
/*NftId parentNftId = info.parentNftId;
|
346
|
-
IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
|
347
|
-
|
348
|
-
if(parentInfo.objectType != parentType) { // parent registration + type
|
349
|
-
revert InvalidParent(parentNftId);
|
350
|
-
}*/
|
351
|
-
|
352
|
-
return(
|
353
|
-
info,
|
354
|
-
data
|
355
|
-
);
|
356
240
|
}
|
357
241
|
|
358
|
-
// parent checks done in registry because of approve()
|
359
242
|
function _verifyObjectInfo(
|
360
243
|
IRegistry.ObjectInfo memory info,
|
361
|
-
ObjectType
|
244
|
+
ObjectType expectedType
|
362
245
|
)
|
363
246
|
internal
|
364
247
|
view
|
365
248
|
{
|
366
|
-
|
367
|
-
|
368
|
-
}
|
249
|
+
// enforce instead of check
|
250
|
+
info.objectAddress = address(0);
|
369
251
|
|
370
|
-
if(
|
371
|
-
|
372
|
-
info.initialOwner == address(0)) {
|
373
|
-
// TODO non registered address can register object(e.g. POLICY()) and then transfer associated nft to registered contract
|
374
|
-
// what are motivations to do so?
|
375
|
-
// at least registered contract can not register objects by itself, SERVICE,
|
376
|
-
revert InvalidInitialOwner(info.initialOwner);
|
252
|
+
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
253
|
+
revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
|
377
254
|
}
|
378
255
|
|
379
|
-
|
380
|
-
/*if(info.initialOwner == msg.sender) {
|
381
|
-
revert InitialOwnerIsParent();
|
382
|
-
}
|
256
|
+
address owner = info.initialOwner;
|
383
257
|
|
384
|
-
if(
|
385
|
-
revert
|
258
|
+
if(owner == address(0)) {
|
259
|
+
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
386
260
|
}
|
387
261
|
|
388
|
-
if(
|
389
|
-
revert
|
390
|
-
}
|
391
|
-
|
392
|
-
/*NftId parentNftId = info.parentNftId;
|
393
|
-
IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
|
394
|
-
|
395
|
-
if(parentInfo.objectType != parentType) { // parent registration + type
|
396
|
-
revert InvalidParent(parentNftId);
|
397
|
-
}*/
|
262
|
+
if(getRegistry().isRegistered(owner)) {
|
263
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
264
|
+
}
|
398
265
|
}
|
399
|
-
}
|
266
|
+
}
|
@@ -2,8 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
|
-
|
6
|
-
import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
|
5
|
+
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
|
7
6
|
|
8
7
|
import {Registry} from "./Registry.sol";
|
9
8
|
import {IVersionable} from "../shared/IVersionable.sol";
|
@@ -15,53 +14,54 @@ import {TokenRegistry} from "./TokenRegistry.sol";
|
|
15
14
|
contract RegistryServiceManager is
|
16
15
|
ProxyManager
|
17
16
|
{
|
17
|
+
error ErrorRegistryAccessManagerAuthorityZero();
|
18
|
+
error ErrorRegistryAccessManagerRegistryZero();
|
19
|
+
|
18
20
|
bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
|
19
21
|
|
20
|
-
|
21
|
-
RegistryService private _registryService;
|
22
|
-
TokenRegistry private _tokenRegistry;
|
22
|
+
RegistryService private immutable _registryService;
|
23
23
|
|
24
24
|
/// @dev initializes proxy manager with registry service implementation and deploys registry
|
25
25
|
constructor(
|
26
|
-
address
|
27
|
-
|
28
|
-
|
26
|
+
address authority, // used by implementation
|
27
|
+
address registry, // used by implementation
|
28
|
+
bytes32 salt
|
29
|
+
)
|
30
|
+
ProxyManager(registry)
|
29
31
|
{
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
32
|
+
if(authority == address(0)) {
|
33
|
+
revert ErrorRegistryAccessManagerAuthorityZero();
|
34
|
+
}
|
35
|
+
|
36
|
+
if(registry == address(0)) {
|
37
|
+
revert ErrorRegistryAccessManagerRegistryZero();
|
38
|
+
}
|
39
|
+
|
40
|
+
// implementation's initializer func `data` argument
|
41
|
+
RegistryService srv = new RegistryService{ salt: salt }();
|
42
|
+
bytes memory data = abi.encode(registry, authority);
|
43
|
+
IVersionable versionable = deployDetermenistic(
|
44
|
+
address(srv),
|
45
|
+
data,
|
46
|
+
salt);
|
37
47
|
|
38
48
|
_registryService = RegistryService(address(versionable));
|
39
49
|
|
40
|
-
|
41
|
-
_linkToNftOwnable(
|
42
|
-
address(_registryService.getRegistry()),
|
43
|
-
address(_registryService));
|
44
|
-
|
45
|
-
// deploy token registry
|
46
|
-
|
47
|
-
// _tokenRegistry = new TokenRegistry(
|
48
|
-
// address(_registryService.getRegistry()),
|
49
|
-
// address(_registryService));
|
50
|
-
|
51
|
-
// implies that after this constructor call only upgrade functionality is available
|
52
|
-
_isDeployed = true;
|
50
|
+
// _linkToNftOwnable(address(_registryService));
|
53
51
|
}
|
54
52
|
|
55
|
-
|
53
|
+
// // from IRegisterable
|
56
54
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
55
|
+
// // IMPORTANT: registry here and in constructor MUST be the same
|
56
|
+
function linkOwnershipToServiceNft()
|
57
|
+
public
|
58
|
+
onlyOwner
|
61
59
|
{
|
62
|
-
|
60
|
+
_linkToNftOwnable(address(_registryService));
|
63
61
|
}
|
64
62
|
|
63
|
+
//--- view functions ----------------------------------------------------//
|
64
|
+
|
65
65
|
function getRegistryService()
|
66
66
|
external
|
67
67
|
view
|
@@ -69,12 +69,4 @@ contract RegistryServiceManager is
|
|
69
69
|
{
|
70
70
|
return _registryService;
|
71
71
|
}
|
72
|
-
|
73
|
-
function getTokenRegistry()
|
74
|
-
external
|
75
|
-
view
|
76
|
-
returns (TokenRegistry)
|
77
|
-
{
|
78
|
-
return _tokenRegistry;
|
79
|
-
}
|
80
72
|
}
|