Skip to content

MrCare/viem_watcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

viem_watcher

项目简介

本项目是一个基于 viem 的以太坊合约事件监听命令行工具。
支持通过命令行参数指定合约地址和事件名,自动从 Etherscan 获取 ABI 并监听事件,适用于 Sepolia 测试网。


环境准备

  1. Node.js 版本:建议 Node.js 18 及以上

  2. 依赖安装

    npm install
  3. 环境变量配置
    在项目根目录新建 .env 文件,内容如下:

    SEPOLIA_RPC=https://sepolia.infura.io/v3/你的InfuraApiKey
    ETHERSCAN_API_KEY=你的EtherscanApiKey
    

使用方法

1. 监听所有事件

node watch.js --address <合约地址>

例如:

node watch.js --address 0xb3d39454b902c97264e8074ed2d94838eccb6ecf

2. 监听指定事件

node watch.js --address <合约地址> --events <事件名1,事件名2,...>

例如只监听 ListedSold 事件:

node watch.js --address 0xb3d39454b902c97264e8074ed2d94838eccb6ecf --events Listed,Sold

参数说明

  • --address-a必填,要监听的合约地址。
  • --events-e:可选,监听的事件名称,多个用英文逗号分隔。不填则监听所有事件。

注意事项

  • 需要在 Etherscan 上验证过源码的合约才能自动获取 ABI。
  • 监听事件时会自动打印事件参数到控制台。
  • 若监听不到事件,请检查 RPC、API KEY、合约地址和事件名是否正确。

依赖说明

  • viem:以太坊交互库
  • axios:HTTP 请求库
  • dotenv:环境变量加载
  • yargs:命令行参数解析

日志

(base) ➜  viem_watcher.sh   node watch.js --address 0xb3d39454b902c97264e8074ed2d94838eccb6ecf

已监听事件: Delisted
已监听事件: Listed
已监听事件: OwnershipTransferred
已监听事件: Sold
检测到事件 [Delisted] 原始log: {
  eventName: 'Delisted',
  args: { listId: 4n, tokenId: 1n },
  removed: false,
  logIndex: 46,
  transactionIndex: 20,
  transactionHash: '0x359db3ae9600d79b2f87d9730d6a4cf6a10ec9e91e0df168c011aa3af3566cf6',
  blockHash: '0xf7ff8bd3f940ddda2a13652b8d6b58b6cee44504f10a57232da801ca8a1c6f09',
  blockNumber: 8812064n,
  address: '0xb3d39454b902c97264e8074ed2d94838eccb6ecf',
  data: '0x',
  topics: [
    '0x59acfc838c3817a4ad51829dec2a433647fb0229670ccb3e8093af5aaa64f7a1',
    '0x0000000000000000000000000000000000000000000000000000000000000004',
    '0x0000000000000000000000000000000000000000000000000000000000000001'
  ]
}
检测到事件 [Listed] 原始log: {
  eventName: 'Listed',
  args: {
    listId: 5n,
    tokenId: 1n,
    seller: '0xE991bC71A371055B3f02aa79b79E4b714A3D04c0',
    price: 3n
  },
  removed: false,
  logIndex: 29,
  transactionIndex: 9,
  transactionHash: '0xfc29452c9c1760749abd74341257fe46789434c42e24a616f8e0a759361b779a',
  blockHash: '0x16f140b59267f841331656fe91c995aba3f39b925e7b25031a416b2dad87ec37',
  blockNumber: 8812071n,
  address: '0xb3d39454b902c97264e8074ed2d94838eccb6ecf',
  data: '0x0000000000000000000000000000000000000000000000000000000000000003',
  topics: [
    '0xfc1c0dadda05af971023a71c686d9fbfa12ebe1c41d696c041672f9c0ac4c2b6',
    '0x0000000000000000000000000000000000000000000000000000000000000005',
    '0x0000000000000000000000000000000000000000000000000000000000000001',
    '0x000000000000000000000000e991bc71a371055b3f02aa79b79e4b714a3d04c0'
  ]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published