@etherisc/gif-next 0.0.2-d16f92c-416 → 0.0.2-d1ee1ae-450
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 +120 -8
- 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 → 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 +48 -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 +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 +487 -269
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +169 -119
- 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 +311 -67
- 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 +239 -55
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +155 -116
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +254 -182
- 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 +175 -341
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -128
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +940 -754
- 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 +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 +69 -11
- 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 +169 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +140 -98
- 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 +349 -206
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +159 -105
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +212 -35
- 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 +460 -308
- 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 +705 -552
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -107
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +208 -176
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +118 -100
- 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 +431 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +158 -124
- 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 +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} +88 -8
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +465 -307
- 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 +155 -109
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +244 -329
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -140
- 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 +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 +600 -127
- 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 +104 -90
- 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 +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +101 -16
- 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 +545 -569
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +152 -132
- 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 +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 +499 -252
- 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 +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 +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 +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 -143
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +155 -23
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +292 -393
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +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 +142 -103
- 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 +224 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +121 -95
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +218 -182
- 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 +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 +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/{registry → authorization}/IServiceAuthorization.sol +11 -6
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +45 -25
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +124 -139
- package/contracts/distribution/DistributionService.sol +220 -126
- 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 +68 -49
- package/contracts/instance/IInstanceService.sol +34 -43
- package/contracts/instance/Instance.sol +164 -122
- package/contracts/instance/InstanceAdmin.sol +363 -244
- package/contracts/instance/InstanceAuthorizationV3.sol +236 -0
- package/contracts/instance/InstanceReader.sol +306 -48
- package/contracts/instance/InstanceService.sol +223 -200
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +35 -6
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +3 -5
- 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 +117 -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 +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 +207 -163
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +391 -256
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +102 -78
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +58 -0
- package/contracts/product/ClaimService.sol +373 -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 +436 -271
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +69 -60
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +232 -140
- package/contracts/product/RiskService.sol +157 -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 -220
- package/contracts/registry/RegistryAdmin.sol +174 -249
- package/contracts/registry/RegistryAuthorization.sol +271 -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 +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +192 -60
- package/contracts/registry/TokenRegistry.sol +12 -11
- package/contracts/shared/Component.sol +65 -136
- package/contracts/shared/ComponentService.sol +425 -381
- 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 +4 -6
- 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 +18 -36
- 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 +31 -9
- package/contracts/staking/Staking.sol +125 -88
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
- 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 +93 -37
- package/contracts/staking/StakingServiceManager.sol +8 -7
- package/contracts/staking/StakingStore.sol +17 -24
- 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 +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 +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 +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 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- 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 -527
- 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,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,166 +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
|
|
67
65
|
//-------- component ----------------------------------------------------//
|
68
66
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
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);
|
76
79
|
}
|
77
80
|
|
78
|
-
|
79
|
-
|
81
|
+
// check provided address is product contract
|
82
|
+
if (!ContractLib.isInstanceLinkedComponent(address(registry), componentAddress)) {
|
83
|
+
revert ErrorComponentServiceNotComponent(componentAddress);
|
80
84
|
}
|
81
85
|
|
82
|
-
|
83
|
-
|
84
|
-
|
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
|
96
|
+
}
|
97
|
+
|
98
|
+
|
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);
|
112
|
+
|
113
|
+
// effects
|
114
|
+
tokenHandler.approve(token, amount);
|
115
|
+
}
|
116
|
+
|
117
|
+
|
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);
|
85
128
|
|
86
|
-
|
87
|
-
|
88
|
-
emit LogComponentServiceWalletAddressChanged(componentNftId, currentWallet, newWallet);
|
129
|
+
// effects
|
130
|
+
tokenHandler.setWallet(newWallet);
|
89
131
|
}
|
90
132
|
|
91
|
-
|
92
|
-
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
|
+
}
|
93
146
|
|
94
|
-
|
95
|
-
|
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;
|
162
|
+
|
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
|
+
}
|
96
197
|
|
97
198
|
|
98
199
|
//-------- product ------------------------------------------------------//
|
99
200
|
|
100
|
-
|
201
|
+
/// @inheritdoc IComponentService
|
202
|
+
function registerProduct(address productAddress, address token)
|
101
203
|
external
|
102
204
|
virtual
|
205
|
+
restricted()
|
206
|
+
nonReentrant()
|
207
|
+
returns (NftId productNftId)
|
103
208
|
{
|
104
|
-
|
105
|
-
|
106
|
-
|
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
|
+
}
|
107
215
|
|
108
|
-
//
|
109
|
-
|
110
|
-
|
216
|
+
// check provided address is product contract
|
217
|
+
if (!ContractLib.isProduct(address(registry), productAddress)) {
|
218
|
+
revert ErrorComponentServiceNotProduct(productAddress);
|
219
|
+
}
|
111
220
|
|
112
|
-
|
113
|
-
(
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
contractAddress,
|
119
|
-
PRODUCT(),
|
120
|
-
PRODUCT_OWNER_ROLE(),
|
121
|
-
roles,
|
122
|
-
selectors);
|
123
|
-
|
124
|
-
// create product info
|
125
|
-
IComponents.ProductInfo memory productInfo = IProductComponent(contractAddress).getInitialProductInfo();
|
126
|
-
instanceStore.createProduct(productNftId, productInfo);
|
127
|
-
|
128
|
-
// link distribution and pool to product
|
129
|
-
_linkToProduct(instanceReader, instanceStore, productInfo.distributionNftId, productNftId);
|
130
|
-
_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);
|
131
227
|
}
|
132
228
|
|
133
229
|
|
230
|
+
/// @inheritdoc IComponentService
|
134
231
|
function setProductFees(
|
135
232
|
Fee memory productFee, // product fee on net premium
|
136
233
|
Fee memory processingFee // product fee on payout amounts
|
137
234
|
)
|
138
235
|
external
|
139
236
|
virtual
|
237
|
+
restricted()
|
238
|
+
nonReentrant()
|
140
239
|
{
|
141
|
-
(NftId productNftId
|
142
|
-
IComponents.
|
240
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyComponent(PRODUCT(), true);
|
241
|
+
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
143
242
|
bool feesChanged = false;
|
144
243
|
|
145
244
|
// update product fee if required
|
146
|
-
if(!FeeLib.eq(
|
147
|
-
_logUpdateFee(productNftId, "ProductFee",
|
148
|
-
|
245
|
+
if(!FeeLib.eq(feeInfo.productFee, productFee)) {
|
246
|
+
_logUpdateFee(productNftId, "ProductFee", feeInfo.productFee, productFee);
|
247
|
+
feeInfo.productFee = productFee;
|
149
248
|
feesChanged = true;
|
150
249
|
}
|
151
250
|
|
152
251
|
// update processing fee if required
|
153
|
-
if(!FeeLib.eq(
|
154
|
-
_logUpdateFee(productNftId, "ProcessingFee",
|
155
|
-
|
252
|
+
if(!FeeLib.eq(feeInfo.processingFee, processingFee)) {
|
253
|
+
_logUpdateFee(productNftId, "ProcessingFee", feeInfo.processingFee, processingFee);
|
254
|
+
feeInfo.processingFee = processingFee;
|
156
255
|
feesChanged = true;
|
157
256
|
}
|
158
257
|
|
159
258
|
if(feesChanged) {
|
160
|
-
instance.getInstanceStore().
|
259
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
161
260
|
emit LogComponentServiceProductFeesUpdated(productNftId);
|
162
261
|
}
|
163
262
|
}
|
164
263
|
|
165
|
-
|
264
|
+
|
265
|
+
function _createProduct(
|
166
266
|
InstanceStore instanceStore,
|
167
|
-
NftId productNftId,
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
// restricted()
|
267
|
+
NftId productNftId,
|
268
|
+
address productAddress,
|
269
|
+
address token
|
270
|
+
)
|
271
|
+
internal
|
272
|
+
virtual
|
174
273
|
{
|
175
|
-
|
176
|
-
|
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);
|
177
282
|
|
283
|
+
// create info
|
284
|
+
instanceStore.createProduct(
|
285
|
+
productNftId,
|
286
|
+
initialProductInfo);
|
178
287
|
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
// TODO re-enable once role granting is stable and fixed
|
183
|
-
// restricted()
|
184
|
-
{
|
185
|
-
_changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
288
|
+
instanceStore.createFee(
|
289
|
+
productNftId,
|
290
|
+
product.getInitialFeeInfo());
|
186
291
|
}
|
187
292
|
|
188
293
|
//-------- distribution -------------------------------------------------//
|
189
294
|
|
190
295
|
/// @dev registers the sending component as a distribution component
|
191
|
-
function
|
192
|
-
|
296
|
+
function _createDistribution(
|
297
|
+
InstanceStore instanceStore,
|
298
|
+
NftId productNftId,
|
299
|
+
NftId distributionNftId,
|
300
|
+
IComponents.ProductInfo memory productInfo
|
301
|
+
)
|
302
|
+
internal
|
193
303
|
virtual
|
304
|
+
nonReentrant()
|
194
305
|
{
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
//
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
// register/create component info
|
208
|
-
_register(
|
209
|
-
contractAddress,
|
210
|
-
DISTRIBUTION(),
|
211
|
-
DISTRIBUTION_OWNER_ROLE(),
|
212
|
-
roles,
|
213
|
-
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());
|
214
317
|
}
|
215
318
|
|
216
319
|
|
@@ -220,118 +323,85 @@ contract ComponentService is
|
|
220
323
|
)
|
221
324
|
external
|
222
325
|
virtual
|
326
|
+
restricted()
|
223
327
|
{
|
224
|
-
(NftId distributionNftId
|
225
|
-
(NftId productNftId, IComponents.
|
328
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyComponent(DISTRIBUTION(), true);
|
329
|
+
(NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
|
226
330
|
instance.getInstanceReader(), distributionNftId);
|
227
331
|
bool feesChanged = false;
|
228
332
|
|
229
333
|
// update distributino fee if required
|
230
|
-
if(!FeeLib.eq(
|
231
|
-
_logUpdateFee(productNftId, "DistributionFee",
|
232
|
-
|
334
|
+
if(!FeeLib.eq(feeInfo.distributionFee, distributionFee)) {
|
335
|
+
_logUpdateFee(productNftId, "DistributionFee", feeInfo.distributionFee, distributionFee);
|
336
|
+
feeInfo.distributionFee = distributionFee;
|
233
337
|
feesChanged = true;
|
234
338
|
}
|
235
339
|
|
236
340
|
// update min distribution owner fee if required
|
237
|
-
if(!FeeLib.eq(
|
238
|
-
_logUpdateFee(productNftId, "MinDistributionOwnerFee",
|
239
|
-
|
341
|
+
if(!FeeLib.eq(feeInfo.minDistributionOwnerFee, minDistributionOwnerFee)) {
|
342
|
+
_logUpdateFee(productNftId, "MinDistributionOwnerFee", feeInfo.minDistributionOwnerFee, minDistributionOwnerFee);
|
343
|
+
feeInfo.minDistributionOwnerFee = minDistributionOwnerFee;
|
240
344
|
feesChanged = true;
|
241
345
|
}
|
242
346
|
|
243
347
|
if(feesChanged) {
|
244
|
-
instance.getInstanceStore().
|
348
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
245
349
|
emit LogComponentServiceDistributionFeesUpdated(distributionNftId);
|
246
350
|
}
|
247
351
|
}
|
248
352
|
|
249
|
-
function increaseDistributionBalance(
|
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
|
-
|
263
|
-
|
264
|
-
function decreaseDistributionBalance(
|
265
|
-
InstanceStore instanceStore,
|
266
|
-
NftId distributionNftId,
|
267
|
-
Amount amount,
|
268
|
-
Amount feeAmount
|
269
|
-
)
|
270
|
-
external
|
271
|
-
virtual
|
272
|
-
// TODO re-enable once role granting is stable and fixed
|
273
|
-
// restricted()
|
274
|
-
{
|
275
|
-
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
|
276
|
-
}
|
277
|
-
|
278
353
|
//-------- oracle -------------------------------------------------------//
|
279
354
|
|
280
|
-
function
|
281
|
-
|
355
|
+
function _createOracle(
|
356
|
+
InstanceStore instanceStore,
|
357
|
+
NftId productNftId,
|
358
|
+
NftId oracleNftId,
|
359
|
+
IComponents.ProductInfo memory productInfo
|
360
|
+
)
|
361
|
+
internal
|
282
362
|
virtual
|
283
363
|
{
|
284
|
-
|
285
|
-
|
286
|
-
|
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
|
+
}
|
287
371
|
|
288
|
-
//
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
NftId componentNftId
|
293
|
-
) = _register(
|
294
|
-
contractAddress,
|
295
|
-
ORACLE(),
|
296
|
-
ORACLE_OWNER_ROLE(),
|
297
|
-
roles,
|
298
|
-
selectors);
|
372
|
+
// update/add oracle to product info
|
373
|
+
productInfo.oracleNftId[productInfo.numberOfOracles] = oracleNftId;
|
374
|
+
productInfo.numberOfOracles++;
|
375
|
+
instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
|
299
376
|
}
|
300
377
|
|
301
378
|
//-------- pool ---------------------------------------------------------//
|
302
379
|
|
303
|
-
function
|
304
|
-
|
380
|
+
function _createPool(
|
381
|
+
InstanceStore instanceStore,
|
382
|
+
NftId productNftId,
|
383
|
+
NftId poolNftId,
|
384
|
+
address componentAddress,
|
385
|
+
IComponents.ProductInfo memory productInfo
|
386
|
+
)
|
387
|
+
internal
|
305
388
|
virtual
|
306
389
|
{
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
roles[0] = POOL_OWNER_ROLE();
|
313
|
-
selectors[0] = _createSelectors(IPoolComponent.setFees.selector);
|
314
|
-
|
315
|
-
// authorizaion for product service
|
316
|
-
roles[1] = POLICY_SERVICE_ROLE();
|
317
|
-
selectors[1] = _createSelectors(IPoolComponent.verifyApplication.selector);
|
318
|
-
|
319
|
-
// register/create component setup
|
320
|
-
(
|
321
|
-
, // instance reader
|
322
|
-
InstanceStore instanceStore,
|
323
|
-
NftId componentNftId
|
324
|
-
) = _register(
|
325
|
-
contractAddress,
|
326
|
-
POOL(),
|
327
|
-
POOL_OWNER_ROLE(),
|
328
|
-
roles,
|
329
|
-
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
|
+
}
|
330
395
|
|
331
396
|
// create info
|
397
|
+
IPoolComponent pool = IPoolComponent(componentAddress);
|
332
398
|
instanceStore.createPool(
|
333
|
-
|
334
|
-
|
399
|
+
poolNftId,
|
400
|
+
pool.getInitialPoolInfo());
|
401
|
+
|
402
|
+
// update pool in product info
|
403
|
+
productInfo.poolNftId = poolNftId;
|
404
|
+
instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
|
335
405
|
}
|
336
406
|
|
337
407
|
|
@@ -342,189 +412,144 @@ contract ComponentService is
|
|
342
412
|
)
|
343
413
|
external
|
344
414
|
virtual
|
415
|
+
restricted()
|
345
416
|
{
|
346
|
-
(NftId poolNftId
|
347
|
-
|
417
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyComponent(POOL(), true);
|
418
|
+
|
419
|
+
(NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
|
348
420
|
instance.getInstanceReader(), poolNftId);
|
349
421
|
bool feesChanged = false;
|
350
422
|
|
351
423
|
// update pool fee if required
|
352
|
-
if(!FeeLib.eq(
|
353
|
-
_logUpdateFee(productNftId, "PoolFee",
|
354
|
-
|
424
|
+
if(!FeeLib.eq(feeInfo.poolFee, poolFee)) {
|
425
|
+
_logUpdateFee(productNftId, "PoolFee", feeInfo.poolFee, poolFee);
|
426
|
+
feeInfo.poolFee = poolFee;
|
355
427
|
feesChanged = true;
|
356
428
|
}
|
357
429
|
|
358
430
|
// update staking fee if required
|
359
|
-
if(!FeeLib.eq(
|
360
|
-
_logUpdateFee(productNftId, "StakingFee",
|
361
|
-
|
431
|
+
if(!FeeLib.eq(feeInfo.stakingFee, stakingFee)) {
|
432
|
+
_logUpdateFee(productNftId, "StakingFee", feeInfo.stakingFee, stakingFee);
|
433
|
+
feeInfo.stakingFee = stakingFee;
|
362
434
|
feesChanged = true;
|
363
435
|
}
|
364
436
|
|
365
437
|
// update performance fee if required
|
366
|
-
if(!FeeLib.eq(
|
367
|
-
_logUpdateFee(productNftId, "PerformanceFee",
|
368
|
-
|
438
|
+
if(!FeeLib.eq(feeInfo.performanceFee, performanceFee)) {
|
439
|
+
_logUpdateFee(productNftId, "PerformanceFee", feeInfo.performanceFee, performanceFee);
|
440
|
+
feeInfo.performanceFee = performanceFee;
|
369
441
|
feesChanged = true;
|
370
442
|
}
|
371
443
|
|
372
444
|
if(feesChanged) {
|
373
|
-
instance.getInstanceStore().
|
445
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
374
446
|
emit LogComponentServicePoolFeesUpdated(poolNftId);
|
375
447
|
}
|
376
448
|
}
|
377
449
|
|
378
|
-
function increasePoolBalance(
|
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
450
|
|
406
|
-
|
407
|
-
|
408
|
-
function
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
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
|
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
|
427
458
|
)
|
428
|
-
|
459
|
+
internal
|
429
460
|
virtual
|
430
|
-
|
431
|
-
// restricted()
|
461
|
+
returns (NftId componentNftId)
|
432
462
|
{
|
433
|
-
|
434
|
-
|
435
|
-
|
463
|
+
(
|
464
|
+
IInstanceLinkedComponent component,
|
465
|
+
IRegistry.ObjectInfo memory objectInfo // initial component info
|
466
|
+
) = _getAndVerifyRegisterableComponent(
|
467
|
+
componentAddress,
|
468
|
+
parentNftId);
|
436
469
|
|
437
|
-
|
470
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
471
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
472
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
473
|
+
ObjectType componentType = objectInfo.objectType;
|
438
474
|
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
Amount feeAmount
|
445
|
-
)
|
446
|
-
internal
|
447
|
-
virtual
|
448
|
-
{
|
449
|
-
Amount totalAmount = amount + feeAmount;
|
475
|
+
if(componentType == PRODUCT()) {
|
476
|
+
// register product with registry
|
477
|
+
componentNftId = _registryService.registerProduct(
|
478
|
+
component,
|
479
|
+
objectInfo.initialOwner).nftId;
|
450
480
|
|
451
|
-
|
452
|
-
|
453
|
-
if(feeAmount.gtz()) { instanceStore.increaseFees(targetNftId, feeAmount); }
|
481
|
+
// create product info in instance store
|
482
|
+
_createProduct(instanceStore, componentNftId, componentAddress, token);
|
454
483
|
} else {
|
455
|
-
|
456
|
-
|
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());
|
457
505
|
}
|
458
|
-
}
|
459
506
|
|
460
|
-
|
461
|
-
function _register(
|
462
|
-
address componentAddress, // address of component to register
|
463
|
-
ObjectType requiredType, // required type for component for registration
|
464
|
-
RoleId requiredRole, // role required for comonent owner for registration
|
465
|
-
RoleId[] memory roles, // roles with write access to component
|
466
|
-
bytes4[][] memory selectors // authorized functions per role with write access
|
467
|
-
)
|
468
|
-
internal
|
469
|
-
virtual
|
470
|
-
returns (
|
471
|
-
InstanceReader instanceReader,
|
472
|
-
InstanceStore instanceStore,
|
473
|
-
NftId componentNftId
|
474
|
-
)
|
475
|
-
{
|
476
|
-
(
|
477
|
-
IInstance instance,
|
478
|
-
IInstanceLinkedComponent component,
|
479
|
-
address owner
|
480
|
-
) = _getAndVerifyRegisterableComponent(
|
481
|
-
componentAddress,
|
482
|
-
requiredType,
|
483
|
-
requiredRole);
|
507
|
+
_checkToken(instance, token);
|
484
508
|
|
485
|
-
//
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
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);
|
490
521
|
|
522
|
+
// link component contract to nft id
|
491
523
|
component.linkToRegisteredNftId();
|
492
524
|
|
493
|
-
//
|
494
|
-
|
495
|
-
instanceStore = instance.getInstanceStore();
|
525
|
+
// authorize
|
526
|
+
instanceAdmin.initializeComponentAuthorization(componentAddress, componentType);
|
496
527
|
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
componentAddress,
|
505
|
-
component.getName(),
|
506
|
-
selectors,
|
507
|
-
roles);
|
528
|
+
emit LogComponentServiceRegistered(
|
529
|
+
instance.getNftId(),
|
530
|
+
componentNftId,
|
531
|
+
componentType,
|
532
|
+
address(component),
|
533
|
+
token,
|
534
|
+
objectInfo.initialOwner);
|
508
535
|
}
|
509
536
|
|
510
537
|
|
511
|
-
|
512
|
-
function _linkToProduct(
|
513
|
-
InstanceReader instanceReader,
|
514
|
-
InstanceStore instanceStore,
|
515
|
-
NftId componentNftId,
|
516
|
-
NftId productNftId
|
517
|
-
)
|
538
|
+
function _checkToken(IInstance instance, address token)
|
518
539
|
internal
|
540
|
+
view
|
519
541
|
{
|
520
|
-
|
521
|
-
|
522
|
-
|
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
|
+
}
|
523
552
|
}
|
524
|
-
|
525
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(componentNftId);
|
526
|
-
componentInfo.productNftId = productNftId;
|
527
|
-
instanceStore.updateComponent(componentNftId, componentInfo, KEEP_STATE());
|
528
553
|
}
|
529
554
|
|
530
555
|
|
@@ -543,13 +568,7 @@ contract ComponentService is
|
|
543
568
|
}
|
544
569
|
|
545
570
|
|
546
|
-
function
|
547
|
-
selectors = new bytes4[](1);
|
548
|
-
selectors[0] = selector;
|
549
|
-
}
|
550
|
-
|
551
|
-
|
552
|
-
function _getLinkedProductInfo(
|
571
|
+
function _getLinkedFeeInfo(
|
553
572
|
InstanceReader instanceReader,
|
554
573
|
NftId componentNftId
|
555
574
|
)
|
@@ -557,60 +576,85 @@ contract ComponentService is
|
|
557
576
|
view
|
558
577
|
returns(
|
559
578
|
NftId productNftId,
|
560
|
-
IComponents.
|
579
|
+
IComponents.FeeInfo memory info
|
561
580
|
)
|
562
581
|
{
|
563
|
-
productNftId =
|
564
|
-
info = instanceReader.
|
582
|
+
productNftId = getRegistry().getParentNftId(componentNftId);
|
583
|
+
info = instanceReader.getFeeInfo(productNftId);
|
565
584
|
}
|
566
585
|
|
567
586
|
|
568
|
-
/// @dev
|
569
|
-
///
|
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
|
570
591
|
/// - the component has already been registered
|
571
|
-
/// - the component contract does not support IInstanceLinkedComponent
|
572
|
-
/// - the component type does not match with the required type
|
573
|
-
/// - the initial component owner misses the required role (with the instance access manager)
|
574
592
|
function _getAndVerifyRegisterableComponent(
|
575
593
|
address componentAddress,
|
576
|
-
|
577
|
-
RoleId requiredRole
|
594
|
+
NftId requiredParent
|
578
595
|
)
|
579
596
|
internal
|
580
597
|
view
|
581
598
|
returns (
|
582
|
-
IInstance instance,
|
583
599
|
IInstanceLinkedComponent component,
|
584
|
-
|
600
|
+
IRegistry.ObjectInfo memory info
|
585
601
|
)
|
586
602
|
{
|
587
|
-
// check this is a component
|
588
603
|
component = IInstanceLinkedComponent(componentAddress);
|
589
|
-
|
590
|
-
|
604
|
+
info = component.getInitialInfo();
|
605
|
+
|
606
|
+
// check component parent
|
607
|
+
if(info.parentNftId != requiredParent) {
|
608
|
+
revert ErrorComponentServiceComponentParentInvalid(componentAddress, requiredParent, info.parentNftId);
|
591
609
|
}
|
592
610
|
|
593
|
-
// check component
|
594
|
-
|
595
|
-
|
596
|
-
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());
|
597
614
|
}
|
598
615
|
|
599
616
|
// check component has not already been registered
|
600
|
-
if (getRegistry().
|
601
|
-
revert
|
617
|
+
if (getRegistry().getNftIdForAddress(componentAddress).gtz()) {
|
618
|
+
revert ErrorComponentServiceComponentAlreadyRegistered(componentAddress);
|
602
619
|
}
|
620
|
+
}
|
621
|
+
|
622
|
+
|
623
|
+
function _setLocked(InstanceAdmin instanceAdmin, address componentAddress, bool locked) internal {
|
624
|
+
instanceAdmin.setTargetLocked(componentAddress, locked);
|
625
|
+
}
|
603
626
|
|
604
|
-
// check instance has assigned required role to inital owner
|
605
|
-
instance = _getInstance(info.parentNftId);
|
606
|
-
owner = info.initialOwner;
|
607
627
|
|
608
|
-
|
609
|
-
|
610
|
-
|
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);
|
611
650
|
}
|
651
|
+
|
652
|
+
// get component nft id and instance
|
653
|
+
componentNftId = info.nftId;
|
654
|
+
instance = IInstance(instanceAddress);
|
612
655
|
}
|
613
656
|
|
657
|
+
|
614
658
|
function _getDomain() internal pure virtual override returns(ObjectType) {
|
615
659
|
return COMPONENT();
|
616
660
|
}
|