From 66c035bbff45396011319e93a88fb7b3bc9d9192 Mon Sep 17 00:00:00 2001 From: antazoey Date: Tue, 16 Apr 2024 15:19:56 -0600 Subject: [PATCH] refactor: config for nets (#1981) --- src/ape/api/networks.py | 20 ++++++++++---------- src/ape_ethereum/ecosystem.py | 4 ++-- src/ape_ethereum/provider.py | 2 +- tests/functional/test_network_api.py | 10 +++++----- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/ape/api/networks.py b/src/ape/api/networks.py index 03a9b1c6a3..c7b80feeaa 100644 --- a/src/ape/api/networks.py +++ b/src/ape/api/networks.py @@ -795,7 +795,7 @@ def __repr__(self) -> str: return f"<{name}>" if name else f"{type(self)}" @property - def config(self) -> PluginConfig: + def ecosystem_config(self) -> PluginConfig: """ The configuration of the network. See :class:`~ape.managers.config.ConfigManager` for more information on plugin configurations. @@ -804,11 +804,11 @@ def config(self) -> PluginConfig: return self.config_manager.get_config(self.ecosystem.name) @property - def _network_config(self) -> PluginConfig: + def config(self) -> PluginConfig: name_options = {self.name, self.name.replace("-", "_"), self.name.replace("_", "-")} cfg: Any for opt in name_options: - if cfg := self.config.get(opt): + if cfg := self.ecosystem_config.get(opt): if isinstance(cfg, dict): return cfg @@ -824,7 +824,7 @@ def _network_config(self) -> PluginConfig: @cached_property def gas_limit(self) -> GasLimit: - return self._network_config.get("gas_limit", "auto") + return self.config.get("gas_limit", "auto") @cached_property def auto_gas_multiplier(self) -> float: @@ -838,7 +838,7 @@ def base_fee_multiplier(self) -> float: """ A multiplier to apply to a transaction base fee. """ - return self._network_config.get("base_fee_multiplier", 1.0) + return self.config.get("base_fee_multiplier", 1.0) @property def chain_id(self) -> int: @@ -869,7 +869,7 @@ def required_confirmations(self) -> int: refer to the number of blocks that have been added since the transaction's block. """ - return self._network_config.get("required_confirmations", 0) + return self.config.get("required_confirmations", 0) @property def block_time(self) -> int: @@ -884,7 +884,7 @@ def block_time(self) -> int: block_time: 15 """ - return self._network_config.get("block_time", 0) + return self.config.get("block_time", 0) @property def transaction_acceptance_timeout(self) -> int: @@ -893,7 +893,7 @@ def transaction_acceptance_timeout(self) -> int: Does not include waiting for block-confirmations. Defaults to two minutes. Local networks use smaller timeouts. """ - return self._network_config.get( + return self.config.get( "transaction_acceptance_timeout", DEFAULT_TRANSACTION_ACCEPTANCE_TIMEOUT ) @@ -1113,7 +1113,7 @@ def default_provider_name(self) -> Optional[str]: # Was set programatically. return provider - elif provider_from_config := self._network_config.get("default_provider"): + elif provider_from_config := self.config.get("default_provider"): # The default is found in the Network's config class. return provider_from_config @@ -1239,7 +1239,7 @@ def upstream_provider(self) -> "UpstreamProvider": exists. """ - config_choice: str = self._network_config.get("upstream_provider") + config_choice: str = self.config.get("upstream_provider") if provider_name := config_choice or self.upstream_network.default_provider_name: return self.upstream_network.get_provider(provider_name) diff --git a/src/ape_ethereum/ecosystem.py b/src/ape_ethereum/ecosystem.py index 8725bcbbf8..083ebf5c93 100644 --- a/src/ape_ethereum/ecosystem.py +++ b/src/ape_ethereum/ecosystem.py @@ -356,8 +356,8 @@ def default_transaction_type(self) -> TransactionType: for name in networks_to_check: network = self.get_network(name) - ecosystem_default = network.config.DEFAULT_TRANSACTION_TYPE - result: int = network._network_config.get("default_transaction_type", ecosystem_default) + ecosystem_default = network.ecosystem_config.DEFAULT_TRANSACTION_TYPE + result: int = network.config.get("default_transaction_type", ecosystem_default) return TransactionType(result) return TransactionType(DEFAULT_TRANSACTION_TYPE) diff --git a/src/ape_ethereum/provider.py b/src/ape_ethereum/provider.py index 286598b055..78d48d884a 100644 --- a/src/ape_ethereum/provider.py +++ b/src/ape_ethereum/provider.py @@ -552,7 +552,7 @@ def get_receipt( except TimeExhausted as err: raise TransactionNotFoundError(txn_hash, error_messsage=str(err)) from err - ecosystem_config = self.network.config.model_dump(by_alias=True, mode="json") + ecosystem_config = self.network.ecosystem_config.model_dump(by_alias=True, mode="json") network_config: Dict = ecosystem_config.get(self.network.name, {}) max_retries = network_config.get("max_get_transaction_retries", DEFAULT_MAX_RETRIES_TX) txn = {} diff --git a/tests/functional/test_network_api.py b/tests/functional/test_network_api.py index 850ae9dc3d..37deaab08d 100644 --- a/tests/functional/test_network_api.py +++ b/tests/functional/test_network_api.py @@ -72,7 +72,7 @@ def test_forked_networks(ethereum): # Just make sure it doesn't fail when trying to access. assert mainnet_fork.upstream_provider # Ensure has default configurations. - cfg = mainnet_fork.config.mainnet_fork + cfg = mainnet_fork.ecosystem_config.mainnet_fork assert cfg.default_transaction_type == TransactionType.DYNAMIC assert cfg.block_time == 0 assert cfg.default_provider is None @@ -86,7 +86,7 @@ def test_forked_network_with_config(temp_config, ethereum): "ethereum": {"mainnet_fork": {"default_transaction_type": TransactionType.STATIC.value}} } with temp_config(data): - cfg = ethereum.mainnet_fork.config.mainnet_fork + cfg = ethereum.mainnet_fork.ecosystem_config.mainnet_fork assert cfg.default_transaction_type == TransactionType.STATIC assert cfg.block_time == 0 assert cfg.default_provider is None @@ -108,7 +108,7 @@ def test_config_custom_networks_default(ethereum, custom_networks_config): present. """ network = ethereum.apenet - cfg = network.config.apenet + cfg = network.ecosystem_config.apenet assert cfg.default_transaction_type == TransactionType.DYNAMIC @@ -121,7 +121,7 @@ def test_config_custom_networks( } with temp_config(data): network = ethereum.apenet - ethereum_config = network.config + ethereum_config = network.ecosystem_config cfg_by_attr = ethereum_config.apenet assert cfg_by_attr.default_transaction_type == TransactionType.STATIC @@ -143,7 +143,7 @@ def test_config_networks_from_custom_ecosystem( with temp_config(data): custom_ecosystem = networks.get_ecosystem("custom-ecosystem") network = custom_ecosystem.get_network("apenet") - ethereum_config = network.config + ethereum_config = network.ecosystem_config cfg_by_attr = ethereum_config.apenet assert cfg_by_attr.default_transaction_type == TransactionType.STATIC