ape-alchemy: Alchemy Provider plugins for Ethereum-based networks
Project description
Ape Alchemy Plugin
Alchemy Provider plugin for Ethereum-based networks.
Dependencies
- python3 version 3.7 or greater, python3-dev
Installation
via pip
You can install the latest release via pip
:
pip install ape-alchemy
via setuptools
You can clone the repository and use setuptools
for the most up-to-date version:
git clone https://github.com/ApeWorX/ape-alchemy.git
cd ape-alchemy
python3 setup.py install
Quick Usage
First, make sure you have one of the following environment variables set (it doesn't matter which one):
- WEB3_ALCHEMY_PROJECT_ID
- WEB3_ALCHEMY_API_KEY
Either in your current terminal session or in your root RC file (e.g. .bashrc
), add the following:
export WEB3_ALCHEMY_PROJECT_ID=MY_API_TOKEN
To use the Alchemy provider plugin in most commands, set it via the --network
option:
ape console --network ethereum:goerli:alchemy
To connect to Alchemy from a Python script, use the networks
top-level manager:
from ape import networks
with networks.parse_network_choice("ethereum:mainnet:alchemy") as provider:
...
Transaction Traces
If you are using a paid tier of Alchemy, you have access to both Geth and Parity style traces.
Parity traces are faster and thus are the ones uses in Ethereum receipts' show_trace()
method:
from ape import networks
alchemy = networks.provider # Assuming connected to Alchemy
txn_hash = "0x053cba5c12172654d894f66d5670bab6215517a94189a9ffc09bc40a589ec04d"
receipt = alchemy.get_transaction(txn_hash)
receipt.show_trace() # Prints the Transaction trace
To access the raw CallTree
, do:
from ape import networks
alchemy = networks.provider # Assuming connected to Alchemy
txn_hash = "0x053cba5c12172654d894f66d5670bab6215517a94189a9ffc09bc40a589ec04d"
call_tree = alchemy.get_call_tree(txn_hash)
To learn more about transaction traces, view Ape's transaction guide.
NOTE: If you require the Geth style traces, you still have access to them via the get_transaction_trace()
method and utilities from the evm-trace
library:
from evm_trace import CallType, get_calltree_from_geth_trace
from ape import networks
alchemy = networks.provider # Assuming connected to Alchemy
txn_hash = "0x053cba5c12172654d894f66d5670bab6215517a94189a9ffc09bc40a589ec04d"
receipt = alchemy.get_transaction(txn_hash)
root_node_kwargs = {
"gas_cost": receipt.gas_used,
"gas_limit": receipt.gas_limit,
"address": receipt.receiver,
"calldata": receipt.data,
"value": receipt.value,
"call_type": CallType.CALL,
"failed": receipt.failed,
}
trace_frame_iter = alchemy.get_transaction_trace(txn_hash)
call_tree = get_calltree_from_geth_trace(trace_frame_iter)
Development
Please see the contributing guide to learn more how to contribute to this project. Comments, questions, criticisms and pull requests are welcomed.
License
This project is licensed under the Apache 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ape-alchemy-0.4.0.tar.gz
.
File metadata
- Download URL: ape-alchemy-0.4.0.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/35.0 requests/2.28.1 requests-toolbelt/0.9.1 urllib3/1.26.11 tqdm/4.64.0 importlib-metadata/4.12.0 keyring/23.7.0 rfc3986/2.0.0 colorama/0.4.5 CPython/3.8.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83cb45b373149ed6b82d1c31661be0f86037af4f68d978b6a95f9d6e300395b5 |
|
MD5 | 3f5cc3c7d3efeddaf16b7be330561d19 |
|
BLAKE2b-256 | 154d9a5cdbce176af3ded1a55ae05b03746cfed99899c89a5a7d312e275a8683 |
File details
Details for the file ape_alchemy-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: ape_alchemy-0.4.0-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/35.0 requests/2.28.1 requests-toolbelt/0.9.1 urllib3/1.26.11 tqdm/4.64.0 importlib-metadata/4.12.0 keyring/23.7.0 rfc3986/2.0.0 colorama/0.4.5 CPython/3.8.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e2fb41e04a9edfd725cfaebc94161458ed8565b2faf98efd2ae8dbc598cff56 |
|
MD5 | ac6b1c814a4abd7f654d2c773bfc39eb |
|
BLAKE2b-256 | a5d28699b753cae194104661691a25eb6ceeebc3e41bbd479f37a0da9259702d |