@etherisc/gif-next 0.0.2-eb98db7-932 → 0.0.2-ebc6253-419
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 +57 -88
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -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 +148 -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 +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1500 -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 +269 -445
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1502 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +842 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +302 -285
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +461 -67
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +292 -2124
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +328 -69
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +399 -2883
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -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/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +676 -369
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +388 -263
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -74
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -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 -49
- 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/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1137 -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/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +338 -285
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1029 -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} +510 -426
- 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 +1466 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +818 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +413 -380
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1182 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1192 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1589 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -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/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +398 -390
- 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 +1331 -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 → product}/IApplicationService.sol/IApplicationService.json +144 -89
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +800 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +205 -228
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +418 -265
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +90 -63
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1276 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -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/product/Product.sol/Product.json +1212 -0
- 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 +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +191 -18
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -138
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +453 -34
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +373 -87
- 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/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -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/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +205 -226
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -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} +101 -103
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +219 -127
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- 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 +106 -18
- 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/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +951 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.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/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
- 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 +114 -21
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -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 +387 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -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 +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- 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/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- 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/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/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/type/RiskId.sol/RiskIdLib.json +86 -0
- 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 +222 -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/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -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 +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/{components → distribution}/Distribution.sol +178 -170
- package/contracts/distribution/DistributionService.sol +322 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +95 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
- package/contracts/instance/IInstance.sol +60 -66
- package/contracts/instance/IInstanceService.sol +57 -24
- package/contracts/instance/Instance.sol +176 -213
- package/contracts/instance/InstanceAdmin.sol +285 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +180 -65
- package/contracts/instance/InstanceService.sol +333 -342
- package/contracts/instance/InstanceServiceManager.sol +12 -26
- package/contracts/instance/InstanceStore.sol +277 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +105 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
- package/contracts/instance/module/IAccess.sol +19 -20
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/{ISetup.sol → IComponents.sol} +21 -23
- package/contracts/instance/module/IDistribution.sol +6 -5
- package/contracts/instance/module/IPolicy.sol +53 -16
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- 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 +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +166 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +436 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +134 -0
- package/contracts/pool/IPoolComponent.sol +58 -0
- package/contracts/pool/IPoolService.sol +147 -0
- package/contracts/pool/Pool.sol +328 -0
- package/contracts/pool/PoolService.sol +518 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +250 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +416 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +17 -36
- package/contracts/product/IClaimService.sol +100 -0
- package/contracts/product/IPolicyService.sol +84 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +40 -0
- package/contracts/product/IProductService.sol +34 -0
- package/contracts/product/PolicyService.sol +586 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +304 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +413 -0
- package/contracts/product/ProductService.sol +99 -0
- package/contracts/product/ProductServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +16 -1
- package/contracts/registry/IRegistry.sol +61 -26
- package/contracts/registry/IRegistryService.sol +44 -42
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +251 -139
- package/contracts/registry/RegistryAdmin.sol +374 -0
- package/contracts/registry/RegistryService.sol +70 -101
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +268 -0
- package/contracts/shared/ComponentService.sol +641 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- 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 +15 -6
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +5 -18
- package/contracts/shared/PolicyHolder.sol +41 -23
- package/contracts/shared/Registerable.sol +15 -14
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +47 -23
- package/contracts/shared/TokenHandler.sol +122 -10
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +206 -0
- package/contracts/staking/Staking.sol +497 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +407 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +135 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/{types → type}/ClaimId.sol +25 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +271 -0
- package/contracts/{types → type}/PayoutId.sol +33 -5
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/type/Seconds.sol +93 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +34 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +34 -15
- package/contracts/{types → type}/UFixed.sol +35 -9
- package/contracts/{types → type}/Version.sol +5 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
- package/package.json +8 -5
- 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/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
- 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 -984
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
- 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 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1087
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -729
- 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/IClaimService.sol/IClaimService.json +0 -398
- 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/IPoolService.sol/IPoolService.json +0 -336
- 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 -1109
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- 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 -510
- 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/AddressSet.sol/LibAddressSet.json +0 -10
- 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/ClaimId.sol/ClaimIdLib.json +0 -100
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- 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/PayoutId.sol/PayoutIdLib.json +0 -100
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- 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/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- 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/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/Component.sol +0 -241
- package/contracts/components/IComponent.sol +0 -54
- package/contracts/components/IDistributionComponent.sol +0 -92
- package/contracts/components/IPoolComponent.sol +0 -87
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -254
- package/contracts/components/Product.sol +0 -285
- package/contracts/instance/InstanceAccessManager.sol +0 -297
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -268
- package/contracts/instance/service/BundleService.sol +0 -298
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -346
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -54
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IDistributionService.sol +0 -73
- package/contracts/instance/service/IPolicyService.sol +0 -89
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -476
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -109
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -233
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -322
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -156
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -2,319 +2,259 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
+
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
|
+
|
7
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {BundleSet} from "./BundleSet.sol";
|
10
|
+
import {ChainNft} from "../registry/ChainNft.sol";
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {RoleId} from "../type/RoleId.sol";
|
13
|
+
import {SecondsLib} from "../type/Seconds.sol";
|
14
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
15
|
+
import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
16
|
+
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
17
|
+
|
18
|
+
import {Service} from "../shared/Service.sol";
|
19
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
20
|
+
import {IService} from "../shared/IService.sol";
|
21
|
+
|
22
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
23
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
24
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
25
|
+
|
26
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
27
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
28
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
29
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
5
30
|
|
6
31
|
import {Instance} from "./Instance.sol";
|
32
|
+
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
7
33
|
import {IInstance} from "./IInstance.sol";
|
8
|
-
import {
|
34
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
9
35
|
import {IInstanceService} from "./IInstanceService.sol";
|
10
36
|
import {InstanceReader} from "./InstanceReader.sol";
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
|
15
|
-
import {Service} from "../../contracts/shared/Service.sol";
|
16
|
-
import {IService} from "../shared/IService.sol";
|
17
|
-
import {NftId} from "../../contracts/types/NftId.sol";
|
18
|
-
import {RoleId} from "../types/RoleId.sol";
|
19
|
-
import {ADMIN_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} from "../types/RoleId.sol";
|
20
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../types/ObjectType.sol";
|
21
|
-
import {IDistributionComponent} from "../components/IDistributionComponent.sol";
|
22
|
-
import {IPoolComponent} from "../components/IPoolComponent.sol";
|
23
|
-
import {IProductComponent} from "../components/IProductComponent.sol";
|
37
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
38
|
+
import {Seconds} from "../type/Seconds.sol";
|
39
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
40
|
+
|
24
41
|
|
25
42
|
contract InstanceService is
|
26
43
|
Service,
|
27
44
|
IInstanceService
|
28
45
|
{
|
29
46
|
|
30
|
-
|
47
|
+
// TODO update to real hash when instance is stable
|
48
|
+
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
49
|
+
|
50
|
+
IRegistryService internal _registryService;
|
51
|
+
IStakingService internal _stakingService;
|
52
|
+
|
53
|
+
address internal _masterAccessManager;
|
54
|
+
address internal _masterInstanceAdmin;
|
31
55
|
address internal _masterInstance;
|
32
56
|
address internal _masterInstanceReader;
|
33
|
-
address internal
|
57
|
+
address internal _masterInstanceBundleSet;
|
58
|
+
address internal _masterInstanceStore;
|
34
59
|
|
35
|
-
// TODO update to real hash when instance is stable
|
36
|
-
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
37
60
|
|
38
|
-
modifier
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
revert ErrorInstanceServiceNotInstanceOwner(msg.sender, instanceNftId);
|
61
|
+
modifier onlyInstance() {
|
62
|
+
address instanceAddress = msg.sender;
|
63
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
64
|
+
if (instanceNftId.eqz()) {
|
65
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
44
66
|
}
|
67
|
+
|
68
|
+
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
69
|
+
if (objectType != INSTANCE()) {
|
70
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
71
|
+
}
|
72
|
+
|
73
|
+
VersionPart instanceVersion = IInstance(instanceAddress).getMajorVersion();
|
74
|
+
if (instanceVersion != getVersion().toMajorPart()) {
|
75
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
|
76
|
+
}
|
77
|
+
|
45
78
|
_;
|
46
79
|
}
|
47
80
|
|
48
|
-
|
49
|
-
|
50
|
-
if
|
51
|
-
revert ErrorInstanceServiceRequestUnauhorized(
|
81
|
+
|
82
|
+
modifier onlyInstanceOwner(NftId instanceNftId) {
|
83
|
+
if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
84
|
+
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
52
85
|
}
|
53
86
|
_;
|
54
87
|
}
|
55
88
|
|
56
|
-
|
89
|
+
// TODO check component - service - instance version match
|
90
|
+
modifier onlyComponent() {
|
91
|
+
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
92
|
+
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
93
|
+
}
|
94
|
+
_;
|
95
|
+
}
|
96
|
+
|
97
|
+
function createInstance()
|
57
98
|
external
|
58
99
|
returns (
|
59
|
-
InstanceAccessManager clonedAccessManager,
|
60
100
|
Instance clonedInstance,
|
61
|
-
NftId clonedInstanceNftId
|
62
|
-
InstanceReader clonedInstanceReader,
|
63
|
-
BundleManager clonedBundleManager
|
101
|
+
NftId clonedInstanceNftId
|
64
102
|
)
|
65
103
|
{
|
104
|
+
// tx sender will become instance owner
|
66
105
|
address instanceOwner = msg.sender;
|
67
|
-
IRegistry registry = getRegistry();
|
68
|
-
address registryAddress = address(registry);
|
69
|
-
NftId registryNftId = registry.getNftId(registryAddress);
|
70
|
-
address registryServiceAddress = registry.getServiceAddress(REGISTRY(), getMajorVersion());
|
71
|
-
IRegistryService registryService = IRegistryService(registryServiceAddress);
|
72
106
|
|
73
|
-
//
|
74
|
-
|
75
|
-
|
76
|
-
clonedAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
|
77
|
-
clonedAccessManager.initialize(address(this));
|
78
|
-
|
79
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
80
|
-
clonedInstance.initialize(address(clonedAccessManager), registryAddress, registryNftId, msg.sender);
|
81
|
-
|
82
|
-
clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
83
|
-
clonedInstanceReader.initialize(registryAddress, address(clonedInstance));
|
84
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
107
|
+
// create instance admin and instance
|
108
|
+
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
109
|
+
clonedInstance = _createInstance(instanceAdmin, instanceOwner);
|
85
110
|
|
86
|
-
|
87
|
-
|
88
|
-
|
111
|
+
// register cloned instance with registry
|
112
|
+
clonedInstanceNftId = _registryService.registerInstance(
|
113
|
+
clonedInstance, instanceOwner).nftId;
|
89
114
|
|
90
|
-
//
|
115
|
+
// register cloned instance as staking target
|
116
|
+
_stakingService.createInstanceTarget(
|
117
|
+
clonedInstanceNftId,
|
118
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
119
|
+
TargetManagerLib.getDefaultRewardRate());
|
91
120
|
|
92
|
-
|
121
|
+
// MUST be set after instance is set up and registered
|
122
|
+
instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
|
93
123
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
124
|
+
emit LogInstanceCloned(
|
125
|
+
clonedInstanceNftId,
|
126
|
+
address(clonedInstance));
|
127
|
+
}
|
98
128
|
|
99
|
-
IRegistry.ObjectInfo memory info = registryService.registerInstance(clonedInstance, instanceOwner);
|
100
|
-
clonedInstanceNftId = info.nftId;
|
101
|
-
// clonedInstance.linkToRegisteredNftId();
|
102
129
|
|
103
|
-
|
130
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
131
|
+
external
|
132
|
+
virtual
|
133
|
+
onlyInstance()
|
134
|
+
{
|
135
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
136
|
+
_stakingService.setInstanceLockingPeriod(
|
137
|
+
instanceNftId,
|
138
|
+
stakeLockingPeriod);
|
104
139
|
}
|
105
140
|
|
106
|
-
function _grantInitialAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
|
107
|
-
_createGifRoles(clonedAccessManager);
|
108
|
-
_createGifTargets(clonedAccessManager, clonedInstance, clonedBundleManager);
|
109
|
-
_grantDistributionServiceAuthorizations(clonedAccessManager, clonedInstance);
|
110
|
-
_grantPoolServiceAuthorizations(clonedAccessManager, clonedInstance);
|
111
|
-
_grantProductServiceAuthorizations(clonedAccessManager, clonedInstance);
|
112
|
-
_grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstance);
|
113
|
-
_grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstance);
|
114
|
-
_grantClaimServiceAuthorizations(clonedAccessManager, clonedInstance);
|
115
|
-
_grantBundleServiceAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
|
116
|
-
_grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
|
117
|
-
}
|
118
141
|
|
119
|
-
function
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
clonedAccessManager.createGifRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
|
129
|
-
clonedAccessManager.createGifRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
|
130
|
-
clonedAccessManager.createGifRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
|
131
|
-
clonedAccessManager.createGifRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
|
142
|
+
function setStakingRewardRate(UFixed rewardRate)
|
143
|
+
external
|
144
|
+
virtual
|
145
|
+
onlyInstance()
|
146
|
+
{
|
147
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
148
|
+
_stakingService.setInstanceRewardRate(
|
149
|
+
instanceNftId,
|
150
|
+
rewardRate);
|
132
151
|
}
|
133
152
|
|
134
|
-
function _createGifTargets(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
|
135
|
-
clonedAccessManager.createGifTarget(address(clonedAccessManager), "InstanceAccessManager");
|
136
|
-
clonedAccessManager.createGifTarget(address(clonedInstance), "Instance");
|
137
|
-
clonedAccessManager.createGifTarget(address(clonedBundleManager), "BundleManager");
|
138
|
-
}
|
139
153
|
|
140
|
-
function
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
instanceDistributionServiceSelectors[4] = clonedInstance.updateDistributorTypeState.selector;
|
151
|
-
instanceDistributionServiceSelectors[5] = clonedInstance.createDistributor.selector;
|
152
|
-
instanceDistributionServiceSelectors[6] = clonedInstance.updateDistributor.selector;
|
153
|
-
instanceDistributionServiceSelectors[7] = clonedInstance.updateDistributorState.selector;
|
154
|
-
instanceDistributionServiceSelectors[8] = clonedInstance.createReferral.selector;
|
155
|
-
instanceDistributionServiceSelectors[9] = clonedInstance.updateReferral.selector;
|
156
|
-
instanceDistributionServiceSelectors[10] = clonedInstance.updateReferralState.selector;
|
157
|
-
clonedAccessManager.setTargetFunctionRole(
|
158
|
-
"Instance",
|
159
|
-
instanceDistributionServiceSelectors,
|
160
|
-
DISTRIBUTION_SERVICE_ROLE());
|
154
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
155
|
+
external
|
156
|
+
virtual
|
157
|
+
onlyInstance()
|
158
|
+
{
|
159
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
160
|
+
_stakingService.refillInstanceRewardReserves(
|
161
|
+
instanceNftId,
|
162
|
+
rewardProvider,
|
163
|
+
dipAmount);
|
161
164
|
}
|
162
165
|
|
163
|
-
function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
164
|
-
// configure authorization for pool service on instance
|
165
|
-
address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getMajorVersion());
|
166
|
-
clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
|
167
|
-
bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
|
168
|
-
instancePoolServiceSelectors[0] = clonedInstance.createPoolSetup.selector;
|
169
|
-
instancePoolServiceSelectors[1] = clonedInstance.updatePoolSetup.selector;
|
170
|
-
clonedAccessManager.setTargetFunctionRole(
|
171
|
-
"Instance",
|
172
|
-
instancePoolServiceSelectors,
|
173
|
-
POOL_SERVICE_ROLE());
|
174
|
-
}
|
175
166
|
|
176
|
-
function
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
clonedAccessManager.setTargetFunctionRole(
|
187
|
-
"Instance",
|
188
|
-
instanceProductServiceSelectors,
|
189
|
-
PRODUCT_SERVICE_ROLE());
|
167
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
168
|
+
external
|
169
|
+
virtual
|
170
|
+
onlyInstance()
|
171
|
+
returns (Amount newBalance)
|
172
|
+
{
|
173
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
174
|
+
_stakingService.withdrawInstanceRewardReserves(
|
175
|
+
instanceNftId,
|
176
|
+
dipAmount);
|
190
177
|
}
|
191
178
|
|
192
|
-
function _grantApplicationServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
193
|
-
// configure authorization for application services on instance
|
194
|
-
address applicationServiceAddress = getRegistry().getServiceAddress(APPLICATION(), getMajorVersion());
|
195
|
-
clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
|
196
|
-
bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
|
197
|
-
instanceApplicationServiceSelectors[0] = clonedInstance.createApplication.selector;
|
198
|
-
instanceApplicationServiceSelectors[1] = clonedInstance.updateApplication.selector;
|
199
|
-
instanceApplicationServiceSelectors[2] = clonedInstance.updateApplicationState.selector;
|
200
|
-
clonedAccessManager.setTargetFunctionRole(
|
201
|
-
"Instance",
|
202
|
-
instanceApplicationServiceSelectors,
|
203
|
-
APPLICATION_SERVICE_ROLE());
|
204
|
-
}
|
205
179
|
|
206
|
-
function
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
clonedAccessManager.setTargetFunctionRole(
|
214
|
-
"Instance",
|
215
|
-
instancePolicyServiceSelectors,
|
216
|
-
POLICY_SERVICE_ROLE());
|
217
|
-
}
|
180
|
+
function setComponentLocked(bool locked)
|
181
|
+
external
|
182
|
+
virtual
|
183
|
+
onlyComponent()
|
184
|
+
{
|
185
|
+
// checks
|
186
|
+
address componentAddress = msg.sender;
|
218
187
|
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
instanceClaimServiceSelectors,
|
230
|
-
CLAIM_SERVICE_ROLE());
|
231
|
-
}
|
188
|
+
if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
189
|
+
revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
|
190
|
+
}
|
191
|
+
|
192
|
+
IRegistry registry = getRegistry();
|
193
|
+
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
194
|
+
|
195
|
+
IInstance instance = IInstance(
|
196
|
+
registry.getObjectInfo(
|
197
|
+
instanceNftId).objectAddress);
|
232
198
|
|
233
|
-
|
234
|
-
//
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
instanceBundleServiceSelectors[0] = clonedInstance.createBundle.selector;
|
239
|
-
instanceBundleServiceSelectors[1] = clonedInstance.updateBundle.selector;
|
240
|
-
clonedAccessManager.setTargetFunctionRole(
|
241
|
-
"Instance",
|
242
|
-
instanceBundleServiceSelectors,
|
243
|
-
BUNDLE_SERVICE_ROLE());
|
244
|
-
|
245
|
-
// configure authorization for bundle service on bundle manager
|
246
|
-
bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
|
247
|
-
bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
|
248
|
-
bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
|
249
|
-
bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
|
250
|
-
bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
|
251
|
-
bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
|
252
|
-
clonedAccessManager.setTargetFunctionRole(
|
253
|
-
"BundleManager",
|
254
|
-
bundleManagerBundleServiceSelectors,
|
255
|
-
BUNDLE_SERVICE_ROLE());
|
199
|
+
// no revert in case already locked
|
200
|
+
// TODO refactor/implement
|
201
|
+
// instance.getInstanceAdmin().setTargetLockedByService(
|
202
|
+
// componentAddress,
|
203
|
+
// locked);
|
256
204
|
}
|
257
205
|
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
|
262
|
-
bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
|
263
|
-
instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
|
264
|
-
clonedAccessManager.setTargetFunctionRole(
|
265
|
-
"Instance",
|
266
|
-
instanceInstanceServiceSelectors,
|
267
|
-
INSTANCE_SERVICE_ROLE());
|
268
|
-
|
269
|
-
bytes4[] memory instanceAccessManagerInstanceServiceSelectors = new bytes4[](1);
|
270
|
-
instanceAccessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
|
271
|
-
clonedAccessManager.setTargetFunctionRole(
|
272
|
-
"InstanceAccessManager",
|
273
|
-
instanceAccessManagerInstanceServiceSelectors,
|
274
|
-
INSTANCE_SERVICE_ROLE());
|
206
|
+
|
207
|
+
function getMasterInstanceReader() external view returns (address) {
|
208
|
+
return _masterInstanceReader;
|
275
209
|
}
|
276
210
|
|
277
|
-
function setAndRegisterMasterInstance(address instanceAddress)
|
211
|
+
function setAndRegisterMasterInstance(address instanceAddress)
|
278
212
|
external
|
279
213
|
onlyOwner
|
280
214
|
returns(NftId masterInstanceNftId)
|
281
215
|
{
|
282
216
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
283
|
-
if(
|
284
|
-
if(
|
217
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
218
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
285
219
|
|
286
220
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
287
221
|
|
288
222
|
IInstance instance = IInstance(instanceAddress);
|
289
|
-
|
290
|
-
|
223
|
+
address accessManagerAddress = instance.authority();
|
224
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
225
|
+
address instanceAdminAddress = address(instanceAdmin);
|
291
226
|
InstanceReader instanceReader = instance.getInstanceReader();
|
292
227
|
address instanceReaderAddress = address(instanceReader);
|
293
|
-
|
228
|
+
BundleSet bundleManager = instance.getBundleSet();
|
294
229
|
address bundleManagerAddress = address(bundleManager);
|
230
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
231
|
+
address instanceStoreAddress = address(instanceStore);
|
295
232
|
|
296
233
|
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
234
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
297
235
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
298
|
-
if(bundleManagerAddress == address(0)) { revert
|
236
|
+
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
237
|
+
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
299
238
|
|
300
|
-
if(instance.authority() !=
|
301
|
-
if(
|
239
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
240
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
241
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
302
242
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
243
|
+
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
303
244
|
|
304
|
-
|
245
|
+
_masterAccessManager = accessManagerAddress;
|
246
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
305
247
|
_masterInstance = instanceAddress;
|
306
248
|
_masterInstanceReader = instanceReaderAddress;
|
307
|
-
|
249
|
+
_masterInstanceBundleSet = bundleManagerAddress;
|
250
|
+
_masterInstanceStore = instanceStoreAddress;
|
308
251
|
|
309
|
-
IRegistryService registryService = IRegistryService(getRegistry().getServiceAddress(REGISTRY(), getMajorVersion()));
|
310
252
|
IInstance masterInstance = IInstance(_masterInstance);
|
311
|
-
IRegistry.ObjectInfo memory info =
|
253
|
+
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
312
254
|
masterInstanceNftId = info.nftId;
|
313
|
-
|
314
|
-
// masterInstance.linkToRegisteredNftId();
|
315
255
|
}
|
316
256
|
|
317
|
-
function
|
257
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
318
258
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
319
259
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
320
260
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -325,152 +265,203 @@ contract InstanceService is
|
|
325
265
|
_masterInstanceReader = instanceReaderAddress;
|
326
266
|
}
|
327
267
|
|
328
|
-
|
329
|
-
|
268
|
+
function upgradeInstanceReader(NftId instanceNftId)
|
269
|
+
external
|
270
|
+
onlyInstanceOwner(instanceNftId)
|
271
|
+
{
|
330
272
|
IRegistry registry = getRegistry();
|
331
273
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
332
274
|
Instance instance = Instance(instanceInfo.objectAddress);
|
333
|
-
address owner = instance.getOwner();
|
334
|
-
|
335
|
-
if (msg.sender != owner) {
|
336
|
-
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
337
|
-
}
|
338
275
|
|
339
276
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
340
|
-
upgradedInstanceReaderClone.
|
277
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
341
278
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
342
279
|
}
|
343
280
|
|
344
|
-
function getMasterInstanceReader() external view returns (address) {
|
345
|
-
return _masterInstanceReader;
|
346
|
-
}
|
347
281
|
|
348
|
-
function
|
349
|
-
|
282
|
+
function createGifTarget(
|
283
|
+
NftId instanceNftId,
|
284
|
+
address targetAddress,
|
285
|
+
string memory targetName,
|
286
|
+
bytes4[][] memory selectors,
|
287
|
+
RoleId[] memory roles
|
288
|
+
)
|
289
|
+
external
|
290
|
+
virtual
|
291
|
+
restricted()
|
292
|
+
{
|
293
|
+
_createGifTarget(
|
294
|
+
instanceNftId,
|
295
|
+
targetAddress,
|
296
|
+
targetName,
|
297
|
+
roles,
|
298
|
+
selectors
|
299
|
+
);
|
350
300
|
}
|
351
301
|
|
352
|
-
function getMasterInstanceAccessManager() external view returns (address) {
|
353
|
-
return _masterInstanceAccessManager;
|
354
|
-
}
|
355
302
|
|
356
|
-
function
|
357
|
-
|
303
|
+
function initializeAuthorization(
|
304
|
+
NftId instanceNftId,
|
305
|
+
IInstanceLinkedComponent component
|
306
|
+
)
|
307
|
+
external
|
308
|
+
virtual
|
309
|
+
restricted()
|
310
|
+
{
|
311
|
+
(IInstance instance, ) = _validateInstanceAndComponent(
|
312
|
+
instanceNftId,
|
313
|
+
address(component));
|
314
|
+
|
315
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
316
|
+
instanceAdmin.initializeComponentAuthorization(
|
317
|
+
component,
|
318
|
+
component.getAuthorization());
|
358
319
|
}
|
359
320
|
|
360
|
-
|
361
|
-
function
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
address owner,
|
368
|
-
bytes memory data
|
321
|
+
|
322
|
+
function createComponentTarget(
|
323
|
+
NftId instanceNftId,
|
324
|
+
address targetAddress,
|
325
|
+
string memory targetName,
|
326
|
+
bytes4[][] memory selectors,
|
327
|
+
RoleId[] memory roles
|
369
328
|
)
|
370
|
-
|
371
|
-
|
372
|
-
|
329
|
+
external
|
330
|
+
virtual
|
331
|
+
restricted()
|
373
332
|
{
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
333
|
+
_createGifTarget(
|
334
|
+
instanceNftId,
|
335
|
+
targetAddress,
|
336
|
+
targetName,
|
337
|
+
roles,
|
338
|
+
selectors
|
339
|
+
);
|
381
340
|
}
|
382
341
|
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
342
|
+
/// @dev create new cloned instance admin
|
343
|
+
/// function used to setup a new instance
|
344
|
+
function _createInstanceAdmin()
|
345
|
+
internal
|
346
|
+
virtual
|
347
|
+
returns (InstanceAdmin clonedInstanceAdmin)
|
348
|
+
{
|
349
|
+
// start with setting up a new OZ access manager
|
350
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
351
|
+
Clones.clone(_masterAccessManager));
|
352
|
+
|
353
|
+
// set up the instance admin
|
354
|
+
clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
355
|
+
clonedAccessManager.initialize(
|
356
|
+
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
357
|
+
|
358
|
+
clonedInstanceAdmin.initialize(
|
359
|
+
clonedAccessManager,
|
360
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
387
361
|
}
|
388
362
|
|
389
|
-
function createGifTarget(NftId instanceNftId, address targetAddress, string memory targetName) external onlyRegisteredService {
|
390
|
-
IRegistry registry = getRegistry();
|
391
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
392
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
393
|
-
InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
|
394
|
-
accessManager.createGifTarget(targetAddress, targetName);
|
395
|
-
}
|
396
363
|
|
397
|
-
|
398
|
-
|
399
|
-
|
364
|
+
/// @dev create new cloned instance
|
365
|
+
/// function used to setup a new instance
|
366
|
+
function _createInstance(
|
367
|
+
InstanceAdmin instanceAdmin,
|
368
|
+
address instanceOwner
|
369
|
+
)
|
370
|
+
internal
|
371
|
+
virtual
|
372
|
+
returns (Instance clonedInstance)
|
373
|
+
{
|
374
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
375
|
+
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
376
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
400
377
|
|
401
|
-
|
402
|
-
|
403
|
-
|
378
|
+
// clone instance
|
379
|
+
clonedInstance = Instance(Clones.clone(_masterInstance));
|
380
|
+
clonedInstance.initialize(
|
381
|
+
instanceAdmin,
|
382
|
+
clonedInstanceStore,
|
383
|
+
clonedBundleSet,
|
384
|
+
clonedInstanceReader,
|
385
|
+
getRegistry(),
|
386
|
+
instanceOwner);
|
387
|
+
}
|
404
388
|
|
405
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
406
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
407
|
-
InstanceAccessManager instanceAccessManager = InstanceAccessManager(instance.authority());
|
408
389
|
|
409
|
-
|
410
|
-
|
411
|
-
|
390
|
+
/// all gif targets MUST be children of instanceNftId
|
391
|
+
function _createGifTarget(
|
392
|
+
NftId instanceNftId,
|
393
|
+
address targetAddress,
|
394
|
+
string memory targetName,
|
395
|
+
RoleId[] memory roles,
|
396
|
+
bytes4[][] memory selectors
|
397
|
+
)
|
398
|
+
internal
|
399
|
+
virtual
|
400
|
+
{
|
401
|
+
// TODO instanceAdmin will check target instance match anyway
|
402
|
+
(
|
403
|
+
IInstance instance, // or instanceInfo
|
404
|
+
// or targetInfo
|
405
|
+
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
412
406
|
|
413
|
-
|
414
|
-
fctSelectors2[0] = IDistributionComponent.processSale.selector;
|
415
|
-
fctSelectors2[1] = IDistributionComponent.processRenewal.selector;
|
416
|
-
instanceAccessManager.setTargetFunctionRole(distributionName, fctSelectors2, PRODUCT_SERVICE_ROLE());
|
417
|
-
}
|
407
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
418
408
|
|
419
|
-
|
420
|
-
|
421
|
-
IRegistry.ObjectInfo memory poolInfo = registry.getObjectInfo(poolAddress);
|
409
|
+
// TODO refactor/implement
|
410
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
422
411
|
|
423
|
-
|
424
|
-
|
412
|
+
// set proposed target config
|
413
|
+
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
414
|
+
// TODO refactor/implement
|
415
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
425
416
|
}
|
417
|
+
}
|
418
|
+
|
419
|
+
/// @dev top level initializer
|
420
|
+
function _initialize(
|
421
|
+
address owner,
|
422
|
+
bytes memory data
|
423
|
+
)
|
424
|
+
internal
|
425
|
+
initializer
|
426
|
+
virtual override
|
427
|
+
{
|
428
|
+
(
|
429
|
+
address registryAddress,,
|
430
|
+
//address managerAddress
|
431
|
+
address authority
|
432
|
+
) = abi.decode(data, (address, address, address));
|
426
433
|
|
427
|
-
|
428
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
429
|
-
InstanceAccessManager instanceAccessManager = InstanceAccessManager(instance.authority());
|
434
|
+
initializeService(registryAddress, authority, owner);
|
430
435
|
|
431
|
-
|
432
|
-
|
433
|
-
instanceAccessManager.setTargetFunctionRole(poolName, fctSelectors, POOL_OWNER_ROLE());
|
436
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
437
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
434
438
|
|
435
|
-
|
436
|
-
fctSelectors2[0] = IPoolComponent.verifyApplication.selector;
|
437
|
-
instanceAccessManager.setTargetFunctionRole(poolName, fctSelectors2, POLICY_SERVICE_ROLE());
|
439
|
+
registerInterface(type(IInstanceService).interfaceId);
|
438
440
|
}
|
439
441
|
|
440
|
-
function grantProductDefaultPermissions(NftId instanceNftId, address productAddress, string memory productName) external onlyRegisteredService {
|
441
|
-
IRegistry registry = getRegistry();
|
442
|
-
IRegistry.ObjectInfo memory productInfo = registry.getObjectInfo(productAddress);
|
443
|
-
|
444
|
-
if (productInfo.objectType != PRODUCT()) {
|
445
|
-
revert ErrorInstanceServiceInvalidComponentType(productAddress, PRODUCT(), productInfo.objectType);
|
446
|
-
}
|
447
442
|
|
443
|
+
function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
|
444
|
+
internal
|
445
|
+
view
|
446
|
+
returns (IInstance instance, NftId componentNftId)
|
447
|
+
{
|
448
|
+
IRegistry registry = getRegistry();
|
448
449
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
bytes4[] memory fctSelectors = new bytes4[](1);
|
453
|
-
fctSelectors[0] = IProductComponent.setFees.selector;
|
454
|
-
instanceAccessManager.setTargetFunctionRole(productName, fctSelectors, PRODUCT_OWNER_ROLE());
|
455
|
-
}
|
450
|
+
if(instanceInfo.objectType != INSTANCE()) {
|
451
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
452
|
+
}
|
456
453
|
|
457
|
-
function setTargetLocked(string memory targetName, bool locked) external {
|
458
|
-
address componentAddress = msg.sender;
|
459
|
-
IRegistry registry = getRegistry();
|
460
454
|
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
461
|
-
if
|
462
|
-
revert
|
455
|
+
if(componentInfo.parentNftId != instanceNftId) {
|
456
|
+
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
463
457
|
}
|
464
458
|
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
address instanceAddress = registry.getObjectInfo(componentInfo.parentNftId).objectAddress;
|
469
|
-
IInstance instance = IInstance(instanceAddress);
|
470
|
-
|
471
|
-
InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
|
472
|
-
accessManager.setTargetClosed(targetName, locked);
|
459
|
+
instance = Instance(instanceInfo.objectAddress);
|
460
|
+
componentNftId = componentInfo.nftId;
|
473
461
|
}
|
474
|
-
|
475
|
-
}
|
476
462
|
|
463
|
+
// From IService
|
464
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
465
|
+
return INSTANCE();
|
466
|
+
}
|
467
|
+
}
|