diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index dccf3e6..fd5e61d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,18 +10,18 @@ repos: - id: isort - repo: https://github.com/psf/black - rev: 23.12.0 + rev: 23.12.1 hooks: - id: black name: black - repo: https://github.com/pycqa/flake8 - rev: 6.1.0 + rev: 7.0.0 hooks: - id: flake8 - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.7.1 + rev: v1.8.0 hooks: - id: mypy additional_dependencies: [types-PyYAML, types-requests, types-setuptools, pydantic] diff --git a/ape_foundry/provider.py b/ape_foundry/provider.py index d96b5a4..3ce4b95 100644 --- a/ape_foundry/provider.py +++ b/ape_foundry/provider.py @@ -18,7 +18,6 @@ TransactionAPI, ) from ape.exceptions import ( - APINotImplementedError, ContractLogicError, OutOfGasError, SubprocessError, @@ -90,6 +89,7 @@ class FoundryNetworkConfig(PluginConfig): # RPC defaults base_fee: int = 0 priority_fee: int = 0 + gas_price: int = 0 # For setting the values in --fork and --fork-block-number command arguments. # Used only in FoundryForkProvider. @@ -225,6 +225,10 @@ def ws_uri(self) -> str: def priority_fee(self) -> int: return self.settings.priority_fee + @property + def gas_price(self) -> int: + return self.settings.gas_price + @property def is_connected(self) -> bool: if self._host in ("auto", None): @@ -427,6 +431,8 @@ def build_command(self) -> List[str]: "--steps-tracing", "--block-base-fee-per-gas", f"{self.settings.base_fee}", + "--gas-price", + f"{self.settings.gas_price}", ] if not self.settings.auto_mine: @@ -496,10 +502,6 @@ def send_transaction(self, txn: TransactionAPI) -> ReceiptAPI: # Allow for an unsigned transaction sender = cast(AddressType, sender) # We know it's checksummed at this point. txn = self.prepare_transaction(txn) - original_code = HexBytes(self.get_code(sender)) - if original_code: - self.set_code(sender, "") - txn_dict = txn.model_dump(mode="json", by_alias=True) if isinstance(txn_dict.get("type"), int): txn_dict["type"] = HexBytes(txn_dict["type"]).hex() @@ -510,9 +512,6 @@ def send_transaction(self, txn: TransactionAPI) -> ReceiptAPI: except ValueError as err: raise self.get_virtual_machine_error(err, txn=txn) from err - finally: - if original_code: - self.set_code(sender, original_code.hex()) else: try: txn_hash = self.web3.eth.send_raw_transaction(txn.serialize_transaction()) @@ -921,9 +920,9 @@ def forked_network(self) -> ForkedNetworkAPI: @property def upstream_provider_name(self) -> str: if upstream_name := self._fork_config.upstream_provider: - self.forked_network.network_config.upstream_provider = upstream_name + self._fork_config.upstream_provider = upstream_name - return self.forked_network.network_config.upstream_provider + return self.forked_network.upstream_provider.name @property def fork_url(self) -> str: @@ -981,16 +980,6 @@ def reset_fork(self, block_number: Optional[int] = None): if block_number is not None: forking_params["blockNumber"] = block_number + # # Rest the fork result = self._make_request("anvil_reset", [{"forking": forking_params}]) - - try: - base_fee = self.base_fee - except APINotImplementedError: - base_fee = None - logger.warning("base_fee not found in block - base fee may not be reset.") - - # reset next block base fee to that of new chain head if can - if base_fee is not None: - self._make_request("anvil_setNextBlockBaseFeePerGas", [base_fee]) - return result diff --git a/setup.py b/setup.py index d4ea4f7..65eb22f 100644 --- a/setup.py +++ b/setup.py @@ -14,12 +14,12 @@ "ape-polygon", # For running polygon fork tests ], "lint": [ - "black>=23.12.0,<24", # Auto-formatter and linter - "mypy>=1.7.1,<2", # Static type analyzer + "black>=23.12.1,<24", # Auto-formatter and linter + "mypy>=1.8.0,<2", # Static type analyzer "types-setuptools", # Needed for mypy type shed "types-requests", # Needed for mypy type shed "types-PyYAML", # Needed for mypy type shed - "flake8>=6.1.0,<7", # Style linter + "flake8>=7.0.0,<8", # Style linter "flake8-breakpoint>=1.1.0,<2", # Detect breakpoints left in code "flake8-print>=5.0.0,<6", # Detect print statements left in code "isort>=5.10.1,<6", # Import sorting linter @@ -73,7 +73,7 @@ url="https://github.com/ApeWorX/ape-foundry", include_package_data=True, install_requires=[ - "eth-ape>=0.7.0,<0.8", + "eth-ape>=0.7.4,<0.8", "ethpm-types", # Use same version as eth-ape "eth-pydantic-types", # Use same version as eth-ape "evm-trace", # Use same version as ape diff --git a/tests/test_provider.py b/tests/test_provider.py index c75c17d..3369112 100644 --- a/tests/test_provider.py +++ b/tests/test_provider.py @@ -40,7 +40,7 @@ def test_connect_and_disconnect(disconnected_provider): def test_gas_price(connected_provider): gas_price = connected_provider.gas_price - assert gas_price > 1 + assert gas_price == 0 def test_uri_disconnected(disconnected_provider):