Skip to content

rfk1118/order_record_mysql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Order Record MySQL

基于 TypeScript 的区块链事件监听器,用于监控 BSC(币安智能链)上的 OrderRecord 事件并将其存储到 MySQL 数据库。

功能特性

  • 🔄 实时监控 BSC 上的 OrderRecord 事件
  • 💾 自动将事件数据存储到 MySQL 数据库
  • 🔁 网络稳定性的自动重连和重试机制
  • 📊 使用字符串表示处理大型 uint256 值
  • 🛡️ 连接池和错误处理

环境要求

  • Node.js(v16 或更高版本)
  • MySQL 数据库
  • BSC RPC 节点(可选,默认使用公共节点)

安装步骤

  1. 克隆仓库:
git clone <repository-url>
cd order_record_mysql
  1. 安装依赖:
npm install
  1. 配置环境变量:
cp .env.example .env

编辑 .env 文件,填入您的配置:

# MySQL 数据库连接
DB_HOST=localhost
DB_PORT=3306
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_NAME=your_db_name

# BSC RPC URL(可选,默认使用公共节点)
RPC_URL=https://bsc-dataseed.bnbchain.org

使用方法

开发模式

npm start

生产构建

npm run build
node dist/index.js

代码质量

格式化代码:

npm run format

检查代码格式:

npm run format:check

代码检查:

npm run lint

自动修复代码问题:

npm run lint:fix

数据库表结构

应用程序会自动创建 order_records 表,表结构如下:

CREATE TABLE order_records (
  id INT AUTO_INCREMENT PRIMARY KEY,
  aggregator_name VARCHAR(255) NOT NULL,
  from_token VARCHAR(255) NOT NULL,
  to_token VARCHAR(255) NOT NULL,
  sender VARCHAR(255) NOT NULL,
  from_amount VARCHAR(255) NOT NULL,
  return_amount VARCHAR(255) NOT NULL,
  block_number BIGINT NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)

事件结构

应用程序监听以下签名的 OrderRecord 事件:

event OrderRecord(
  address fromToken,
  address toToken,
  address sender,
  uint256 fromAmount,
  uint256 returnAmount
)

项目架构

  • src/index.ts - 主应用程序入口和事件监听逻辑
  • src/config.ts - 配置管理和环境变量验证
  • src/database.ts - 数据库连接和操作

错误处理

应用程序包含以下错误处理机制:

  • 事件处理的自动重试机制(最多 3 次尝试)
  • 连接错误恢复和自动重连
  • 过滤器错误处理和重新订阅
  • 数据库插入重试逻辑
  • SIGINT/SIGTERM 信号的优雅关闭

许可证

ISC

关键词

  • TypeScript
  • Ethers.js
  • MySQL
  • 区块链
  • BSC

About

监控币安和OK swap记录

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published