@etherisc/gif-next 0.0.2-e818783-565 → 0.0.2-e8b06c8-540
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 +20 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +188 -342
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +184 -253
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +77 -324
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +37 -112
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +218 -2177
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +189 -70
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +429 -2801
- 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/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +721 -389
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +254 -239
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -119
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3592 -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 -54
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -0
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -218
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +254 -153
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +65 -48
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +191 -296
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +290 -56
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -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} +96 -186
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +93 -258
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
- 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 -141
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/Product.sol/Product.json +338 -248
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -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 +310 -53
- 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 +1741 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +768 -90
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +195 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- 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 +1747 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -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} +27 -95
- 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 +110 -84
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -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 +3 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
- 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 +17 -6
- 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/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
- 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 -22
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
- 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 +17 -6
- 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 +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -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 +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -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/type/ObjectType.sol/ObjectTypeLib.json +239 -0
- 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/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- 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/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -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/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- 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/type/UFixed.sol/UFixedLib.json +498 -0
- 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/authorization/AccessAdmin.sol +622 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +35 -0
- package/contracts/authorization/InstanceAdmin.sol +108 -0
- package/contracts/authorization/ModuleAuthorization.sol +203 -0
- package/contracts/authorization/ServiceAuthorization.sol +86 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/{components → distribution}/Distribution.sol +157 -158
- package/contracts/distribution/DistributionService.sol +303 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/distribution/IDistributionComponent.sol +78 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +24 -38
- package/contracts/instance/BundleManager.sol +5 -5
- package/contracts/instance/IInstance.sol +49 -65
- package/contracts/instance/IInstanceService.sol +46 -23
- package/contracts/instance/Instance.sol +188 -205
- package/contracts/instance/InstanceAdmin.sol +334 -0
- package/contracts/instance/InstanceAdminNew.sol +261 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +422 -0
- package/contracts/instance/InstanceReader.sol +153 -60
- package/contracts/instance/InstanceService.sol +347 -309
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +273 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +13 -16
- 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 +22 -15
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +33 -23
- package/contracts/pool/IPoolComponent.sol +52 -0
- package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
- package/contracts/pool/Pool.sol +311 -0
- package/contracts/pool/PoolService.sol +452 -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/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +39 -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 +300 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/{components → product}/Product.sol +152 -131
- 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 -36
- package/contracts/registry/Registry.sol +198 -83
- package/contracts/registry/RegistryAdmin.sol +363 -0
- package/contracts/registry/RegistryService.sol +71 -87
- package/contracts/registry/RegistryServiceManager.sol +21 -30
- package/contracts/registry/ReleaseManager.sol +405 -199
- package/contracts/registry/ServiceAuthorizationV3.sol +202 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessManagerCustom.sol +741 -0
- package/contracts/shared/AccessManagerExtended.sol +481 -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 +281 -0
- package/contracts/shared/ComponentService.sol +626 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -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 +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +50 -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 +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +11 -2
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +152 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +18 -5
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -16
- package/contracts/shared/PolicyHolder.sol +40 -19
- package/contracts/shared/ProxyManager.sol +34 -4
- package/contracts/shared/Registerable.sol +13 -12
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +32 -21
- 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 +153 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +613 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- 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/type/ObjectType.sol +275 -0
- package/contracts/{types → type}/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +202 -0
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +6 -2
- package/contracts/{types → type}/UFixed.sol +6 -0
- package/contracts/{types → type}/Version.sol +1 -1
- package/package.json +6 -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/ObjectManager.sol/ObjectManager.json +0 -256
- 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/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 -1060
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1266
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
- 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 -1511
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
- 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/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 -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 -185
- 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/ObjectType.sol/ObjectTypeLib.json +0 -92
- 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/Referral.sol/ReferralLib.json +0 -142
- 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/RoleId.sol/RoleIdLib.json +0 -156
- 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/UFixed.sol/UFixedLib.json +0 -479
- 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/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -113
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/components/Pool.sol +0 -302
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -121
- package/contracts/instance/base/KeyValueStore.sol +0 -180
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -355
- package/contracts/instance/service/BundleService.sol +0 -436
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -239
- package/contracts/instance/service/DistributionService.sol +0 -431
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IClaimService.sol +0 -92
- package/contracts/instance/service/IPolicyService.sol +0 -137
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -541
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -303
- 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/Amount.sol +0 -65
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -157
- package/contracts/types/RoleId.sol +0 -97
- /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
@@ -4,49 +4,90 @@ 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 {Amount} from "../type/Amount.sol";
|
8
|
+
import {BundleManager} from "./BundleManager.sol";
|
9
|
+
import {ChainNft} from "../registry/ChainNft.sol";
|
10
|
+
import {NftId} from "../type/NftId.sol";
|
11
|
+
import {RoleId} from "../type/RoleId.sol";
|
12
|
+
import {SecondsLib} from "../type/Seconds.sol";
|
13
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
14
|
+
import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
15
|
+
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
16
|
+
|
17
|
+
import {Service} from "../shared/Service.sol";
|
18
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
19
|
+
import {IService} from "../shared/IService.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";
|
31
|
+
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
8
32
|
import {IInstance} from "./IInstance.sol";
|
9
|
-
|
33
|
+
// TODO cleanup
|
34
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
35
|
+
import {InstanceAdminNew} from "./InstanceAdminNew.sol";
|
10
36
|
import {IInstanceService} from "./IInstanceService.sol";
|
11
37
|
import {InstanceReader} from "./InstanceReader.sol";
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
|
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";
|
38
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
39
|
+
import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
|
40
|
+
import {Seconds} from "../type/Seconds.sol";
|
41
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
42
|
+
|
21
43
|
|
22
44
|
contract InstanceService is
|
23
45
|
Service,
|
24
46
|
IInstanceService
|
25
47
|
{
|
26
|
-
|
27
|
-
|
48
|
+
|
49
|
+
// TODO update to real hash when instance is stable
|
50
|
+
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
51
|
+
|
52
|
+
IRegistryService internal _registryService;
|
53
|
+
IStakingService internal _stakingService;
|
54
|
+
|
55
|
+
address internal _masterInstanceAdmin;
|
28
56
|
address internal _masterInstance;
|
29
57
|
address internal _masterInstanceReader;
|
30
58
|
address internal _masterInstanceBundleManager;
|
59
|
+
address internal _masterInstanceStore;
|
31
60
|
|
32
|
-
// TODO update to real hash when instance is stable
|
33
|
-
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
34
61
|
|
35
|
-
modifier
|
36
|
-
|
37
|
-
|
62
|
+
modifier onlyInstance() {
|
63
|
+
address instanceAddress = msg.sender;
|
64
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
65
|
+
if (instanceNftId.eqz()) {
|
66
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
67
|
+
}
|
68
|
+
|
69
|
+
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
70
|
+
if (objectType != INSTANCE()) {
|
71
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
72
|
+
}
|
73
|
+
|
74
|
+
VersionPart instanceVersion = IInstance(instanceAddress).getMajorVersion();
|
75
|
+
if (instanceVersion != getVersion().toMajorPart()) {
|
76
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
|
38
77
|
}
|
78
|
+
|
39
79
|
_;
|
40
80
|
}
|
41
|
-
|
42
|
-
|
43
|
-
modifier
|
44
|
-
if
|
81
|
+
|
82
|
+
|
83
|
+
modifier onlyInstanceOwner(NftId instanceNftId) {
|
84
|
+
if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
45
85
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
46
86
|
}
|
47
87
|
_;
|
48
88
|
}
|
49
|
-
|
89
|
+
|
90
|
+
// TODO check component - service - instance version match
|
50
91
|
modifier onlyComponent() {
|
51
92
|
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
52
93
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
@@ -57,311 +98,259 @@ contract InstanceService is
|
|
57
98
|
function createInstanceClone()
|
58
99
|
external
|
59
100
|
returns (
|
60
|
-
AccessManagerUpgradeableInitializeable clonedOzAccessManager,
|
61
|
-
InstanceAccessManager clonedInstanceAccessManager,
|
62
101
|
Instance clonedInstance,
|
63
|
-
NftId clonedInstanceNftId
|
64
|
-
InstanceReader clonedInstanceReader,
|
65
|
-
BundleManager clonedBundleManager
|
102
|
+
NftId clonedInstanceNftId
|
66
103
|
)
|
67
104
|
{
|
105
|
+
// tx sender will become instance owner
|
68
106
|
address instanceOwner = msg.sender;
|
69
|
-
IRegistry registry = getRegistry();
|
70
|
-
IRegistryService registryService = IRegistryService(
|
71
|
-
registry.getServiceAddress(
|
72
|
-
REGISTRY(), getVersion().toMajorPart()));
|
73
107
|
|
74
|
-
|
75
|
-
|
108
|
+
// start with setting up the instance admin
|
109
|
+
InstanceAdminNew clonedInstanceAdmin = InstanceAdminNew(Clones.clone(_masterInstanceAdmin));
|
110
|
+
clonedInstanceAdmin.initialize(InstanceAdminNew(_masterInstanceAdmin).getInstanceAuthorization());
|
76
111
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
81
|
-
clonedOzAccessManager.initialize(address(this));
|
112
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
113
|
+
BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
114
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
82
115
|
|
116
|
+
// clone instance
|
83
117
|
clonedInstance = Instance(Clones.clone(_masterInstance));
|
84
118
|
clonedInstance.initialize(
|
85
|
-
|
86
|
-
|
119
|
+
clonedInstanceAdmin,
|
120
|
+
clonedInstanceStore,
|
121
|
+
clonedBundleManager,
|
122
|
+
clonedInstanceReader,
|
123
|
+
getRegistry(),
|
87
124
|
instanceOwner);
|
88
|
-
|
89
|
-
clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
90
|
-
clonedInstanceReader.initialize(address(clonedInstance));
|
91
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
92
|
-
|
93
|
-
clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
94
|
-
clonedBundleManager.initialize(address(clonedInstance));
|
95
|
-
clonedInstance.setBundleManager(clonedBundleManager);
|
96
125
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
126
|
+
// TODO cleanup
|
127
|
+
// // initialize and set before instance reader
|
128
|
+
// InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
129
|
+
// clonedInstanceStore.initialize(address(clonedInstance));
|
130
|
+
// clonedInstance.setInstanceStore(clonedInstanceStore);
|
131
|
+
|
132
|
+
// InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
133
|
+
// clonedInstanceReader.initialize(address(clonedInstance));
|
134
|
+
// clonedInstance.setInstanceReader(clonedInstanceReader);
|
101
135
|
|
102
|
-
//
|
136
|
+
// BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
137
|
+
// clonedBundleManager.initialize(address(clonedInstance));
|
138
|
+
// clonedInstance.setBundleManager(clonedBundleManager);
|
103
139
|
|
104
|
-
|
140
|
+
// register cloned instance with registry
|
141
|
+
clonedInstanceNftId = _registryService.registerInstance(
|
142
|
+
clonedInstance, instanceOwner).nftId;
|
105
143
|
|
106
|
-
|
144
|
+
// register cloned instance as staking target
|
145
|
+
_stakingService.createInstanceTarget(
|
146
|
+
clonedInstanceNftId,
|
147
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
148
|
+
TargetManagerLib.getDefaultRewardRate());
|
107
149
|
|
108
|
-
|
109
|
-
|
150
|
+
// MUST be set after instance is set up and registered
|
151
|
+
clonedInstanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
|
110
152
|
|
111
153
|
emit LogInstanceCloned(
|
112
|
-
|
113
|
-
address(
|
114
|
-
address(clonedInstance),
|
115
|
-
address(clonedBundleManager),
|
116
|
-
address(clonedInstanceReader),
|
117
|
-
clonedInstanceNftId);
|
154
|
+
clonedInstanceNftId,
|
155
|
+
address(clonedInstance));
|
118
156
|
}
|
119
157
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
158
|
+
// TODO cleanup/remove
|
159
|
+
// function _createInstanceCloneOld()
|
160
|
+
// external
|
161
|
+
// returns (
|
162
|
+
// Instance clonedInstance,
|
163
|
+
// NftId clonedInstanceNftId
|
164
|
+
// )
|
165
|
+
// {
|
166
|
+
// address instanceOwner = msg.sender;
|
167
|
+
// AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
|
168
|
+
// Clones.clone(_masterAccessManager));
|
169
|
+
|
170
|
+
// // initially grants ADMIN_ROLE to this (being the instance service).
|
171
|
+
// // This will allow the instance service to bootstrap the authorizations of the instance.
|
172
|
+
// // Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
173
|
+
// clonedAccessManager.initialize(address(this));
|
174
|
+
|
175
|
+
// clonedInstance = Instance(Clones.clone(_masterInstance));
|
176
|
+
// // clonedInstance.initialize(
|
177
|
+
// // address(clonedAccessManager),
|
178
|
+
// // address(getRegistry()),
|
179
|
+
// // instanceOwner);
|
180
|
+
// // initialize and set before instance reader
|
181
|
+
// InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
182
|
+
// // clonedInstanceStore.initialize(address(clonedInstance));
|
183
|
+
// clonedInstance.setInstanceStore(clonedInstanceStore);
|
184
|
+
|
185
|
+
// InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
186
|
+
// // clonedInstanceReader.initialize(address(clonedInstance));
|
187
|
+
// clonedInstance.setInstanceReader(clonedInstanceReader);
|
188
|
+
|
189
|
+
// BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
190
|
+
// // clonedBundleManager.initialize(address(clonedInstance));
|
191
|
+
// clonedInstance.setBundleManager(clonedBundleManager);
|
192
|
+
|
193
|
+
// InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
194
|
+
// clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
|
195
|
+
// // clonedInstanceAdmin.initialize(address(clonedInstance));
|
196
|
+
// // clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
|
197
|
+
|
198
|
+
// // TODO amend setters with instance specific , policy manager ...
|
199
|
+
|
200
|
+
// // TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
201
|
+
// InstanceAuthorizationsLib.grantInitialAuthorizations(
|
202
|
+
// clonedAccessManager,
|
203
|
+
// clonedInstanceAdmin,
|
204
|
+
// clonedInstance,
|
205
|
+
// clonedBundleManager,
|
206
|
+
// clonedInstanceStore,
|
207
|
+
// instanceOwner,
|
208
|
+
// getRegistry(),
|
209
|
+
// getVersion().toMajorPart());
|
210
|
+
|
211
|
+
// clonedAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
|
212
|
+
|
213
|
+
// // register new instance with registry
|
214
|
+
// IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
|
215
|
+
// clonedInstanceNftId = info.nftId;
|
216
|
+
|
217
|
+
// // create corresponding staking target
|
218
|
+
// _stakingService.createInstanceTarget(
|
219
|
+
// clonedInstanceNftId,
|
220
|
+
// TargetManagerLib.getDefaultLockingPeriod(),
|
221
|
+
// TargetManagerLib.getDefaultRewardRate());
|
222
|
+
|
223
|
+
// emit LogInstanceCloned(
|
224
|
+
// clonedInstanceNftId,
|
225
|
+
// address(clonedInstance));
|
226
|
+
// }
|
227
|
+
|
228
|
+
|
229
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
230
|
+
external
|
231
|
+
virtual
|
232
|
+
onlyInstance()
|
126
233
|
{
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
_grantProductServiceAuthorizations(clonedAccessManager, clonedInstance);
|
132
|
-
_grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstance);
|
133
|
-
_grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstance);
|
134
|
-
_grantClaimServiceAuthorizations(clonedAccessManager, clonedInstance);
|
135
|
-
_grantBundleServiceAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
|
136
|
-
_grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
|
137
|
-
_grantInstanceOwnerAuthorizations(clonedAccessManager, instanceOwner);
|
234
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
235
|
+
_stakingService.setInstanceLockingPeriod(
|
236
|
+
instanceNftId,
|
237
|
+
stakeLockingPeriod);
|
138
238
|
}
|
139
239
|
|
140
|
-
function _createCoreAndGifRoles(InstanceAccessManager clonedAccessManager) internal {
|
141
|
-
// default roles controlled by ADMIN_ROLE -> core roles
|
142
|
-
// all set/granted only once during cloning (the only exception is INSTANCE_OWNER_ROLE, hooked to instance nft)
|
143
|
-
clonedAccessManager.createCoreRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
|
144
|
-
clonedAccessManager.createCoreRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
|
145
|
-
clonedAccessManager.createCoreRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
|
146
|
-
clonedAccessManager.createCoreRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
|
147
|
-
clonedAccessManager.createCoreRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
|
148
|
-
clonedAccessManager.createCoreRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
|
149
|
-
clonedAccessManager.createCoreRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
|
150
|
-
clonedAccessManager.createCoreRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
|
151
|
-
// default roles controlled by INSTANCE_OWNER_ROLE -> gif roles
|
152
|
-
clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", INSTANCE_OWNER_ROLE());
|
153
|
-
clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole", INSTANCE_OWNER_ROLE());
|
154
|
-
clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", INSTANCE_OWNER_ROLE());
|
155
|
-
}
|
156
240
|
|
157
|
-
function
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
clonedAccessManager.grantRole(DISTRIBUTION_SERVICE_ROLE(), distributionServiceAddress);
|
167
|
-
bytes4[] memory instanceDistributionServiceSelectors = new bytes4[](11);
|
168
|
-
instanceDistributionServiceSelectors[0] = clonedInstance.createDistributionSetup.selector;
|
169
|
-
instanceDistributionServiceSelectors[1] = clonedInstance.updateDistributionSetup.selector;
|
170
|
-
instanceDistributionServiceSelectors[2] = clonedInstance.createDistributorType.selector;
|
171
|
-
instanceDistributionServiceSelectors[3] = clonedInstance.updateDistributorType.selector;
|
172
|
-
instanceDistributionServiceSelectors[4] = clonedInstance.updateDistributorTypeState.selector;
|
173
|
-
instanceDistributionServiceSelectors[5] = clonedInstance.createDistributor.selector;
|
174
|
-
instanceDistributionServiceSelectors[6] = clonedInstance.updateDistributor.selector;
|
175
|
-
instanceDistributionServiceSelectors[7] = clonedInstance.updateDistributorState.selector;
|
176
|
-
instanceDistributionServiceSelectors[8] = clonedInstance.createReferral.selector;
|
177
|
-
instanceDistributionServiceSelectors[9] = clonedInstance.updateReferral.selector;
|
178
|
-
instanceDistributionServiceSelectors[10] = clonedInstance.updateReferralState.selector;
|
179
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
180
|
-
"Instance",
|
181
|
-
instanceDistributionServiceSelectors,
|
182
|
-
DISTRIBUTION_SERVICE_ROLE());
|
241
|
+
function setStakingRewardRate(UFixed rewardRate)
|
242
|
+
external
|
243
|
+
virtual
|
244
|
+
onlyInstance()
|
245
|
+
{
|
246
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
247
|
+
_stakingService.setInstanceRewardRate(
|
248
|
+
instanceNftId,
|
249
|
+
rewardRate);
|
183
250
|
}
|
184
251
|
|
185
|
-
function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
186
|
-
// configure authorization for pool service on instance
|
187
|
-
address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart());
|
188
|
-
clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
|
189
|
-
bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
|
190
|
-
instancePoolServiceSelectors[0] = clonedInstance.createPoolSetup.selector;
|
191
|
-
instancePoolServiceSelectors[1] = clonedInstance.updatePoolSetup.selector;
|
192
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
193
|
-
"Instance",
|
194
|
-
instancePoolServiceSelectors,
|
195
|
-
POOL_SERVICE_ROLE());
|
196
|
-
}
|
197
252
|
|
198
|
-
function
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
209
|
-
"Instance",
|
210
|
-
instanceProductServiceSelectors,
|
211
|
-
PRODUCT_SERVICE_ROLE());
|
253
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
254
|
+
external
|
255
|
+
virtual
|
256
|
+
onlyInstance()
|
257
|
+
{
|
258
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
259
|
+
_stakingService.refillInstanceRewardReserves(
|
260
|
+
instanceNftId,
|
261
|
+
rewardProvider,
|
262
|
+
dipAmount);
|
212
263
|
}
|
213
264
|
|
214
|
-
function _grantApplicationServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
215
|
-
// configure authorization for application services on instance
|
216
|
-
address applicationServiceAddress = getRegistry().getServiceAddress(APPLICATION(), getVersion().toMajorPart());
|
217
|
-
clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
|
218
|
-
bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
|
219
|
-
instanceApplicationServiceSelectors[0] = clonedInstance.createApplication.selector;
|
220
|
-
instanceApplicationServiceSelectors[1] = clonedInstance.updateApplication.selector;
|
221
|
-
instanceApplicationServiceSelectors[2] = clonedInstance.updateApplicationState.selector;
|
222
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
223
|
-
"Instance",
|
224
|
-
instanceApplicationServiceSelectors,
|
225
|
-
APPLICATION_SERVICE_ROLE());
|
226
|
-
}
|
227
265
|
|
228
|
-
function
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
POLICY_SERVICE_ROLE());
|
266
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
267
|
+
external
|
268
|
+
virtual
|
269
|
+
onlyInstance()
|
270
|
+
returns (Amount newBalance)
|
271
|
+
{
|
272
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
273
|
+
_stakingService.withdrawInstanceRewardReserves(
|
274
|
+
instanceNftId,
|
275
|
+
dipAmount);
|
239
276
|
}
|
240
277
|
|
241
|
-
function _grantClaimServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
242
|
-
// configure authorization for claim/payout services on instance
|
243
|
-
address claimServiceAddress = getRegistry().getServiceAddress(CLAIM(), getVersion().toMajorPart());
|
244
|
-
clonedAccessManager.grantRole(CLAIM_SERVICE_ROLE(), claimServiceAddress);
|
245
|
-
bytes4[] memory instanceClaimServiceSelectors = new bytes4[](4);
|
246
|
-
instanceClaimServiceSelectors[0] = clonedInstance.createClaim.selector;
|
247
|
-
instanceClaimServiceSelectors[1] = clonedInstance.updateClaim.selector;
|
248
|
-
instanceClaimServiceSelectors[2] = clonedInstance.createPayout.selector;
|
249
|
-
instanceClaimServiceSelectors[3] = clonedInstance.updatePayout.selector;
|
250
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
251
|
-
"Instance",
|
252
|
-
instanceClaimServiceSelectors,
|
253
|
-
CLAIM_SERVICE_ROLE());
|
254
|
-
}
|
255
278
|
|
256
|
-
function
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
instanceBundleServiceSelectors[2] = clonedInstance.updateBundleState.selector;
|
264
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
265
|
-
"Instance",
|
266
|
-
instanceBundleServiceSelectors,
|
267
|
-
BUNDLE_SERVICE_ROLE());
|
268
|
-
|
269
|
-
// configure authorization for bundle service on bundle manager
|
270
|
-
bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
|
271
|
-
bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
|
272
|
-
bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
|
273
|
-
bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
|
274
|
-
bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
|
275
|
-
bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
|
276
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
277
|
-
"BundleManager",
|
278
|
-
bundleManagerBundleServiceSelectors,
|
279
|
-
BUNDLE_SERVICE_ROLE());
|
280
|
-
}
|
279
|
+
function setComponentLocked(bool locked)
|
280
|
+
external
|
281
|
+
virtual
|
282
|
+
onlyComponent()
|
283
|
+
{
|
284
|
+
// checks
|
285
|
+
address componentAddress = msg.sender;
|
281
286
|
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
// configure authorizations for instance service on instance access manager
|
294
|
-
bytes4[] memory accessManagerInstanceServiceSelectors = new bytes4[](3);
|
295
|
-
accessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
|
296
|
-
accessManagerInstanceServiceSelectors[1] = clonedAccessManager.setTargetLocked.selector;
|
297
|
-
accessManagerInstanceServiceSelectors[2] = clonedAccessManager.setCoreTargetFunctionRole.selector;
|
298
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
299
|
-
"InstanceAccessManager",
|
300
|
-
accessManagerInstanceServiceSelectors,
|
301
|
-
INSTANCE_SERVICE_ROLE());
|
302
|
-
}
|
287
|
+
if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
288
|
+
revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
|
289
|
+
}
|
290
|
+
|
291
|
+
IRegistry registry = getRegistry();
|
292
|
+
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
293
|
+
|
294
|
+
IInstance instance = IInstance(
|
295
|
+
registry.getObjectInfo(
|
296
|
+
instanceNftId).objectAddress);
|
303
297
|
|
304
|
-
|
305
|
-
//
|
306
|
-
// instance
|
307
|
-
|
308
|
-
|
309
|
-
accessManagerInstanceOwnerSelectors[1] = clonedAccessManager.createTarget.selector;
|
310
|
-
accessManagerInstanceOwnerSelectors[2] = clonedAccessManager.setTargetFunctionRole.selector;
|
311
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
312
|
-
"InstanceAccessManager",
|
313
|
-
accessManagerInstanceOwnerSelectors,
|
314
|
-
INSTANCE_OWNER_ROLE());
|
298
|
+
// no revert in case already locked
|
299
|
+
// TODO refactor/implement
|
300
|
+
// instance.getInstanceAdmin().setTargetLockedByService(
|
301
|
+
// componentAddress,
|
302
|
+
// locked);
|
315
303
|
}
|
316
304
|
|
317
305
|
|
318
|
-
function
|
306
|
+
function getMasterInstanceReader() external view returns (address) {
|
307
|
+
return _masterInstanceReader;
|
308
|
+
}
|
309
|
+
|
310
|
+
function setAndRegisterMasterInstance(address instanceAddress)
|
319
311
|
external
|
320
312
|
onlyOwner
|
321
313
|
returns(NftId masterInstanceNftId)
|
322
314
|
{
|
323
315
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
324
|
-
if(
|
325
|
-
if(_masterInstanceAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
|
316
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
326
317
|
if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
|
327
318
|
|
328
319
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
329
320
|
|
330
321
|
IInstance instance = IInstance(instanceAddress);
|
331
|
-
|
332
|
-
address
|
333
|
-
InstanceAccessManager instanceAccessManager = instance.getInstanceAccessManager();
|
334
|
-
address instanceAccessManagerAddress = address(instanceAccessManager);
|
322
|
+
InstanceAdminNew instanceAdmin = instance.getInstanceAdmin();
|
323
|
+
address instanceAdminAddress = address(instanceAdmin);
|
335
324
|
InstanceReader instanceReader = instance.getInstanceReader();
|
336
325
|
address instanceReaderAddress = address(instanceReader);
|
337
326
|
BundleManager bundleManager = instance.getBundleManager();
|
338
327
|
address bundleManagerAddress = address(bundleManager);
|
328
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
329
|
+
address instanceStoreAddress = address(instanceStore);
|
339
330
|
|
340
|
-
if(
|
341
|
-
if(instanceAccessManagerAddress == address(0)) { revert ErrorInstanceServiceInstanceAccessManagerZero(); }
|
331
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
342
332
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
343
333
|
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
|
334
|
+
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
344
335
|
|
345
|
-
if(instance.authority() !=
|
346
|
-
if(bundleManager.authority() !=
|
347
|
-
if(
|
336
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
337
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
|
338
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
348
339
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
340
|
+
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
349
341
|
|
350
|
-
|
351
|
-
_masterInstanceAccessManager = instanceAccessManagerAddress;
|
342
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
352
343
|
_masterInstance = instanceAddress;
|
353
344
|
_masterInstanceReader = instanceReaderAddress;
|
354
345
|
_masterInstanceBundleManager = bundleManagerAddress;
|
346
|
+
_masterInstanceStore = instanceStoreAddress;
|
355
347
|
|
356
|
-
IRegistryService registryService = IRegistryService(getRegistry().getServiceAddress(REGISTRY(), getVersion().toMajorPart()));
|
357
348
|
IInstance masterInstance = IInstance(_masterInstance);
|
358
|
-
IRegistry.ObjectInfo memory info =
|
349
|
+
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
359
350
|
masterInstanceNftId = info.nftId;
|
360
|
-
|
361
|
-
// masterInstance.linkToRegisteredNftId();
|
362
351
|
}
|
363
352
|
|
364
|
-
function
|
353
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
365
354
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
366
355
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
367
356
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -381,39 +370,52 @@ contract InstanceService is
|
|
381
370
|
Instance instance = Instance(instanceInfo.objectAddress);
|
382
371
|
|
383
372
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
384
|
-
upgradedInstanceReaderClone.
|
373
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
385
374
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
386
375
|
}
|
387
376
|
|
388
|
-
function getMasterInstanceReader() external view returns (address) {
|
389
|
-
return _masterInstanceReader;
|
390
|
-
}
|
391
377
|
|
392
|
-
|
393
|
-
|
394
|
-
|
378
|
+
function createGifTarget(
|
379
|
+
NftId instanceNftId,
|
380
|
+
address targetAddress,
|
381
|
+
string memory targetName,
|
382
|
+
bytes4[][] memory selectors,
|
383
|
+
RoleId[] memory roles
|
384
|
+
)
|
385
|
+
external
|
386
|
+
virtual
|
387
|
+
restricted()
|
388
|
+
{
|
389
|
+
_createGifTarget(
|
390
|
+
instanceNftId,
|
391
|
+
targetAddress,
|
392
|
+
targetName,
|
393
|
+
roles,
|
394
|
+
selectors
|
395
|
+
);
|
395
396
|
}
|
396
|
-
|
397
|
-
|
398
|
-
function
|
399
|
-
|
400
|
-
|
397
|
+
|
398
|
+
|
399
|
+
function initializeAuthorization(
|
400
|
+
NftId instanceNftId,
|
401
|
+
IInstanceLinkedComponent component
|
401
402
|
)
|
402
|
-
|
403
|
-
|
404
|
-
|
403
|
+
external
|
404
|
+
virtual
|
405
|
+
restricted()
|
405
406
|
{
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
407
|
+
(IInstance instance, ) = _validateInstanceAndComponent(
|
408
|
+
instanceNftId,
|
409
|
+
address(component));
|
410
|
+
|
411
|
+
InstanceAdminNew instanceAdmin = instance.getInstanceAdmin();
|
412
|
+
instanceAdmin.initializeComponentAuthorization(
|
413
|
+
address(component),
|
414
|
+
component.getAuthorization());
|
413
415
|
}
|
414
416
|
|
415
|
-
|
416
|
-
function
|
417
|
+
|
418
|
+
function createComponentTarget(
|
417
419
|
NftId instanceNftId,
|
418
420
|
address targetAddress,
|
419
421
|
string memory targetName,
|
@@ -421,41 +423,72 @@ contract InstanceService is
|
|
421
423
|
RoleId[] memory roles
|
422
424
|
)
|
423
425
|
external
|
424
|
-
|
426
|
+
virtual
|
427
|
+
restricted()
|
428
|
+
{
|
429
|
+
_createGifTarget(
|
430
|
+
instanceNftId,
|
431
|
+
targetAddress,
|
432
|
+
targetName,
|
433
|
+
roles,
|
434
|
+
selectors
|
435
|
+
);
|
436
|
+
}
|
437
|
+
|
438
|
+
|
439
|
+
/// all gif targets MUST be children of instanceNftId
|
440
|
+
function _createGifTarget(
|
441
|
+
NftId instanceNftId,
|
442
|
+
address targetAddress,
|
443
|
+
string memory targetName,
|
444
|
+
RoleId[] memory roles,
|
445
|
+
bytes4[][] memory selectors
|
446
|
+
)
|
447
|
+
internal
|
448
|
+
virtual
|
425
449
|
{
|
450
|
+
// TODO instanceAdmin will check target instance match anyway
|
426
451
|
(
|
427
452
|
IInstance instance, // or instanceInfo
|
428
|
-
|
453
|
+
// or targetInfo
|
429
454
|
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
430
455
|
|
431
|
-
|
432
|
-
|
456
|
+
InstanceAdminNew instanceAdmin = instance.getInstanceAdmin();
|
457
|
+
|
458
|
+
// TODO refactor/implement
|
459
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
460
|
+
|
433
461
|
// set proposed target config
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
{
|
438
|
-
accessManager.setCoreTargetFunctionRole(targetName, selectors[roleIdx], roles[roleIdx]);
|
462
|
+
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
463
|
+
// TODO refactor/implement
|
464
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
439
465
|
}
|
440
466
|
}
|
467
|
+
|
468
|
+
/// @dev top level initializer
|
469
|
+
function _initialize(
|
470
|
+
address owner,
|
471
|
+
bytes memory data
|
472
|
+
)
|
473
|
+
internal
|
474
|
+
initializer
|
475
|
+
virtual override
|
476
|
+
{
|
477
|
+
(
|
478
|
+
address registryAddress,,
|
479
|
+
//address managerAddress
|
480
|
+
address authority
|
481
|
+
) = abi.decode(data, (address, address, address));
|
441
482
|
|
442
|
-
|
443
|
-
// TODO check that targetName associated with component...how???
|
444
|
-
function setComponentLocked(bool locked) onlyComponent external {
|
445
|
-
|
446
|
-
address componentAddress = msg.sender;
|
447
|
-
IRegistry registry = getRegistry();
|
448
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
483
|
+
initializeService(registryAddress, authority, owner);
|
449
484
|
|
450
|
-
|
451
|
-
|
452
|
-
instanceNftId).objectAddress);
|
485
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
486
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
453
487
|
|
454
|
-
|
455
|
-
componentAddress,
|
456
|
-
locked);
|
488
|
+
registerInterface(type(IInstanceService).interfaceId);
|
457
489
|
}
|
458
490
|
|
491
|
+
|
459
492
|
function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
|
460
493
|
internal
|
461
494
|
view
|
@@ -464,7 +497,7 @@ contract InstanceService is
|
|
464
497
|
IRegistry registry = getRegistry();
|
465
498
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
466
499
|
if(instanceInfo.objectType != INSTANCE()) {
|
467
|
-
revert
|
500
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
468
501
|
}
|
469
502
|
|
470
503
|
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
@@ -475,4 +508,9 @@ contract InstanceService is
|
|
475
508
|
instance = Instance(instanceInfo.objectAddress);
|
476
509
|
componentNftId = componentInfo.nftId;
|
477
510
|
}
|
511
|
+
|
512
|
+
// From IService
|
513
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
514
|
+
return INSTANCE();
|
515
|
+
}
|
478
516
|
}
|