@etherisc/gif-next 0.0.2-c6d46bb-892 → 0.0.2-c7609c4-545
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 +51 -5
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -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 +414 -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 +1060 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +236 -564
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +331 -432
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +167 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +220 -291
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +215 -94
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
- 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 +118 -97
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +173 -87
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +122 -222
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +850 -366
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +247 -231
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +145 -79
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1212 -381
- 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 +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- 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 +223 -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 +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 +1039 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -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 +788 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +494 -317
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +225 -87
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +256 -31
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +238 -373
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -254
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +268 -577
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +572 -569
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +151 -93
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +117 -264
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +138 -76
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +329 -284
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +180 -90
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +54 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +354 -80
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +154 -86
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +360 -209
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +44 -57
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +418 -397
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +163 -121
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +233 -330
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +167 -93
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +381 -448
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +435 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +270 -109
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +861 -64
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +330 -234
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +132 -76
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +138 -286
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1335 -198
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +110 -114
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +36 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +49 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -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 +26 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +68 -85
- 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 +55 -101
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
- 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 +1465 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +573 -53
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +658 -176
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- 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 +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
- 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 +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- 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 +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- 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 +602 -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 +596 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +156 -156
- package/contracts/distribution/DistributionService.sol +179 -173
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +28 -47
- package/contracts/distribution/IDistributionService.sol +24 -10
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +73 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +415 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +33 -44
- package/contracts/instance/IInstanceService.sol +32 -34
- package/contracts/instance/Instance.sol +129 -126
- package/contracts/instance/InstanceAdmin.sol +277 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
- package/contracts/instance/InstanceReader.sol +194 -67
- package/contracts/instance/InstanceService.sol +250 -144
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +142 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +21 -11
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +31 -25
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +47 -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 +66 -0
- package/contracts/oracle/Oracle.sol +156 -0
- package/contracts/oracle/OracleService.sol +291 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +154 -0
- package/contracts/pool/BasicPoolAuthorization.sol +57 -0
- package/contracts/pool/BundleService.sol +322 -211
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +44 -19
- package/contracts/pool/IPoolComponent.sol +27 -73
- package/contracts/pool/IPoolService.sol +93 -40
- package/contracts/pool/Pool.sol +186 -153
- package/contracts/pool/PoolService.sol +375 -234
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +158 -85
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +333 -163
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +2 -1
- package/contracts/product/IClaimService.sol +35 -5
- package/contracts/product/IPolicyService.sol +38 -38
- package/contracts/product/IPricingService.sol +13 -11
- package/contracts/product/IProductComponent.sol +28 -10
- package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -9
- package/contracts/product/PolicyService.sol +519 -204
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +109 -84
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +222 -146
- package/contracts/product/RiskService.sol +96 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +75 -38
- package/contracts/registry/IRegistry.sol +91 -21
- package/contracts/registry/IRegistryService.sol +30 -34
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +445 -195
- package/contracts/registry/RegistryAdmin.sol +448 -0
- package/contracts/registry/RegistryService.sol +85 -129
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +501 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +150 -156
- package/contracts/shared/ComponentService.sol +694 -99
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +126 -0
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +25 -41
- package/contracts/shared/IComponentService.sol +120 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +213 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +31 -22
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +21 -11
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +48 -36
- package/contracts/shared/TokenHandler.sol +112 -8
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +103 -48
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +497 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +190 -0
- package/contracts/staking/StakingService.sol +290 -49
- package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +14 -7
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +44 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +15 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +176 -62
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +16 -2
- package/contracts/type/RoleId.sol +98 -68
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +38 -9
- package/contracts/type/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +10 -6
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- 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 -581
- 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/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- 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/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- 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 -569
- 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/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/ProductService.sol +0 -210
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -328
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -4,14 +4,20 @@ 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 {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";
|
7
11
|
import {NftId} from "../type/NftId.sol";
|
8
12
|
import {RoleId} from "../type/RoleId.sol";
|
9
|
-
import {
|
10
|
-
import {
|
13
|
+
import {SecondsLib} from "../type/Seconds.sol";
|
14
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
15
|
+
import {ADMIN_ROLE} from "../type/RoleId.sol";
|
16
|
+
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
11
17
|
|
12
18
|
import {Service} from "../shared/Service.sol";
|
19
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
13
20
|
import {IService} from "../shared/IService.sol";
|
14
|
-
import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
|
15
21
|
|
16
22
|
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
17
23
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
@@ -19,16 +25,18 @@ import {IProductComponent} from "../product/IProductComponent.sol";
|
|
19
25
|
|
20
26
|
import {IRegistry} from "../registry/IRegistry.sol";
|
21
27
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
22
|
-
import {
|
28
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
29
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
23
30
|
|
24
31
|
import {Instance} from "./Instance.sol";
|
25
32
|
import {IInstance} from "./IInstance.sol";
|
26
|
-
import {
|
33
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
27
34
|
import {IInstanceService} from "./IInstanceService.sol";
|
28
35
|
import {InstanceReader} from "./InstanceReader.sol";
|
29
|
-
import {BundleManager} from "./BundleManager.sol";
|
30
36
|
import {InstanceStore} from "./InstanceStore.sol";
|
31
|
-
import {
|
37
|
+
import {Seconds} from "../type/Seconds.sol";
|
38
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
39
|
+
|
32
40
|
|
33
41
|
contract InstanceService is
|
34
42
|
Service,
|
@@ -39,28 +47,45 @@ contract InstanceService is
|
|
39
47
|
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
40
48
|
|
41
49
|
IRegistryService internal _registryService;
|
42
|
-
|
43
|
-
|
50
|
+
IStakingService internal _stakingService;
|
51
|
+
|
52
|
+
address internal _masterAccessManager;
|
53
|
+
address internal _masterInstanceAdmin;
|
44
54
|
address internal _masterInstance;
|
45
55
|
address internal _masterInstanceReader;
|
46
|
-
address internal
|
56
|
+
address internal _masterInstanceBundleSet;
|
47
57
|
address internal _masterInstanceStore;
|
48
58
|
|
49
|
-
|
50
|
-
|
51
|
-
|
59
|
+
|
60
|
+
modifier onlyInstance() {
|
61
|
+
address instanceAddress = msg.sender;
|
62
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
63
|
+
if (instanceNftId.eqz()) {
|
64
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
65
|
+
}
|
66
|
+
|
67
|
+
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
68
|
+
if (objectType != INSTANCE()) {
|
69
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
52
70
|
}
|
71
|
+
|
72
|
+
VersionPart instanceVersion = IInstance(instanceAddress).getRelease();
|
73
|
+
if (instanceVersion != getVersion().toMajorPart()) {
|
74
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
|
75
|
+
}
|
76
|
+
|
53
77
|
_;
|
54
78
|
}
|
55
|
-
|
56
|
-
|
57
|
-
modifier
|
58
|
-
if
|
79
|
+
|
80
|
+
|
81
|
+
modifier onlyInstanceOwner(NftId instanceNftId) {
|
82
|
+
if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
59
83
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
60
84
|
}
|
61
85
|
_;
|
62
86
|
}
|
63
|
-
|
87
|
+
|
88
|
+
// TODO check component - service - instance version match
|
64
89
|
modifier onlyComponent() {
|
65
90
|
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
66
91
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
@@ -68,71 +93,117 @@ contract InstanceService is
|
|
68
93
|
_;
|
69
94
|
}
|
70
95
|
|
71
|
-
function
|
96
|
+
function createInstance()
|
72
97
|
external
|
73
98
|
returns (
|
74
|
-
|
75
|
-
NftId
|
99
|
+
IInstance instance,
|
100
|
+
NftId instanceNftId
|
76
101
|
)
|
77
102
|
{
|
103
|
+
// tx sender will become instance owner
|
78
104
|
address instanceOwner = msg.sender;
|
79
|
-
AccessManagerUpgradeableInitializeable clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
|
80
|
-
Clones.clone(_masterOzAccessManager));
|
81
105
|
|
82
|
-
//
|
83
|
-
|
84
|
-
|
85
|
-
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
86
|
-
clonedOzAccessManager.initialize(address(this));
|
106
|
+
// create instance admin and instance
|
107
|
+
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
108
|
+
instance = _createInstance(instanceAdmin, instanceOwner);
|
87
109
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
address(getRegistry()),
|
92
|
-
instanceOwner);
|
93
|
-
// initialize and set before instance reader
|
94
|
-
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
95
|
-
clonedInstanceStore.initialize(address(clonedInstance));
|
96
|
-
clonedInstance.setInstanceStore(clonedInstanceStore);
|
97
|
-
|
98
|
-
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
99
|
-
clonedInstanceReader.initialize(address(clonedInstance));
|
100
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
101
|
-
|
102
|
-
BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
103
|
-
clonedBundleManager.initialize(address(clonedInstance));
|
104
|
-
clonedInstance.setBundleManager(clonedBundleManager);
|
105
|
-
|
106
|
-
InstanceAccessManager clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
|
107
|
-
clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAccessManager), 0);
|
108
|
-
clonedInstanceAccessManager.initialize(address(clonedInstance));
|
109
|
-
clonedInstance.setInstanceAccessManager(clonedInstanceAccessManager);
|
110
|
-
|
111
|
-
// TODO amend setters with instance specific , policy manager ...
|
112
|
-
|
113
|
-
// TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
114
|
-
InstanceAuthorizationsLib.grantInitialAuthorizations(
|
115
|
-
clonedInstanceAccessManager,
|
116
|
-
clonedInstance,
|
117
|
-
clonedBundleManager,
|
118
|
-
clonedInstanceStore,
|
119
|
-
instanceOwner,
|
120
|
-
getRegistry(),
|
121
|
-
getVersion().toMajorPart());
|
110
|
+
// register cloned instance with registry
|
111
|
+
instanceNftId = _registryService.registerInstance(
|
112
|
+
instance, instanceOwner).nftId;
|
122
113
|
|
123
|
-
|
114
|
+
// register cloned instance as staking target
|
115
|
+
_stakingService.createInstanceTarget(
|
116
|
+
instanceNftId,
|
117
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
118
|
+
TargetManagerLib.getDefaultRewardRate());
|
124
119
|
|
125
|
-
|
126
|
-
|
120
|
+
// MUST be set after instance is set up and registered
|
121
|
+
instanceAdmin.initializeInstanceAuthorization(address(instance));
|
127
122
|
|
128
123
|
emit LogInstanceCloned(
|
129
|
-
|
130
|
-
address(
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
124
|
+
instanceNftId,
|
125
|
+
address(instance));
|
126
|
+
}
|
127
|
+
|
128
|
+
|
129
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
130
|
+
external
|
131
|
+
virtual
|
132
|
+
onlyInstance()
|
133
|
+
{
|
134
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
135
|
+
_stakingService.setInstanceLockingPeriod(
|
136
|
+
instanceNftId,
|
137
|
+
stakeLockingPeriod);
|
138
|
+
}
|
139
|
+
|
140
|
+
|
141
|
+
function setStakingRewardRate(UFixed rewardRate)
|
142
|
+
external
|
143
|
+
virtual
|
144
|
+
onlyInstance()
|
145
|
+
{
|
146
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
147
|
+
_stakingService.setInstanceRewardRate(
|
148
|
+
instanceNftId,
|
149
|
+
rewardRate);
|
150
|
+
}
|
151
|
+
|
152
|
+
|
153
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
154
|
+
external
|
155
|
+
virtual
|
156
|
+
onlyInstance()
|
157
|
+
{
|
158
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
159
|
+
_stakingService.refillInstanceRewardReserves(
|
160
|
+
instanceNftId,
|
161
|
+
rewardProvider,
|
162
|
+
dipAmount);
|
163
|
+
}
|
164
|
+
|
165
|
+
|
166
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
167
|
+
external
|
168
|
+
virtual
|
169
|
+
onlyInstance()
|
170
|
+
returns (Amount newBalance)
|
171
|
+
{
|
172
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
173
|
+
_stakingService.withdrawInstanceRewardReserves(
|
174
|
+
instanceNftId,
|
175
|
+
dipAmount);
|
176
|
+
}
|
177
|
+
|
178
|
+
|
179
|
+
function setComponentLocked(bool locked)
|
180
|
+
external
|
181
|
+
virtual
|
182
|
+
onlyComponent()
|
183
|
+
{
|
184
|
+
// checks
|
185
|
+
address componentAddress = msg.sender;
|
186
|
+
|
187
|
+
if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
188
|
+
revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
|
189
|
+
}
|
190
|
+
|
191
|
+
IRegistry registry = getRegistry();
|
192
|
+
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
193
|
+
|
194
|
+
IInstance instance = IInstance(
|
195
|
+
registry.getObjectAddress(instanceNftId));
|
196
|
+
|
197
|
+
// no revert in case already locked
|
198
|
+
// TODO refactor/implement
|
199
|
+
// instance.getInstanceAdmin().setTargetLockedByService(
|
200
|
+
// componentAddress,
|
201
|
+
// locked);
|
202
|
+
}
|
203
|
+
|
204
|
+
|
205
|
+
function getMasterInstanceReader() external view returns (address) {
|
206
|
+
return _masterInstanceReader;
|
136
207
|
}
|
137
208
|
|
138
209
|
function setAndRegisterMasterInstance(address instanceAddress)
|
@@ -141,38 +212,39 @@ contract InstanceService is
|
|
141
212
|
returns(NftId masterInstanceNftId)
|
142
213
|
{
|
143
214
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
144
|
-
if(
|
145
|
-
if(
|
146
|
-
if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
|
215
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
216
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
147
217
|
|
148
218
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
149
219
|
|
150
220
|
IInstance instance = IInstance(instanceAddress);
|
151
|
-
|
152
|
-
|
221
|
+
address accessManagerAddress = instance.authority();
|
222
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
223
|
+
address instanceAdminAddress = address(instanceAdmin);
|
153
224
|
InstanceReader instanceReader = instance.getInstanceReader();
|
154
225
|
address instanceReaderAddress = address(instanceReader);
|
155
|
-
|
226
|
+
BundleSet bundleManager = instance.getBundleSet();
|
156
227
|
address bundleManagerAddress = address(bundleManager);
|
157
228
|
InstanceStore instanceStore = instance.getInstanceStore();
|
158
229
|
address instanceStoreAddress = address(instanceStore);
|
159
230
|
|
160
|
-
if(
|
231
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
232
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
161
233
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
162
|
-
if(bundleManagerAddress == address(0)) { revert
|
234
|
+
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
163
235
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
164
236
|
|
165
|
-
if(instance.authority() !=
|
166
|
-
if(bundleManager.authority() !=
|
167
|
-
if(instanceStore.authority() !=
|
237
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
238
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
239
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
168
240
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
169
241
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
170
242
|
|
171
|
-
|
172
|
-
|
243
|
+
_masterAccessManager = accessManagerAddress;
|
244
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
173
245
|
_masterInstance = instanceAddress;
|
174
246
|
_masterInstanceReader = instanceReaderAddress;
|
175
|
-
|
247
|
+
_masterInstanceBundleSet = bundleManagerAddress;
|
176
248
|
_masterInstanceStore = instanceStoreAddress;
|
177
249
|
|
178
250
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -180,7 +252,7 @@ contract InstanceService is
|
|
180
252
|
masterInstanceNftId = info.nftId;
|
181
253
|
}
|
182
254
|
|
183
|
-
function
|
255
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
184
256
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
185
257
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
186
258
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -194,70 +266,95 @@ contract InstanceService is
|
|
194
266
|
function upgradeInstanceReader(NftId instanceNftId)
|
195
267
|
external
|
196
268
|
onlyInstanceOwner(instanceNftId)
|
269
|
+
onlyNftOfType(instanceNftId, INSTANCE())
|
197
270
|
{
|
198
271
|
IRegistry registry = getRegistry();
|
199
272
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
200
273
|
Instance instance = Instance(instanceInfo.objectAddress);
|
201
274
|
|
202
275
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
203
|
-
upgradedInstanceReaderClone.
|
276
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
204
277
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
205
278
|
}
|
206
279
|
|
280
|
+
/// @dev create new cloned instance admin
|
281
|
+
/// function used to setup a new instance
|
282
|
+
function _createInstanceAdmin()
|
283
|
+
internal
|
284
|
+
virtual
|
285
|
+
returns (InstanceAdmin clonedInstanceAdmin)
|
286
|
+
{
|
287
|
+
// start with setting up a new OZ access manager
|
288
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
289
|
+
Clones.clone(_masterAccessManager));
|
290
|
+
|
291
|
+
// set up the instance admin
|
292
|
+
clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
293
|
+
clonedAccessManager.initialize(
|
294
|
+
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
295
|
+
|
296
|
+
address authorization = address(
|
297
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
298
|
+
clonedInstanceAdmin.initialize(
|
299
|
+
clonedAccessManager,
|
300
|
+
authorization);
|
301
|
+
}
|
302
|
+
|
303
|
+
|
304
|
+
/// @dev create new cloned instance
|
305
|
+
/// function used to setup a new instance
|
306
|
+
function _createInstance(
|
307
|
+
InstanceAdmin instanceAdmin,
|
308
|
+
address instanceOwner
|
309
|
+
)
|
310
|
+
internal
|
311
|
+
virtual
|
312
|
+
returns (IInstance)
|
313
|
+
{
|
314
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
315
|
+
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
316
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
317
|
+
|
318
|
+
// clone instance
|
319
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
320
|
+
clonedInstance.initialize(
|
321
|
+
instanceAdmin,
|
322
|
+
clonedInstanceStore,
|
323
|
+
clonedBundleSet,
|
324
|
+
clonedInstanceReader,
|
325
|
+
getRegistry(),
|
326
|
+
instanceOwner);
|
327
|
+
return clonedInstance;
|
328
|
+
}
|
329
|
+
|
207
330
|
|
208
|
-
|
209
|
-
function
|
331
|
+
/// all gif targets MUST be children of instanceNftId
|
332
|
+
function _createGifTarget(
|
210
333
|
NftId instanceNftId,
|
211
334
|
address targetAddress,
|
212
335
|
string memory targetName,
|
213
|
-
|
214
|
-
|
336
|
+
RoleId[] memory roles,
|
337
|
+
bytes4[][] memory selectors
|
215
338
|
)
|
216
|
-
|
217
|
-
|
339
|
+
internal
|
340
|
+
virtual
|
218
341
|
{
|
342
|
+
// TODO instanceAdmin will check target instance match anyway
|
219
343
|
(
|
220
344
|
IInstance instance, // or instanceInfo
|
221
345
|
// or targetInfo
|
222
346
|
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
223
347
|
|
224
|
-
|
225
|
-
accessManager.createGifTarget(targetAddress, targetName);
|
226
|
-
// set proposed target config
|
227
|
-
// TODO restriction: gif targets are set only once and only here?
|
228
|
-
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
229
|
-
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++)
|
230
|
-
{
|
231
|
-
accessManager.setCoreTargetFunctionRole(targetName, selectors[roleIdx], roles[roleIdx]);
|
232
|
-
}
|
233
|
-
}
|
234
|
-
|
235
|
-
|
236
|
-
// TODO called by component, but target can be component helper...so needs target name
|
237
|
-
// TODO check that targetName associated with component...how???
|
238
|
-
function setComponentLocked(bool locked) onlyComponent external {
|
239
|
-
|
240
|
-
address componentAddress = msg.sender;
|
241
|
-
IRegistry registry = getRegistry();
|
242
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
243
|
-
|
244
|
-
IInstance instance = IInstance(
|
245
|
-
registry.getObjectInfo(
|
246
|
-
instanceNftId).objectAddress);
|
247
|
-
|
248
|
-
instance.getInstanceAccessManager().setTargetLockedByService(
|
249
|
-
componentAddress,
|
250
|
-
locked);
|
251
|
-
}
|
348
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
252
349
|
|
350
|
+
// TODO refactor/implement
|
351
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
253
352
|
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
function getDomain() public pure override returns(ObjectType) {
|
260
|
-
return INSTANCE();
|
353
|
+
// set proposed target config
|
354
|
+
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
355
|
+
// TODO refactor/implement
|
356
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
357
|
+
}
|
261
358
|
}
|
262
359
|
|
263
360
|
/// @dev top level initializer
|
@@ -266,23 +363,20 @@ contract InstanceService is
|
|
266
363
|
bytes memory data
|
267
364
|
)
|
268
365
|
internal
|
269
|
-
initializer
|
270
366
|
virtual override
|
367
|
+
initializer()
|
271
368
|
{
|
272
369
|
(
|
273
370
|
address registryAddress,
|
274
|
-
address
|
371
|
+
address authority
|
275
372
|
) = abi.decode(data, (address, address));
|
276
373
|
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
374
|
+
_initializeService(registryAddress, authority, owner);
|
375
|
+
|
376
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
377
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
281
378
|
|
282
|
-
|
283
|
-
// owner is InstanceServiceManager deployer
|
284
|
-
initializeService(registryAddress, address(0), owner);
|
285
|
-
registerInterface(type(IInstanceService).interfaceId);
|
379
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
286
380
|
}
|
287
381
|
|
288
382
|
|
@@ -294,15 +388,27 @@ contract InstanceService is
|
|
294
388
|
IRegistry registry = getRegistry();
|
295
389
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
296
390
|
if(instanceInfo.objectType != INSTANCE()) {
|
297
|
-
revert
|
391
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
298
392
|
}
|
299
393
|
|
300
|
-
|
301
|
-
|
302
|
-
|
394
|
+
if (registry.getNftIdForAddress(componentAddress).gtz()) {
|
395
|
+
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
396
|
+
|
397
|
+
if(componentInfo.parentNftId != instanceNftId) {
|
398
|
+
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
399
|
+
}
|
400
|
+
|
401
|
+
componentNftId = componentInfo.nftId;
|
402
|
+
} else {
|
403
|
+
|
303
404
|
}
|
304
405
|
|
305
406
|
instance = Instance(instanceInfo.objectAddress);
|
306
|
-
|
407
|
+
|
408
|
+
}
|
409
|
+
|
410
|
+
// From IService
|
411
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
412
|
+
return INSTANCE();
|
307
413
|
}
|
308
414
|
}
|
@@ -1,45 +1,30 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {ProxyManager} from "../shared/ProxyManager.sol";
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
6
|
import {InstanceService} from "./InstanceService.sol";
|
8
|
-
import {Registry} from "../registry/Registry.sol";
|
9
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
10
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
11
7
|
|
12
8
|
contract InstanceServiceManager is ProxyManager {
|
13
9
|
|
14
10
|
InstanceService private _instanceService;
|
15
11
|
|
16
|
-
/// @dev initializes proxy manager with instance service implementation
|
12
|
+
/// @dev initializes proxy manager with instance service implementation
|
17
13
|
constructor(
|
18
|
-
address
|
19
|
-
|
20
|
-
|
14
|
+
address authority,
|
15
|
+
address registry,
|
16
|
+
bytes32 salt
|
17
|
+
)
|
21
18
|
{
|
22
|
-
InstanceService
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
address(
|
27
|
-
data
|
19
|
+
InstanceService svc = new InstanceService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
24
|
+
data,
|
25
|
+
salt);
|
28
26
|
|
29
27
|
_instanceService = InstanceService(address(versionable));
|
30
|
-
|
31
|
-
// TODO `this` must have a role or own nft to register service
|
32
|
-
//Registry registry = Registry(registryAddress);
|
33
|
-
//address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _instanceService.getMajorVersion());
|
34
|
-
//RegistryService registryService = RegistryService(registryServiceAddress);
|
35
|
-
//registryService.registerService(_instanceService);
|
36
|
-
// RegistryService registryService = _instanceService.getRegistryService();
|
37
|
-
|
38
|
-
// TODO no nft to link yet
|
39
|
-
// link ownership of instance service manager ot nft owner of instance service
|
40
|
-
//_linkToNftOwnable(
|
41
|
-
// address(registryAddress),
|
42
|
-
// address(_instanceService));
|
43
28
|
}
|
44
29
|
|
45
30
|
//--- view functions ----------------------------------------------------//
|