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