Skip to content

Plato333/Gas_Optimizer

Repository files navigation

CrossChain Gas Optimizer — MVP

概览

一个极简的本地 demo,比较相同交易在多个链 / Layer2 的预计 gas 成本,并在本地 Hardhat fork 节点上执行一次 callStatic 仿真来验证交易能否成功。这是后续接入 Parallax 或本地模型的基础脚手架,可让你快速判断“在哪条链、哪个时机”发送交易最便宜。

功能

  • 对多条链(主网 + L2)的 estimateGasgasPrice/maxFeePerGas 和预估原生代币成本进行并行比较。
  • 通过 Hardhat fork 节点对指定交易做一次 callStatic,判断执行是否会 revert 并返回错误信息。
  • 极简前端,用于输入交易参数、查看多链估算与仿真结果。

依赖

  • Node.js >= 18
  • npm
  • Hardhat(全局或本地即可)
  • 可用的公共 RPC(Alchemy、Infura、Ankr、Blast 等均可)
  • (可选)MetaMask,用于真实签名和广播

快速开始

  1. 安装依赖
    cd crosschain-gas-optimizer-mvp
    npm install
  2. 根据 .env.example 填写 .env,至少需要配置主网 / L2 的 RPC,方便对比与 fork:
    cp .env.example .env
    # 编辑 .env
  3. 启动 Hardhat fork(确保 .envMAINNET_RPC 可用):
    ./scripts/start-hardhat-fork.sh
  4. 启动后端:
    npm run dev    # nodemon 热重载
    #
    npm start
  5. 打开 frontend/index.html(直接用 VSCode / Cursor 预览或简单启一个静态服务器),填写交易信息后点击“Estimate & Simulate”即可查看结果。

项目结构

crosschain-gas-optimizer-mvp/
├── README.md
├── package.json
├── .env.example
├── server.js                  # Express + ethers 后端
├── lib/
│   ├── compare.js             # estimateGas + 成本比较逻辑
│   └── simulate.js            # 本地 Hardhat 仿真封装
├── hardhat.config.js          # Hardhat(支持 fork)
├── frontend/
│   ├── index.html
│   └── app.js
└── scripts/
    └── start-hardhat-fork.sh  # 启动本地 fork 示例脚本

环境变量

LIB/compare.jshardhat.config.js 会读取以下变量:

  • MAINNET_RPCOPTIMISM_RPCARBITRUM_RPCBASE_RPCPOLYGON_RPC……用于多链对比。
  • HARDHAT_FORK_RPC:本地 Hardhat 节点地址(默认为 http://127.0.0.1:8545)。
  • DEFAULT_FROM:估算 gas 时默认使用的 from 地址(没有也可)。

.env.example 中查看完整列表。

前端演示

前端为纯静态页面,直接使用 fetch 调用后端:

  • /estimate:并发对比多链成本。
  • /simulate:调用 Hardhat fork 进行 callStatic

下一步

  • 把真实策略 / 模型接入 lib/compare.js 的输出,挑选最低成本链。
  • 接入签名 & 广播(当前仅做估算)。
  • 增加更多链、动态路由、历史统计等。

欢迎自由扩展!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors