@etherisc/gif-next 0.0.2-bc11089-132 → 0.0.2-bc7a257-709
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -23
- 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/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +930 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1596 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +876 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1071 -0
- 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 +420 -1308
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +456 -189
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +481 -2479
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
- 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 +1665 -629
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +507 -444
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +350 -124
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3784 -0
- 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 +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +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 +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +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 +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1013 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +772 -0
- 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 +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1277 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +808 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1006 -0
- 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 +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1606 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +824 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +895 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +748 -0
- 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 +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1512 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +856 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +277 -302
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IPricingService.sol/IPricingService.json} +315 -361
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +199 -185
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1341 -0
- 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 +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +812 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +927 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +772 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
- 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 +72 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +679 -114
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +325 -229
- 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 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +1017 -150
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
- 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 +312 -336
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +341 -123
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -101
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +686 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +158 -142
- 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 +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +273 -183
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1127 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +137 -159
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +156 -171
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
- 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 +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1491 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1904 -0
- 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 +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +800 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1396 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +744 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- 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 +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- 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/upgradeability/Versionable.sol/Versionable.json +78 -0
- package/contracts/accounting/AccountingService.sol +261 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +704 -0
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +365 -0
- package/contracts/authorization/IAccess.sol +57 -0
- package/contracts/authorization/IAccessAdmin.sol +170 -0
- package/contracts/authorization/IAuthorization.sol +80 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +244 -0
- package/contracts/distribution/DistributionService.sol +389 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +43 -0
- package/contracts/distribution/IDistributionService.sol +103 -0
- 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 +99 -55
- package/contracts/instance/IInstanceService.sol +71 -21
- package/contracts/instance/Instance.sol +220 -192
- package/contracts/instance/InstanceAdmin.sol +450 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +415 -80
- package/contracts/instance/InstanceService.sol +387 -228
- package/contracts/instance/InstanceServiceManager.sol +14 -32
- package/contracts/instance/InstanceStore.sol +298 -0
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +121 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- 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 +10 -9
- package/contracts/instance/module/IComponents.sol +62 -0
- package/contracts/instance/module/IDistribution.sol +25 -10
- package/contracts/instance/module/IPolicy.sol +81 -21
- package/contracts/instance/module/IRisk.sol +6 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +41 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +395 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +115 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +165 -0
- package/contracts/pool/Pool.sol +343 -0
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +587 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +278 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +640 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +69 -0
- package/contracts/product/IClaimService.sol +135 -0
- package/contracts/product/IPolicyService.sol +95 -0
- package/contracts/product/IPricingService.sol +40 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +640 -0
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +309 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +467 -0
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +82 -35
- package/contracts/registry/IRegistry.sol +126 -37
- package/contracts/registry/IRegistryService.sol +40 -28
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -1
- package/contracts/registry/Registry.sol +555 -273
- package/contracts/registry/RegistryAdmin.sol +258 -0
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +116 -233
- package/contracts/registry/RegistryServiceManager.sol +26 -53
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +332 -0
- package/contracts/registry/TokenRegistry.sol +264 -59
- package/contracts/shared/Component.sol +210 -0
- package/contracts/shared/ComponentService.sol +661 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +347 -0
- package/contracts/shared/IComponent.sol +58 -0
- package/contracts/shared/IComponentService.sol +110 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +15 -12
- package/contracts/shared/IPolicyHolder.sol +35 -0
- package/contracts/shared/IRegisterable.sol +25 -5
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +13 -5
- package/contracts/shared/InitializableERC165.sol +35 -0
- package/contracts/shared/InstanceLinkedComponent.sol +194 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +75 -82
- package/contracts/shared/PolicyHolder.sol +62 -0
- package/contracts/shared/Registerable.sol +54 -38
- package/contracts/shared/RegistryLinked.sol +38 -0
- package/contracts/shared/Service.sol +43 -33
- package/contracts/shared/TokenHandler.sol +327 -12
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +179 -0
- package/contracts/staking/IStakingService.sol +175 -0
- package/contracts/staking/Staking.sol +546 -0
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +180 -0
- package/contracts/staking/StakingService.sol +467 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +606 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +150 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/type/ClaimId.sol +80 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/type/Fee.sol +66 -0
- package/contracts/{types → type}/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/{types → type}/NftId.sol +28 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +294 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +75 -0
- package/contracts/type/RoleId.sol +182 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/{types → type}/StateId.sol +48 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +33 -19
- package/contracts/type/UFixed.sol +262 -0
- package/contracts/{types → type}/Version.sol +59 -7
- package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
- package/contracts/upgradeability/ProxyManager.sol +234 -0
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +12 -8
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -772
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -384
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -967
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -883
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1057
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -243
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -440
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -684
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -499
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -536
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -984
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -718
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -428
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -768
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- 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/shared/Versionable.sol/Versionable.json +0 -228
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/BaseComponent.sol +0 -148
- package/contracts/components/Distribution.sol +0 -163
- package/contracts/components/IBaseComponent.sol +0 -32
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -66
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -271
- package/contracts/components/Product.sol +0 -292
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/BundleManager.sol +0 -129
- package/contracts/instance/IInstanceBase.sol +0 -26
- package/contracts/instance/InstanceAccessManager.sol +0 -304
- package/contracts/instance/InstanceBase.sol +0 -41
- package/contracts/instance/ObjectManager.sol +0 -101
- package/contracts/instance/base/ComponentServiceBase.sol +0 -72
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/IAccess.sol +0 -48
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -260
- package/contracts/instance/service/BundleServiceManager.sol +0 -54
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -118
- package/contracts/instance/service/DistributionServiceManager.sol +0 -54
- package/contracts/instance/service/IBundleService.sol +0 -45
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -87
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -508
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -124
- package/contracts/instance/service/PoolServiceManager.sol +0 -54
- package/contracts/instance/service/ProductService.sol +0 -173
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/ERC165.sol +0 -25
- package/contracts/shared/ProxyManager.sol +0 -94
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/shared/Versionable.sol +0 -147
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/Fee.sol +0 -56
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RiskId.sol +0 -43
- package/contracts/types/RoleId.sol +0 -91
- package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,128 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IInstance} from "../instance/IInstance.sol";
|
5
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
6
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT, STAKING} from "../type/ObjectType.sol";
|
9
|
+
import {Service} from "../shared/Service.sol";
|
10
|
+
|
11
|
+
|
12
|
+
abstract contract ComponentVerifyingService is
|
13
|
+
Service
|
14
|
+
{
|
15
|
+
error ErrorComponentVerifyingServiceComponentTypeInvalid(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
16
|
+
error ErrorComponentVerifyingServiceComponentIsLocked(NftId componentNftId);
|
17
|
+
|
18
|
+
/// @dev based on the sender address returns the corresponding components nft id, info and instance.
|
19
|
+
/// the function reverts iff:
|
20
|
+
/// - there is no such component
|
21
|
+
/// - the component has the wrong object type
|
22
|
+
/// - the component is locked
|
23
|
+
function _getAndVerifyActiveComponent(
|
24
|
+
ObjectType expectedType // assume always of `component` type
|
25
|
+
)
|
26
|
+
internal
|
27
|
+
view
|
28
|
+
returns(
|
29
|
+
NftId componentNftId,
|
30
|
+
IRegistry.ObjectInfo memory objectInfo,
|
31
|
+
IInstance instance
|
32
|
+
)
|
33
|
+
{
|
34
|
+
componentNftId = getRegistry().getNftIdForAddress(msg.sender);
|
35
|
+
(objectInfo, instance) = _getAndVerifyComponentInfo(
|
36
|
+
componentNftId,
|
37
|
+
expectedType,
|
38
|
+
true); // only active
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
/// @dev returns the component info and instance contract reference given a component nft id
|
43
|
+
/// the function reverts iff:
|
44
|
+
/// - there is no such component
|
45
|
+
/// - the component has the wrong object type
|
46
|
+
function _getAndVerifyComponentInfo(
|
47
|
+
NftId componentNftId,
|
48
|
+
ObjectType expectedType, // assume always of `component` type
|
49
|
+
bool onlyActive
|
50
|
+
)
|
51
|
+
internal
|
52
|
+
virtual
|
53
|
+
view
|
54
|
+
returns(
|
55
|
+
IRegistry.ObjectInfo memory info,
|
56
|
+
IInstance instance
|
57
|
+
)
|
58
|
+
{
|
59
|
+
IRegistry registry = getRegistry();
|
60
|
+
info = registry.getObjectInfo(componentNftId);
|
61
|
+
|
62
|
+
// if not COMPONENT require exact match
|
63
|
+
if(expectedType != COMPONENT()) {
|
64
|
+
// ensure component is of expected type
|
65
|
+
if(info.objectType != expectedType) {
|
66
|
+
revert ErrorComponentVerifyingServiceComponentTypeInvalid(
|
67
|
+
componentNftId,
|
68
|
+
expectedType,
|
69
|
+
info.objectType);
|
70
|
+
}
|
71
|
+
} else {
|
72
|
+
if(!(info.objectType == PRODUCT()
|
73
|
+
|| info.objectType == POOL()
|
74
|
+
|| info.objectType == DISTRIBUTION()
|
75
|
+
|| info.objectType == ORACLE()
|
76
|
+
))
|
77
|
+
{
|
78
|
+
revert ErrorComponentVerifyingServiceComponentTypeInvalid(
|
79
|
+
componentNftId,
|
80
|
+
expectedType,
|
81
|
+
info.objectType);
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
if (info.objectType == STAKING()) {
|
86
|
+
return (info, instance);
|
87
|
+
}
|
88
|
+
|
89
|
+
if (info.objectType == PRODUCT()) {
|
90
|
+
instance = _getInstance(registry, info.parentNftId);
|
91
|
+
} else {
|
92
|
+
instance = _getInstanceForComponent(registry, info.parentNftId);
|
93
|
+
}
|
94
|
+
|
95
|
+
// ensure component is not locked
|
96
|
+
if (onlyActive) {
|
97
|
+
if (instance.getInstanceAdmin().isTargetLocked(info.objectAddress)) {
|
98
|
+
revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
|
104
|
+
function _getInstanceForComponent(IRegistry registry, NftId productNftId)
|
105
|
+
internal
|
106
|
+
view
|
107
|
+
returns (IInstance instance)
|
108
|
+
{
|
109
|
+
return _getInstance(
|
110
|
+
registry,
|
111
|
+
registry.getObjectInfo(
|
112
|
+
productNftId).parentNftId);
|
113
|
+
}
|
114
|
+
|
115
|
+
|
116
|
+
/// @dev returns the product nft id from the registry.
|
117
|
+
/// assumes the component nft id is valid and represents a product linked component.
|
118
|
+
function _getProductNftId(NftId componentNftId) internal view returns (NftId productNftId) {
|
119
|
+
productNftId = getRegistry().getParentNftId(componentNftId);
|
120
|
+
}
|
121
|
+
|
122
|
+
|
123
|
+
/// @dev returns an IInstance contract reference for the specified instance nft id
|
124
|
+
function _getInstance(IRegistry registry, NftId instanceNftId) internal view returns (IInstance) {
|
125
|
+
return IInstance(
|
126
|
+
registry.getObjectAddress(instanceNftId));
|
127
|
+
}
|
128
|
+
}
|
@@ -0,0 +1,347 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
6
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
7
|
+
|
8
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
9
|
+
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
+
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL, STAKING} from "../type/ObjectType.sol";
|
14
|
+
import {VersionPart} from "../type/Version.sol";
|
15
|
+
|
16
|
+
interface ITargetHelper {
|
17
|
+
function isTargetLocked(address target) external view returns (bool);
|
18
|
+
}
|
19
|
+
|
20
|
+
interface IInstanceAdminHelper {
|
21
|
+
function getInstanceAdmin() external view returns (ITargetHelper);
|
22
|
+
}
|
23
|
+
|
24
|
+
interface ITokenRegistryHelper {
|
25
|
+
function isActive(uint256 chainId, address token, VersionPart release) external view returns (bool);
|
26
|
+
}
|
27
|
+
|
28
|
+
library ContractLib {
|
29
|
+
|
30
|
+
error ErrorContractLibCallerNotRegistered(address target);
|
31
|
+
error ErrorContractLibCallerNotComponent(NftId componentNftId, ObjectType objectType);
|
32
|
+
error ErrorContractLibParentNotInstance(NftId componentNftId, NftId parentNftId);
|
33
|
+
error ErrorContractLibParentNotProduct(NftId componentNftId, NftId parentNftId);
|
34
|
+
error ErrorContractLibComponentTypeMismatch(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
35
|
+
error ErrorContractLibComponentInactive(NftId componentNftId);
|
36
|
+
|
37
|
+
|
38
|
+
function getInfoAndInstance(
|
39
|
+
IRegistry registry,
|
40
|
+
NftId componentNftId,
|
41
|
+
bool onlyActive
|
42
|
+
)
|
43
|
+
external
|
44
|
+
view
|
45
|
+
returns (
|
46
|
+
IRegistry.ObjectInfo memory info,
|
47
|
+
address instance
|
48
|
+
)
|
49
|
+
{
|
50
|
+
info = registry.getObjectInfo(componentNftId);
|
51
|
+
return _getAndVerifyComponentAndInstance(registry, info, info.objectType, onlyActive);
|
52
|
+
}
|
53
|
+
|
54
|
+
|
55
|
+
function getAndVerifyAnyComponent(
|
56
|
+
IRegistry registry,
|
57
|
+
address caller,
|
58
|
+
bool onlyActive
|
59
|
+
)
|
60
|
+
external
|
61
|
+
view
|
62
|
+
returns (
|
63
|
+
IRegistry.ObjectInfo memory callerInfo,
|
64
|
+
address instance
|
65
|
+
)
|
66
|
+
{
|
67
|
+
// check caller is component
|
68
|
+
callerInfo = _getAndVerifyObjectInfo(registry, caller);
|
69
|
+
if(!(callerInfo.objectType == PRODUCT()
|
70
|
+
|| callerInfo.objectType == POOL()
|
71
|
+
|| callerInfo.objectType == DISTRIBUTION()
|
72
|
+
|| callerInfo.objectType == ORACLE())
|
73
|
+
) {
|
74
|
+
revert ErrorContractLibCallerNotComponent(
|
75
|
+
callerInfo.nftId,
|
76
|
+
callerInfo.objectType);
|
77
|
+
}
|
78
|
+
|
79
|
+
return _getAndVerifyComponentAndInstance(registry, callerInfo, callerInfo.objectType, onlyActive);
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
function getAndVerifyComponent(
|
84
|
+
IRegistry registry,
|
85
|
+
address caller,
|
86
|
+
ObjectType expectedType,
|
87
|
+
bool onlyActive
|
88
|
+
)
|
89
|
+
external
|
90
|
+
view
|
91
|
+
returns (
|
92
|
+
IRegistry.ObjectInfo memory info,
|
93
|
+
address instance
|
94
|
+
)
|
95
|
+
{
|
96
|
+
info = _getAndVerifyObjectInfo(registry, caller);
|
97
|
+
return _getAndVerifyComponentAndInstance(registry, info, expectedType, onlyActive);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
// TODO cleanup
|
102
|
+
// function getAndVerifyStaking(
|
103
|
+
// IRegistry registry,
|
104
|
+
// address target
|
105
|
+
// )
|
106
|
+
// external
|
107
|
+
// view
|
108
|
+
// returns (IRegistry.ObjectInfo memory info)
|
109
|
+
// {
|
110
|
+
// // check target is component
|
111
|
+
// info = _getAndVerifyObjectInfo(registry, target);
|
112
|
+
// if(info.objectType != STAKING()) {
|
113
|
+
// revert ErrorContractLibNotStaking(
|
114
|
+
// info.nftId,
|
115
|
+
// info.objectType);
|
116
|
+
// }
|
117
|
+
// }
|
118
|
+
|
119
|
+
|
120
|
+
function getInstanceForComponent(
|
121
|
+
IRegistry registry,
|
122
|
+
NftId componentNftId
|
123
|
+
)
|
124
|
+
public
|
125
|
+
view
|
126
|
+
returns (address instance)
|
127
|
+
{
|
128
|
+
NftId productNftId = registry.getParentNftId(componentNftId);
|
129
|
+
NftId instanceNftId = registry.getParentNftId(productNftId);
|
130
|
+
return registry.getObjectInfo(instanceNftId).objectAddress;
|
131
|
+
}
|
132
|
+
|
133
|
+
|
134
|
+
function isActiveToken(
|
135
|
+
address tokenRegistryAddress,
|
136
|
+
address token,
|
137
|
+
uint256 chainId,
|
138
|
+
VersionPart release
|
139
|
+
)
|
140
|
+
external
|
141
|
+
view
|
142
|
+
returns (bool)
|
143
|
+
{
|
144
|
+
return ITokenRegistryHelper(
|
145
|
+
tokenRegistryAddress).isActive(
|
146
|
+
chainId, token, release);
|
147
|
+
}
|
148
|
+
|
149
|
+
|
150
|
+
function isPolicyHolder(address target) external view returns (bool) {
|
151
|
+
return ERC165Checker.supportsInterface(target, type(IPolicyHolder).interfaceId);
|
152
|
+
}
|
153
|
+
|
154
|
+
|
155
|
+
function isAuthority(address authority) public view returns (bool) {
|
156
|
+
if (!isContract(authority)) {
|
157
|
+
return false;
|
158
|
+
}
|
159
|
+
|
160
|
+
return supportsInterface(authority, type(IAccessManager).interfaceId);
|
161
|
+
}
|
162
|
+
|
163
|
+
|
164
|
+
function isAccessManaged(address target)
|
165
|
+
public
|
166
|
+
view
|
167
|
+
returns (bool)
|
168
|
+
{
|
169
|
+
if (!isContract(target)) {
|
170
|
+
return false;
|
171
|
+
}
|
172
|
+
|
173
|
+
(bool success, ) = target.staticcall(
|
174
|
+
abi.encodeWithSelector(
|
175
|
+
IAccessManaged.authority.selector));
|
176
|
+
|
177
|
+
return success;
|
178
|
+
}
|
179
|
+
|
180
|
+
|
181
|
+
function isProduct(address registry, address target)
|
182
|
+
public
|
183
|
+
view
|
184
|
+
returns (bool)
|
185
|
+
{
|
186
|
+
if (!isInstanceLinkedComponent(registry, target)) {
|
187
|
+
return false;
|
188
|
+
}
|
189
|
+
|
190
|
+
return IInstanceLinkedComponent(target).getInitialInfo().objectType == PRODUCT();
|
191
|
+
}
|
192
|
+
|
193
|
+
|
194
|
+
function isInstanceLinkedComponent(address registry, address target)
|
195
|
+
public
|
196
|
+
view
|
197
|
+
returns (bool)
|
198
|
+
{
|
199
|
+
if (!isContract(target)) {
|
200
|
+
return false;
|
201
|
+
}
|
202
|
+
|
203
|
+
return supportsInterface(target, type(IInstanceLinkedComponent).interfaceId);
|
204
|
+
}
|
205
|
+
|
206
|
+
|
207
|
+
function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
|
208
|
+
NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
|
209
|
+
if (nftId.eqz()) {
|
210
|
+
return false;
|
211
|
+
}
|
212
|
+
|
213
|
+
return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
|
214
|
+
}
|
215
|
+
|
216
|
+
|
217
|
+
function isRegistry(address registry) public view returns (bool) {
|
218
|
+
if (!isContract(registry)) {
|
219
|
+
return false;
|
220
|
+
}
|
221
|
+
|
222
|
+
return supportsInterface(registry, type(IRegistry).interfaceId);
|
223
|
+
}
|
224
|
+
|
225
|
+
|
226
|
+
function isContract(address target) public view returns (bool) {
|
227
|
+
if (target == address(0)) {
|
228
|
+
return false;
|
229
|
+
}
|
230
|
+
|
231
|
+
uint256 size;
|
232
|
+
assembly {
|
233
|
+
size := extcodesize(target)
|
234
|
+
}
|
235
|
+
return size > 0;
|
236
|
+
}
|
237
|
+
|
238
|
+
function supportsInterface(address target, bytes4 interfaceId) public view returns (bool) {
|
239
|
+
return ERC165Checker.supportsInterface(target, interfaceId);
|
240
|
+
}
|
241
|
+
|
242
|
+
|
243
|
+
function _getAndVerifyComponentAndInstance(
|
244
|
+
IRegistry registry,
|
245
|
+
IRegistry.ObjectInfo memory info,
|
246
|
+
ObjectType expectedType,
|
247
|
+
bool onlyActive
|
248
|
+
)
|
249
|
+
internal
|
250
|
+
view
|
251
|
+
returns (
|
252
|
+
IRegistry.ObjectInfo memory,
|
253
|
+
address instance
|
254
|
+
)
|
255
|
+
{
|
256
|
+
if(info.objectType != expectedType) {
|
257
|
+
revert ErrorContractLibComponentTypeMismatch(
|
258
|
+
info.nftId,
|
259
|
+
expectedType,
|
260
|
+
info.objectType);
|
261
|
+
}
|
262
|
+
|
263
|
+
// get instance and check component is active
|
264
|
+
instance = getAndVerifyInstance(registry, info);
|
265
|
+
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
266
|
+
|
267
|
+
return (
|
268
|
+
info,
|
269
|
+
instance
|
270
|
+
);
|
271
|
+
}
|
272
|
+
|
273
|
+
|
274
|
+
function _checkComponentActive(
|
275
|
+
address instance,
|
276
|
+
address target,
|
277
|
+
NftId componentNftId,
|
278
|
+
bool onlyActive
|
279
|
+
)
|
280
|
+
internal
|
281
|
+
view
|
282
|
+
{
|
283
|
+
if (onlyActive) {
|
284
|
+
if (IInstanceAdminHelper(
|
285
|
+
instance).getInstanceAdmin().isTargetLocked(
|
286
|
+
target)
|
287
|
+
) {
|
288
|
+
revert ErrorContractLibComponentInactive(componentNftId);
|
289
|
+
}
|
290
|
+
}
|
291
|
+
}
|
292
|
+
|
293
|
+
|
294
|
+
/// @dev Given an object info the function returns the instance address.
|
295
|
+
/// The info may represent a product or any other component.
|
296
|
+
/// If the parent of the provided info is not registered with the correct type, the function reverts.
|
297
|
+
function getAndVerifyInstance(
|
298
|
+
IRegistry registry,
|
299
|
+
IRegistry.ObjectInfo memory info
|
300
|
+
)
|
301
|
+
public
|
302
|
+
view
|
303
|
+
returns (address instance)
|
304
|
+
{
|
305
|
+
// get instance for product case
|
306
|
+
if (info.objectType == PRODUCT()) {
|
307
|
+
// verify that parent of product is registered instance
|
308
|
+
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(info.parentNftId);
|
309
|
+
if (instanceInfo.objectType != INSTANCE()) {
|
310
|
+
revert ErrorContractLibParentNotInstance(
|
311
|
+
info.nftId,
|
312
|
+
info.parentNftId);
|
313
|
+
}
|
314
|
+
|
315
|
+
// we have verified that parent object is a registerd instance -> we return the instance address
|
316
|
+
return instanceInfo.objectAddress;
|
317
|
+
}
|
318
|
+
|
319
|
+
// not product: verify parent is registered product
|
320
|
+
info = registry.getObjectInfo(info.parentNftId);
|
321
|
+
if (info.objectType != PRODUCT()) {
|
322
|
+
revert ErrorContractLibParentNotProduct(
|
323
|
+
info.nftId,
|
324
|
+
info.parentNftId);
|
325
|
+
}
|
326
|
+
|
327
|
+
// we have verified that parent is registerd product -> we can rely on registry that its parent is an instance
|
328
|
+
return registry.getObjectAddress(info.parentNftId);
|
329
|
+
}
|
330
|
+
|
331
|
+
|
332
|
+
function _getAndVerifyObjectInfo(
|
333
|
+
IRegistry registry,
|
334
|
+
address caller
|
335
|
+
)
|
336
|
+
internal
|
337
|
+
view
|
338
|
+
returns (IRegistry.ObjectInfo memory info)
|
339
|
+
{
|
340
|
+
NftId componentNftId = registry.getNftIdForAddress(caller);
|
341
|
+
if (componentNftId.eqz()) {
|
342
|
+
revert ErrorContractLibCallerNotRegistered(caller);
|
343
|
+
}
|
344
|
+
|
345
|
+
info = registry.getObjectInfo(componentNftId);
|
346
|
+
}
|
347
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {Amount} from "../type/Amount.sol";
|
7
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
8
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
9
|
+
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
10
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
11
|
+
|
12
|
+
/// @dev component base class
|
13
|
+
/// component examples are staking, product, distribution, pool and oracle
|
14
|
+
interface IComponent is
|
15
|
+
IRegisterable,
|
16
|
+
ITransferInterceptor
|
17
|
+
{
|
18
|
+
error ErrorComponentProductNftIdZero();
|
19
|
+
error ErrorComponentProductNftIdNonzero();
|
20
|
+
error ErrorComponentNameLengthZero();
|
21
|
+
|
22
|
+
error ErrorComponentNotChainNft(address caller);
|
23
|
+
|
24
|
+
error ErrorComponentWalletAddressZero();
|
25
|
+
error ErrorComponentWalletAddressIsSameAsCurrent();
|
26
|
+
error ErrorComponentWalletNotComponent();
|
27
|
+
|
28
|
+
event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
|
29
|
+
event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
|
30
|
+
event LogComponentTokenHandlerApproved(address tokenHandler, address token, Amount limit, bool isMaxAmount);
|
31
|
+
|
32
|
+
/// @dev returns the name of this component
|
33
|
+
/// to successfully register the component with an instance the name MUST be unique in the linked instance
|
34
|
+
function getName() external view returns (string memory name);
|
35
|
+
|
36
|
+
/// @dev defines which ERC20 token is used by this component
|
37
|
+
function getToken() external view returns (IERC20Metadata token);
|
38
|
+
|
39
|
+
/// @dev returns token handler for this component
|
40
|
+
function getTokenHandler() external view returns (TokenHandler tokenHandler);
|
41
|
+
|
42
|
+
/// @dev defines the wallet address used to hold the ERC20 tokens related to this component
|
43
|
+
/// the default address is the component token address
|
44
|
+
function getWallet() external view returns (address walletAddress);
|
45
|
+
|
46
|
+
/// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
|
47
|
+
function isNftInterceptor() external view returns(bool isInterceptor);
|
48
|
+
|
49
|
+
/// @dev returns true iff this component is registered with the registry
|
50
|
+
function isRegistered() external view returns (bool);
|
51
|
+
|
52
|
+
/// @dev returns the component infos for this component
|
53
|
+
/// for a non registered component the function returns getInitialComponentInfo()
|
54
|
+
function getComponentInfo() external view returns (IComponents.ComponentInfo memory info);
|
55
|
+
|
56
|
+
/// @dev returns the iniital component infos for this component
|
57
|
+
function getInitialComponentInfo() external view returns (IComponents.ComponentInfo memory info);
|
58
|
+
}
|
@@ -0,0 +1,110 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {Amount} from "../type/Amount.sol";
|
7
|
+
import {Fee} from "../type/Fee.sol";
|
8
|
+
import {IService} from "../shared/IService.sol";
|
9
|
+
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
11
|
+
import {UFixed} from "../type/UFixed.sol";
|
12
|
+
import {VersionPart} from "../type/Version.sol";
|
13
|
+
|
14
|
+
/// @dev component base class
|
15
|
+
/// component examples are staking, product, distribution, pool and oracle
|
16
|
+
interface IComponentService is
|
17
|
+
IService
|
18
|
+
{
|
19
|
+
// registerProduct
|
20
|
+
error ErrorComponentServiceCallerNotInstance(address caller);
|
21
|
+
error ErrorComponentServiceNotProduct(address product);
|
22
|
+
error ErrorComponentServiceTokenInvalid(address token);
|
23
|
+
|
24
|
+
// registerComponent
|
25
|
+
error ErrorComponentServiceCallerNotProduct(address caller);
|
26
|
+
error ErrorComponentServiceNotComponent(address component);
|
27
|
+
|
28
|
+
error ErrorComponentServiceNotInstanceLinkedComponent(address component);
|
29
|
+
error ErrorComponentServiceComponentTypeNotSupported(address component, ObjectType invalid);
|
30
|
+
error ErrorComponentServiceComponentParentInvalid(address component, NftId required, NftId actual);
|
31
|
+
error ErrorComponentServiceComponentReleaseMismatch(address component, VersionPart serviceRelease, VersionPart componentRelease);
|
32
|
+
error ErrorComponentServiceComponentAlreadyRegistered(address component);
|
33
|
+
|
34
|
+
error ErrorProductServiceNoDistributionExpected(NftId productNftId);
|
35
|
+
error ErrorProductServiceDistributionAlreadyRegistered(NftId productNftId, NftId distributionNftId);
|
36
|
+
error ErrorProductServiceNoOraclesExpected(NftId productNftId);
|
37
|
+
error ErrorProductServiceOraclesAlreadyRegistered(NftId productNftId, uint8 expectedOracles);
|
38
|
+
error ErrorProductServicePoolAlreadyRegistered(NftId productNftId, NftId poolNftId);
|
39
|
+
|
40
|
+
error ErrorComponentServiceNewWalletAddressZero();
|
41
|
+
error ErrorComponentServiceWalletAddressZero();
|
42
|
+
error ErrorComponentServiceWalletAddressIsSameAsCurrent();
|
43
|
+
|
44
|
+
error ErrorComponentServiceWithdrawAmountIsZero();
|
45
|
+
error ErrorComponentServiceWithdrawAmountExceedsLimit(Amount withdrawnAmount, Amount withdrawLimit);
|
46
|
+
error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
|
47
|
+
|
48
|
+
event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner);
|
49
|
+
event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
|
50
|
+
event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
|
51
|
+
event LogComponentServiceComponentFeesWithdrawn(NftId componentNftId, address recipient, address token, Amount withdrawnAmount);
|
52
|
+
event LogComponentServiceProductFeesUpdated(NftId productNftId);
|
53
|
+
event LogComponentServiceDistributionFeesUpdated(NftId distributionNftId);
|
54
|
+
event LogComponentServicePoolFeesUpdated(NftId poolNftId);
|
55
|
+
event LogComponentServiceUpdateFee(
|
56
|
+
NftId nftId,
|
57
|
+
string feeName,
|
58
|
+
UFixed previousFractionalFee,
|
59
|
+
Amount previousFixedFee,
|
60
|
+
UFixed newFractionalFee,
|
61
|
+
Amount newFixedFee
|
62
|
+
);
|
63
|
+
|
64
|
+
//-------- component ----------------------------------------------------//
|
65
|
+
|
66
|
+
/// @dev Approves the callers token handler to spend up to the specified amount of tokens.
|
67
|
+
/// Reverts if the component's token handler wallet is not the token handler itself.
|
68
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external;
|
69
|
+
|
70
|
+
/// @dev Sets the components associated wallet address.
|
71
|
+
/// To set the wallet to the token handler contract, use address(0) as the new wallet adress.
|
72
|
+
function setWallet(address newWallet) external;
|
73
|
+
|
74
|
+
/// @dev Locks/Unlocks the calling component.
|
75
|
+
function setLocked(bool locked) external;
|
76
|
+
|
77
|
+
/// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
|
78
|
+
/// @param withdrawAmount the amount to withdraw
|
79
|
+
/// @return withdrawnAmount the amount that was actually withdrawn
|
80
|
+
function withdrawFees(Amount withdrawAmount) external returns (Amount withdrawnAmount);
|
81
|
+
|
82
|
+
/// @dev Registers the provided component with the product (sender)
|
83
|
+
function registerComponent(address component) external returns (NftId componentNftId);
|
84
|
+
|
85
|
+
//-------- product ------------------------------------------------------//
|
86
|
+
|
87
|
+
/// @dev Registers the specified product component for the instance (sender)
|
88
|
+
function registerProduct(address product, address token) external returns (NftId productNftId);
|
89
|
+
|
90
|
+
function setProductFees(
|
91
|
+
Fee memory productFee, // product fee on net premium
|
92
|
+
Fee memory processingFee // product fee on payout amounts
|
93
|
+
) external;
|
94
|
+
|
95
|
+
//-------- distribution -------------------------------------------------//
|
96
|
+
|
97
|
+
function setDistributionFees(
|
98
|
+
Fee memory distributionFee, // distribution fee for sales that do not include commissions
|
99
|
+
Fee memory minDistributionOwnerFee // min fee required by distribution owner (not including commissions for distributors)
|
100
|
+
) external;
|
101
|
+
|
102
|
+
//-------- pool ---------------------------------------------------------//
|
103
|
+
|
104
|
+
function setPoolFees(
|
105
|
+
Fee memory poolFee, // pool fee on net premium
|
106
|
+
Fee memory stakingFee, // pool fee on staked capital from investor
|
107
|
+
Fee memory performanceFee // pool fee on profits from capital investors
|
108
|
+
) external;
|
109
|
+
|
110
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {IComponent} from "../shared/IComponent.sol";
|
6
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
|
+
import {IInstance} from "../instance/IInstance.sol";
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
10
|
+
|
11
|
+
/// @dev component base class
|
12
|
+
/// component examples are product, distribution, pool and oracle
|
13
|
+
interface IInstanceLinkedComponent is
|
14
|
+
IComponent
|
15
|
+
{
|
16
|
+
error ErrorInstanceLinkedComponentTypeMismatch(ObjectType requiredType, ObjectType objectType);
|
17
|
+
error ErrorInstanceLinkedComponentNotProduct(NftId nftId, ObjectType objectType);
|
18
|
+
|
19
|
+
/// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
|
20
|
+
/// @param amount the amount to withdraw
|
21
|
+
/// @return withdrawnAmount the amount that was actually withdrawn
|
22
|
+
function withdrawFees(Amount amount) external returns (Amount withdrawnAmount);
|
23
|
+
|
24
|
+
/// @dev defines the instance to which this component is linked to
|
25
|
+
function getInstance() external view returns (IInstance instance);
|
26
|
+
|
27
|
+
/// @dev returns the initial component authorization specification.
|
28
|
+
function getAuthorization() external view returns (IAuthorization authorization);
|
29
|
+
|
30
|
+
}
|