#abi #bsc #smart-contracts #crypto #cli-tool #api-key

app tracpls

终端查看智能合约代码及其ABI的CLI工具

7个版本

0.3.1 2022年5月1日
0.3.0 2022年5月1日
0.2.2 2022年4月22日
0.1.1 2022年4月21日

#5 in #bsc

MIT许可证

20KB
234

tracpls

Cli工具,用于获取基于EVM链的智能合约代码及其ABI,以便在终端中进行管道传输和查看(例如,使用vim或其他工具)。

它支持BSC、Ethereum和Polygon。

安装

cargo install tracpls

用法

用户需要根据提供离链服务的API平台定义以下环境变量

  • TRACPLS_BSCSCAN_APIKEY - 来自bscscan.com的API密钥
  • TRACPLS_ETHERSCAN_APIKEY - 来自etherscan.io的API密钥
  • TRACPLS_POLYGONSCAN_APIKEY - 来自polygonscan.com的API密钥

运行时,程序将根据标志--chain(或-c)选择适当的选项,然后抓取API密钥,并按此使用。

以下选项可用

$ tracpls --help
tracpls 
Wasin Thonkaew ([email protected])
cli tool to get smart contract code and its ABI for ease of viewing on terminal

USAGE:
    tracpls [OPTIONS] --address <ADDRESS> --chain <CHAIN>

OPTIONS:
    -a, --address <ADDRESS>         Target contract address to get its smart contract code or ABI
                                    from
        --abi-only                  Get only contract ABI
    -c, --chain <CHAIN>             Which chain to work with. Possible values are 'bsc', 'ethereum',
                                    and 'polygon'
    -h, --help                      Print help information
        --no-abi-pretty-print       Pretty print output for contract ABI. It can only be used if
                                    --abi-only exists
        --no-clean-crlf             Make sure to clean CR/LF character codes to make it suitable to
                                    view the content on the platform running the application
        --out-dir <OUT_DIR_PATH>    Output directory path to write content of files to. In case of
                                    --abi-only, it will output into fixed filename of "abi.json" but
                                    at the supplied output directory. For JSON-based code, it will
                                    use the contract name of each file as the filename to write its
                                    content to
    -s, --silence                   Whether or not to print meta information during execution

示例

始终使用--chain(或-c)来指定链类型,可能的值是bscethereumpolygon

  1. 获取智能合约并将其直接管道传输到vim
$ tracpls -a 0x0000000000000000000000000000000000001004 -c bsc | vim -c "set syntax=solidity" -

如果您已经配置了您的~/.vimrc以支持solidity语法高亮显示,则可能不需要-c "set syntax=solidity"

  1. 获取合约的ABI并将其保存到文件
$ tracpls -a 0x0000000000000000000000000000000000001004 --chain bsc --abi-only > abi.json
  1. 与2相同,但没有美化打印
$ tracpls -a 0x0000000000000000000000000000000000001004 --chain bsc --abi-only --no-abi-pretty-print > abi.json
  1. 将所有智能合约文件写入目标目录下的文件
$ tracpls -a 0x1befe6f3f0e8edd2d4d15cae97baee01e51ea4a4 --chain bsc --out-dir /tmp/0x1bef
/tmp/0x1bef/contracts/LpMigration.sol
/tmp/0x1bef/@openzeppelin/contracts/access/Ownable.sol
/tmp/0x1bef/@openzeppelin/contracts/utils/Context.sol
/tmp/0x1bef/@openzeppelin/contracts/utils/math/SafeMath.sol
/tmp/0x1bef/@openzeppelin/contracts/security/ReentrancyGuard.sol
/tmp/0x1bef/@openzeppelin/contracts/token/ERC20/IERC20.sol
  1. 与4相同,但静默元信息
$ tracpls -a 0x1befe6f3f0e8edd2d4d15cae97baee01e51ea4a4 --chain bsc --out-dir /tmp/0x1bef -s

注意

错误信息始终输出到stderr。因此,正常正确的输出不会干扰错误信息。但是,您可以将它们合并为一个。

许可证

MIT,Wasin Thonkaew

依赖项

~16–26MB
~432K SLoC