用途
本技能用于在用户提出以下需求时提供 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