npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

jcc-ethereum-tool

v0.0.19

Published

jccdex jcc ethereum tool

Readme

jcc-ethereum-tool

npm Build Status npm downloads

jcc-ethereum-tool is a command tool, which is can be use to transfer, query balance, manipute ERC20, ERC721 by parameters or config file.

jcc-ethereum-tool 是一个命令行工具,可以快速的通过参数或者配置文件形式操作 ETH 链,实现转账,查询余额,ERC20,ERC721 等通证操作。

Installation 安装

sudo npm install -g jcc-ethereum-tool --unsafe-perm=true

wallet and configuration 钱包和配置

在用户的目录下存在.jcc-ethereum-tool/config.json 文件,类似配置

{
  "server" : "http://localhost:8546",
  "gasPrice" : 20000000000,
  "gasLimit" : 20000,
  "wallet" : {"address": "0x1234", "secret": "0x1223"}
}

注意:不能确认在安全情况下,不要在配置文件中使用明文保存密钥,尽量使用 keystore 文件

用户可以在进行具体操作时(如 transfer, balance)指定配置文件路径

jcc-ethereum-tool --config myconfig.json balance 0x1111

normal operation 常规操作

  • 创建钱包
jcc-ethereum-tool wallet_create
  • 创建钱包并保存为 keystore 文件
jcc-ethereum-tool wallet_create --save_wallet
  • 导入私钥存为 keystore 文件
jcc-ethereum-tool import_private_to_keystore
  • 获取余额
//balance <address> --server <ETH node url>
jcc-ethereum-tool balance 0x1111 --server http://localhost:8545
  • 转账
//transfer <Destination address> <amount>
# 从配置 (config.json) 的钱包向目的地址转账
jcc-ethereum-tool transfer 0x2222 0.000001
  • 查询区块
//block <block>
jcc-ethereum-tool block latest
或者
jcc-ethereum-tool block 1234
  • 查询交易
//transaction <txHash>
jcc-ethereum-tool transaction 0xbb15e089f12c9d4fcd82e47c3d3b56940c9ad6e51a9c7b5dfec4337f5fb4f58e
  • 跟踪交易
//traceTransaction <txHash>
jcc-ethereum-tool traceTransaction 0xbb15e089f12c9d4fcd82e47c3d3b56940c9ad6e51a9c7b5dfec4337f5fb4f58e
// 跟踪交易,会输出所有的内部调用,包括合约调用。请选择支持debug_traceTransaction的节点
  • 查询交易收据
//receipt <txHash>
jcc-ethereum-tool receipt 0xbb15e089f12c9d4fcd82e47c3d3b56940c9ad6e51a9c7b5dfec4337f5fb4f58e
  • 发行合约
// deploy <contract json file> [args...]
jcc-ethereum-tool --gas_limit 3800000 deploy "./MAYAToken.json" arg1 arg2

// 合约大小会影响gas limit,所以请自己设置合适的gas limit
// 其次是创建合约可能是有参数的,请按照参数顺序在命令后依次添加中设置

// 使用create2发行合约
// deploy2 <abi file> <contract address> <method name> [args...]
jcc-ethereum-tool --gas_limit 3800000 deploy2 "./FactoryContract.json" FactoryAddress deployMethod arg1 arg2
// 使用create2发行合约,通过工厂合约进行发布,于合约调用类似,需要提供abi、调用的method名以及可能需要的parameters
  • 生成 create2 合约地址
// generateCreate2Address <contract json file> <sender address> <salt> [args...]
jcc-ethereum-tool generateCreate2Address "./contract.json" address "salt" arg1 arg2
// salt 控制合约地址的生成。通过不同的salt,同一个合约的字节码(initcode)可以多次部署到不同的地址
// 在部署合约时,可能需要一些参数生成initcode,请按照constructor的参数顺序在命令后依次添加中设置
  • 编码 calldata: 用于与合约交互
