@etherisc/gif-next 0.0.2-bc4f70f-636 → 0.0.2-bc7a257-709
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 +128 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -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 +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
- 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 +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared/IAccessManagerExtended.sol/IAccessManagerExtended.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +507 -845
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -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/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 +1225 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +119 -605
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +510 -263
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +176 -118
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -279
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +323 -66
- 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 +1461 -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 +2018 -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 +1404 -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 +1628 -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 +2405 -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 +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +265 -88
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +269 -111
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +278 -213
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1581 -253
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1153 -396
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +275 -274
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -104
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +916 -774
- 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/Cloneable.sol/Cloneable.json +0 -53
- 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 +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 +192 -0
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +130 -136
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +81 -10
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +121 -413
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +193 -177
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +147 -93
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +372 -200
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +166 -104
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +224 -34
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +128 -396
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +472 -307
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +125 -684
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +715 -541
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -103
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +227 -166
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +125 -99
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +454 -220
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +166 -120
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +148 -8
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +320 -15
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +377 -103
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +169 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -268
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +487 -292
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +162 -104
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +252 -308
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -132
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -567
- 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 +367 -63
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +84 -151
- 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 +599 -126
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1777 -166
- 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 +132 -278
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +111 -85
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- 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 +1337 -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 +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +529 -532
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +152 -128
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +63 -104
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +661 -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 +80 -100
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +509 -249
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -133
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- 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 +67 -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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +106 -366
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- 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 +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 +63 -104
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- 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 +196 -143
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +203 -29
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +280 -421
- 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 +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +140 -117
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +259 -187
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +117 -99
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +94 -48
- 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 +63 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -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 +98 -37
- 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 +140 -4
- 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 +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- 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 +283 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -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 +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
- 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 +120 -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 +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -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/accounting/AccountingService.sol +261 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +704 -0
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +365 -0
- package/contracts/authorization/IAccess.sol +57 -0
- package/contracts/authorization/IAccessAdmin.sol +170 -0
- package/contracts/authorization/IAuthorization.sol +80 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +122 -139
- package/contracts/distribution/DistributionService.sol +221 -130
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +19 -42
- package/contracts/distribution/IDistributionService.sol +44 -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 +130 -0
- package/contracts/instance/IInstance.sol +71 -47
- package/contracts/instance/IInstanceService.sol +47 -40
- package/contracts/instance/Instance.sol +197 -129
- package/contracts/instance/InstanceAdmin.sol +363 -244
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +308 -48
- package/contracts/instance/InstanceService.sol +272 -175
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +35 -18
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +14 -11
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +30 -20
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +25 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +62 -53
- package/contracts/oracle/OracleService.sol +118 -85
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +207 -108
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +207 -163
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +396 -262
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +107 -83
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +378 -180
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +29 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +441 -276
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +72 -64
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +230 -140
- 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 +78 -32
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -214
- package/contracts/registry/RegistryAdmin.sol +188 -167
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +46 -71
- package/contracts/registry/RegistryServiceManager.sol +5 -10
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +332 -0
- package/contracts/registry/TokenRegistry.sol +12 -11
- package/contracts/shared/Component.sol +65 -136
- package/contracts/shared/ComponentService.sol +428 -385
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +29 -18
- package/contracts/shared/ContractLib.sol +347 -0
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +49 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +3 -2
- 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 +10 -5
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +95 -45
- package/contracts/shared/KeyValueStore.sol +7 -3
- package/contracts/shared/Lifecycle.sol +30 -72
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +28 -40
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +26 -15
- package/contracts/staking/IStakingService.sol +41 -15
- package/contracts/staking/Staking.sol +153 -158
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +26 -33
- package/contracts/staking/StakingService.sol +143 -82
- package/contracts/staking/StakingServiceManager.sol +8 -8
- package/contracts/staking/StakingStore.sol +94 -60
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +8 -8
- 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 +187 -61
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +117 -81
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +61 -125
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +82 -47
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
- 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/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- 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/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 -679
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- 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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- 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/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -444
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -600
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/staking/StakeManagerLib.sol +0 -179
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,45 +1,42 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
|
6
|
-
import {
|
7
|
-
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
8
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
10
|
-
import {IInstance} from "../instance/IInstance.sol";
|
11
|
-
import {IAccess} from "../instance/module/IAccess.sol";
|
12
|
-
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
14
|
-
import {RoleId, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, POLICY_SERVICE_ROLE, PRODUCT_SERVICE_ROLE} from "../type/RoleId.sol";
|
15
|
-
import {KEEP_STATE} from "../type/StateId.sol";
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
16
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
17
8
|
import {IComponentService} from "./IComponentService.sol";
|
18
|
-
import {
|
9
|
+
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
11
|
+
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
12
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
13
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
19
14
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
20
15
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
21
16
|
import {IProductComponent} from "../product/IProductComponent.sol";
|
22
|
-
import {
|
23
|
-
import {
|
24
|
-
|
17
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
18
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
19
|
+
|
20
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
21
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
22
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
23
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
24
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
25
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
26
|
+
import {ObjectType, ACCOUNTING, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
27
|
+
import {Service} from "../shared/Service.sol";
|
28
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
29
|
+
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
30
|
+
|
25
31
|
|
26
32
|
contract ComponentService is
|
27
|
-
|
33
|
+
Service,
|
28
34
|
IComponentService
|
29
35
|
{
|
30
|
-
|
31
|
-
error ErrorComponentServiceAlreadyRegistered(address component);
|
32
|
-
error ErrorComponentServiceNotComponent(address component);
|
33
|
-
error ErrorComponentServiceInvalidType(address component, ObjectType requiredType, ObjectType componentType);
|
34
|
-
error ErrorComponentServiceSenderNotOwner(address component, address initialOwner, address sender);
|
35
|
-
error ErrorComponentServiceExpectedRoleMissing(NftId instanceNftId, RoleId requiredRole, address sender);
|
36
|
-
error ErrorComponentServiceComponentLocked(address component);
|
37
|
-
error ErrorComponentServiceSenderNotService(address sender);
|
38
|
-
error ErrorComponentServiceComponentTypeInvalid(address component, ObjectType expectedType, ObjectType foundType);
|
39
|
-
|
40
36
|
bool private constant INCREASE = true;
|
41
37
|
bool private constant DECREASE = false;
|
42
38
|
|
39
|
+
IAccountingService private _accountingService;
|
43
40
|
IRegistryService private _registryService;
|
44
41
|
IInstanceService private _instanceService;
|
45
42
|
|
@@ -51,171 +48,272 @@ contract ComponentService is
|
|
51
48
|
virtual override
|
52
49
|
initializer()
|
53
50
|
{
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
51
|
+
(
|
52
|
+
address authority,
|
53
|
+
address registry
|
54
|
+
) = abi.decode(data, (address, address));
|
58
55
|
|
59
|
-
|
56
|
+
__Service_init(authority, registry, owner);
|
60
57
|
|
58
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
61
59
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
62
60
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
63
61
|
|
64
|
-
|
62
|
+
_registerInterface(type(IComponentService).interfaceId);
|
65
63
|
}
|
66
64
|
|
65
|
+
//-------- component ----------------------------------------------------//
|
67
66
|
|
68
|
-
|
69
|
-
|
67
|
+
/// @inheritdoc IComponentService
|
68
|
+
function registerComponent(address componentAddress)
|
69
|
+
external
|
70
|
+
virtual
|
71
|
+
restricted()
|
72
|
+
returns (NftId componentNftId)
|
73
|
+
{
|
74
|
+
// checks
|
75
|
+
// check sender is registered product
|
76
|
+
IRegistry registry = getRegistry();
|
77
|
+
if (!registry.isObjectType(msg.sender, PRODUCT())) {
|
78
|
+
revert ErrorComponentServiceCallerNotProduct(msg.sender);
|
79
|
+
}
|
80
|
+
|
81
|
+
// check provided address is product contract
|
82
|
+
if (!ContractLib.isInstanceLinkedComponent(address(registry), componentAddress)) {
|
83
|
+
revert ErrorComponentServiceNotComponent(componentAddress);
|
84
|
+
}
|
85
|
+
|
86
|
+
NftId productNftId = registry.getNftIdForAddress(msg.sender);
|
87
|
+
IInstance instance = IInstance(
|
88
|
+
registry.getObjectAddress(
|
89
|
+
registry.getParentNftId(productNftId)));
|
90
|
+
|
91
|
+
componentNftId = _verifyAndRegister(
|
92
|
+
instance,
|
93
|
+
componentAddress,
|
94
|
+
productNftId, // product is parent of component to be registered
|
95
|
+
address(0)); // token will be inhereited from product
|
70
96
|
}
|
71
97
|
|
72
|
-
//-------- component ----------------------------------------------------//
|
73
98
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
99
|
+
/// @inheritdoc IComponentService
|
100
|
+
function approveTokenHandler(
|
101
|
+
IERC20Metadata token,
|
102
|
+
Amount amount
|
103
|
+
)
|
104
|
+
external
|
105
|
+
virtual
|
106
|
+
restricted()
|
107
|
+
{
|
108
|
+
// checks
|
109
|
+
(NftId componentNftId, IInstance instance) = _getAndVerifyComponent(COMPONENT(), true);
|
110
|
+
TokenHandler tokenHandler = instance.getInstanceReader().getTokenHandler(
|
111
|
+
componentNftId);
|
78
112
|
|
79
|
-
|
80
|
-
|
81
|
-
|
113
|
+
// effects
|
114
|
+
tokenHandler.approve(token, amount);
|
115
|
+
}
|
82
116
|
|
83
|
-
if (currentWallet == address(0)) {
|
84
|
-
revert ErrorComponentServiceWalletAddressZero();
|
85
|
-
}
|
86
117
|
|
87
|
-
|
88
|
-
|
89
|
-
|
118
|
+
/// @inheritdoc IComponentService
|
119
|
+
function setWallet(address newWallet)
|
120
|
+
external
|
121
|
+
virtual
|
122
|
+
restricted()
|
123
|
+
{
|
124
|
+
// checks
|
125
|
+
(NftId componentNftId, IInstance instance) = _getAndVerifyComponent(COMPONENT(), true);
|
126
|
+
TokenHandler tokenHandler = instance.getInstanceReader().getTokenHandler(
|
127
|
+
componentNftId);
|
90
128
|
|
91
|
-
|
92
|
-
|
93
|
-
emit LogComponentServiceWalletAddressChanged(componentNftId, currentWallet, newWallet);
|
129
|
+
// effects
|
130
|
+
tokenHandler.setWallet(newWallet);
|
94
131
|
}
|
95
132
|
|
96
|
-
|
97
|
-
function
|
133
|
+
/// @inheritdoc IComponentService
|
134
|
+
function setLocked(bool locked)
|
135
|
+
external
|
136
|
+
virtual
|
137
|
+
restricted()
|
138
|
+
{
|
139
|
+
(, IInstance instance) = _getAndVerifyComponent(COMPONENT(), false);
|
140
|
+
|
141
|
+
address component = msg.sender;
|
142
|
+
instance.getInstanceAdmin().setComponentLocked(
|
143
|
+
component,
|
144
|
+
locked);
|
145
|
+
}
|
146
|
+
|
147
|
+
|
148
|
+
/// @inheritdoc IComponentService
|
149
|
+
function withdrawFees(Amount amount)
|
150
|
+
external
|
151
|
+
virtual
|
152
|
+
restricted()
|
153
|
+
returns (Amount withdrawnAmount)
|
154
|
+
{
|
155
|
+
// checks
|
156
|
+
(NftId componentNftId, IInstance instance) = _getAndVerifyComponent(COMPONENT(), true);
|
157
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
158
|
+
|
159
|
+
// determine withdrawn amount
|
160
|
+
Amount maxAvailableAmount = instanceReader.getFeeAmount(componentNftId);
|
161
|
+
withdrawnAmount = amount;
|
98
162
|
|
99
|
-
|
100
|
-
|
163
|
+
// max amount -> withraw all available fees
|
164
|
+
if (amount == AmountLib.max()) {
|
165
|
+
withdrawnAmount = maxAvailableAmount;
|
166
|
+
}
|
167
|
+
|
168
|
+
// check modified withdrawn amount
|
169
|
+
if (withdrawnAmount.eqz()) {
|
170
|
+
revert ErrorComponentServiceWithdrawAmountIsZero();
|
171
|
+
} else if (withdrawnAmount > maxAvailableAmount) {
|
172
|
+
revert ErrorComponentServiceWithdrawAmountExceedsLimit(withdrawnAmount, maxAvailableAmount);
|
173
|
+
}
|
174
|
+
|
175
|
+
// effects
|
176
|
+
// decrease fee counters by withdrawnAmount
|
177
|
+
_accountingService.decreaseComponentFees(
|
178
|
+
instance.getInstanceStore(),
|
179
|
+
componentNftId,
|
180
|
+
withdrawnAmount);
|
181
|
+
|
182
|
+
// transfer amount to component owner
|
183
|
+
address componentOwner = getRegistry().ownerOf(componentNftId);
|
184
|
+
TokenHandler tokenHandler = instanceReader.getTokenHandler(componentNftId);
|
185
|
+
emit LogComponentServiceComponentFeesWithdrawn(
|
186
|
+
componentNftId,
|
187
|
+
componentOwner,
|
188
|
+
address(tokenHandler.TOKEN()),
|
189
|
+
withdrawnAmount);
|
190
|
+
|
191
|
+
// interactions
|
192
|
+
// transfer amount to component owner
|
193
|
+
tokenHandler.pushFeeToken(
|
194
|
+
componentOwner,
|
195
|
+
withdrawnAmount);
|
196
|
+
}
|
101
197
|
|
102
198
|
|
103
199
|
//-------- product ------------------------------------------------------//
|
104
200
|
|
105
|
-
|
201
|
+
/// @inheritdoc IComponentService
|
202
|
+
function registerProduct(address productAddress, address token)
|
106
203
|
external
|
107
204
|
virtual
|
205
|
+
restricted()
|
206
|
+
nonReentrant()
|
207
|
+
returns (NftId productNftId)
|
108
208
|
{
|
109
|
-
|
110
|
-
|
111
|
-
|
209
|
+
// checks
|
210
|
+
// check sender is registered instance
|
211
|
+
IRegistry registry = getRegistry();
|
212
|
+
if (!registry.isObjectType(msg.sender, INSTANCE())) {
|
213
|
+
revert ErrorComponentServiceCallerNotInstance(msg.sender);
|
214
|
+
}
|
112
215
|
|
113
|
-
//
|
114
|
-
|
115
|
-
|
216
|
+
// check provided address is product contract
|
217
|
+
if (!ContractLib.isProduct(address(registry), productAddress)) {
|
218
|
+
revert ErrorComponentServiceNotProduct(productAddress);
|
219
|
+
}
|
116
220
|
|
117
|
-
|
118
|
-
(
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
contractAddress,
|
124
|
-
PRODUCT(),
|
125
|
-
PRODUCT_OWNER_ROLE(),
|
126
|
-
roles,
|
127
|
-
selectors);
|
128
|
-
|
129
|
-
// create product info
|
130
|
-
IComponents.ProductInfo memory productInfo = IProductComponent(contractAddress).getInitialProductInfo();
|
131
|
-
instanceStore.createProduct(productNftId, productInfo);
|
132
|
-
|
133
|
-
// link distribution and pool to product
|
134
|
-
_linkToProduct(instanceReader, instanceStore, productInfo.distributionNftId, productNftId);
|
135
|
-
_linkToProduct(instanceReader, instanceStore, productInfo.poolNftId, productNftId);
|
221
|
+
IInstance instance = IInstance(msg.sender);
|
222
|
+
productNftId = _verifyAndRegister(
|
223
|
+
instance,
|
224
|
+
productAddress,
|
225
|
+
instance.getNftId(), // instance is parent of product to be registered
|
226
|
+
token);
|
136
227
|
}
|
137
228
|
|
138
229
|
|
230
|
+
/// @inheritdoc IComponentService
|
139
231
|
function setProductFees(
|
140
232
|
Fee memory productFee, // product fee on net premium
|
141
233
|
Fee memory processingFee // product fee on payout amounts
|
142
234
|
)
|
143
235
|
external
|
144
236
|
virtual
|
237
|
+
restricted()
|
238
|
+
nonReentrant()
|
145
239
|
{
|
146
|
-
(NftId productNftId
|
147
|
-
IComponents.
|
240
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyComponent(PRODUCT(), true);
|
241
|
+
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
148
242
|
bool feesChanged = false;
|
149
243
|
|
150
244
|
// update product fee if required
|
151
|
-
if(!FeeLib.eq(
|
152
|
-
_logUpdateFee(productNftId, "ProductFee",
|
153
|
-
|
245
|
+
if(!FeeLib.eq(feeInfo.productFee, productFee)) {
|
246
|
+
_logUpdateFee(productNftId, "ProductFee", feeInfo.productFee, productFee);
|
247
|
+
feeInfo.productFee = productFee;
|
154
248
|
feesChanged = true;
|
155
249
|
}
|
156
250
|
|
157
251
|
// update processing fee if required
|
158
|
-
if(!FeeLib.eq(
|
159
|
-
_logUpdateFee(productNftId, "ProcessingFee",
|
160
|
-
|
252
|
+
if(!FeeLib.eq(feeInfo.processingFee, processingFee)) {
|
253
|
+
_logUpdateFee(productNftId, "ProcessingFee", feeInfo.processingFee, processingFee);
|
254
|
+
feeInfo.processingFee = processingFee;
|
161
255
|
feesChanged = true;
|
162
256
|
}
|
163
257
|
|
164
258
|
if(feesChanged) {
|
165
|
-
instance.getInstanceStore().
|
259
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
166
260
|
emit LogComponentServiceProductFeesUpdated(productNftId);
|
167
261
|
}
|
168
262
|
}
|
169
263
|
|
170
|
-
|
264
|
+
|
265
|
+
function _createProduct(
|
171
266
|
InstanceStore instanceStore,
|
172
|
-
NftId productNftId,
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
// restricted()
|
267
|
+
NftId productNftId,
|
268
|
+
address productAddress,
|
269
|
+
address token
|
270
|
+
)
|
271
|
+
internal
|
272
|
+
virtual
|
179
273
|
{
|
180
|
-
|
181
|
-
|
274
|
+
// create product in instance instanceStore
|
275
|
+
IProductComponent product = IProductComponent(productAddress);
|
276
|
+
IComponents.ProductInfo memory initialProductInfo = product.getInitialProductInfo();
|
277
|
+
// force initialization of linked components with empty values to
|
278
|
+
// ensure no components are linked upon initialization of the product
|
279
|
+
initialProductInfo.poolNftId = NftIdLib.zero();
|
280
|
+
initialProductInfo.distributionNftId = NftIdLib.zero();
|
281
|
+
initialProductInfo.oracleNftId = new NftId[](initialProductInfo.expectedNumberOfOracles);
|
182
282
|
|
283
|
+
// create info
|
284
|
+
instanceStore.createProduct(
|
285
|
+
productNftId,
|
286
|
+
initialProductInfo);
|
183
287
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
// TODO re-enable once role granting is stable and fixed
|
188
|
-
// restricted()
|
189
|
-
{
|
190
|
-
_changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
288
|
+
instanceStore.createFee(
|
289
|
+
productNftId,
|
290
|
+
product.getInitialFeeInfo());
|
191
291
|
}
|
192
292
|
|
193
293
|
//-------- distribution -------------------------------------------------//
|
194
294
|
|
195
295
|
/// @dev registers the sending component as a distribution component
|
196
|
-
function
|
197
|
-
|
296
|
+
function _createDistribution(
|
297
|
+
InstanceStore instanceStore,
|
298
|
+
NftId productNftId,
|
299
|
+
NftId distributionNftId,
|
300
|
+
IComponents.ProductInfo memory productInfo
|
301
|
+
)
|
302
|
+
internal
|
198
303
|
virtual
|
304
|
+
nonReentrant()
|
199
305
|
{
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
//
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
// register/create component info
|
213
|
-
_register(
|
214
|
-
contractAddress,
|
215
|
-
DISTRIBUTION(),
|
216
|
-
DISTRIBUTION_OWNER_ROLE(),
|
217
|
-
roles,
|
218
|
-
selectors);
|
306
|
+
// check product is still expecting a distribution registration
|
307
|
+
if (!productInfo.hasDistribution) {
|
308
|
+
revert ErrorProductServiceNoDistributionExpected(productNftId);
|
309
|
+
}
|
310
|
+
if (productInfo.distributionNftId.gtz()) {
|
311
|
+
revert ErrorProductServiceDistributionAlreadyRegistered(productNftId, productInfo.distributionNftId);
|
312
|
+
}
|
313
|
+
|
314
|
+
// set distribution in product info
|
315
|
+
productInfo.distributionNftId = distributionNftId;
|
316
|
+
instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
|
219
317
|
}
|
220
318
|
|
221
319
|
|
@@ -225,118 +323,85 @@ contract ComponentService is
|
|
225
323
|
)
|
226
324
|
external
|
227
325
|
virtual
|
326
|
+
restricted()
|
228
327
|
{
|
229
|
-
(NftId distributionNftId
|
230
|
-
(NftId productNftId, IComponents.
|
328
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyComponent(DISTRIBUTION(), true);
|
329
|
+
(NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
|
231
330
|
instance.getInstanceReader(), distributionNftId);
|
232
331
|
bool feesChanged = false;
|
233
332
|
|
234
333
|
// update distributino fee if required
|
235
|
-
if(!FeeLib.eq(
|
236
|
-
_logUpdateFee(productNftId, "DistributionFee",
|
237
|
-
|
334
|
+
if(!FeeLib.eq(feeInfo.distributionFee, distributionFee)) {
|
335
|
+
_logUpdateFee(productNftId, "DistributionFee", feeInfo.distributionFee, distributionFee);
|
336
|
+
feeInfo.distributionFee = distributionFee;
|
238
337
|
feesChanged = true;
|
239
338
|
}
|
240
339
|
|
241
340
|
// update min distribution owner fee if required
|
242
|
-
if(!FeeLib.eq(
|
243
|
-
_logUpdateFee(productNftId, "MinDistributionOwnerFee",
|
244
|
-
|
341
|
+
if(!FeeLib.eq(feeInfo.minDistributionOwnerFee, minDistributionOwnerFee)) {
|
342
|
+
_logUpdateFee(productNftId, "MinDistributionOwnerFee", feeInfo.minDistributionOwnerFee, minDistributionOwnerFee);
|
343
|
+
feeInfo.minDistributionOwnerFee = minDistributionOwnerFee;
|
245
344
|
feesChanged = true;
|
246
345
|
}
|
247
346
|
|
248
347
|
if(feesChanged) {
|
249
|
-
instance.getInstanceStore().
|
348
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
250
349
|
emit LogComponentServiceDistributionFeesUpdated(distributionNftId);
|
251
350
|
}
|
252
351
|
}
|
253
352
|
|
254
|
-
function increaseDistributionBalance(
|
255
|
-
InstanceStore instanceStore,
|
256
|
-
NftId distributionNftId,
|
257
|
-
Amount amount,
|
258
|
-
Amount feeAmount
|
259
|
-
)
|
260
|
-
external
|
261
|
-
virtual
|
262
|
-
// TODO re-enable once role granting is stable and fixed
|
263
|
-
// restricted()
|
264
|
-
{
|
265
|
-
_changeTargetBalance(INCREASE, instanceStore, distributionNftId, amount, feeAmount);
|
266
|
-
}
|
267
|
-
|
268
|
-
|
269
|
-
function decreaseDistributionBalance(
|
270
|
-
InstanceStore instanceStore,
|
271
|
-
NftId distributionNftId,
|
272
|
-
Amount amount,
|
273
|
-
Amount feeAmount
|
274
|
-
)
|
275
|
-
external
|
276
|
-
virtual
|
277
|
-
// TODO re-enable once role granting is stable and fixed
|
278
|
-
// restricted()
|
279
|
-
{
|
280
|
-
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
|
281
|
-
}
|
282
|
-
|
283
353
|
//-------- oracle -------------------------------------------------------//
|
284
354
|
|
285
|
-
function
|
286
|
-
|
355
|
+
function _createOracle(
|
356
|
+
InstanceStore instanceStore,
|
357
|
+
NftId productNftId,
|
358
|
+
NftId oracleNftId,
|
359
|
+
IComponents.ProductInfo memory productInfo
|
360
|
+
)
|
361
|
+
internal
|
287
362
|
virtual
|
288
363
|
{
|
289
|
-
|
290
|
-
|
291
|
-
|
364
|
+
// check product is still expecting an oracle registration
|
365
|
+
if (productInfo.expectedNumberOfOracles == 0) {
|
366
|
+
revert ErrorProductServiceNoOraclesExpected(productNftId);
|
367
|
+
}
|
368
|
+
if (productInfo.numberOfOracles == productInfo.expectedNumberOfOracles) {
|
369
|
+
revert ErrorProductServiceOraclesAlreadyRegistered(productNftId, productInfo.expectedNumberOfOracles);
|
370
|
+
}
|
292
371
|
|
293
|
-
//
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
NftId componentNftId
|
298
|
-
) = _register(
|
299
|
-
contractAddress,
|
300
|
-
ORACLE(),
|
301
|
-
ORACLE_OWNER_ROLE(),
|
302
|
-
roles,
|
303
|
-
selectors);
|
372
|
+
// update/add oracle to product info
|
373
|
+
productInfo.oracleNftId[productInfo.numberOfOracles] = oracleNftId;
|
374
|
+
productInfo.numberOfOracles++;
|
375
|
+
instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
|
304
376
|
}
|
305
377
|
|
306
378
|
//-------- pool ---------------------------------------------------------//
|
307
379
|
|
308
|
-
function
|
309
|
-
|
380
|
+
function _createPool(
|
381
|
+
InstanceStore instanceStore,
|
382
|
+
NftId productNftId,
|
383
|
+
NftId poolNftId,
|
384
|
+
address componentAddress,
|
385
|
+
IComponents.ProductInfo memory productInfo
|
386
|
+
)
|
387
|
+
internal
|
310
388
|
virtual
|
311
389
|
{
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
roles[0] = POOL_OWNER_ROLE();
|
318
|
-
selectors[0] = _createSelectors(IPoolComponent.setFees.selector);
|
319
|
-
|
320
|
-
// authorizaion for product service
|
321
|
-
roles[1] = POLICY_SERVICE_ROLE();
|
322
|
-
selectors[1] = _createSelectors(IPoolComponent.verifyApplication.selector);
|
323
|
-
|
324
|
-
// register/create component setup
|
325
|
-
(
|
326
|
-
, // instance reader
|
327
|
-
InstanceStore instanceStore,
|
328
|
-
NftId componentNftId
|
329
|
-
) = _register(
|
330
|
-
contractAddress,
|
331
|
-
POOL(),
|
332
|
-
POOL_OWNER_ROLE(),
|
333
|
-
roles,
|
334
|
-
selectors);
|
390
|
+
// check product is still expecting a pool registration
|
391
|
+
//IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
392
|
+
if (productInfo.poolNftId.gtz()) {
|
393
|
+
revert ErrorProductServicePoolAlreadyRegistered(productNftId, productInfo.poolNftId);
|
394
|
+
}
|
335
395
|
|
336
396
|
// create info
|
397
|
+
IPoolComponent pool = IPoolComponent(componentAddress);
|
337
398
|
instanceStore.createPool(
|
338
|
-
|
339
|
-
|
399
|
+
poolNftId,
|
400
|
+
pool.getInitialPoolInfo());
|
401
|
+
|
402
|
+
// update pool in product info
|
403
|
+
productInfo.poolNftId = poolNftId;
|
404
|
+
instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
|
340
405
|
}
|
341
406
|
|
342
407
|
|
@@ -347,189 +412,144 @@ contract ComponentService is
|
|
347
412
|
)
|
348
413
|
external
|
349
414
|
virtual
|
415
|
+
restricted()
|
350
416
|
{
|
351
|
-
(NftId poolNftId
|
352
|
-
|
417
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyComponent(POOL(), true);
|
418
|
+
|
419
|
+
(NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
|
353
420
|
instance.getInstanceReader(), poolNftId);
|
354
421
|
bool feesChanged = false;
|
355
422
|
|
356
423
|
// update pool fee if required
|
357
|
-
if(!FeeLib.eq(
|
358
|
-
_logUpdateFee(productNftId, "PoolFee",
|
359
|
-
|
424
|
+
if(!FeeLib.eq(feeInfo.poolFee, poolFee)) {
|
425
|
+
_logUpdateFee(productNftId, "PoolFee", feeInfo.poolFee, poolFee);
|
426
|
+
feeInfo.poolFee = poolFee;
|
360
427
|
feesChanged = true;
|
361
428
|
}
|
362
429
|
|
363
430
|
// update staking fee if required
|
364
|
-
if(!FeeLib.eq(
|
365
|
-
_logUpdateFee(productNftId, "StakingFee",
|
366
|
-
|
431
|
+
if(!FeeLib.eq(feeInfo.stakingFee, stakingFee)) {
|
432
|
+
_logUpdateFee(productNftId, "StakingFee", feeInfo.stakingFee, stakingFee);
|
433
|
+
feeInfo.stakingFee = stakingFee;
|
367
434
|
feesChanged = true;
|
368
435
|
}
|
369
436
|
|
370
437
|
// update performance fee if required
|
371
|
-
if(!FeeLib.eq(
|
372
|
-
_logUpdateFee(productNftId, "PerformanceFee",
|
373
|
-
|
438
|
+
if(!FeeLib.eq(feeInfo.performanceFee, performanceFee)) {
|
439
|
+
_logUpdateFee(productNftId, "PerformanceFee", feeInfo.performanceFee, performanceFee);
|
440
|
+
feeInfo.performanceFee = performanceFee;
|
374
441
|
feesChanged = true;
|
375
442
|
}
|
376
443
|
|
377
444
|
if(feesChanged) {
|
378
|
-
instance.getInstanceStore().
|
445
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
379
446
|
emit LogComponentServicePoolFeesUpdated(poolNftId);
|
380
447
|
}
|
381
448
|
}
|
382
449
|
|
383
|
-
function increasePoolBalance(
|
384
|
-
InstanceStore instanceStore,
|
385
|
-
NftId poolNftId,
|
386
|
-
Amount amount,
|
387
|
-
Amount feeAmount
|
388
|
-
)
|
389
|
-
public
|
390
|
-
virtual
|
391
|
-
// TODO re-enable once role granting is stable and fixed
|
392
|
-
// restricted()
|
393
|
-
{
|
394
|
-
_changeTargetBalance(INCREASE, instanceStore, poolNftId, amount, feeAmount);
|
395
|
-
}
|
396
|
-
|
397
|
-
function decreasePoolBalance(
|
398
|
-
InstanceStore instanceStore,
|
399
|
-
NftId poolNftId,
|
400
|
-
Amount amount,
|
401
|
-
Amount feeAmount
|
402
|
-
)
|
403
|
-
public
|
404
|
-
virtual
|
405
|
-
// TODO re-enable once role granting is stable and fixed
|
406
|
-
// restricted()
|
407
|
-
{
|
408
|
-
_changeTargetBalance(DECREASE, instanceStore, poolNftId, amount, feeAmount);
|
409
|
-
}
|
410
|
-
|
411
|
-
//-------- bundle -------------------------------------------------------//
|
412
450
|
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
virtual
|
421
|
-
// TODO re-enable once role granting is stable and fixed
|
422
|
-
// restricted()
|
423
|
-
{
|
424
|
-
_changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
|
425
|
-
}
|
426
|
-
|
427
|
-
function decreaseBundleBalance(
|
428
|
-
InstanceStore instanceStore,
|
429
|
-
NftId bundleNftId,
|
430
|
-
Amount amount,
|
431
|
-
Amount feeAmount
|
451
|
+
/// @dev Registers the component represented by the provided address.
|
452
|
+
/// The caller must ensure componentAddress is IInstanceLinkedComponent.
|
453
|
+
function _verifyAndRegister(
|
454
|
+
IInstance instance,
|
455
|
+
address componentAddress,
|
456
|
+
NftId parentNftId,
|
457
|
+
address token
|
432
458
|
)
|
433
|
-
|
459
|
+
internal
|
434
460
|
virtual
|
435
|
-
|
436
|
-
// restricted()
|
461
|
+
returns (NftId componentNftId)
|
437
462
|
{
|
438
|
-
|
439
|
-
|
440
|
-
|
463
|
+
(
|
464
|
+
IInstanceLinkedComponent component,
|
465
|
+
IRegistry.ObjectInfo memory objectInfo // initial component info
|
466
|
+
) = _getAndVerifyRegisterableComponent(
|
467
|
+
componentAddress,
|
468
|
+
parentNftId);
|
441
469
|
|
442
|
-
|
470
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
471
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
472
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
473
|
+
ObjectType componentType = objectInfo.objectType;
|
443
474
|
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
Amount feeAmount
|
450
|
-
)
|
451
|
-
internal
|
452
|
-
virtual
|
453
|
-
{
|
454
|
-
Amount totalAmount = amount + feeAmount;
|
475
|
+
if(componentType == PRODUCT()) {
|
476
|
+
// register product with registry
|
477
|
+
componentNftId = _registryService.registerProduct(
|
478
|
+
component,
|
479
|
+
objectInfo.initialOwner).nftId;
|
455
480
|
|
456
|
-
|
457
|
-
|
458
|
-
if(feeAmount.gtz()) { instanceStore.increaseFees(targetNftId, feeAmount); }
|
481
|
+
// create product info in instance store
|
482
|
+
_createProduct(instanceStore, componentNftId, componentAddress, token);
|
459
483
|
} else {
|
460
|
-
|
461
|
-
|
484
|
+
// register non product component with registry
|
485
|
+
componentNftId = _registryService.registerProductLinkedComponent(
|
486
|
+
component,
|
487
|
+
objectInfo.objectType,
|
488
|
+
objectInfo.initialOwner).nftId;
|
489
|
+
|
490
|
+
// create non product component info in instance store
|
491
|
+
NftId productNftId = parentNftId;
|
492
|
+
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
493
|
+
if(componentType == POOL()) {
|
494
|
+
_createPool(instanceStore, productNftId, componentNftId, componentAddress, productInfo);
|
495
|
+
} else if(componentType == DISTRIBUTION()) {
|
496
|
+
_createDistribution(instanceStore, productNftId, componentNftId, productInfo);
|
497
|
+
} else if(componentType == ORACLE()) {
|
498
|
+
_createOracle(instanceStore, productNftId, componentNftId, productInfo);
|
499
|
+
} else {
|
500
|
+
revert ErrorComponentServiceComponentTypeNotSupported(componentAddress, componentType);
|
501
|
+
}
|
502
|
+
|
503
|
+
// get product's token
|
504
|
+
token = address(instanceReader.getTokenHandler(productNftId).TOKEN());
|
462
505
|
}
|
463
|
-
}
|
464
506
|
|
465
|
-
|
466
|
-
function _register(
|
467
|
-
address componentAddress, // address of component to register
|
468
|
-
ObjectType requiredType, // required type for component for registration
|
469
|
-
RoleId requiredRole, // role required for comonent owner for registration
|
470
|
-
RoleId[] memory roles, // roles with write access to component
|
471
|
-
bytes4[][] memory selectors // authorized functions per role with write access
|
472
|
-
)
|
473
|
-
internal
|
474
|
-
virtual
|
475
|
-
returns (
|
476
|
-
InstanceReader instanceReader,
|
477
|
-
InstanceStore instanceStore,
|
478
|
-
NftId componentNftId
|
479
|
-
)
|
480
|
-
{
|
481
|
-
(
|
482
|
-
IInstance instance,
|
483
|
-
IInstanceLinkedComponent component,
|
484
|
-
address owner
|
485
|
-
) = _getAndVerifyRegisterableComponent(
|
486
|
-
componentAddress,
|
487
|
-
requiredType,
|
488
|
-
requiredRole);
|
507
|
+
_checkToken(instance, token);
|
489
508
|
|
490
|
-
//
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
509
|
+
// deploy and wire token handler
|
510
|
+
IComponents.ComponentInfo memory componentInfo = component.getInitialComponentInfo();
|
511
|
+
componentInfo.tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
512
|
+
address(getRegistry()),
|
513
|
+
address(component), // initially, component is its own wallet
|
514
|
+
token,
|
515
|
+
instanceAdmin.authority());
|
516
|
+
|
517
|
+
// register component with instance
|
518
|
+
instanceStore.createComponent(
|
519
|
+
componentNftId,
|
520
|
+
componentInfo);
|
495
521
|
|
522
|
+
// link component contract to nft id
|
496
523
|
component.linkToRegisteredNftId();
|
497
524
|
|
498
|
-
//
|
499
|
-
|
500
|
-
instanceStore = instance.getInstanceStore();
|
525
|
+
// authorize
|
526
|
+
instanceAdmin.initializeComponentAuthorization(componentAddress, componentType);
|
501
527
|
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
componentAddress,
|
510
|
-
component.getName(),
|
511
|
-
selectors,
|
512
|
-
roles);
|
528
|
+
emit LogComponentServiceRegistered(
|
529
|
+
instance.getNftId(),
|
530
|
+
componentNftId,
|
531
|
+
componentType,
|
532
|
+
address(component),
|
533
|
+
token,
|
534
|
+
objectInfo.initialOwner);
|
513
535
|
}
|
514
536
|
|
515
537
|
|
516
|
-
|
517
|
-
function _linkToProduct(
|
518
|
-
InstanceReader instanceReader,
|
519
|
-
InstanceStore instanceStore,
|
520
|
-
NftId componentNftId,
|
521
|
-
NftId productNftId
|
522
|
-
)
|
538
|
+
function _checkToken(IInstance instance, address token)
|
523
539
|
internal
|
540
|
+
view
|
524
541
|
{
|
525
|
-
|
526
|
-
|
527
|
-
|
542
|
+
if (! instance.isTokenRegistryDisabled()) {
|
543
|
+
// check if provided token is whitelisted and active
|
544
|
+
if (!ContractLib.isActiveToken(
|
545
|
+
getRegistry().getTokenRegistryAddress(),
|
546
|
+
token,
|
547
|
+
block.chainid,
|
548
|
+
AccessManagerCloneable(authority()).getRelease())
|
549
|
+
) {
|
550
|
+
revert ErrorComponentServiceTokenInvalid(token);
|
551
|
+
}
|
528
552
|
}
|
529
|
-
|
530
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(componentNftId);
|
531
|
-
componentInfo.productNftId = productNftId;
|
532
|
-
instanceStore.updateComponent(componentNftId, componentInfo, KEEP_STATE());
|
533
553
|
}
|
534
554
|
|
535
555
|
|
@@ -548,13 +568,7 @@ contract ComponentService is
|
|
548
568
|
}
|
549
569
|
|
550
570
|
|
551
|
-
function
|
552
|
-
selectors = new bytes4[](1);
|
553
|
-
selectors[0] = selector;
|
554
|
-
}
|
555
|
-
|
556
|
-
|
557
|
-
function _getLinkedProductInfo(
|
571
|
+
function _getLinkedFeeInfo(
|
558
572
|
InstanceReader instanceReader,
|
559
573
|
NftId componentNftId
|
560
574
|
)
|
@@ -562,57 +576,86 @@ contract ComponentService is
|
|
562
576
|
view
|
563
577
|
returns(
|
564
578
|
NftId productNftId,
|
565
|
-
IComponents.
|
579
|
+
IComponents.FeeInfo memory info
|
566
580
|
)
|
567
581
|
{
|
568
|
-
productNftId =
|
569
|
-
info = instanceReader.
|
582
|
+
productNftId = getRegistry().getParentNftId(componentNftId);
|
583
|
+
info = instanceReader.getFeeInfo(productNftId);
|
570
584
|
}
|
571
585
|
|
572
586
|
|
573
|
-
/// @dev
|
574
|
-
///
|
587
|
+
/// @dev Based on the provided component address required type the component
|
588
|
+
/// and related instance contract this function reverts iff:
|
589
|
+
/// - the component parent does not match with the required parent
|
590
|
+
/// - the component release does not match with the service release
|
575
591
|
/// - the component has already been registered
|
576
|
-
/// - the component contract does not support IInstanceLinkedComponent
|
577
|
-
/// - the component type does not match with the required type
|
578
|
-
/// - the initial component owner misses the required role (with the instance access manager)
|
579
592
|
function _getAndVerifyRegisterableComponent(
|
580
593
|
address componentAddress,
|
581
|
-
|
582
|
-
RoleId requiredRole
|
594
|
+
NftId requiredParent
|
583
595
|
)
|
584
596
|
internal
|
585
597
|
view
|
586
598
|
returns (
|
587
|
-
IInstance instance,
|
588
599
|
IInstanceLinkedComponent component,
|
589
|
-
|
600
|
+
IRegistry.ObjectInfo memory info
|
590
601
|
)
|
591
602
|
{
|
592
|
-
// check this is a component
|
593
603
|
component = IInstanceLinkedComponent(componentAddress);
|
594
|
-
|
595
|
-
|
604
|
+
info = component.getInitialInfo();
|
605
|
+
|
606
|
+
// check component parent
|
607
|
+
if(info.parentNftId != requiredParent) {
|
608
|
+
revert ErrorComponentServiceComponentParentInvalid(componentAddress, requiredParent, info.parentNftId);
|
596
609
|
}
|
597
610
|
|
598
|
-
// check component
|
599
|
-
|
600
|
-
|
601
|
-
revert ErrorComponentServiceInvalidType(componentAddress, requiredType, info.objectType);
|
611
|
+
// check component release (must match with service release)
|
612
|
+
if(component.getRelease() != getRelease()) {
|
613
|
+
revert ErrorComponentServiceComponentReleaseMismatch(componentAddress, getRelease(), component.getRelease());
|
602
614
|
}
|
603
615
|
|
604
616
|
// check component has not already been registered
|
605
|
-
if (getRegistry().
|
606
|
-
revert
|
617
|
+
if (getRegistry().getNftIdForAddress(componentAddress).gtz()) {
|
618
|
+
revert ErrorComponentServiceComponentAlreadyRegistered(componentAddress);
|
607
619
|
}
|
620
|
+
}
|
621
|
+
|
608
622
|
|
609
|
-
|
610
|
-
|
611
|
-
|
623
|
+
function _setLocked(InstanceAdmin instanceAdmin, address componentAddress, bool locked) internal {
|
624
|
+
instanceAdmin.setTargetLocked(componentAddress, locked);
|
625
|
+
}
|
612
626
|
|
613
|
-
|
614
|
-
|
615
|
-
|
627
|
+
|
628
|
+
function _getAndVerifyComponent(ObjectType expectedType, bool isActive)
|
629
|
+
internal
|
630
|
+
view
|
631
|
+
returns (
|
632
|
+
NftId componentNftId,
|
633
|
+
IInstance instance
|
634
|
+
)
|
635
|
+
{
|
636
|
+
IRegistry.ObjectInfo memory info;
|
637
|
+
address instanceAddress;
|
638
|
+
|
639
|
+
if (expectedType != COMPONENT()) {
|
640
|
+
(info, instanceAddress) = ContractLib.getAndVerifyComponent(
|
641
|
+
getRegistry(),
|
642
|
+
msg.sender, // caller
|
643
|
+
expectedType,
|
644
|
+
isActive);
|
645
|
+
} else {
|
646
|
+
(info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
|
647
|
+
getRegistry(),
|
648
|
+
msg.sender,
|
649
|
+
isActive);
|
616
650
|
}
|
651
|
+
|
652
|
+
// get component nft id and instance
|
653
|
+
componentNftId = info.nftId;
|
654
|
+
instance = IInstance(instanceAddress);
|
655
|
+
}
|
656
|
+
|
657
|
+
|
658
|
+
function _getDomain() internal pure virtual override returns(ObjectType) {
|
659
|
+
return COMPONENT();
|
617
660
|
}
|
618
661
|
}
|