@etherisc/gif-next 0.0.2-b098734-179 → 0.0.2-b09ef6b-888
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 +32 -8
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +551 -245
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +681 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +273 -16
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +435 -194
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +139 -15
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +147 -438
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +261 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +88 -328
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +384 -306
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +141 -115
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +83 -171
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +254 -97
- 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 +1445 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -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 +1388 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +275 -46
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +199 -71
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +283 -151
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +990 -419
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +218 -78
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1322 -388
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +216 -245
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +96 -96
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +704 -445
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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 +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +123 -322
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +243 -29
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +98 -121
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +99 -274
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +117 -292
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +261 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -363
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +106 -124
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -111
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +119 -153
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +317 -269
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +117 -303
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +490 -505
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +151 -101
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +191 -164
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -88
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +234 -348
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +261 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +407 -242
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +131 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +293 -17
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +245 -64
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +231 -193
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +335 -278
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +129 -103
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -313
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +232 -346
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -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 +334 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- 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 +540 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +680 -339
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2023 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +435 -245
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +81 -227
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +484 -680
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +131 -155
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +81 -75
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +445 -282
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +98 -121
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- 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 +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -273
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- 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 +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +408 -54
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +188 -109
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +148 -16
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +268 -393
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +121 -126
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +31 -63
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +201 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +185 -130
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +65 -24
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- 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/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -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 +33 -31
- 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 +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +382 -250
- package/contracts/authorization/AccessAdminLib.sol +207 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +350 -203
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +76 -37
- package/contracts/authorization/IAuthorization.sol +33 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +20 -17
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +37 -88
- package/contracts/distribution/DistributionService.sol +152 -89
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -10
- package/contracts/distribution/IDistributionService.sol +30 -22
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +81 -44
- package/contracts/instance/IInstanceService.sol +34 -29
- package/contracts/instance/Instance.sol +164 -94
- package/contracts/instance/InstanceAdmin.sol +325 -109
- package/contracts/instance/InstanceAuthorizationV3.sol +106 -55
- package/contracts/instance/InstanceReader.sol +319 -43
- package/contracts/instance/InstanceService.sol +234 -190
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +23 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +10 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +13 -9
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IPolicy.sol +25 -24
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +1 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +7 -19
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +32 -25
- package/contracts/pool/BasicPoolAuthorization.sol +27 -9
- package/contracts/pool/BundleService.sol +93 -134
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +15 -33
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +86 -68
- package/contracts/pool/Pool.sol +139 -124
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +500 -263
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +50 -26
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +10 -13
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +365 -149
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +43 -8
- package/contracts/product/IPolicyService.sol +39 -28
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +27 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -9
- package/contracts/product/PolicyService.sol +369 -291
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +66 -61
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +145 -91
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +60 -28
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +357 -203
- package/contracts/registry/RegistryAdmin.sol +163 -269
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +37 -48
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +254 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +272 -240
- package/contracts/registry/ServiceAuthorizationV3.sol +187 -52
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +66 -124
- package/contracts/shared/ComponentService.sol +439 -370
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +42 -38
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -28
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +10 -2
- package/contracts/shared/InstanceLinkedComponent.sol +73 -50
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +15 -32
- package/contracts/shared/TokenHandler.sol +282 -71
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +19 -11
- package/contracts/staking/IStakingService.sol +16 -4
- package/contracts/staking/Staking.sol +103 -53
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +96 -21
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +18 -21
- package/contracts/staking/StakingService.sol +82 -25
- package/contracts/staking/StakingServiceManager.sol +6 -5
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +57 -34
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +25 -14
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +5 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- 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 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -387
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -99
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -2,41 +2,31 @@
|
|
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
5
|
|
6
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
8
|
+
import {IInstance} from "./IInstance.sol";
|
9
|
+
import {IInstanceService} from "./IInstanceService.sol";
|
26
10
|
import {IRegistry} from "../registry/IRegistry.sol";
|
27
11
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
28
12
|
import {IStakingService} from "../staking/IStakingService.sol";
|
29
|
-
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
30
13
|
|
14
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
15
|
+
import {Amount} from "../type/Amount.sol";
|
16
|
+
import {BundleSet} from "./BundleSet.sol";
|
31
17
|
import {Instance} from "./Instance.sol";
|
32
|
-
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
33
|
-
import {IInstance} from "./IInstance.sol";
|
34
18
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
35
|
-
import {IInstanceService} from "./IInstanceService.sol";
|
36
19
|
import {InstanceReader} from "./InstanceReader.sol";
|
37
20
|
import {InstanceStore} from "./InstanceStore.sol";
|
21
|
+
import {NftId} from "../type/NftId.sol";
|
22
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
23
|
+
import {RiskSet} from "./RiskSet.sol";
|
24
|
+
import {RoleId} from "../type/RoleId.sol";
|
38
25
|
import {Seconds} from "../type/Seconds.sol";
|
39
|
-
import {
|
26
|
+
import {Service} from "../shared/Service.sol";
|
27
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
28
|
+
import {UFixed} from "../type/UFixed.sol";
|
29
|
+
import {VersionPart} from "../type/Version.sol";
|
40
30
|
|
41
31
|
|
42
32
|
contract InstanceService is
|
@@ -49,32 +39,19 @@ contract InstanceService is
|
|
49
39
|
|
50
40
|
IRegistryService internal _registryService;
|
51
41
|
IStakingService internal _stakingService;
|
42
|
+
IComponentService internal _componentService;
|
52
43
|
|
53
44
|
address internal _masterAccessManager;
|
54
45
|
address internal _masterInstanceAdmin;
|
55
46
|
address internal _masterInstance;
|
56
47
|
address internal _masterInstanceReader;
|
57
48
|
address internal _masterInstanceBundleSet;
|
49
|
+
address internal _masterInstanceRiskSet;
|
58
50
|
address internal _masterInstanceStore;
|
59
51
|
|
60
52
|
|
61
|
-
modifier onlyInstance() {
|
62
|
-
|
63
|
-
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
64
|
-
if (instanceNftId.eqz()) {
|
65
|
-
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
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
|
-
|
53
|
+
modifier onlyInstance() {
|
54
|
+
_checkInstance(msg.sender, getRelease());
|
78
55
|
_;
|
79
56
|
}
|
80
57
|
|
@@ -86,6 +63,7 @@ contract InstanceService is
|
|
86
63
|
_;
|
87
64
|
}
|
88
65
|
|
66
|
+
|
89
67
|
// TODO check component - service - instance version match
|
90
68
|
modifier onlyComponent() {
|
91
69
|
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
@@ -94,45 +72,130 @@ contract InstanceService is
|
|
94
72
|
_;
|
95
73
|
}
|
96
74
|
|
75
|
+
/// @inheritdoc IInstanceService
|
76
|
+
function createRole(
|
77
|
+
string memory roleName,
|
78
|
+
RoleId adminRoleId,
|
79
|
+
uint32 maxMemberCount
|
80
|
+
)
|
81
|
+
external
|
82
|
+
restricted()
|
83
|
+
onlyInstance()
|
84
|
+
returns (RoleId roleId)
|
85
|
+
{
|
86
|
+
IInstance instance = IInstance(msg.sender);
|
87
|
+
roleId = instance.getInstanceAdmin().createRole(
|
88
|
+
roleName,
|
89
|
+
adminRoleId,
|
90
|
+
maxMemberCount);
|
91
|
+
}
|
92
|
+
|
93
|
+
/// @inheritdoc IInstanceService
|
94
|
+
function setRoleActive(RoleId roleId, bool active)
|
95
|
+
external
|
96
|
+
restricted()
|
97
|
+
onlyInstance()
|
98
|
+
{
|
99
|
+
IInstance instance = IInstance(msg.sender);
|
100
|
+
instance.getInstanceAdmin().setRoleActive(roleId, active);
|
101
|
+
}
|
102
|
+
|
103
|
+
|
104
|
+
/// @inheritdoc IInstanceService
|
105
|
+
function grantRole(RoleId roleId, address account)
|
106
|
+
external
|
107
|
+
restricted()
|
108
|
+
onlyInstance()
|
109
|
+
{
|
110
|
+
IInstance instance = IInstance(msg.sender);
|
111
|
+
instance.getInstanceAdmin().grantRole(roleId, account);
|
112
|
+
}
|
113
|
+
|
114
|
+
/// @inheritdoc IInstanceService
|
115
|
+
function revokeRole(RoleId roleId, address account)
|
116
|
+
external
|
117
|
+
restricted()
|
118
|
+
onlyInstance()
|
119
|
+
{
|
120
|
+
IInstance instance = IInstance(msg.sender);
|
121
|
+
instance.getInstanceAdmin().revokeRole(roleId, account);
|
122
|
+
}
|
123
|
+
|
124
|
+
/// @inheritdoc IInstanceService
|
125
|
+
function setInstanceLocked(bool locked)
|
126
|
+
external
|
127
|
+
virtual
|
128
|
+
restricted()
|
129
|
+
onlyInstance()
|
130
|
+
{
|
131
|
+
address instanceAddress = msg.sender;
|
132
|
+
IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
|
133
|
+
}
|
134
|
+
|
135
|
+
|
136
|
+
/// @dev Locks/unlocks the specified target constrolled by the corresponding instance admin.
|
137
|
+
function setTargetLocked(address target, bool locked)
|
138
|
+
external
|
139
|
+
virtual
|
140
|
+
restricted()
|
141
|
+
onlyInstance()
|
142
|
+
{
|
143
|
+
address instanceAddress = msg.sender;
|
144
|
+
IInstance(instanceAddress).getInstanceAdmin().setTargetLocked(target, locked);
|
145
|
+
}
|
146
|
+
|
147
|
+
|
97
148
|
function createInstance()
|
98
149
|
external
|
150
|
+
virtual
|
151
|
+
restricted()
|
99
152
|
returns (
|
100
|
-
|
101
|
-
NftId
|
153
|
+
IInstance instance,
|
154
|
+
NftId instanceNftId
|
102
155
|
)
|
103
156
|
{
|
104
157
|
// tx sender will become instance owner
|
105
158
|
address instanceOwner = msg.sender;
|
106
159
|
|
107
160
|
// create instance admin and instance
|
108
|
-
InstanceAdmin instanceAdmin =
|
109
|
-
|
161
|
+
InstanceAdmin instanceAdmin = _cloneNewInstanceAdmin();
|
162
|
+
instance = _createInstance(instanceAdmin, instanceOwner);
|
110
163
|
|
111
164
|
// register cloned instance with registry
|
112
|
-
|
113
|
-
|
165
|
+
instanceNftId = _registryService.registerInstance(
|
166
|
+
instance, instanceOwner).nftId;
|
167
|
+
|
168
|
+
// MUST be set after instance is set up and registered
|
169
|
+
IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
|
170
|
+
instanceAdmin.completeSetup(
|
171
|
+
address(getRegistry()),
|
172
|
+
address(instance),
|
173
|
+
address(instanceAuthorization),
|
174
|
+
getRelease());
|
175
|
+
|
176
|
+
// hard checks for newly cloned instance
|
177
|
+
assert(address(instance.getRegistry()) == address(getRegistry()));
|
178
|
+
assert(instance.getRelease() == getRelease());
|
114
179
|
|
115
180
|
// register cloned instance as staking target
|
116
181
|
_stakingService.createInstanceTarget(
|
117
|
-
|
182
|
+
instanceNftId,
|
118
183
|
TargetManagerLib.getDefaultLockingPeriod(),
|
119
184
|
TargetManagerLib.getDefaultRewardRate());
|
120
185
|
|
121
|
-
// MUST be set after instance is set up and registered
|
122
|
-
instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
|
123
|
-
|
124
186
|
emit LogInstanceCloned(
|
125
|
-
|
126
|
-
address(
|
187
|
+
instanceNftId,
|
188
|
+
address(instance));
|
127
189
|
}
|
128
190
|
|
129
191
|
|
130
192
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
131
193
|
external
|
132
194
|
virtual
|
195
|
+
restricted()
|
133
196
|
onlyInstance()
|
134
197
|
{
|
135
|
-
NftId instanceNftId = getRegistry().
|
198
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
136
199
|
_stakingService.setInstanceLockingPeriod(
|
137
200
|
instanceNftId,
|
138
201
|
stakeLockingPeriod);
|
@@ -142,21 +205,35 @@ contract InstanceService is
|
|
142
205
|
function setStakingRewardRate(UFixed rewardRate)
|
143
206
|
external
|
144
207
|
virtual
|
208
|
+
restricted()
|
145
209
|
onlyInstance()
|
146
210
|
{
|
147
|
-
NftId instanceNftId = getRegistry().
|
211
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
148
212
|
_stakingService.setInstanceRewardRate(
|
149
213
|
instanceNftId,
|
150
214
|
rewardRate);
|
151
215
|
}
|
152
216
|
|
217
|
+
function setStakingMaxAmount(Amount maxStakedAmount)
|
218
|
+
external
|
219
|
+
virtual
|
220
|
+
restricted()
|
221
|
+
onlyInstance()
|
222
|
+
{
|
223
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
224
|
+
_stakingService.setInstanceMaxStakedAmount(
|
225
|
+
instanceNftId,
|
226
|
+
maxStakedAmount);
|
227
|
+
}
|
228
|
+
|
153
229
|
|
154
230
|
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
155
231
|
external
|
156
232
|
virtual
|
233
|
+
restricted()
|
157
234
|
onlyInstance()
|
158
235
|
{
|
159
|
-
NftId instanceNftId = getRegistry().
|
236
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
160
237
|
_stakingService.refillInstanceRewardReserves(
|
161
238
|
instanceNftId,
|
162
239
|
rewardProvider,
|
@@ -167,56 +244,42 @@ contract InstanceService is
|
|
167
244
|
function withdrawStakingRewardReserves(Amount dipAmount)
|
168
245
|
external
|
169
246
|
virtual
|
247
|
+
restricted()
|
170
248
|
onlyInstance()
|
171
249
|
returns (Amount newBalance)
|
172
250
|
{
|
173
|
-
NftId instanceNftId = getRegistry().
|
251
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
174
252
|
_stakingService.withdrawInstanceRewardReserves(
|
175
253
|
instanceNftId,
|
176
254
|
dipAmount);
|
177
255
|
}
|
178
256
|
|
179
257
|
|
180
|
-
function
|
181
|
-
external
|
182
|
-
|
183
|
-
|
258
|
+
function upgradeInstanceReader()
|
259
|
+
external
|
260
|
+
restricted()
|
261
|
+
onlyInstance()
|
184
262
|
{
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
}
|
191
|
-
|
192
|
-
IRegistry registry = getRegistry();
|
193
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
194
|
-
|
195
|
-
IInstance instance = IInstance(
|
196
|
-
registry.getObjectInfo(
|
197
|
-
instanceNftId).objectAddress);
|
263
|
+
address instanceAddress = msg.sender;
|
264
|
+
IInstance instance = IInstance(msg.sender);
|
265
|
+
|
266
|
+
InstanceReader upgradedInstanceReaderClone = InstanceReader(
|
267
|
+
Clones.clone(address(_masterInstanceReader)));
|
198
268
|
|
199
|
-
|
200
|
-
|
201
|
-
// instance.getInstanceAdmin().setTargetLockedByService(
|
202
|
-
// componentAddress,
|
203
|
-
// locked);
|
269
|
+
upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
|
270
|
+
instance.setInstanceReader(upgradedInstanceReaderClone);
|
204
271
|
}
|
205
272
|
|
206
273
|
|
207
|
-
function getMasterInstanceReader() external view returns (address) {
|
208
|
-
return _masterInstanceReader;
|
209
|
-
}
|
210
|
-
|
211
274
|
function setAndRegisterMasterInstance(address instanceAddress)
|
212
|
-
|
213
|
-
|
214
|
-
|
275
|
+
external
|
276
|
+
onlyOwner()
|
277
|
+
returns(NftId masterInstanceNftId)
|
215
278
|
{
|
216
279
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
217
280
|
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
218
281
|
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
219
|
-
|
282
|
+
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
220
283
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
221
284
|
|
222
285
|
IInstance instance = IInstance(instanceAddress);
|
@@ -225,28 +288,34 @@ contract InstanceService is
|
|
225
288
|
address instanceAdminAddress = address(instanceAdmin);
|
226
289
|
InstanceReader instanceReader = instance.getInstanceReader();
|
227
290
|
address instanceReaderAddress = address(instanceReader);
|
228
|
-
BundleSet
|
229
|
-
address
|
291
|
+
BundleSet bundleSet = instance.getBundleSet();
|
292
|
+
address bundleSetAddress = address(bundleSet);
|
293
|
+
RiskSet riskSet = instance.getRiskSet();
|
294
|
+
address riskSetAddress = address(riskSet);
|
230
295
|
InstanceStore instanceStore = instance.getInstanceStore();
|
231
296
|
address instanceStoreAddress = address(instanceStore);
|
232
297
|
|
233
298
|
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
234
299
|
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
235
300
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
236
|
-
if(
|
301
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
302
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
237
303
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
238
304
|
|
239
305
|
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
240
|
-
if(
|
306
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
307
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
241
308
|
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
242
|
-
if(
|
309
|
+
if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
310
|
+
if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
243
311
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
244
312
|
|
245
313
|
_masterAccessManager = accessManagerAddress;
|
246
314
|
_masterInstanceAdmin = instanceAdminAddress;
|
247
315
|
_masterInstance = instanceAddress;
|
248
316
|
_masterInstanceReader = instanceReaderAddress;
|
249
|
-
_masterInstanceBundleSet =
|
317
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
318
|
+
_masterInstanceRiskSet = riskSetAddress;
|
250
319
|
_masterInstanceStore = instanceStoreAddress;
|
251
320
|
|
252
321
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -254,7 +323,10 @@ contract InstanceService is
|
|
254
323
|
masterInstanceNftId = info.nftId;
|
255
324
|
}
|
256
325
|
|
257
|
-
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
326
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
327
|
+
external
|
328
|
+
onlyOwner
|
329
|
+
{
|
258
330
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
259
331
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
260
332
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -265,99 +337,29 @@ contract InstanceService is
|
|
265
337
|
_masterInstanceReader = instanceReaderAddress;
|
266
338
|
}
|
267
339
|
|
268
|
-
function
|
269
|
-
|
270
|
-
onlyInstanceOwner(instanceNftId)
|
271
|
-
{
|
272
|
-
IRegistry registry = getRegistry();
|
273
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
274
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
275
|
-
|
276
|
-
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
277
|
-
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
278
|
-
instance.setInstanceReader(upgradedInstanceReaderClone);
|
279
|
-
}
|
280
|
-
|
281
|
-
|
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
|
-
);
|
300
|
-
}
|
301
|
-
|
302
|
-
|
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
|
-
address(component),
|
318
|
-
component.getAuthorization());
|
319
|
-
}
|
320
|
-
|
321
|
-
|
322
|
-
function createComponentTarget(
|
323
|
-
NftId instanceNftId,
|
324
|
-
address targetAddress,
|
325
|
-
string memory targetName,
|
326
|
-
bytes4[][] memory selectors,
|
327
|
-
RoleId[] memory roles
|
328
|
-
)
|
329
|
-
external
|
330
|
-
virtual
|
331
|
-
restricted()
|
332
|
-
{
|
333
|
-
_createGifTarget(
|
334
|
-
instanceNftId,
|
335
|
-
targetAddress,
|
336
|
-
targetName,
|
337
|
-
roles,
|
338
|
-
selectors
|
339
|
-
);
|
340
|
+
function getMasterInstanceReader() external view returns (address) {
|
341
|
+
return _masterInstanceReader;
|
340
342
|
}
|
341
343
|
|
342
344
|
/// @dev create new cloned instance admin
|
343
345
|
/// function used to setup a new instance
|
344
|
-
function
|
346
|
+
function _cloneNewInstanceAdmin()
|
345
347
|
internal
|
346
348
|
virtual
|
347
|
-
returns (InstanceAdmin
|
349
|
+
returns (InstanceAdmin clonedAdmin)
|
348
350
|
{
|
349
|
-
//
|
351
|
+
// clone instance specific access manager
|
350
352
|
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
351
|
-
Clones.clone(
|
353
|
+
Clones.clone(
|
354
|
+
InstanceAdmin(_masterInstanceAdmin).authority()));
|
352
355
|
|
353
356
|
// set up the instance admin
|
354
|
-
|
355
|
-
|
356
|
-
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
357
|
+
clonedAdmin = InstanceAdmin(
|
358
|
+
Clones.clone(_masterInstanceAdmin));
|
357
359
|
|
358
|
-
|
359
|
-
clonedAccessManager,
|
360
|
-
InstanceAdmin
|
360
|
+
clonedAdmin.initialize(
|
361
|
+
address(clonedAccessManager),
|
362
|
+
"InstanceAdmin");
|
361
363
|
}
|
362
364
|
|
363
365
|
|
@@ -369,21 +371,26 @@ contract InstanceService is
|
|
369
371
|
)
|
370
372
|
internal
|
371
373
|
virtual
|
372
|
-
returns (
|
374
|
+
returns (IInstance)
|
373
375
|
{
|
374
376
|
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
375
377
|
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
378
|
+
RiskSet clonedRiskSet = RiskSet(Clones.clone(_masterInstanceRiskSet));
|
376
379
|
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
377
380
|
|
378
381
|
// clone instance
|
379
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
382
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
380
383
|
clonedInstance.initialize(
|
381
384
|
instanceAdmin,
|
382
385
|
clonedInstanceStore,
|
383
386
|
clonedBundleSet,
|
387
|
+
clonedRiskSet,
|
384
388
|
clonedInstanceReader,
|
385
389
|
getRegistry(),
|
390
|
+
getRelease(),
|
386
391
|
instanceOwner);
|
392
|
+
|
393
|
+
return clonedInstance;
|
387
394
|
}
|
388
395
|
|
389
396
|
|
@@ -422,21 +429,21 @@ contract InstanceService is
|
|
422
429
|
bytes memory data
|
423
430
|
)
|
424
431
|
internal
|
425
|
-
initializer
|
426
432
|
virtual override
|
433
|
+
initializer()
|
427
434
|
{
|
428
435
|
(
|
429
|
-
address
|
430
|
-
|
431
|
-
|
432
|
-
) = abi.decode(data, (address, address, address));
|
436
|
+
address authority,
|
437
|
+
address registry
|
438
|
+
) = abi.decode(data, (address, address));
|
433
439
|
|
434
|
-
|
440
|
+
__Service_init(authority, registry, owner);
|
435
441
|
|
436
442
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
437
443
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
444
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
438
445
|
|
439
|
-
|
446
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
440
447
|
}
|
441
448
|
|
442
449
|
|
@@ -451,15 +458,52 @@ contract InstanceService is
|
|
451
458
|
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
452
459
|
}
|
453
460
|
|
454
|
-
|
455
|
-
|
456
|
-
|
461
|
+
if (registry.getNftIdForAddress(componentAddress).gtz()) {
|
462
|
+
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
463
|
+
|
464
|
+
if(componentInfo.parentNftId != instanceNftId) {
|
465
|
+
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
466
|
+
}
|
467
|
+
|
468
|
+
componentNftId = componentInfo.nftId;
|
469
|
+
} else {
|
470
|
+
|
457
471
|
}
|
458
472
|
|
459
473
|
instance = Instance(instanceInfo.objectAddress);
|
460
|
-
|
474
|
+
|
461
475
|
}
|
462
476
|
|
477
|
+
|
478
|
+
function _checkInstance(
|
479
|
+
address instanceAddress,
|
480
|
+
VersionPart expectedRelease
|
481
|
+
)
|
482
|
+
internal
|
483
|
+
virtual
|
484
|
+
view
|
485
|
+
{
|
486
|
+
IRegistry registry = getRegistry();
|
487
|
+
|
488
|
+
NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
|
489
|
+
if (instanceNftId.eqz()) {
|
490
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
491
|
+
}
|
492
|
+
|
493
|
+
ObjectType objectType = registry.getObjectInfo(instanceNftId).objectType;
|
494
|
+
if (objectType != INSTANCE()) {
|
495
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
496
|
+
}
|
497
|
+
|
498
|
+
if (expectedRelease.gtz()) {
|
499
|
+
VersionPart instanceRelease = IInstance(instanceAddress).getRelease();
|
500
|
+
if (instanceRelease != expectedRelease) {
|
501
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceNftId, expectedRelease, instanceRelease);
|
502
|
+
}
|
503
|
+
}
|
504
|
+
}
|
505
|
+
|
506
|
+
|
463
507
|
// From IService
|
464
508
|
function _getDomain() internal pure override returns(ObjectType) {
|
465
509
|
return INSTANCE();
|
@@ -12,16 +12,15 @@ contract InstanceServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with instance service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
|
-
InstanceService
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
address(
|
19
|
+
InstanceService svc = new InstanceService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
25
24
|
data,
|
26
25
|
salt);
|
27
26
|
|