2个版本
0.1.1 | 2022年6月13日 |
---|---|
0.1.0 | 2022年6月12日 |
#99 in #evm
33KB
483 代码行
crunner
基于EVM链的目标智能合约在命令行上的Runner/Executor。
使用crunner
,您可以使用命令行调用智能合约的方法,无论该智能合约代码是否经过验证;前提是您知道其ABI(知道函数签名)。
核心功能
- 调用getter/setter方法
- 调用
balance
的RPC-ETH查询 - 调用估计具有相同参数的setter方法的预估气体(Dry-run)
安装
cargo install crunner
示例
以下示例是您可以复制并测试的实际命令。
小心并谨慎执行Setter call
,因为它具有破坏性并会产生费用,因此最好根据命令示例执行您自己的事务。
估计气体
$ crunner -a 0xa0feB3c81A36E885B6608DF7f0ff69dB97491b58 \
-c bsc \
--fn-name approve \
--ensure-setter \
--params 0x10ed43c718714eb63d5aa57b78b54704e256024e 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff \
--dry-run-estimate-gas \
--estimate-gas-from-addr 0x5a223cf64f95214032d239ed49a6c91eb43d676c
25242 0.000000005 0.00012621
这是从此交易中抓取的。我们只想估计此类交易的气体使用量,以及总费用。
实际交易中使用的相同参数。它返回由单个空格分隔的3个数字,分别表示
- 使用的气体单位数
- 执行时使用的该链的本币单位,即BNB、ETH或MATIC。
- 总费用(即1. x 2。)
getter调用
$ crunner -a 0xbA2aE424d960c26247Dd6c32edC70B295c744C43 \
-c bsc \
--fn-name name \
--fn-ret-type String \
Dogecoin
这是一个针对智能合约的查询,以获取Dogecoin令牌合约的名称。对于getter调用,需要提供--fn-ret-type
,在这种情况下为String
。
setter调用
以Estimate gas
为例,除了不包括--dry-run-estimate-gas
和--estimate-gas-from-addr
之外,其他都相同,这样的调用将链上执行。
结果将显示交易哈希,您可以复制它并在索引网站如bscscan.com、etherscan.io或polyscan.com上进行查询。
RPC-ETH调用
$ crunner -a 0xE2D26507981A4dAaaA8040bae1846C14E0Fb56bF \
-c bsc \
--fn-name balance \
--fn-ret-type U256 \
--rpc-eth
4876566977257765806422 4876.566977257766
对目标合约地址(本例中为BakedBeans合约)进行RPC-ETH查询以获取余额。请注意,您需要使用--rpc-eth
标志来切换--fn-name
,使其基于RPC-ETH方法名称而不是智能合约的方法名称。
--fn-ret-type
是必需的,在此情况下需要为U256
。
目前,RPC-ETH仅支持balance
查询。
结果分别显示Wei余额以及本地代币,例如BNB、ETH或MATIC。
许可证
MIT,Wasin Thonkaew
依赖项
~16-25MB
~319K SLoC