@etherisc/gif-next 0.0.2-ff282a4-523 → 0.0.2-ff795d8-141
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 +130 -10
- 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 +1652 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1279 -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 +790 -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 +1333 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -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 +805 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +154 -600
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +564 -471
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +240 -116
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +165 -336
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +373 -113
- 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 +805 -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 +805 -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 +805 -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 +805 -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 +805 -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 +526 -87
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +413 -74
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +533 -218
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2302 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1843 -719
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +433 -211
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +171 -93
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1651 -770
- 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 +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- 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 +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 +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 +810 -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 +805 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +355 -366
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +214 -102
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +221 -76
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +214 -423
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +554 -401
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +223 -624
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +694 -710
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +228 -112
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +219 -242
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +188 -88
- 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 +805 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +458 -332
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +222 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +155 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +327 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +399 -69
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +195 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +367 -231
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -62
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +440 -380
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +196 -124
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -324
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +192 -108
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +409 -509
- 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 +462 -56
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +251 -127
- 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 +905 -121
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2127 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +303 -245
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +169 -91
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2140 -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 +1393 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +315 -139
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +109 -296
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1021 -165
- 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/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +680 -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 +116 -141
- 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/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
- 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 +23 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +154 -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 +74 -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 +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/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- 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 +26 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -90
- 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 +67 -102
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +615 -6
- 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 +1301 -119
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +685 -63
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1579 -172
- 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 +250 -73
- 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 +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +775 -176
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +195 -83
- 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 +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 +122 -5
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -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 +119 -58
- 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 +66 -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 +153 -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 +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- 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 +121 -23
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -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 +789 -0
- package/contracts/authorization/AccessAdminLib.sol +387 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +174 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +27 -0
- package/contracts/authorization/IServiceAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +320 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
- package/contracts/distribution/Distribution.sol +135 -175
- package/contracts/distribution/DistributionService.sol +306 -213
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +23 -49
- package/contracts/distribution/IDistributionService.sol +55 -33
- 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 +114 -49
- package/contracts/instance/IInstanceService.sol +74 -37
- package/contracts/instance/Instance.sol +245 -133
- package/contracts/instance/InstanceAdmin.sol +380 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +263 -0
- package/contracts/instance/InstanceReader.sol +437 -100
- package/contracts/instance/InstanceService.sol +402 -180
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +151 -64
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- 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 +6 -8
- package/contracts/instance/module/IComponents.sol +40 -19
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +57 -30
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -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 +82 -0
- package/contracts/pool/BundleService.sol +237 -224
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +35 -38
- package/contracts/pool/IPoolComponent.sol +23 -75
- package/contracts/pool/IPoolService.sol +107 -56
- package/contracts/pool/Pool.sol +209 -168
- package/contracts/pool/PoolLib.sol +353 -0
- package/contracts/pool/PoolService.sol +446 -262
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +177 -85
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +61 -0
- package/contracts/product/ClaimService.sol +380 -184
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +10 -3
- package/contracts/product/IClaimService.sol +48 -6
- package/contracts/product/IPolicyService.sol +54 -39
- package/contracts/product/IPricingService.sol +14 -11
- package/contracts/product/IProductComponent.sol +31 -10
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +498 -234
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +116 -82
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +236 -148
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -39
- package/contracts/registry/IRegistry.sol +94 -34
- package/contracts/registry/IRegistryService.sol +28 -35
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +444 -219
- package/contracts/registry/RegistryAdmin.sol +188 -0
- package/contracts/registry/RegistryAuthorization.sol +277 -0
- package/contracts/registry/RegistryService.sol +74 -137
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +520 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +343 -0
- package/contracts/registry/TokenRegistry.sol +262 -64
- package/contracts/shared/Component.sol +122 -183
- package/contracts/shared/ComponentService.sol +610 -99
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +357 -0
- package/contracts/shared/IComponent.sol +17 -49
- package/contracts/shared/IComponentService.sol +110 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +11 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
- package/contracts/shared/InstanceLinkedComponent.sol +194 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +33 -24
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +54 -23
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +36 -41
- package/contracts/shared/TokenHandler.sol +320 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +170 -6
- package/contracts/staking/IStakingService.sol +110 -40
- package/contracts/staking/Staking.sol +509 -27
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +24 -16
- package/contracts/staking/StakingReader.sol +180 -0
- package/contracts/staking/StakingService.sol +311 -48
- package/contracts/staking/StakingServiceManager.sol +12 -8
- package/contracts/staking/StakingStore.sol +606 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +44 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +22 -21
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +21 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +204 -63
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +39 -7
- package/contracts/type/RoleId.sol +122 -74
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +16 -7
- package/contracts/type/UFixed.sol +61 -125
- package/contracts/type/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/ProxyManager.sol +101 -36
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
- package/contracts/{shared → upgradeability}/Versionable.sol +6 -3
- package/package.json +12 -8
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- 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 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
- 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/module/ITreasury.sol/ITreasury.json +0 -10
- 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 -864
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -620
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- 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/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- 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/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/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -54
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/IProductService.sol +0 -40
- package/contracts/product/ProductService.sol +0 -210
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -207
- package/contracts/registry/ReleaseManager.sol +0 -360
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {ComponentService} from "./ComponentService.sol";
|
5
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
6
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
|
+
|
8
|
+
contract ComponentServiceManager is ProxyManager {
|
9
|
+
|
10
|
+
ComponentService private _componentService;
|
11
|
+
|
12
|
+
/// @dev initializes proxy manager with service implementation
|
13
|
+
constructor(
|
14
|
+
address authority,
|
15
|
+
address registry,
|
16
|
+
bytes32 salt
|
17
|
+
)
|
18
|
+
{
|
19
|
+
ComponentService svc = new ComponentService();
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
24
|
+
data,
|
25
|
+
salt);
|
26
|
+
|
27
|
+
_componentService = ComponentService(address(versionable));
|
28
|
+
}
|
29
|
+
|
30
|
+
//--- view functions ----------------------------------------------------//
|
31
|
+
function getComponentService()
|
32
|
+
external
|
33
|
+
view
|
34
|
+
returns (ComponentService)
|
35
|
+
{
|
36
|
+
return _componentService;
|
37
|
+
}
|
38
|
+
}
|
@@ -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,357 @@
|
|
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
|
+
import {IService} from "../shared/IService.sol";
|
12
|
+
|
13
|
+
import {NftId} from "../type/NftId.sol";
|
14
|
+
import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL, STAKING} from "../type/ObjectType.sol";
|
15
|
+
import {VersionPart} from "../type/Version.sol";
|
16
|
+
|
17
|
+
interface ITargetHelper {
|
18
|
+
function isTargetLocked(address target) external view returns (bool);
|
19
|
+
}
|
20
|
+
|
21
|
+
interface IInstanceAdminHelper {
|
22
|
+
function getInstanceAdmin() external view returns (ITargetHelper);
|
23
|
+
}
|
24
|
+
|
25
|
+
interface ITokenRegistryHelper {
|
26
|
+
function isActive(uint256 chainId, address token, VersionPart release) external view returns (bool);
|
27
|
+
}
|
28
|
+
|
29
|
+
library ContractLib {
|
30
|
+
|
31
|
+
error ErrorContractLibCallerNotRegistered(address target);
|
32
|
+
error ErrorContractLibCallerNotComponent(NftId componentNftId, ObjectType objectType);
|
33
|
+
error ErrorContractLibParentNotInstance(NftId componentNftId, NftId parentNftId);
|
34
|
+
error ErrorContractLibParentNotProduct(NftId componentNftId, NftId parentNftId);
|
35
|
+
error ErrorContractLibComponentTypeMismatch(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
36
|
+
error ErrorContractLibComponentInactive(NftId componentNftId);
|
37
|
+
|
38
|
+
|
39
|
+
function getInfoAndInstance(
|
40
|
+
IRegistry registry,
|
41
|
+
NftId componentNftId,
|
42
|
+
bool onlyActive
|
43
|
+
)
|
44
|
+
external
|
45
|
+
view
|
46
|
+
returns (
|
47
|
+
IRegistry.ObjectInfo memory info,
|
48
|
+
address instance
|
49
|
+
)
|
50
|
+
{
|
51
|
+
info = registry.getObjectInfo(componentNftId);
|
52
|
+
return _getAndVerifyComponentAndInstance(registry, info, info.objectType, onlyActive);
|
53
|
+
}
|
54
|
+
|
55
|
+
|
56
|
+
function getAndVerifyAnyComponent(
|
57
|
+
IRegistry registry,
|
58
|
+
address caller,
|
59
|
+
bool onlyActive
|
60
|
+
)
|
61
|
+
external
|
62
|
+
view
|
63
|
+
returns (
|
64
|
+
IRegistry.ObjectInfo memory callerInfo,
|
65
|
+
address instance
|
66
|
+
)
|
67
|
+
{
|
68
|
+
// check caller is component
|
69
|
+
callerInfo = _getAndVerifyObjectInfo(registry, caller);
|
70
|
+
if(!(callerInfo.objectType == PRODUCT()
|
71
|
+
|| callerInfo.objectType == POOL()
|
72
|
+
|| callerInfo.objectType == DISTRIBUTION()
|
73
|
+
|| callerInfo.objectType == ORACLE())
|
74
|
+
) {
|
75
|
+
revert ErrorContractLibCallerNotComponent(
|
76
|
+
callerInfo.nftId,
|
77
|
+
callerInfo.objectType);
|
78
|
+
}
|
79
|
+
|
80
|
+
return _getAndVerifyComponentAndInstance(registry, callerInfo, callerInfo.objectType, onlyActive);
|
81
|
+
}
|
82
|
+
|
83
|
+
|
84
|
+
function getAndVerifyComponent(
|
85
|
+
IRegistry registry,
|
86
|
+
address caller,
|
87
|
+
ObjectType expectedType,
|
88
|
+
bool onlyActive
|
89
|
+
)
|
90
|
+
external
|
91
|
+
view
|
92
|
+
returns (
|
93
|
+
IRegistry.ObjectInfo memory info,
|
94
|
+
address instance
|
95
|
+
)
|
96
|
+
{
|
97
|
+
info = _getAndVerifyObjectInfo(registry, caller);
|
98
|
+
return _getAndVerifyComponentAndInstance(registry, info, expectedType, onlyActive);
|
99
|
+
}
|
100
|
+
|
101
|
+
|
102
|
+
// TODO cleanup
|
103
|
+
// function getAndVerifyStaking(
|
104
|
+
// IRegistry registry,
|
105
|
+
// address target
|
106
|
+
// )
|
107
|
+
// external
|
108
|
+
// view
|
109
|
+
// returns (IRegistry.ObjectInfo memory info)
|
110
|
+
// {
|
111
|
+
// // check target is component
|
112
|
+
// info = _getAndVerifyObjectInfo(registry, target);
|
113
|
+
// if(info.objectType != STAKING()) {
|
114
|
+
// revert ErrorContractLibNotStaking(
|
115
|
+
// info.nftId,
|
116
|
+
// info.objectType);
|
117
|
+
// }
|
118
|
+
// }
|
119
|
+
|
120
|
+
|
121
|
+
function getInstanceForComponent(
|
122
|
+
IRegistry registry,
|
123
|
+
NftId componentNftId
|
124
|
+
)
|
125
|
+
public
|
126
|
+
view
|
127
|
+
returns (address instance)
|
128
|
+
{
|
129
|
+
NftId productNftId = registry.getParentNftId(componentNftId);
|
130
|
+
NftId instanceNftId = registry.getParentNftId(productNftId);
|
131
|
+
return registry.getObjectInfo(instanceNftId).objectAddress;
|
132
|
+
}
|
133
|
+
|
134
|
+
|
135
|
+
function isActiveToken(
|
136
|
+
address tokenRegistryAddress,
|
137
|
+
address token,
|
138
|
+
uint256 chainId,
|
139
|
+
VersionPart release
|
140
|
+
)
|
141
|
+
external
|
142
|
+
view
|
143
|
+
returns (bool)
|
144
|
+
{
|
145
|
+
return ITokenRegistryHelper(
|
146
|
+
tokenRegistryAddress).isActive(
|
147
|
+
chainId, token, release);
|
148
|
+
}
|
149
|
+
|
150
|
+
|
151
|
+
function isPolicyHolder(address target) external view returns (bool) {
|
152
|
+
return ERC165Checker.supportsInterface(target, type(IPolicyHolder).interfaceId);
|
153
|
+
}
|
154
|
+
|
155
|
+
|
156
|
+
function isAuthority(address authority) public view returns (bool) {
|
157
|
+
if (!isContract(authority)) {
|
158
|
+
return false;
|
159
|
+
}
|
160
|
+
|
161
|
+
return supportsInterface(authority, type(IAccessManager).interfaceId);
|
162
|
+
}
|
163
|
+
|
164
|
+
|
165
|
+
function isAccessManaged(address target)
|
166
|
+
public
|
167
|
+
view
|
168
|
+
returns (bool)
|
169
|
+
{
|
170
|
+
if (!isContract(target)) {
|
171
|
+
return false;
|
172
|
+
}
|
173
|
+
|
174
|
+
(bool success, ) = target.staticcall(
|
175
|
+
abi.encodeWithSelector(
|
176
|
+
IAccessManaged.authority.selector));
|
177
|
+
|
178
|
+
return success;
|
179
|
+
}
|
180
|
+
|
181
|
+
|
182
|
+
function isProduct(address registry, address target)
|
183
|
+
public
|
184
|
+
view
|
185
|
+
returns (bool)
|
186
|
+
{
|
187
|
+
if (!isInstanceLinkedComponent(registry, target)) {
|
188
|
+
return false;
|
189
|
+
}
|
190
|
+
|
191
|
+
return IInstanceLinkedComponent(target).getInitialInfo().objectType == PRODUCT();
|
192
|
+
}
|
193
|
+
|
194
|
+
|
195
|
+
function isInstanceLinkedComponent(address registry, address target)
|
196
|
+
public
|
197
|
+
view
|
198
|
+
returns (bool)
|
199
|
+
{
|
200
|
+
if (!isContract(target)) {
|
201
|
+
return false;
|
202
|
+
}
|
203
|
+
|
204
|
+
return supportsInterface(target, type(IInstanceLinkedComponent).interfaceId);
|
205
|
+
}
|
206
|
+
|
207
|
+
|
208
|
+
function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
|
209
|
+
NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
|
210
|
+
if (nftId.eqz()) {
|
211
|
+
return false;
|
212
|
+
}
|
213
|
+
|
214
|
+
return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
|
215
|
+
}
|
216
|
+
|
217
|
+
|
218
|
+
function isService(address service) public view returns (bool) {
|
219
|
+
if (!isContract(service)) {
|
220
|
+
return false;
|
221
|
+
}
|
222
|
+
|
223
|
+
return supportsInterface(service, type(IService).interfaceId);
|
224
|
+
}
|
225
|
+
|
226
|
+
|
227
|
+
function isRegistry(address registry) public view returns (bool) {
|
228
|
+
if (!isContract(registry)) {
|
229
|
+
return false;
|
230
|
+
}
|
231
|
+
|
232
|
+
return supportsInterface(registry, type(IRegistry).interfaceId);
|
233
|
+
}
|
234
|
+
|
235
|
+
|
236
|
+
function isContract(address target) public view returns (bool) {
|
237
|
+
if (target == address(0)) {
|
238
|
+
return false;
|
239
|
+
}
|
240
|
+
|
241
|
+
uint256 size;
|
242
|
+
assembly {
|
243
|
+
size := extcodesize(target)
|
244
|
+
}
|
245
|
+
return size > 0;
|
246
|
+
}
|
247
|
+
|
248
|
+
function supportsInterface(address target, bytes4 interfaceId) public view returns (bool) {
|
249
|
+
return ERC165Checker.supportsInterface(target, interfaceId);
|
250
|
+
}
|
251
|
+
|
252
|
+
|
253
|
+
function _getAndVerifyComponentAndInstance(
|
254
|
+
IRegistry registry,
|
255
|
+
IRegistry.ObjectInfo memory info,
|
256
|
+
ObjectType expectedType,
|
257
|
+
bool onlyActive
|
258
|
+
)
|
259
|
+
internal
|
260
|
+
view
|
261
|
+
returns (
|
262
|
+
IRegistry.ObjectInfo memory,
|
263
|
+
address instance
|
264
|
+
)
|
265
|
+
{
|
266
|
+
if(info.objectType != expectedType) {
|
267
|
+
revert ErrorContractLibComponentTypeMismatch(
|
268
|
+
info.nftId,
|
269
|
+
expectedType,
|
270
|
+
info.objectType);
|
271
|
+
}
|
272
|
+
|
273
|
+
// get instance and check component is active
|
274
|
+
instance = getAndVerifyInstance(registry, info);
|
275
|
+
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
276
|
+
|
277
|
+
return (
|
278
|
+
info,
|
279
|
+
instance
|
280
|
+
);
|
281
|
+
}
|
282
|
+
|
283
|
+
|
284
|
+
function _checkComponentActive(
|
285
|
+
address instance,
|
286
|
+
address target,
|
287
|
+
NftId componentNftId,
|
288
|
+
bool onlyActive
|
289
|
+
)
|
290
|
+
internal
|
291
|
+
view
|
292
|
+
{
|
293
|
+
if (onlyActive) {
|
294
|
+
if (IInstanceAdminHelper(
|
295
|
+
instance).getInstanceAdmin().isTargetLocked(
|
296
|
+
target)
|
297
|
+
) {
|
298
|
+
revert ErrorContractLibComponentInactive(componentNftId);
|
299
|
+
}
|
300
|
+
}
|
301
|
+
}
|
302
|
+
|
303
|
+
|
304
|
+
/// @dev Given an object info the function returns the instance address.
|
305
|
+
/// The info may represent a product or any other component.
|
306
|
+
/// If the parent of the provided info is not registered with the correct type, the function reverts.
|
307
|
+
function getAndVerifyInstance(
|
308
|
+
IRegistry registry,
|
309
|
+
IRegistry.ObjectInfo memory info
|
310
|
+
)
|
311
|
+
public
|
312
|
+
view
|
313
|
+
returns (address instance)
|
314
|
+
{
|
315
|
+
// get instance for product case
|
316
|
+
if (info.objectType == PRODUCT()) {
|
317
|
+
// verify that parent of product is registered instance
|
318
|
+
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(info.parentNftId);
|
319
|
+
if (instanceInfo.objectType != INSTANCE()) {
|
320
|
+
revert ErrorContractLibParentNotInstance(
|
321
|
+
info.nftId,
|
322
|
+
info.parentNftId);
|
323
|
+
}
|
324
|
+
|
325
|
+
// we have verified that parent object is a registerd instance -> we return the instance address
|
326
|
+
return instanceInfo.objectAddress;
|
327
|
+
}
|
328
|
+
|
329
|
+
// not product: verify parent is registered product
|
330
|
+
info = registry.getObjectInfo(info.parentNftId);
|
331
|
+
if (info.objectType != PRODUCT()) {
|
332
|
+
revert ErrorContractLibParentNotProduct(
|
333
|
+
info.nftId,
|
334
|
+
info.parentNftId);
|
335
|
+
}
|
336
|
+
|
337
|
+
// we have verified that parent is registerd product -> we can rely on registry that its parent is an instance
|
338
|
+
return registry.getObjectAddress(info.parentNftId);
|
339
|
+
}
|
340
|
+
|
341
|
+
|
342
|
+
function _getAndVerifyObjectInfo(
|
343
|
+
IRegistry registry,
|
344
|
+
address caller
|
345
|
+
)
|
346
|
+
internal
|
347
|
+
view
|
348
|
+
returns (IRegistry.ObjectInfo memory info)
|
349
|
+
{
|
350
|
+
NftId componentNftId = registry.getNftIdForAddress(caller);
|
351
|
+
if (componentNftId.eqz()) {
|
352
|
+
revert ErrorContractLibCallerNotRegistered(caller);
|
353
|
+
}
|
354
|
+
|
355
|
+
info = registry.getObjectInfo(componentNftId);
|
356
|
+
}
|
357
|
+
}
|
@@ -1,66 +1,33 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
5
|
|
6
|
+
import {Amount} from "../type/Amount.sol";
|
7
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
|
-
import {IInstance} from "../instance/IInstance.sol";
|
9
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
|
-
import {IProductService} from "../product/IProductService.sol";
|
11
8
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
9
|
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
13
|
-
import {NftId} from "../type/NftId.sol";
|
14
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
15
10
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
11
|
|
17
12
|
/// @dev component base class
|
18
|
-
/// component examples are product, distribution, pool and oracle
|
13
|
+
/// component examples are staking, product, distribution, pool and oracle
|
19
14
|
interface IComponent is
|
20
15
|
IRegisterable,
|
21
|
-
ITransferInterceptor
|
22
|
-
IAccessManaged
|
16
|
+
ITransferInterceptor
|
23
17
|
{
|
18
|
+
error ErrorComponentProductNftIdZero();
|
19
|
+
error ErrorComponentProductNftIdNonzero();
|
20
|
+
error ErrorComponentNameLengthZero();
|
21
|
+
|
24
22
|
error ErrorComponentNotChainNft(address caller);
|
25
|
-
error ErrorComponentNotProductService(address caller);
|
26
|
-
error ErrorComponentNotInstance(NftId instanceNftId);
|
27
|
-
error ErrorComponentProductNftAlreadySet();
|
28
23
|
|
29
24
|
error ErrorComponentWalletAddressZero();
|
30
25
|
error ErrorComponentWalletAddressIsSameAsCurrent();
|
31
|
-
error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
|
32
|
-
|
33
26
|
error ErrorComponentWalletNotComponent();
|
34
27
|
|
35
28
|
event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
|
36
29
|
event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
|
37
|
-
|
38
|
-
event LogComponentTokenHandlerApproved(uint256 limit);
|
39
|
-
|
40
|
-
/// @dev locks component to disable functions that may change state related to this component, the only exception is function "unlock"
|
41
|
-
/// only component owner (nft holder) is authorizes to call this function
|
42
|
-
function lock() external;
|
43
|
-
|
44
|
-
/// @dev unlocks component to (re-)enable functions that may change state related to this component
|
45
|
-
/// only component owner (nft holder) is authorizes to call this function
|
46
|
-
function unlock() external;
|
47
|
-
|
48
|
-
/// @dev approves token hanlder to spend up to the specified amount of tokens
|
49
|
-
/// reverts if component wallet is not component itself
|
50
|
-
/// only component owner (nft holder) is authorizes to call this function
|
51
|
-
function approveTokenHandler(uint256 spendingLimitAmount) external;
|
52
|
-
|
53
|
-
/// @dev sets the wallet address for the component
|
54
|
-
/// if the current wallet has tokens, these will be transferred
|
55
|
-
/// if the new wallet address is externally owned, an approval from the
|
56
|
-
/// owner of the external wallet for the component to move all tokens must exist
|
57
|
-
function setWallet(address walletAddress) external;
|
58
|
-
|
59
|
-
/// @dev only product service may set product nft id during registration of product setup
|
60
|
-
function setProductNftId(NftId productNftId) external;
|
61
|
-
|
62
|
-
/// @dev defines the instance to which this component is linked to
|
63
|
-
function getInstance() external view returns (IInstance instance);
|
30
|
+
event LogComponentTokenHandlerApproved(address tokenHandler, address token, Amount limit, bool isMaxAmount);
|
64
31
|
|
65
32
|
/// @dev returns the name of this component
|
66
33
|
/// to successfully register the component with an instance the name MUST be unique in the linked instance
|
@@ -70,21 +37,22 @@ interface IComponent is
|
|
70
37
|
function getToken() external view returns (IERC20Metadata token);
|
71
38
|
|
72
39
|
/// @dev returns token handler for this component
|
73
|
-
/// only registered components return a non zero token handler
|
74
40
|
function getTokenHandler() external view returns (TokenHandler tokenHandler);
|
75
41
|
|
76
42
|
/// @dev defines the wallet address used to hold the ERC20 tokens related to this component
|
77
43
|
/// the default address is the component token address
|
78
44
|
function getWallet() external view returns (address walletAddress);
|
79
45
|
|
80
|
-
/// @dev
|
81
|
-
/// this is only relevant for pool and distribution components
|
82
|
-
function getProductNftId() external view returns (NftId productNftId);
|
83
|
-
|
46
|
+
/// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
|
84
47
|
function isNftInterceptor() external view returns(bool isInterceptor);
|
85
48
|
|
86
|
-
/// @dev returns component
|
87
|
-
|
88
|
-
|
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()
|
89
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);
|
90
58
|
}
|