Skip to content

Ape 0.7.0

Compare
Choose a tag to compare
@github-actions github-actions released this 18 Dec 23:35
· 399 commits to refs/heads/main since this release
9e9c5c8

Breaking Changes

fix!: Ape now uses the same HD Path as other testing environments @antazoey (#1774)
Meaning, Ape's test account keypairs are exactly the same the default Anvil and Hardhat nodes.
This makes it much easier to connect to already-running nodes!

feat!: network customization and tooling improvements @antazoey (#1764)
Now, when using the @network_option, you can receive classes for each ecosystem, network, and provider based on what you ask for in your command implementation. Also, NetworkBoundCommand is deprecated. Please switch to ConnectedProviderCommand, which works the same except has the new network behavior and the @network_option is no required because it will happen automatically.

feat: from_rsv() and from_vrs() Signature class methods [APE-1600] @antazoey (#1765)
Now, it is easier to go from encoded bytes signature to MessageSignature class using the new class methods.
This helps out with plugins like ape-safe which return signatures in the API in encoded format and Ape and other tools require the object format.

refactor!: a collection of breaking changes [APE-1417] @antazoey (#1677)
A bunch of breaking changes. Pay attention!

  • ape.api.providers.Web3Provider was moved to ape_ethereum.provider.
  • ape.utils.Aborts is no longer a thing! Please use ape.exceptions.Abort now.
  • rename ProviderAPI.get_storage_at() to ProviderAPI.get_storage.
  • ape.cli.get_user_selected_account() is now deprecated. Please use ape.cli.select_account.
  • branch field on GitHub dependencies was officially removed. Please use ref instead.
  • Any ProviderAPI's that use block_identifier or state_overrides now mus be block_id or state and are official kwargs in each API method.
  • ape.project.compilers_with_missing_ext is now a Set instead of List since the data type makes more sense.
  • ContractError was renamed to ContractDataError and is now a base class to TransactionError because most APIs were treating it as such anyway.
  • The problematic ListTupleConverter was deleted.
  • Delete gas tracking from the ReportManager - plugins should be using the test runner reference now, same as coverage.
  • Unused evm_version was deleted from the compile config. It wasn't used!
  • Config compiler.ignore_files was removed. Use config compile.exclude instead.

refactor!: pydantic v2 upgrade [APE-1413] @antazoey (#1674)

  • Ape and all its dependencies now work fully on and require Pydantic version 2.

feat!: rewrite poll methods with new API [APE-1411] @z80dev (#1673)

  • Polling-based methods (blocks and events) were moved to the ProviderAPI and the ChainManager was refactored to use these methods to open the door for providers to define better options for polling.

refactor!: accept any msg type via AccountAPI.sign_message [APE-1305] @z80dev (#1614)
Account plugins now officially can decide what types of messages they can sign. This greatly increases use-cases with EIP-712 and the myriad of account APIs in various plugins.

feat!: update cached compilers improvements [APE-1500] @antazoey (#1721)
Now, Ape core offers more utilities for updating the cached manifest, including compiler-info needed for contract verification.
Ape core also now handles when Compiler plugins place compiler artifacts in the cache directory when performing verification.

Changes

  • feat: from_rsv() and from_vrs() Signature class methods [APE-1600] @antazoey (#1765)
  • fix: issue with interactive scripts would not be connected to right provider @antazoey (#1781)
  • refactor: replace usage of semantic_version.NpmSpec with packaging.version.SpecifierSet @NotPeopling2day (#1782)
  • docs: fix a myriad of docs issues for 0.7 @antazoey (#1784)
  • chore: upgrade eip712 and ETH dependencies [APE-1617] @antazoey (#1773)
  • chore: update setup.py, removal of urllib3 module version upper boundary requirement [APE-1610] @popraf (#1771)

Special thanks to: @NotPeopling2day, @antazoey, @popraf and @z80dev