@etherisc/gif-next 0.0.2-ceb30b2-601 → 0.0.2-cf22d7b-845
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +239 -155
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +118 -99
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +39 -307
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +254 -2310
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +72 -22
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2818
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +507 -350
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +147 -193
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +113 -103
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +45 -56
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +200 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +144 -156
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +305 -103
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +30 -2
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +127 -71
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +53 -136
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +284 -106
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +1 -56
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +304 -52
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +337 -72
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -41
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +824 -91
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -76
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +17 -122
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +114 -75
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +170 -288
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +56 -7
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +5 -5
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/{components → distribution}/Distribution.sol +41 -64
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
- package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
- package/contracts/instance/BundleManager.sol +5 -5
- package/contracts/instance/IInstance.sol +45 -70
- package/contracts/instance/IInstanceService.sol +29 -11
- package/contracts/instance/Instance.sol +112 -195
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
- package/contracts/instance/InstanceReader.sol +106 -58
- package/contracts/instance/InstanceService.sol +166 -288
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +6 -6
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +21 -10
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +20 -14
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
- package/contracts/{components → pool}/IPoolComponent.sol +16 -17
- package/contracts/{instance/service → pool}/IPoolService.sol +57 -51
- package/contracts/{components → pool}/Pool.sol +52 -55
- package/contracts/pool/PoolService.sol +453 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/ClaimService.sol +167 -86
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
- package/contracts/{instance/service → product}/IClaimService.sol +18 -15
- package/contracts/{instance/service → product}/IPolicyService.sol +24 -26
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/{components → product}/Product.sol +83 -77
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +44 -21
- package/contracts/registry/IRegistryService.sol +37 -34
- package/contracts/registry/Registry.sol +191 -82
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +66 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -25
- package/contracts/registry/ReleaseManager.sol +458 -183
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- package/contracts/shared/AccessManagerExtended.sol +470 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +278 -0
- package/contracts/shared/ComponentService.sol +596 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/{components → shared}/IComponent.sol +23 -29
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +14 -7
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +9 -5
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -14
- package/contracts/shared/PolicyHolder.sol +32 -17
- package/contracts/shared/ProxyManager.sol +34 -4
- package/contracts/shared/Registerable.sol +3 -3
- package/contracts/shared/Service.sol +9 -4
- package/contracts/shared/TokenHandler.sol +27 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +149 -0
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +551 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +406 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +572 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/{types → type}/Amount.sol +59 -1
- package/contracts/{types → type}/Blocknumber.sol +20 -3
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/{types → type}/ObjectType.sol +15 -3
- package/contracts/{types → type}/Referral.sol +1 -1
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/{types → type}/RoleId.sol +55 -9
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/{types → type}/StateId.sol +17 -4
- package/contracts/{types → type}/Version.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +0 -10
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1313
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -712
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1316
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -724
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1598
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -696
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/Component.sol +0 -253
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -130
- package/contracts/instance/base/KeyValueStore.sol +0 -149
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -356
- package/contracts/instance/service/BundleService.sol +0 -443
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -431
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -358
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -349
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- /package/contracts/{types → type}/ClaimId.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/PayoutId.sol +0 -0
- /package/contracts/{types → type}/Timestamp.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -4,20 +4,36 @@ 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 {BundleManager} from "./BundleManager.sol";
|
8
|
+
import {ChainNft} from "../registry/ChainNft.sol";
|
9
|
+
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {RoleId} from "../type/RoleId.sol";
|
11
|
+
import {SecondsLib} from "../type/Seconds.sol";
|
12
|
+
import {UFixedLib} from "../type/UFixed.sol";
|
13
|
+
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";
|
14
|
+
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
15
|
+
|
16
|
+
import {Service} from "../shared/Service.sol";
|
17
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
18
|
+
import {IService} from "../shared/IService.sol";
|
19
|
+
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
20
|
+
|
21
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
22
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
23
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
24
|
+
|
25
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
26
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
27
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
28
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
29
|
+
|
7
30
|
import {Instance} from "./Instance.sol";
|
8
31
|
import {IInstance} from "./IInstance.sol";
|
9
|
-
import {
|
32
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
10
33
|
import {IInstanceService} from "./IInstanceService.sol";
|
11
34
|
import {InstanceReader} from "./InstanceReader.sol";
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
15
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
16
|
-
import {Service} from "../../contracts/shared/Service.sol";
|
17
|
-
import {NftId} from "../../contracts/types/NftId.sol";
|
18
|
-
import {RoleId} from "../types/RoleId.sol";
|
19
|
-
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 "../types/RoleId.sol";
|
20
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../types/ObjectType.sol";
|
35
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
36
|
+
import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
|
21
37
|
|
22
38
|
contract InstanceService is
|
23
39
|
Service,
|
@@ -28,11 +44,14 @@ contract InstanceService is
|
|
28
44
|
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
29
45
|
|
30
46
|
IRegistryService internal _registryService;
|
31
|
-
|
32
|
-
|
47
|
+
IStakingService internal _stakingService;
|
48
|
+
|
49
|
+
address internal _masterAccessManager;
|
50
|
+
address internal _masterInstanceAdmin;
|
33
51
|
address internal _masterInstance;
|
34
52
|
address internal _masterInstanceReader;
|
35
53
|
address internal _masterInstanceBundleManager;
|
54
|
+
address internal _masterInstanceStore;
|
36
55
|
|
37
56
|
modifier onlyInstanceOwner(NftId instanceNftId) {
|
38
57
|
if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
@@ -40,15 +59,8 @@ contract InstanceService is
|
|
40
59
|
}
|
41
60
|
_;
|
42
61
|
}
|
43
|
-
|
44
|
-
// TODO check
|
45
|
-
modifier onlyRegisteredService() {
|
46
|
-
if (! getRegistry().isRegisteredService(msg.sender)) {
|
47
|
-
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
48
|
-
}
|
49
|
-
_;
|
50
|
-
}
|
51
|
-
// TODO check release version?
|
62
|
+
|
63
|
+
// TODO check component - service - instance version match
|
52
64
|
modifier onlyComponent() {
|
53
65
|
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
54
66
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
@@ -64,20 +76,23 @@ contract InstanceService is
|
|
64
76
|
)
|
65
77
|
{
|
66
78
|
address instanceOwner = msg.sender;
|
67
|
-
|
68
|
-
Clones.clone(
|
79
|
+
AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
|
80
|
+
Clones.clone(_masterAccessManager));
|
69
81
|
|
70
82
|
// initially grants ADMIN_ROLE to this (being the instance service).
|
71
83
|
// This will allow the instance service to bootstrap the authorizations of the instance.
|
72
|
-
// Instance service will not use oz access manager directlly but through instance access manager instead
|
73
84
|
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
74
|
-
|
85
|
+
clonedAccessManager.initialize(address(this));
|
75
86
|
|
76
87
|
clonedInstance = Instance(Clones.clone(_masterInstance));
|
77
88
|
clonedInstance.initialize(
|
78
|
-
address(
|
89
|
+
address(clonedAccessManager),
|
79
90
|
address(getRegistry()),
|
80
91
|
instanceOwner);
|
92
|
+
// initialize and set before instance reader
|
93
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
94
|
+
clonedInstanceStore.initialize(address(clonedInstance));
|
95
|
+
clonedInstance.setInstanceStore(clonedInstanceStore);
|
81
96
|
|
82
97
|
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
83
98
|
clonedInstanceReader.initialize(address(clonedInstance));
|
@@ -87,276 +102,127 @@ contract InstanceService is
|
|
87
102
|
clonedBundleManager.initialize(address(clonedInstance));
|
88
103
|
clonedInstance.setBundleManager(clonedBundleManager);
|
89
104
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
clonedInstance.
|
105
|
+
InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
106
|
+
clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
|
107
|
+
clonedInstanceAdmin.initialize(address(clonedInstance));
|
108
|
+
clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
|
94
109
|
|
95
110
|
// TODO amend setters with instance specific , policy manager ...
|
96
111
|
|
97
|
-
|
112
|
+
// TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
113
|
+
InstanceAuthorizationsLib.grantInitialAuthorizations(
|
114
|
+
clonedAccessManager,
|
115
|
+
clonedInstanceAdmin,
|
116
|
+
clonedInstance,
|
117
|
+
clonedBundleManager,
|
118
|
+
clonedInstanceStore,
|
119
|
+
instanceOwner,
|
120
|
+
getRegistry(),
|
121
|
+
getVersion().toMajorPart());
|
98
122
|
|
99
|
-
|
123
|
+
clonedAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
|
100
124
|
|
125
|
+
// register new instance with registry
|
101
126
|
IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
|
102
127
|
clonedInstanceNftId = info.nftId;
|
103
128
|
|
129
|
+
// create corresponding staking target
|
130
|
+
_stakingService.createInstanceTarget(
|
131
|
+
clonedInstanceNftId,
|
132
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
133
|
+
TargetManagerLib.getDefaultRewardRate());
|
134
|
+
|
104
135
|
emit LogInstanceCloned(
|
105
|
-
address(
|
106
|
-
address(
|
107
|
-
address(clonedInstance),
|
136
|
+
address(clonedAccessManager),
|
137
|
+
address(clonedInstanceAdmin),
|
138
|
+
address(clonedInstance),
|
139
|
+
address(clonedInstanceStore),
|
108
140
|
address(clonedBundleManager),
|
109
141
|
address(clonedInstanceReader),
|
110
142
|
clonedInstanceNftId);
|
111
143
|
}
|
112
144
|
|
113
|
-
function
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
address instanceOwner)
|
118
|
-
internal
|
145
|
+
function setComponentLocked(bool locked)
|
146
|
+
external
|
147
|
+
virtual
|
148
|
+
onlyComponent()
|
119
149
|
{
|
120
|
-
|
121
|
-
|
122
|
-
_grantDistributionServiceAuthorizations(clonedAccessManager, clonedInstance);
|
123
|
-
_grantPoolServiceAuthorizations(clonedAccessManager, clonedInstance);
|
124
|
-
_grantProductServiceAuthorizations(clonedAccessManager, clonedInstance);
|
125
|
-
_grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstance);
|
126
|
-
_grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstance);
|
127
|
-
_grantClaimServiceAuthorizations(clonedAccessManager, clonedInstance);
|
128
|
-
_grantBundleServiceAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
|
129
|
-
_grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
|
130
|
-
_grantInstanceOwnerAuthorizations(clonedAccessManager, instanceOwner);
|
131
|
-
}
|
132
|
-
|
133
|
-
function _createCoreAndGifRoles(InstanceAccessManager clonedAccessManager) internal {
|
134
|
-
// default roles controlled by ADMIN_ROLE -> core roles
|
135
|
-
// all set/granted only once during cloning (the only exception is INSTANCE_OWNER_ROLE, hooked to instance nft)
|
136
|
-
clonedAccessManager.createCoreRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
|
137
|
-
clonedAccessManager.createCoreRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
|
138
|
-
clonedAccessManager.createCoreRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
|
139
|
-
clonedAccessManager.createCoreRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
|
140
|
-
clonedAccessManager.createCoreRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
|
141
|
-
clonedAccessManager.createCoreRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
|
142
|
-
clonedAccessManager.createCoreRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
|
143
|
-
clonedAccessManager.createCoreRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
|
144
|
-
// default roles controlled by INSTANCE_OWNER_ROLE -> gif roles
|
145
|
-
clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", INSTANCE_OWNER_ROLE());
|
146
|
-
clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole", INSTANCE_OWNER_ROLE());
|
147
|
-
clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", INSTANCE_OWNER_ROLE());
|
148
|
-
}
|
149
|
-
|
150
|
-
function _createCoreTargets(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
|
151
|
-
clonedAccessManager.createCoreTarget(address(clonedAccessManager), "InstanceAccessManager");
|
152
|
-
clonedAccessManager.createCoreTarget(address(clonedInstance), "Instance");
|
153
|
-
clonedAccessManager.createCoreTarget(address(clonedBundleManager), "BundleManager");
|
154
|
-
}
|
155
|
-
|
156
|
-
function _grantDistributionServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
157
|
-
// configure authorization for distribution service on instance
|
158
|
-
address distributionServiceAddress = getRegistry().getServiceAddress(DISTRIBUTION(), getVersion().toMajorPart());
|
159
|
-
clonedAccessManager.grantRole(DISTRIBUTION_SERVICE_ROLE(), distributionServiceAddress);
|
160
|
-
bytes4[] memory instanceDistributionServiceSelectors = new bytes4[](11);
|
161
|
-
instanceDistributionServiceSelectors[0] = clonedInstance.createDistributionSetup.selector;
|
162
|
-
instanceDistributionServiceSelectors[1] = clonedInstance.updateDistributionSetup.selector;
|
163
|
-
instanceDistributionServiceSelectors[2] = clonedInstance.createDistributorType.selector;
|
164
|
-
instanceDistributionServiceSelectors[3] = clonedInstance.updateDistributorType.selector;
|
165
|
-
instanceDistributionServiceSelectors[4] = clonedInstance.updateDistributorTypeState.selector;
|
166
|
-
instanceDistributionServiceSelectors[5] = clonedInstance.createDistributor.selector;
|
167
|
-
instanceDistributionServiceSelectors[6] = clonedInstance.updateDistributor.selector;
|
168
|
-
instanceDistributionServiceSelectors[7] = clonedInstance.updateDistributorState.selector;
|
169
|
-
instanceDistributionServiceSelectors[8] = clonedInstance.createReferral.selector;
|
170
|
-
instanceDistributionServiceSelectors[9] = clonedInstance.updateReferral.selector;
|
171
|
-
instanceDistributionServiceSelectors[10] = clonedInstance.updateReferralState.selector;
|
172
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
173
|
-
"Instance",
|
174
|
-
instanceDistributionServiceSelectors,
|
175
|
-
DISTRIBUTION_SERVICE_ROLE());
|
176
|
-
}
|
177
|
-
|
178
|
-
function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
179
|
-
// configure authorization for pool service on instance
|
180
|
-
address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart());
|
181
|
-
clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
|
182
|
-
bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
|
183
|
-
instancePoolServiceSelectors[0] = clonedInstance.createPoolSetup.selector;
|
184
|
-
instancePoolServiceSelectors[1] = clonedInstance.updatePoolSetup.selector;
|
185
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
186
|
-
"Instance",
|
187
|
-
instancePoolServiceSelectors,
|
188
|
-
POOL_SERVICE_ROLE());
|
189
|
-
}
|
150
|
+
// checks
|
151
|
+
address componentAddress = msg.sender;
|
190
152
|
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
clonedAccessManager.grantRole(PRODUCT_SERVICE_ROLE(), address(productServiceAddress));
|
195
|
-
bytes4[] memory instanceProductServiceSelectors = new bytes4[](5);
|
196
|
-
instanceProductServiceSelectors[0] = clonedInstance.createProductSetup.selector;
|
197
|
-
instanceProductServiceSelectors[1] = clonedInstance.updateProductSetup.selector;
|
198
|
-
instanceProductServiceSelectors[2] = clonedInstance.createRisk.selector;
|
199
|
-
instanceProductServiceSelectors[3] = clonedInstance.updateRisk.selector;
|
200
|
-
instanceProductServiceSelectors[4] = clonedInstance.updateRiskState.selector;
|
201
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
202
|
-
"Instance",
|
203
|
-
instanceProductServiceSelectors,
|
204
|
-
PRODUCT_SERVICE_ROLE());
|
205
|
-
}
|
153
|
+
if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
154
|
+
revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
|
155
|
+
}
|
206
156
|
|
207
|
-
|
208
|
-
|
209
|
-
address applicationServiceAddress = getRegistry().getServiceAddress(APPLICATION(), getVersion().toMajorPart());
|
210
|
-
clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
|
211
|
-
bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
|
212
|
-
instanceApplicationServiceSelectors[0] = clonedInstance.createApplication.selector;
|
213
|
-
instanceApplicationServiceSelectors[1] = clonedInstance.updateApplication.selector;
|
214
|
-
instanceApplicationServiceSelectors[2] = clonedInstance.updateApplicationState.selector;
|
215
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
216
|
-
"Instance",
|
217
|
-
instanceApplicationServiceSelectors,
|
218
|
-
APPLICATION_SERVICE_ROLE());
|
219
|
-
}
|
157
|
+
IRegistry registry = getRegistry();
|
158
|
+
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
220
159
|
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), policyServiceAddress);
|
225
|
-
bytes4[] memory instancePolicyServiceSelectors = new bytes4[](2);
|
226
|
-
instancePolicyServiceSelectors[0] = clonedInstance.updatePolicy.selector;
|
227
|
-
instancePolicyServiceSelectors[1] = clonedInstance.updatePolicyState.selector;
|
228
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
229
|
-
"Instance",
|
230
|
-
instancePolicyServiceSelectors,
|
231
|
-
POLICY_SERVICE_ROLE());
|
232
|
-
}
|
160
|
+
IInstance instance = IInstance(
|
161
|
+
registry.getObjectInfo(
|
162
|
+
instanceNftId).objectAddress);
|
233
163
|
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
bytes4[] memory instancePolicyServiceSelectors = new bytes4[](1);
|
240
|
-
instancePolicyServiceSelectors[0] = clonedInstance.updatePolicyClaims.selector;
|
241
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
242
|
-
"Instance",
|
243
|
-
instancePolicyServiceSelectors,
|
244
|
-
CLAIM_SERVICE_ROLE());
|
245
|
-
|
246
|
-
bytes4[] memory instanceClaimServiceSelectors = new bytes4[](4);
|
247
|
-
instanceClaimServiceSelectors[0] = clonedInstance.createClaim.selector;
|
248
|
-
instanceClaimServiceSelectors[1] = clonedInstance.updateClaim.selector;
|
249
|
-
instanceClaimServiceSelectors[2] = clonedInstance.createPayout.selector;
|
250
|
-
instanceClaimServiceSelectors[3] = clonedInstance.updatePayout.selector;
|
251
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
252
|
-
"Instance",
|
253
|
-
instanceClaimServiceSelectors,
|
254
|
-
CLAIM_SERVICE_ROLE());
|
164
|
+
// no revert in case already locked
|
165
|
+
instance.getInstanceAdmin().setTargetLockedByService(
|
166
|
+
componentAddress,
|
167
|
+
locked);
|
255
168
|
}
|
256
169
|
|
257
|
-
function _grantBundleServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
|
258
|
-
// configure authorization for bundle service on instance
|
259
|
-
address bundleServiceAddress = getRegistry().getServiceAddress(BUNDLE(), getVersion().toMajorPart());
|
260
|
-
clonedAccessManager.grantRole(BUNDLE_SERVICE_ROLE(), address(bundleServiceAddress));
|
261
|
-
bytes4[] memory instanceBundleServiceSelectors = new bytes4[](3);
|
262
|
-
instanceBundleServiceSelectors[0] = clonedInstance.createBundle.selector;
|
263
|
-
instanceBundleServiceSelectors[1] = clonedInstance.updateBundle.selector;
|
264
|
-
instanceBundleServiceSelectors[2] = clonedInstance.updateBundleState.selector;
|
265
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
266
|
-
"Instance",
|
267
|
-
instanceBundleServiceSelectors,
|
268
|
-
BUNDLE_SERVICE_ROLE());
|
269
|
-
|
270
|
-
// configure authorization for bundle service on bundle manager
|
271
|
-
bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
|
272
|
-
bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
|
273
|
-
bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
|
274
|
-
bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
|
275
|
-
bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
|
276
|
-
bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
|
277
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
278
|
-
"BundleManager",
|
279
|
-
bundleManagerBundleServiceSelectors,
|
280
|
-
BUNDLE_SERVICE_ROLE());
|
281
|
-
}
|
282
170
|
|
283
|
-
function
|
284
|
-
|
285
|
-
address instanceServiceAddress = getRegistry().getServiceAddress(INSTANCE(), getVersion().toMajorPart());
|
286
|
-
clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
|
287
|
-
bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
|
288
|
-
instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
|
289
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
290
|
-
"Instance",
|
291
|
-
instanceInstanceServiceSelectors,
|
292
|
-
INSTANCE_SERVICE_ROLE());
|
293
|
-
|
294
|
-
// configure authorizations for instance service on instance access manager
|
295
|
-
bytes4[] memory accessManagerInstanceServiceSelectors = new bytes4[](3);
|
296
|
-
accessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
|
297
|
-
accessManagerInstanceServiceSelectors[1] = clonedAccessManager.setTargetLocked.selector;
|
298
|
-
accessManagerInstanceServiceSelectors[2] = clonedAccessManager.setCoreTargetFunctionRole.selector;
|
299
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
300
|
-
"InstanceAccessManager",
|
301
|
-
accessManagerInstanceServiceSelectors,
|
302
|
-
INSTANCE_SERVICE_ROLE());
|
171
|
+
function getMasterInstanceReader() external view returns (address) {
|
172
|
+
return _masterInstanceReader;
|
303
173
|
}
|
304
174
|
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
bytes4[] memory accessManagerInstanceOwnerSelectors = new bytes4[](3);
|
309
|
-
accessManagerInstanceOwnerSelectors[0] = clonedAccessManager.createRole.selector;
|
310
|
-
accessManagerInstanceOwnerSelectors[1] = clonedAccessManager.createTarget.selector;
|
311
|
-
accessManagerInstanceOwnerSelectors[2] = clonedAccessManager.setTargetFunctionRole.selector;
|
312
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
313
|
-
"InstanceAccessManager",
|
314
|
-
accessManagerInstanceOwnerSelectors,
|
315
|
-
INSTANCE_OWNER_ROLE());
|
175
|
+
// From IService
|
176
|
+
function getDomain() public pure override returns(ObjectType) {
|
177
|
+
return INSTANCE();
|
316
178
|
}
|
317
179
|
|
318
|
-
|
319
|
-
function setAndRegisterMasterInstance(address instanceAddress)
|
180
|
+
function setAndRegisterMasterInstance(address instanceAddress)
|
320
181
|
external
|
321
182
|
onlyOwner
|
322
183
|
returns(NftId masterInstanceNftId)
|
323
184
|
{
|
324
185
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
325
|
-
if(
|
326
|
-
if(
|
186
|
+
if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
|
187
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
327
188
|
if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
|
328
189
|
|
329
190
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
330
191
|
|
331
192
|
IInstance instance = IInstance(instanceAddress);
|
332
|
-
|
333
|
-
address
|
193
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
194
|
+
address instanceAdminAddress = address(instanceAdmin);
|
334
195
|
InstanceReader instanceReader = instance.getInstanceReader();
|
335
196
|
address instanceReaderAddress = address(instanceReader);
|
336
197
|
BundleManager bundleManager = instance.getBundleManager();
|
337
198
|
address bundleManagerAddress = address(bundleManager);
|
199
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
200
|
+
address instanceStoreAddress = address(instanceStore);
|
338
201
|
|
339
|
-
if(
|
202
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
340
203
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
341
204
|
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
|
205
|
+
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
342
206
|
|
343
|
-
if(instance.authority() !=
|
344
|
-
if(bundleManager.authority() !=
|
207
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
208
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
|
209
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
345
210
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
346
211
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
347
212
|
|
348
|
-
|
349
|
-
|
213
|
+
_masterAccessManager = instance.authority();
|
214
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
350
215
|
_masterInstance = instanceAddress;
|
351
216
|
_masterInstanceReader = instanceReaderAddress;
|
352
217
|
_masterInstanceBundleManager = bundleManagerAddress;
|
218
|
+
_masterInstanceStore = instanceStoreAddress;
|
353
219
|
|
354
220
|
IInstance masterInstance = IInstance(_masterInstance);
|
355
221
|
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
356
222
|
masterInstanceNftId = info.nftId;
|
357
223
|
}
|
358
224
|
|
359
|
-
function
|
225
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
360
226
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
361
227
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
362
228
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -381,7 +247,6 @@ contract InstanceService is
|
|
381
247
|
}
|
382
248
|
|
383
249
|
|
384
|
-
// all gif targets MUST be childs of instanceNftId
|
385
250
|
function createGifTarget(
|
386
251
|
NftId instanceNftId,
|
387
252
|
address targetAddress,
|
@@ -390,51 +255,66 @@ contract InstanceService is
|
|
390
255
|
RoleId[] memory roles
|
391
256
|
)
|
392
257
|
external
|
393
|
-
|
258
|
+
virtual
|
259
|
+
restricted()
|
394
260
|
{
|
261
|
+
_createGifTarget(
|
262
|
+
instanceNftId,
|
263
|
+
targetAddress,
|
264
|
+
targetName,
|
265
|
+
roles,
|
266
|
+
selectors
|
267
|
+
);
|
268
|
+
}
|
269
|
+
|
270
|
+
|
271
|
+
function createComponentTarget(
|
272
|
+
NftId instanceNftId,
|
273
|
+
address targetAddress,
|
274
|
+
string memory targetName,
|
275
|
+
bytes4[][] memory selectors,
|
276
|
+
RoleId[] memory roles
|
277
|
+
)
|
278
|
+
external
|
279
|
+
virtual
|
280
|
+
restricted()
|
281
|
+
{
|
282
|
+
_createGifTarget(
|
283
|
+
instanceNftId,
|
284
|
+
targetAddress,
|
285
|
+
targetName,
|
286
|
+
roles,
|
287
|
+
selectors
|
288
|
+
);
|
289
|
+
}
|
290
|
+
|
291
|
+
|
292
|
+
/// all gif targets MUST be children of instanceNftId
|
293
|
+
function _createGifTarget(
|
294
|
+
NftId instanceNftId,
|
295
|
+
address targetAddress,
|
296
|
+
string memory targetName,
|
297
|
+
RoleId[] memory roles,
|
298
|
+
bytes4[][] memory selectors
|
299
|
+
)
|
300
|
+
internal
|
301
|
+
virtual
|
302
|
+
{
|
303
|
+
// TODO instanceAdmin will check target instance match anyway
|
395
304
|
(
|
396
305
|
IInstance instance, // or instanceInfo
|
397
306
|
// or targetInfo
|
398
307
|
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
399
308
|
|
400
|
-
|
401
|
-
|
309
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
310
|
+
instanceAdmin.createGifTarget(targetAddress, targetName);
|
402
311
|
// set proposed target config
|
403
|
-
// TODO restriction:
|
312
|
+
// TODO restriction: gif targets are set only once and only here?
|
404
313
|
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
405
|
-
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++)
|
406
|
-
|
407
|
-
accessManager.setCoreTargetFunctionRole(targetName, selectors[roleIdx], roles[roleIdx]);
|
314
|
+
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
315
|
+
instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
408
316
|
}
|
409
317
|
}
|
410
|
-
|
411
|
-
|
412
|
-
// TODO called by component, but target can be component helper...so needs target name
|
413
|
-
// TODO check that targetName associated with component...how???
|
414
|
-
function setComponentLocked(bool locked) onlyComponent external {
|
415
|
-
|
416
|
-
address componentAddress = msg.sender;
|
417
|
-
IRegistry registry = getRegistry();
|
418
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
419
|
-
|
420
|
-
IInstance instance = IInstance(
|
421
|
-
registry.getObjectInfo(
|
422
|
-
instanceNftId).objectAddress);
|
423
|
-
|
424
|
-
instance.getInstanceAccessManager().setTargetLocked(
|
425
|
-
componentAddress,
|
426
|
-
locked);
|
427
|
-
}
|
428
|
-
|
429
|
-
|
430
|
-
function getMasterInstanceReader() external view returns (address) {
|
431
|
-
return _masterInstanceReader;
|
432
|
-
}
|
433
|
-
|
434
|
-
// From IService
|
435
|
-
function getDomain() public pure override returns(ObjectType) {
|
436
|
-
return INSTANCE();
|
437
|
-
}
|
438
318
|
|
439
319
|
/// @dev top level initializer
|
440
320
|
function _initialize(
|
@@ -446,18 +326,16 @@ contract InstanceService is
|
|
446
326
|
virtual override
|
447
327
|
{
|
448
328
|
(
|
449
|
-
address registryAddress
|
450
|
-
address
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
// owner is InstanceServiceManager deployer
|
460
|
-
initializeService(registryAddress, address(0), owner);
|
329
|
+
address registryAddress,,
|
330
|
+
//address managerAddress
|
331
|
+
address authority
|
332
|
+
) = abi.decode(data, (address, address, address));
|
333
|
+
|
334
|
+
initializeService(registryAddress, authority, owner);
|
335
|
+
|
336
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
337
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
338
|
+
|
461
339
|
registerInterface(type(IInstanceService).interfaceId);
|
462
340
|
}
|
463
341
|
|
@@ -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 ----------------------------------------------------//
|