用途:BattleChain 是 ZKSync 系 L2,在测试网与主网之间插入实战测试阶段(Dev -> Testnet -> BattleChain -> Mainnet)。协议部署已审计合约并投入真实资金,白帽在 Safe Harbor 协议下合法攻击获取赏金,存活的合约再晋级生产环境。本技能面向需要在该链上部署、验证或创建 Safe Harbor 协议的开发者。
网络:主网 Chain ID 626,RPC https://mainnet.battlechain.com,浏览器 https://explorer.mainnet.battlechain.com/,CAIP-2 eip155:626;测试网 Chain ID 627,RPC https://testnet.battlechain.com,浏览器 https://explorer.testnet.battlechain.com/,CAIP-2 eip155:627。两网均有带 API 的区块浏览器与合约验证。模拟依赖合约(代币、Chainlink、Uniswap 等)仅测试网提供。battlechain-lib 工具默认测试网,设 NETWORK=mainnet 切换主网。
部署:使用 cyfrin/battlechain-lib,安装命令 forge install cyfrin/battlechain-lib,并在 foundry.toml 添加 remappings = ["battlechain-lib/=lib/battlechain-lib/src/"]。继承 BCScript(完整生命周期)、BCDeploy(仅部署)、BCSafeHarbor(仅创建协议)。关键助手包括 bcDeployCreate、bcDeployCreate2、bcDeployCreate3、defaultAgreementDetails、createAndAdoptAgreement、requestAttackMode、_isBattleChain、getDeployedContracts。除 requestAttackMode 仅限 BattleChain 外,其余在 190+ 条 EVM 链可用。
攻击模式:requestAttackMode 将协议置为 ATTACK_REQUESTED,需注册表管理员批准才进入 UNDER_ATTACK。测试网管理员为无需许可的 MockRegistryModerator 0x3DdA228A38b4d7438bBF5D5137c8D1090DcaF6bF,任何人可即时批准;主网由 Registry Moderator 0x445d5685c4Ae71550Da0716b82B434AEA140E0c7 作为 DAO 受控操作批准。
Foundry 与验证:脚本需加 --skip-simulation 跳过模拟,可配合 -g 300。验证使用自定义浏览器 API,测试网 https://block-explorer-api.testnet.battlechain.com/api,主网 https://block-explorer-api.mainnet.battlechain.com/api,API key 不校验,任意非空字符串即可。可导入 lib/battlechain-lib/battlechain.just 获得 bc-verify、bc-verify-broadcast、bc-deploy、bc-deploy-verify 目标。
限制:主网 CreateX 由 Cyfrin 部署,地址为 0xa397f06F07251A3AEd53f6d3019A2a6cbd83E53e,并非常见的 0xba5Ed... 地址,不要硬编码。合约超过 24576 字节会因无法估算 gas 而部署失败,可用 forge build --sizes 诊断。完整合约地址、函数签名、结构体、枚举、状态转换与赏金规则请以 https://docs.battlechain.com/llms-full.txt 为准。Hardhat 支持标注为即将推出。