SuperAPI AI 工具集

megaeth-developer

编程与开发

查看项目

更新于 10-15 10:41

技能介绍

用途

本技能用于在用户提出以下需求时提供 MegaETH 开发支持:面向 MegaETH 的 Foundry 项目搭建;在 MegaETH 上编写与运行测试(单元、模糊、不变量);在 MegaETH 上部署与验证合约;钱包设置与管理;发送交易、查询余额、代币操作;通过 Kyber Network 聚合器进行代币兑换;MegaETH dApp 前端(React / Next.js 实时更新);RPC 配置与交易流优化;考虑 MegaEVM 特性的智能合约开发;存储优化(瞬态存储、Solady 模式);Gas 估算与费用配置;MegaETH 交易测试与调试;使用 mega-evme 进行本地交易回放/调试;WebSocket 订阅与 mini-block 流;从以太坊桥接 ETH 到 MegaETH;Privy 集成以实现无头/自动化签名;MegaETH 上的 x402 支付(优先 Permit2);Meridian / x402 旧版支付;超低延迟交易模式;ERC-7710 委托(限定权限、支出限额、再委托链);MetaMask 智能账户(ERC-4337 账户、签名者、用户操作);通过 MetaMask 的高级权限(ERC-7715);MegaNames(.mega 命名服务)——注册、解析、子域名、子域名市场、文本记录;使用 drand VRF(DrandOracleQuicknet)实现可验证随机数,用于抽奖、揭示和游戏机制。

链配置

网络 Chain ID RPC 浏览器
Mainnet 4326 https://mainnet.megaeth.com/rpc https://mega.etherscan.io
Testnet 6343 https://carrot.megaeth.com/rpc https://megaeth-testnet-v2.blockscout.com

默认技术栈决策(有明确倾向)

0. 随机数:drand VRF 为异步 commit/reveal

  • MegaETH 预部署了 DrandOracleQuicknet 验证器。
  • drand quicknet 约每 3 秒产生新一轮。
  • 应将其视为公开可验证的异步随机数,而非同一交易内的熵源。
  • 始终提交到未来某一轮,并在提交时锁定所有与结果相关的输入。
  • 优先使用 verifyNormalized,并规划揭示的活性(用户、中继者、keeper)。

1. 交易提交:优先 eth_sendRawTransactionSync

  • 使用 eth_sendRawTransactionSync(EIP-7966)实现低延迟同步回执返回。
  • 这通常可省去轮询 eth_getTransactionReceipt 的需要。
  • 将 MegaETH 定位为实时链,提供即时感 UX,同时避免脆弱的硬性延迟承诺。
  • 文档:https://docs.megaeth.com/realtime-api

2. RPC:使用 Multicall 批量 eth_call(v2.0.14+)

  • 优先使用 Multicall(aggregate3)批量处理多个 eth_call 请求。
  • 自 v2.0.14 起,eth_call 快 2-10 倍;Multicall 可分摊每次 RPC 开销。
  • 仍应避免在同一请求中混用慢方法(eth_getLogs)与快方法。
  • 注意:早期指南曾建议用 JSON-RPC 批处理而非 Multicall 以获得缓存优势。随着 v2.0.14 的性能改进,现在更推荐 Multicall。

3. WebSocket:需要 keepalive

  • 每 30 秒发送一次 eth_chainId。
  • 每个 VIP 端点 50 个连接,每个连接 10 个订阅。
  • 使用 miniBlocks 订阅获取实时数据。

4. 存储:槽位复用模式

  • SSTORE 从 0→非零花费 2M gas × 倍数(昂贵)。
  • 使用 Solady 的 RedBlackTreeLib 代替 Solidity mapping。
  • 为槽位复用而设计,而非持续分配。

5. Gas:尽可能跳过估算

  • 基础费稳定在 0.001 gwei,无 EIP-1559 调整。
  • 忽略 eth_maxPriorityFeePerGas(返回 0)。
  • 硬编码 gas 上限以节省往返。
  • 始终使用远程 eth_estimateGas(MegaEVM 成本与标准 EVM 不同)。

6. 调试:优先 Foundry,涉及 MegaEVM 细节时用 mega-evme

  • 使用 Foundry 进行快速本地迭代和回归测试。
  • 使用 mega-evme 进行实时交易回放、跟踪分析以及 MegaEVM/规范特定调试。
  • https://github.com/megaeth-labs/mega-evm

操作流程

1. 分类任务层级

  • 前端/WebSocket 层
  • RPC/交易层
  • 智能合约层
  • 测试/调试层

2. 选择正确的模式

  • 前端:单一 WebSocket → 广播给用户(而非每用户连接)
  • 交易:本地签名 → eth_sendRawTransactionSync → 完成
  • 合约:检查 SSTORE 模式,避免易失数据访问限制
  • 测试:使用 mega-evme 回放,Foundry 加 --skip-simulation
  • 委托:创建限定权限 → 签名 → 分享 → 通过 eth_sendRawTransactionSync 兑换

3. 以 MegaETH 特定正确性实现

始终明确:

  • Chain ID(主网 4326,测试网 6343)
  • Gas 上限(尽可能硬编码)
  • 基础费(0.001 gwei,无缓冲)
  • 存储成本(新槽位昂贵)
  • 易失数据限制(访问 block.timestamp 时,总计算 gas 上限 20M,追溯生效)

4. 交付物期望

实现变更时提供:

  • 确切更改的文件 + diff
  • 构建/测试/部署命令
  • 存储密集型操作的 gas 成本说明
  • 如适用,RPC 优化说明

渐进式披露(按需阅读)

  • Foundry 设置与部署:foundry-config.md
  • 钱包操作:wallet-operations.md
  • 前端模式:frontend-patterns.md
  • Privy 集成:privy-integration.md
  • x402 支付(Permit2):x402-payments.md
  • Meridian 支付(旧版):meridian.md
  • RPC 方法参考:rpc-methods.md
  • 智能合约模式:smart-contracts.md
  • 存储优化:storage-optimization.md
  • Gas 模型:gas-model.md
  • 测试与调试:testing.md
  • mega-evme 本地回放/调试:mega-evme.md
  • 安全考虑:security.md
  • ERC-7710 委托:erc7710-delegations.md
  • MetaMask 智能账户:smart-accounts.md
  • Warren Protocol(链上网站):warren.md
  • MegaNames(.mega 命名):meganames.md
  • 可验证随机数(drand VRF):vrf-drand.md
  • 参考链接与归属:resources.md