// encodeCallData <abi file> <method name> [args...]
jcc-ethereum-tool encodeCallData "./contract.json" FactoryAddress "method" arg1 arg2
// 如果method是constructor,说明合约并没有发布,所以生成的是initcode,此时contractAddr并不重要
  • 任意合约的方法调用

jcc-ethereum-tool 支持任意合约的调用,一般来说需要以下几个参数

  • 指定 abi 文件,便于解析各种调用签名和参数,可以指定成自己的 abi 文件
  • 对于调用 abi 的参数(arg),如果是对象、数组或者语句必须用双引号引起来。
  • 对于修改账本的调用,gas 数量需要自己指定,默认是 20000,gasPrice 默认 20G
  • 数量尤其是小数位的推算,可以自己使用 chain3 的函数运算
  • 为支持 ens,增加了 namehash 函数支持

ERC20 的操作

abi <abi file> <contract address> <method name> [args...]
  • 获取基本信息
jcc-ethereum-tool abi erc20abi.json "0x2bbe1b5b974aa75369ec72200c9c7da717faa627" "name"
jcc-ethereum-tool abi erc20abi.json "0x2bbe1b5b974aa75369ec72200c9c7da717faa627" "symbol"
jcc-ethereum-tool abi erc20abi.json "0x2bbe1b5b974aa75369ec72200c9c7da717faa627" "decimals"
jcc-ethereum-tool abi erc20abi.json "0x2bbe1b5b974aa75369ec72200c9c7da717faa627" "totalSupply"
  • 获取钱包余额
jcc-ethereum-tool abi erc20abi.json "0x2bbe1b5b974aa75369ec72200c9c7da717faa627" "balanceOf" "0xaddress......"
  • ERC20 的转账
jcc-ethereum-tool abi erc20abi.json "0x2bbe1b5b974aa75369ec72200c9c7da717faa627" "transfer" "0xaddress....." "web3.utils.toWei(23.1, 'ether')"
// web3.utils.toWei("23.1") 这个可以利用函数转义方式将ERC20的数量展开,但是ERC20也有不是标准的18位小数的,如果需要自行处理小数位,要书写成下面的样子
jcc-ethereum-tool abi erc20abi.json "0x2bbe1b5b974aa75369ec72200c9c7da717faa627" "transfer" "0xaddress....." "BigNumber(23.1*10**18)"
  • ERC20 的授权转账
// 授权0x5d819874014dfc29ec6d56caacc4e95f2dd33352从指定账户转账额度
jcc-ethereum-tool --keystore keystorefile.json --password yourkeystorepassword --gas_limit 50000 abi erc20abi.json "0x2bbe1b5b974aa75369ec72200c9c7da717faa627" "approve" "0xspender address" "web3.utils.toWei(333, 'ether')"

// 查询授权数量
jcc-ethereum-tool abi erc20abi.json "0x2bbe1b5b974aa75369ec72200c9c7da717faa627" "allowance" "0xowner address" "0xspender address"

// 授权转账
jcc-ethereum-tool --keystore keystorefile.json --password yourkeystorepassword --gas_limit 50000 --gas_price 1000000000 abi erc20abi.json "0x2bbe1b5b974aa75369ec72200c9c7da717faa627" "transferFrom" "0xowner address" "0xdestination address" "web3.utils.toWei(300, 'ether')"
  • 从编译好的合约文件中提取 abi、bytecode
//getAbiOfFile <contractFile file>
//getBytecodeOfFile <contractFile file>

jcc-ethereum-tool getAbiOfFile contractFilePath // 获取合约文件中的abi,并提取存放在abi.json
jcc-ethereum-tool getBytecodeOfFile contractFilePath //获取合约文件中的bytecode,并提取存放在bytecode.json

// 请确保编译好的合约文件存在abi、bytecode字段

注: 使用文件时,请确保格式为:

{
    bytecode: "hex string" or {object: "hex string" ...},
    abi: [...]
}