@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-eadf4ad-211
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 +6 -12
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +61 -14
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +819 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +45 -14
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +24 -274
- 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 +93 -13
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -43
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +109 -29
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +6 -6
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +349 -64
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +49 -278
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -133
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +427 -257
- 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/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +61 -12
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +8 -8
- 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/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/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +735 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +105 -29
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +56 -25
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +272 -39
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +56 -25
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +747 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +687 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -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/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +119 -101
- 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/{instance/service → product}/IPolicyService.sol/IPolicyService.json +129 -84
- 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} +63 -175
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +53 -22
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +6 -14
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +779 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +727 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/Product.sol/Product.json +53 -22
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +679 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +73 -13
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +154 -60
- 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 +97 -29
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +50 -97
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +174 -80
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +78 -47
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +369 -82
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +38 -7
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +38 -14
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +38 -7
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +5 -13
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +8 -21
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +49 -33
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -21
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +5 -13
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -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/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +667 -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/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
- 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/{types → type}/NftId.sol/NftIdLib.json +5 -5
- 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/type/PayoutId.sol/PayoutIdLib.json +209 -0
- 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/{types → type}/Seconds.sol/SecondsLib.json +3 -3
- 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 +20 -7
- 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 +21 -16
- package/contracts/{instance/service → distribution}/DistributionService.sol +93 -179
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +14 -11
- package/contracts/{components → distribution}/IDistributionComponent.sol +7 -7
- package/contracts/{instance/service → distribution}/IDistributionService.sol +18 -30
- package/contracts/instance/BundleManager.sol +8 -9
- package/contracts/instance/IInstance.sol +30 -13
- package/contracts/instance/IInstanceService.sol +6 -17
- package/contracts/instance/Instance.sol +76 -46
- package/contracts/instance/InstanceAccessManager.sol +8 -5
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +91 -16
- package/contracts/instance/InstanceService.sol +78 -307
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +57 -65
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
- package/contracts/instance/base/IKeyValueStore.sol +14 -10
- package/contracts/instance/base/ILifecycle.sol +3 -3
- package/contracts/instance/base/KeyValueStore.sol +32 -43
- package/contracts/instance/base/Lifecycle.sol +17 -5
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -7
- package/contracts/instance/module/IAccess.sol +2 -2
- package/contracts/instance/module/IBundle.sol +5 -5
- package/contracts/instance/module/IComponents.sol +8 -8
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +22 -16
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/instance/module/ISetup.sol +4 -4
- package/contracts/instance/module/ITreasury.sol +2 -2
- package/contracts/{instance/service → pool}/BundleService.sol +108 -155
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +43 -18
- package/contracts/{components → pool}/IPoolComponent.sol +14 -13
- package/contracts/{instance/service → pool}/IPoolService.sol +28 -13
- package/contracts/{components → pool}/Pool.sol +20 -21
- package/contracts/{instance/service → pool}/PoolService.sol +160 -59
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +187 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/ClaimService.sol +443 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +14 -34
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/{instance/service → product}/IPolicyService.sol +34 -26
- package/contracts/product/IPricingService.sol +37 -0
- package/contracts/{components → product}/IProductComponent.sol +11 -10
- package/contracts/{instance/service → product}/IProductService.sol +10 -10
- package/contracts/{instance/service → product}/PolicyService.sol +154 -138
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +276 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/{components → product}/Product.sol +160 -74
- package/contracts/{instance/service → product}/ProductService.sol +50 -47
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/IRegistry.sol +23 -16
- package/contracts/registry/IRegistryService.sol +26 -36
- package/contracts/registry/Registry.sol +43 -39
- package/contracts/registry/RegistryAccessManager.sol +39 -123
- package/contracts/registry/RegistryService.sol +32 -83
- package/contracts/registry/RegistryServiceManager.sol +21 -11
- package/contracts/registry/ReleaseManager.sol +247 -189
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/{components → shared}/Component.sol +26 -8
- package/contracts/{instance/base → shared}/ComponentService.sol +60 -40
- package/contracts/{components → shared}/IComponent.sol +19 -5
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +24 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +3 -1
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/NftOwnable.sol +1 -3
- package/contracts/shared/PolicyHolder.sol +31 -18
- package/contracts/shared/ProxyManager.sol +29 -3
- package/contracts/shared/Registerable.sol +12 -11
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +3 -3
- package/contracts/shared/TokenHandler.sol +4 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStakingService.sol +102 -0
- package/contracts/staking/StakingService.sol +169 -0
- package/contracts/staking/StakingServiceManager.sol +40 -0
- package/contracts/{types → type}/Amount.sol +49 -0
- package/contracts/{types → type}/ClaimId.sol +25 -2
- package/contracts/{types → type}/Fee.sol +7 -6
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +10 -5
- package/contracts/{types → type}/PayoutId.sol +33 -5
- package/contracts/{types → type}/RoleId.sol +50 -8
- package/contracts/{types → type}/StateId.sol +6 -2
- package/contracts/{types → type}/Timestamp.sol +5 -0
- package/package.json +1 -1
- 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/Cloneable.sol/Cloneable.dbg.json +0 -4
- 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/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
- 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 -805
- 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 -1092
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- 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 -383
- 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 -596
- 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 -161
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- 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/ClaimId.sol/ClaimIdLib.json +0 -100
- 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/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/PayoutId.sol/PayoutIdLib.json +0 -100
- 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/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/instance/service/ApplicationService.sol +0 -351
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- 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/TestToken.sol +0 -26
- 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/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Blocknumber.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/NftId.sol +0 -0
- /package/contracts/{types → type}/Referral.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
- /package/contracts/{types → type}/Seconds.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
- /package/contracts/{types → type}/Version.sol +0 -0
@@ -4,17 +4,18 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
5
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
6
|
|
7
|
-
import {NftId} from "
|
8
|
-
import {RoleId} from "../
|
9
|
-
import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../
|
10
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {RoleId} from "../type/RoleId.sol";
|
9
|
+
import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
|
10
|
+
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../type/ObjectType.sol";
|
11
11
|
|
12
12
|
import {Service} from "../shared/Service.sol";
|
13
13
|
import {IService} from "../shared/IService.sol";
|
14
|
+
import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
|
14
15
|
|
15
|
-
import {IDistributionComponent} from "../
|
16
|
-
import {IPoolComponent} from "../
|
17
|
-
import {IProductComponent} from "../
|
16
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
17
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
18
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
18
19
|
|
19
20
|
import {IRegistry} from "../registry/IRegistry.sol";
|
20
21
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
@@ -26,23 +27,24 @@ import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
|
26
27
|
import {IInstanceService} from "./IInstanceService.sol";
|
27
28
|
import {InstanceReader} from "./InstanceReader.sol";
|
28
29
|
import {BundleManager} from "./BundleManager.sol";
|
29
|
-
import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
|
30
30
|
import {InstanceStore} from "./InstanceStore.sol";
|
31
|
-
|
31
|
+
import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
|
32
32
|
|
33
33
|
contract InstanceService is
|
34
34
|
Service,
|
35
35
|
IInstanceService
|
36
36
|
{
|
37
|
+
|
38
|
+
// TODO update to real hash when instance is stable
|
39
|
+
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
40
|
+
|
41
|
+
IRegistryService internal _registryService;
|
37
42
|
address internal _masterOzAccessManager;
|
38
43
|
address internal _masterInstanceAccessManager;
|
39
44
|
address internal _masterInstance;
|
40
45
|
address internal _masterInstanceReader;
|
41
46
|
address internal _masterInstanceBundleManager;
|
42
|
-
address internal _masterInstanceStore;
|
43
|
-
|
44
|
-
// TODO update to real hash when instance is stable
|
45
|
-
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
47
|
+
address internal _masterInstanceStore;
|
46
48
|
|
47
49
|
modifier onlyInstanceOwner(NftId instanceNftId) {
|
48
50
|
if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
@@ -50,15 +52,8 @@ contract InstanceService is
|
|
50
52
|
}
|
51
53
|
_;
|
52
54
|
}
|
53
|
-
|
54
|
-
// TODO check
|
55
|
-
modifier onlyRegisteredService() {
|
56
|
-
if (! getRegistry().isRegisteredService(msg.sender)) {
|
57
|
-
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
58
|
-
}
|
59
|
-
_;
|
60
|
-
}
|
61
|
-
// TODO check release version?
|
55
|
+
|
56
|
+
// TODO check component - service - instance version match
|
62
57
|
modifier onlyComponent() {
|
63
58
|
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
64
59
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
@@ -69,23 +64,13 @@ contract InstanceService is
|
|
69
64
|
function createInstanceClone()
|
70
65
|
external
|
71
66
|
returns (
|
72
|
-
AccessManagerUpgradeableInitializeable clonedOzAccessManager,
|
73
|
-
InstanceAccessManager clonedInstanceAccessManager,
|
74
67
|
Instance clonedInstance,
|
75
|
-
NftId clonedInstanceNftId
|
76
|
-
InstanceReader clonedInstanceReader,
|
77
|
-
BundleManager clonedBundleManager,
|
78
|
-
InstanceStore clonedInstanceStore
|
68
|
+
NftId clonedInstanceNftId
|
79
69
|
)
|
80
70
|
{
|
81
71
|
address instanceOwner = msg.sender;
|
82
|
-
|
83
|
-
|
84
|
-
IRegistryService registryService = IRegistryService(
|
85
|
-
registry.getServiceAddress(REGISTRY(), getVersion().toMajorPart())
|
86
|
-
);
|
87
|
-
|
88
|
-
clonedOzAccessManager = AccessManagerUpgradeableInitializeable(Clones.clone(_masterOzAccessManager));
|
72
|
+
AccessManagerUpgradeableInitializeable clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
|
73
|
+
Clones.clone(_masterOzAccessManager));
|
89
74
|
|
90
75
|
// initially grants ADMIN_ROLE to this (being the instance service).
|
91
76
|
// This will allow the instance service to bootstrap the authorizations of the instance.
|
@@ -96,33 +81,41 @@ contract InstanceService is
|
|
96
81
|
clonedInstance = Instance(Clones.clone(_masterInstance));
|
97
82
|
clonedInstance.initialize(
|
98
83
|
address(clonedOzAccessManager),
|
99
|
-
address(
|
84
|
+
address(getRegistry()),
|
100
85
|
instanceOwner);
|
101
86
|
// initialize and set before instance reader
|
102
|
-
clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
87
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
103
88
|
clonedInstanceStore.initialize(address(clonedInstance));
|
104
89
|
clonedInstance.setInstanceStore(clonedInstanceStore);
|
105
90
|
|
106
|
-
clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
91
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
107
92
|
clonedInstanceReader.initialize(address(clonedInstance));
|
108
93
|
clonedInstance.setInstanceReader(clonedInstanceReader);
|
109
94
|
|
110
|
-
clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
95
|
+
BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
111
96
|
clonedBundleManager.initialize(address(clonedInstance));
|
112
97
|
clonedInstance.setBundleManager(clonedBundleManager);
|
113
98
|
|
114
|
-
clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
|
99
|
+
InstanceAccessManager clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
|
115
100
|
clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAccessManager), 0);
|
116
101
|
clonedInstanceAccessManager.initialize(address(clonedInstance));
|
117
102
|
clonedInstance.setInstanceAccessManager(clonedInstanceAccessManager);
|
118
103
|
|
119
104
|
// TODO amend setters with instance specific , policy manager ...
|
120
105
|
|
121
|
-
|
106
|
+
// TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
107
|
+
InstanceAuthorizationsLib.grantInitialAuthorizations(
|
108
|
+
clonedInstanceAccessManager,
|
109
|
+
clonedInstance,
|
110
|
+
clonedBundleManager,
|
111
|
+
clonedInstanceStore,
|
112
|
+
instanceOwner,
|
113
|
+
getRegistry(),
|
114
|
+
getVersion().toMajorPart());
|
122
115
|
|
123
116
|
clonedOzAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
|
124
117
|
|
125
|
-
IRegistry.ObjectInfo memory info =
|
118
|
+
IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
|
126
119
|
clonedInstanceNftId = info.nftId;
|
127
120
|
|
128
121
|
emit LogInstanceCloned(
|
@@ -135,224 +128,6 @@ contract InstanceService is
|
|
135
128
|
clonedInstanceNftId);
|
136
129
|
}
|
137
130
|
|
138
|
-
function _grantInitialAuthorizations(
|
139
|
-
InstanceAccessManager clonedAccessManager,
|
140
|
-
Instance clonedInstance,
|
141
|
-
BundleManager clonedBundleManager,
|
142
|
-
InstanceStore clonedInstanceStore,
|
143
|
-
address instanceOwner)
|
144
|
-
internal
|
145
|
-
{
|
146
|
-
_createCoreAndGifRoles(clonedAccessManager);
|
147
|
-
_createCoreTargets(clonedAccessManager, clonedInstance, clonedBundleManager, clonedInstanceStore);
|
148
|
-
_grantDistributionServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
|
149
|
-
_grantPoolServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
|
150
|
-
_grantProductServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
|
151
|
-
_grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
|
152
|
-
_grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
|
153
|
-
_grantClaimServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
|
154
|
-
_grantBundleServiceAuthorizations(clonedAccessManager, clonedInstanceStore, clonedBundleManager);
|
155
|
-
_grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
|
156
|
-
_grantInstanceAuthorizations(clonedAccessManager);
|
157
|
-
_grantInstanceOwnerAuthorizations(clonedAccessManager, clonedInstance);
|
158
|
-
}
|
159
|
-
|
160
|
-
function _createCoreAndGifRoles(InstanceAccessManager clonedAccessManager) internal {
|
161
|
-
// default roles controlled by ADMIN_ROLE -> core roles
|
162
|
-
// all set/granted only once during cloning (the only exception is INSTANCE_OWNER_ROLE, hooked to instance nft)
|
163
|
-
clonedAccessManager.createCoreRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
|
164
|
-
clonedAccessManager.createCoreRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
|
165
|
-
clonedAccessManager.createCoreRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
|
166
|
-
clonedAccessManager.createCoreRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
|
167
|
-
clonedAccessManager.createCoreRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
|
168
|
-
clonedAccessManager.createCoreRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
|
169
|
-
clonedAccessManager.createCoreRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
|
170
|
-
clonedAccessManager.createCoreRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
|
171
|
-
// default roles controlled by INSTANCE_OWNER_ROLE -> gif roles
|
172
|
-
clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", INSTANCE_OWNER_ROLE());
|
173
|
-
clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole", INSTANCE_OWNER_ROLE());
|
174
|
-
clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", INSTANCE_OWNER_ROLE());
|
175
|
-
}
|
176
|
-
|
177
|
-
function _createCoreTargets(
|
178
|
-
InstanceAccessManager clonedAccessManager,
|
179
|
-
Instance clonedInstance,
|
180
|
-
BundleManager clonedBundleManager,
|
181
|
-
InstanceStore clonedInstanceStore)
|
182
|
-
internal
|
183
|
-
{
|
184
|
-
clonedAccessManager.createCoreTarget(address(clonedAccessManager), "InstanceAccessManager");// TODO create in instance access manager initializer?
|
185
|
-
clonedAccessManager.createCoreTarget(address(clonedInstance), "Instance");// TODO create in instance access manager initializer?
|
186
|
-
clonedAccessManager.createCoreTarget(address(clonedBundleManager), "BundleManager");
|
187
|
-
clonedAccessManager.createCoreTarget(address(clonedInstanceStore), "InstanceStore");
|
188
|
-
}
|
189
|
-
|
190
|
-
function _grantDistributionServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
|
191
|
-
// configure authorization for distribution service on instance
|
192
|
-
address distributionServiceAddress = getRegistry().getServiceAddress(DISTRIBUTION(), getVersion().toMajorPart());
|
193
|
-
clonedAccessManager.grantRole(DISTRIBUTION_SERVICE_ROLE(), distributionServiceAddress);
|
194
|
-
bytes4[] memory instanceDistributionServiceSelectors = new bytes4[](11);
|
195
|
-
instanceDistributionServiceSelectors[0] = clonedInstanceStore.createDistributionSetup.selector;
|
196
|
-
instanceDistributionServiceSelectors[1] = clonedInstanceStore.updateDistributionSetup.selector;
|
197
|
-
instanceDistributionServiceSelectors[2] = clonedInstanceStore.createDistributorType.selector;
|
198
|
-
instanceDistributionServiceSelectors[3] = clonedInstanceStore.updateDistributorType.selector;
|
199
|
-
instanceDistributionServiceSelectors[4] = clonedInstanceStore.updateDistributorTypeState.selector;
|
200
|
-
instanceDistributionServiceSelectors[5] = clonedInstanceStore.createDistributor.selector;
|
201
|
-
instanceDistributionServiceSelectors[6] = clonedInstanceStore.updateDistributor.selector;
|
202
|
-
instanceDistributionServiceSelectors[7] = clonedInstanceStore.updateDistributorState.selector;
|
203
|
-
instanceDistributionServiceSelectors[8] = clonedInstanceStore.createReferral.selector;
|
204
|
-
instanceDistributionServiceSelectors[9] = clonedInstanceStore.updateReferral.selector;
|
205
|
-
instanceDistributionServiceSelectors[10] = clonedInstanceStore.updateReferralState.selector;
|
206
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
207
|
-
"InstanceStore",
|
208
|
-
instanceDistributionServiceSelectors,
|
209
|
-
DISTRIBUTION_SERVICE_ROLE());
|
210
|
-
}
|
211
|
-
|
212
|
-
function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
|
213
|
-
// configure authorization for pool service on instance
|
214
|
-
address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart());
|
215
|
-
clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
|
216
|
-
bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
|
217
|
-
instancePoolServiceSelectors[0] = clonedInstanceStore.createPoolSetup.selector;
|
218
|
-
instancePoolServiceSelectors[1] = clonedInstanceStore.updatePoolSetup.selector;
|
219
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
220
|
-
"InstanceStore",
|
221
|
-
instancePoolServiceSelectors,
|
222
|
-
POOL_SERVICE_ROLE());
|
223
|
-
}
|
224
|
-
|
225
|
-
function _grantProductServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
|
226
|
-
// configure authorization for product service on instance
|
227
|
-
address productServiceAddress = getRegistry().getServiceAddress(PRODUCT(), getVersion().toMajorPart());
|
228
|
-
clonedAccessManager.grantRole(PRODUCT_SERVICE_ROLE(), address(productServiceAddress));
|
229
|
-
bytes4[] memory instanceProductServiceSelectors = new bytes4[](5);
|
230
|
-
instanceProductServiceSelectors[0] = clonedInstanceStore.createProductSetup.selector;
|
231
|
-
instanceProductServiceSelectors[1] = clonedInstanceStore.updateProductSetup.selector;
|
232
|
-
instanceProductServiceSelectors[2] = clonedInstanceStore.createRisk.selector;
|
233
|
-
instanceProductServiceSelectors[3] = clonedInstanceStore.updateRisk.selector;
|
234
|
-
instanceProductServiceSelectors[4] = clonedInstanceStore.updateRiskState.selector;
|
235
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
236
|
-
"InstanceStore",
|
237
|
-
instanceProductServiceSelectors,
|
238
|
-
PRODUCT_SERVICE_ROLE());
|
239
|
-
}
|
240
|
-
|
241
|
-
function _grantApplicationServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
|
242
|
-
// configure authorization for application services on instance
|
243
|
-
address applicationServiceAddress = getRegistry().getServiceAddress(APPLICATION(), getVersion().toMajorPart());
|
244
|
-
clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
|
245
|
-
bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
|
246
|
-
instanceApplicationServiceSelectors[0] = clonedInstanceStore.createApplication.selector;
|
247
|
-
instanceApplicationServiceSelectors[1] = clonedInstanceStore.updateApplication.selector;
|
248
|
-
instanceApplicationServiceSelectors[2] = clonedInstanceStore.updateApplicationState.selector;
|
249
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
250
|
-
"InstanceStore",
|
251
|
-
instanceApplicationServiceSelectors,
|
252
|
-
APPLICATION_SERVICE_ROLE());
|
253
|
-
}
|
254
|
-
|
255
|
-
function _grantPolicyServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
|
256
|
-
// configure authorization for policy services on instance
|
257
|
-
address policyServiceAddress = getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart());
|
258
|
-
clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), policyServiceAddress);
|
259
|
-
bytes4[] memory instancePolicyServiceSelectors = new bytes4[](2);
|
260
|
-
instancePolicyServiceSelectors[0] = clonedInstanceStore.updatePolicy.selector;
|
261
|
-
instancePolicyServiceSelectors[1] = clonedInstanceStore.updatePolicyState.selector;
|
262
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
263
|
-
"InstanceStore",
|
264
|
-
instancePolicyServiceSelectors,
|
265
|
-
POLICY_SERVICE_ROLE());
|
266
|
-
}
|
267
|
-
|
268
|
-
function _grantClaimServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
|
269
|
-
// configure authorization for claim/payout services on instance
|
270
|
-
address claimServiceAddress = getRegistry().getServiceAddress(CLAIM(), getVersion().toMajorPart());
|
271
|
-
clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), claimServiceAddress);
|
272
|
-
// TODO add claims function authz
|
273
|
-
bytes4[] memory instanceClaimServiceSelectors = new bytes4[](0);
|
274
|
-
// instanceClaimServiceSelectors[0] = clonedInstanceStore.updatePolicy.selector;
|
275
|
-
// instanceClaimServiceSelectors[1] = clonedInstanceStore.updatePolicyState.selector;
|
276
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
277
|
-
"InstanceStore",
|
278
|
-
instanceClaimServiceSelectors,
|
279
|
-
CLAIM_SERVICE_ROLE());
|
280
|
-
}
|
281
|
-
|
282
|
-
function _grantBundleServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore, BundleManager clonedBundleManager) internal {
|
283
|
-
// configure authorization for bundle service on instance
|
284
|
-
address bundleServiceAddress = getRegistry().getServiceAddress(BUNDLE(), getVersion().toMajorPart());
|
285
|
-
clonedAccessManager.grantRole(BUNDLE_SERVICE_ROLE(), address(bundleServiceAddress));
|
286
|
-
bytes4[] memory instanceBundleServiceSelectors = new bytes4[](3);
|
287
|
-
instanceBundleServiceSelectors[0] = clonedInstanceStore.createBundle.selector;
|
288
|
-
instanceBundleServiceSelectors[1] = clonedInstanceStore.updateBundle.selector;
|
289
|
-
instanceBundleServiceSelectors[2] = clonedInstanceStore.updateBundleState.selector;
|
290
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
291
|
-
"InstanceStore",
|
292
|
-
instanceBundleServiceSelectors,
|
293
|
-
BUNDLE_SERVICE_ROLE());
|
294
|
-
|
295
|
-
// configure authorization for bundle service on bundle manager
|
296
|
-
bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
|
297
|
-
bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
|
298
|
-
bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
|
299
|
-
bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
|
300
|
-
bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
|
301
|
-
bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
|
302
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
303
|
-
"BundleManager",
|
304
|
-
bundleManagerBundleServiceSelectors,
|
305
|
-
BUNDLE_SERVICE_ROLE());
|
306
|
-
}
|
307
|
-
|
308
|
-
function _grantInstanceServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
309
|
-
// configure authorization for instance service on instance
|
310
|
-
address instanceServiceAddress = getRegistry().getServiceAddress(INSTANCE(), getVersion().toMajorPart());
|
311
|
-
clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
|
312
|
-
bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
|
313
|
-
instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
|
314
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
315
|
-
"Instance",
|
316
|
-
instanceInstanceServiceSelectors,
|
317
|
-
INSTANCE_SERVICE_ROLE());
|
318
|
-
|
319
|
-
// configure authorizations for instance service on instance access manager
|
320
|
-
bytes4[] memory accessManagerInstanceServiceSelectors = new bytes4[](3);
|
321
|
-
accessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
|
322
|
-
accessManagerInstanceServiceSelectors[1] = clonedAccessManager.setTargetLockedByService.selector;
|
323
|
-
accessManagerInstanceServiceSelectors[2] = clonedAccessManager.setCoreTargetFunctionRole.selector;
|
324
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
325
|
-
"InstanceAccessManager",
|
326
|
-
accessManagerInstanceServiceSelectors,
|
327
|
-
INSTANCE_SERVICE_ROLE());
|
328
|
-
}
|
329
|
-
|
330
|
-
function _grantInstanceAuthorizations(InstanceAccessManager clonedAccessManager) internal {
|
331
|
-
bytes4[] memory accessManagerInstanceSelectors = new bytes4[](4);
|
332
|
-
accessManagerInstanceSelectors[0] = clonedAccessManager.createRole.selector;
|
333
|
-
accessManagerInstanceSelectors[1] = clonedAccessManager.createTarget.selector;
|
334
|
-
accessManagerInstanceSelectors[2] = clonedAccessManager.setTargetFunctionRole.selector;
|
335
|
-
accessManagerInstanceSelectors[3] = clonedAccessManager.setTargetLockedByInstance.selector;
|
336
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
337
|
-
"InstanceAccessManager",
|
338
|
-
accessManagerInstanceSelectors,
|
339
|
-
INSTANCE_ROLE());
|
340
|
-
}
|
341
|
-
|
342
|
-
function _grantInstanceOwnerAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
343
|
-
// configure authorization for instance owner on instance access manager
|
344
|
-
// instance owner role is granted/revoked ONLY by INSTANCE_ROLE
|
345
|
-
bytes4[] memory instanceInstanceOwnerSelectors = new bytes4[](4);
|
346
|
-
instanceInstanceOwnerSelectors[0] = clonedInstance.createRole.selector;
|
347
|
-
instanceInstanceOwnerSelectors[1] = clonedInstance.createTarget.selector;
|
348
|
-
instanceInstanceOwnerSelectors[2] = clonedInstance.setTargetFunctionRole.selector;
|
349
|
-
instanceInstanceOwnerSelectors[3] = clonedInstance.setTargetLocked.selector;
|
350
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
351
|
-
"Instance",
|
352
|
-
instanceInstanceOwnerSelectors,
|
353
|
-
INSTANCE_OWNER_ROLE());
|
354
|
-
}
|
355
|
-
|
356
131
|
function setAndRegisterMasterInstance(address instanceAddress)
|
357
132
|
external
|
358
133
|
onlyOwner
|
@@ -366,8 +141,6 @@ contract InstanceService is
|
|
366
141
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
367
142
|
|
368
143
|
IInstance instance = IInstance(instanceAddress);
|
369
|
-
AccessManagerUpgradeableInitializeable ozAccessManager = AccessManagerUpgradeableInitializeable(instance.authority());
|
370
|
-
address ozAccessManagerAddress = address(ozAccessManager);
|
371
144
|
InstanceAccessManager instanceAccessManager = instance.getInstanceAccessManager();
|
372
145
|
address instanceAccessManagerAddress = address(instanceAccessManager);
|
373
146
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -377,7 +150,6 @@ contract InstanceService is
|
|
377
150
|
InstanceStore instanceStore = instance.getInstanceStore();
|
378
151
|
address instanceStoreAddress = address(instanceStore);
|
379
152
|
|
380
|
-
if(ozAccessManagerAddress == address(0)) { revert ErrorInstanceServiceOzAccessManagerZero();}
|
381
153
|
if(instanceAccessManagerAddress == address(0)) { revert ErrorInstanceServiceInstanceAccessManagerZero(); }
|
382
154
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
383
155
|
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
|
@@ -386,19 +158,18 @@ contract InstanceService is
|
|
386
158
|
if(instance.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
387
159
|
if(bundleManager.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
|
388
160
|
if(instanceStore.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
389
|
-
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
390
161
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
162
|
+
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
391
163
|
|
392
|
-
_masterOzAccessManager =
|
164
|
+
_masterOzAccessManager = instance.authority();
|
393
165
|
_masterInstanceAccessManager = instanceAccessManagerAddress;
|
394
166
|
_masterInstance = instanceAddress;
|
395
167
|
_masterInstanceReader = instanceReaderAddress;
|
396
168
|
_masterInstanceBundleManager = bundleManagerAddress;
|
397
169
|
_masterInstanceStore = instanceStoreAddress;
|
398
170
|
|
399
|
-
IRegistryService registryService = IRegistryService(getRegistry().getServiceAddress(REGISTRY(), getVersion().toMajorPart()));
|
400
171
|
IInstance masterInstance = IInstance(_masterInstance);
|
401
|
-
IRegistry.ObjectInfo memory info =
|
172
|
+
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
402
173
|
masterInstanceNftId = info.nftId;
|
403
174
|
}
|
404
175
|
|
@@ -426,44 +197,6 @@ contract InstanceService is
|
|
426
197
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
427
198
|
}
|
428
199
|
|
429
|
-
function getMasterInstanceReader() external view returns (address) {
|
430
|
-
return _masterInstanceReader;
|
431
|
-
}
|
432
|
-
|
433
|
-
function getMasterInstance() external view returns (address) {
|
434
|
-
return _masterInstance;
|
435
|
-
}
|
436
|
-
|
437
|
-
function getMasterInstanceAccessManager() external view returns (address) {
|
438
|
-
return _masterInstanceAccessManager;
|
439
|
-
}
|
440
|
-
|
441
|
-
function getMasterInstanceBundleManager() external view returns (address) {
|
442
|
-
return _masterInstanceBundleManager;
|
443
|
-
}
|
444
|
-
|
445
|
-
// From IService
|
446
|
-
function getDomain() public pure override returns(ObjectType) {
|
447
|
-
return INSTANCE();
|
448
|
-
}
|
449
|
-
|
450
|
-
/// @dev top level initializer
|
451
|
-
function _initialize(
|
452
|
-
address owner,
|
453
|
-
bytes memory data
|
454
|
-
)
|
455
|
-
internal
|
456
|
-
initializer
|
457
|
-
virtual override
|
458
|
-
{
|
459
|
-
address initialOwner;
|
460
|
-
address registryAddress;
|
461
|
-
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
462
|
-
// TODO while InstanceService is not deployed in InstanceServiceManager constructor
|
463
|
-
// owner is InstanceServiceManager deployer
|
464
|
-
initializeService(registryAddress, address(0), owner);
|
465
|
-
registerInterface(type(IInstanceService).interfaceId);
|
466
|
-
}
|
467
200
|
|
468
201
|
// all gif targets MUST be childs of instanceNftId
|
469
202
|
function createGifTarget(
|
@@ -474,11 +207,11 @@ contract InstanceService is
|
|
474
207
|
RoleId[] memory roles
|
475
208
|
)
|
476
209
|
external
|
477
|
-
|
210
|
+
restricted
|
478
211
|
{
|
479
212
|
(
|
480
213
|
IInstance instance, // or instanceInfo
|
481
|
-
|
214
|
+
// or targetInfo
|
482
215
|
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
483
216
|
|
484
217
|
InstanceAccessManager accessManager = instance.getInstanceAccessManager();
|
@@ -492,9 +225,11 @@ contract InstanceService is
|
|
492
225
|
}
|
493
226
|
}
|
494
227
|
|
228
|
+
|
495
229
|
// TODO called by component, but target can be component helper...so needs target name
|
496
230
|
// TODO check that targetName associated with component...how???
|
497
231
|
function setComponentLocked(bool locked) onlyComponent external {
|
232
|
+
|
498
233
|
address componentAddress = msg.sender;
|
499
234
|
IRegistry registry = getRegistry();
|
500
235
|
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
@@ -508,6 +243,42 @@ contract InstanceService is
|
|
508
243
|
locked);
|
509
244
|
}
|
510
245
|
|
246
|
+
|
247
|
+
function getMasterInstanceReader() external view returns (address) {
|
248
|
+
return _masterInstanceReader;
|
249
|
+
}
|
250
|
+
|
251
|
+
// From IService
|
252
|
+
function getDomain() public pure override returns(ObjectType) {
|
253
|
+
return INSTANCE();
|
254
|
+
}
|
255
|
+
|
256
|
+
/// @dev top level initializer
|
257
|
+
function _initialize(
|
258
|
+
address owner,
|
259
|
+
bytes memory data
|
260
|
+
)
|
261
|
+
internal
|
262
|
+
initializer
|
263
|
+
virtual override
|
264
|
+
{
|
265
|
+
(
|
266
|
+
address registryAddress,,
|
267
|
+
//address managerAddress
|
268
|
+
address authority
|
269
|
+
) = abi.decode(data, (address, address, address));
|
270
|
+
|
271
|
+
initializeService(registryAddress, authority, owner);
|
272
|
+
|
273
|
+
_registryService = IRegistryService(
|
274
|
+
IRegistry(registryAddress).getServiceAddress(
|
275
|
+
REGISTRY(),
|
276
|
+
getVersion().toMajorPart()));
|
277
|
+
|
278
|
+
registerInterface(type(IInstanceService).interfaceId);
|
279
|
+
}
|
280
|
+
|
281
|
+
|
511
282
|
function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
|
512
283
|
internal
|
513
284
|
view
|
@@ -7,39 +7,29 @@ import {ProxyManager} from "../shared/ProxyManager.sol";
|
|
7
7
|
import {InstanceService} from "./InstanceService.sol";
|
8
8
|
import {Registry} from "../registry/Registry.sol";
|
9
9
|
import {RegistryService} from "../registry/RegistryService.sol";
|
10
|
-
import {REGISTRY} from "../
|
10
|
+
import {REGISTRY} from "../type/ObjectType.sol";
|
11
11
|
|
12
12
|
contract InstanceServiceManager is ProxyManager {
|
13
13
|
|
14
14
|
InstanceService private _instanceService;
|
15
15
|
|
16
|
-
/// @dev initializes proxy manager with instance service implementation
|
16
|
+
/// @dev initializes proxy manager with instance service implementation
|
17
17
|
constructor(
|
18
|
-
address
|
19
|
-
|
18
|
+
address authority,
|
19
|
+
address registryAddress,
|
20
|
+
bytes32 salt
|
21
|
+
)
|
20
22
|
ProxyManager(registryAddress)
|
21
23
|
{
|
22
|
-
InstanceService instSrv = new InstanceService();
|
24
|
+
InstanceService instSrv = new InstanceService{salt: salt}();
|
23
25
|
// bytes memory initCode = type(InstanceService).creationCode;
|
24
|
-
bytes memory data = abi.encode(registryAddress, address(this));
|
25
|
-
IVersionable versionable =
|
26
|
+
bytes memory data = abi.encode(registryAddress, address(this), authority);
|
27
|
+
IVersionable versionable = deployDetermenistic(
|
26
28
|
address(instSrv),
|
27
|
-
data
|
29
|
+
data,
|
30
|
+
salt);
|
28
31
|
|
29
32
|
_instanceService = InstanceService(address(versionable));
|
30
|
-
|
31
|
-
// TODO `this` must have a role or own nft to register service
|
32
|
-
//Registry registry = Registry(registryAddress);
|
33
|
-
//address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _instanceService.getMajorVersion());
|
34
|
-
//RegistryService registryService = RegistryService(registryServiceAddress);
|
35
|
-
//registryService.registerService(_instanceService);
|
36
|
-
// RegistryService registryService = _instanceService.getRegistryService();
|
37
|
-
|
38
|
-
// TODO no nft to link yet
|
39
|
-
// link ownership of instance service manager ot nft owner of instance service
|
40
|
-
//_linkToNftOwnable(
|
41
|
-
// address(registryAddress),
|
42
|
-
// address(_instanceService));
|
43
33
|
}
|
44
34
|
|
45
35
|
//--- view functions ----------------------------------------------------//
|