From 010b3d96bc42c81b162eddd9d1c9f9f334f4930c Mon Sep 17 00:00:00 2001 From: antazoey Date: Fri, 3 Nov 2023 14:43:22 -0500 Subject: [PATCH] fix: use new forked APIs [APE-1505] (#23) --- ape_arbitrum/__init__.py | 5 ++--- ape_arbitrum/ecosystem.py | 28 ++++++++++++++++------------ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/ape_arbitrum/__init__.py b/ape_arbitrum/__init__.py index 0d47dba..943067c 100644 --- a/ape_arbitrum/__init__.py +++ b/ape_arbitrum/__init__.py @@ -1,6 +1,5 @@ from ape import plugins -from ape.api import NetworkAPI, create_network_type -from ape.api.networks import LOCAL_NETWORK_NAME +from ape.api.networks import LOCAL_NETWORK_NAME, ForkedNetworkAPI, NetworkAPI, create_network_type from ape_geth import GethProvider from ape_test import LocalProvider @@ -21,7 +20,7 @@ def ecosystems(): def networks(): for network_name, network_params in NETWORKS.items(): yield "arbitrum", network_name, create_network_type(*network_params) - yield "arbitrum", f"{network_name}-fork", NetworkAPI + yield "arbitrum", f"{network_name}-fork", ForkedNetworkAPI # NOTE: This works for development providers, as they get chain_id from themselves yield "arbitrum", LOCAL_NETWORK_NAME, NetworkAPI diff --git a/ape_arbitrum/ecosystem.py b/ape_arbitrum/ecosystem.py index 6693137..a0d8630 100644 --- a/ape_arbitrum/ecosystem.py +++ b/ape_arbitrum/ecosystem.py @@ -8,7 +8,7 @@ from ape.logging import logger from ape.types import TransactionSignature from ape.utils import DEFAULT_LOCAL_TRANSACTION_ACCEPTANCE_TIMEOUT -from ape_ethereum.ecosystem import Ethereum, NetworkConfig +from ape_ethereum.ecosystem import Ethereum, ForkedNetworkConfig, NetworkConfig from ape_ethereum.transactions import ( DynamicFeeTransaction, Receipt, @@ -92,10 +92,13 @@ def await_confirmations(self) -> "ReceiptAPI": return self -def _create_network_config( - required_confirmations: int = 1, block_time: int = 1, **kwargs +def _create_config( + required_confirmations: int = 1, + block_time: int = 1, + cls: Type = NetworkConfig, + **kwargs, ) -> NetworkConfig: - return NetworkConfig( + return cls( required_confirmations=required_confirmations, block_time=block_time, default_transaction_type=EthTransactionType.STATIC, @@ -103,24 +106,25 @@ def _create_network_config( ) -def _create_local_config(default_provider: Optional[str] = None, **kwargs) -> NetworkConfig: - return _create_network_config( +def _create_local_config(default_provider: Optional[str] = None, use_fork: bool = False, **kwargs): + return _create_config( block_time=0, default_provider=default_provider, gas_limit=LOCAL_GAS_LIMIT, required_confirmations=0, transaction_acceptance_timeout=DEFAULT_LOCAL_TRANSACTION_ACCEPTANCE_TIMEOUT, + cls=ForkedNetworkConfig if use_fork else NetworkConfig, **kwargs, ) class ArbitrumConfig(PluginConfig): - mainnet: NetworkConfig = _create_network_config() - mainnet_fork: NetworkConfig = _create_local_config() - goerli: NetworkConfig = _create_network_config() - goerli_fork: NetworkConfig = _create_local_config() - sepolia: NetworkConfig = _create_network_config() - sepolia_fork: NetworkConfig = _create_local_config() + mainnet: NetworkConfig = _create_config() + mainnet_fork: ForkedNetworkConfig = _create_local_config(use_fork=True) + goerli: NetworkConfig = _create_config() + goerli_fork: ForkedNetworkConfig = _create_local_config(use_fork=True) + sepolia: NetworkConfig = _create_config() + sepolia_fork: ForkedNetworkConfig = _create_local_config(use_fork=True) local: NetworkConfig = _create_local_config(default_provider="test") default_network: str = LOCAL_NETWORK_NAME