evm-trace:以太坊虚拟机事务跟踪工具
项目描述
快速入门
以太坊虚拟机事务跟踪工具
依赖项
- python3 版本 3.9 到 3.12。
安装
通过 pip
您可以通过 pip
安装最新版本
pip install evm-trace
通过 setuptools
您可以克隆存储库并使用 setuptools
获取最新版本
git clone https://github.com/ApeWorX/evm-trace.git
cd evm-trace
python3 setup.py install
快速使用
Geth 风格跟踪
如果您使用的是支持 debug_traceTransaction
RPC 的节点,您可以使用 web3.py
获取跟踪帧
from web3 import HTTPProvider, Web3
from evm_trace import TraceFrame
web3 = Web3(HTTPProvider("https://path.to.my.node"))
txn_hash = "0x..."
struct_logs = web3.manager.request_blocking("debug_traceTransaction", [txn_hash]).structLogs
for item in struct_logs:
frame = TraceFrame.model_validate(item)
如果您想获取调用树节点,您可以这样做
from evm_trace import CallType, get_calltree_from_geth_trace
root_node_kwargs = {
"gas_cost": 10000000,
"gas_limit": 10000000000,
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"calldata": "0x00",
"value": 1000,
"call_type": CallType.CALL,
}
# Where `trace` is a `TraceFrame` (see example above)
calltree = get_calltree_from_geth_trace(trace, **root_node_kwargs)
Parity 风格跟踪
如果您正在使用支持 trace_transaction
RPC 的节点,您可以使用 web3.py
获取跟踪对象
from evm_trace import CallType, ParityTraceList
raw_trace_list = web3.manager.request_blocking("trace_transaction", [txn_hash])
trace_list = ParityTraceList.model_validate(raw_trace_list)
要创建调用树节点,您可以这样做
from evm_trace import get_calltree_from_parity_trace
tree = get_calltree_from_parity_trace(trace_list)
燃气报告
如果您正在使用支持创建跟踪的节点,您可以获取燃气报告。
from evm_trace.gas import get_gas_report
# see examples above for creating a calltree
calltree = get_calltree_from_geth_trace(trace, **root_node_kwargs)
gas_report = get_gas_report(calltree)
对于更定制的报告,请使用 merge_reports
方法将报告列表合并为单个报告。传递两个或多个 Dict[Any, Dict[Any, List[int]]]
以合并报告,其中 List[int]
是使用的燃气。
相应地自定义 Any
的值
- 第一个
Any
代表地址的字节。 - 第二个
Any
代表方法选择器。
例如,您可以用代币名称替换地址,或者用签名调用字符串替换选择器字节。
如下导入方法
from evm_trace.gas import merge_reports
开发
该项目正在开发中,应被视为测试版。事物可能尚未处于最终状态,可能会发生破坏性更改。欢迎提出评论、问题、批评和拉取请求。
许可协议
该项目采用 Apache 2.0 许可。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
evm-trace-0.2.3.tar.gz (771.9 kB 查看散列)
构建版本
evm_trace-0.2.3-py3-none-any.whl (20.9 kB 查看哈希值)
关闭
evm-trace-0.2.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 63f9dd361bbeb0b0f1859d27ee0ed689199dd64f05a39a7f272d3b6ff069d560 |
|
MD5 | 6c4219544d819b7d92bf0b56de670673 |
|
BLAKE2b-256 | 553e7ab920c353e8b42ff87461c75e05515871def03fcf1576ab1be31b654db5 |
关闭
evm_trace-0.2.3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 89b685134ab808c0e66a98887111d9f1ebae64d11b40e255064da7ace14ddf8a |
|
MD5 | 9cb85b6d73376a9cc88826582d103ef0 |
|
BLAKE2b-256 | d2dc65a966a04974e5f6df253b0fa7d6948947bf0fe463cc0126a8e5ed24ed96 |