#smart-contracts #evm #runner #crypto #executor

app crunner

与基于EVM链的目标智能合约交互的Runner/Executor CLI

2个版本

0.1.1 2022年6月13日
0.1.0 2022年6月12日

#99 in #evm

MIT许可证

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个数字,分别表示

  1. 使用的气体单位数
  2. 执行时使用的该链的本币单位,即BNB、ETH或MATIC。
  3. 总费用(即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