SuperAPI AI 工具集

zksync

编程与开发

查看项目

更新于 10-15 23:43

技能介绍

用途:面向 zkSync Era 的智能合约开发,整理其与 EVM 的差异及专属部署模式,帮助开发者正确编译、部署和交互。

主要能力与要点:代码需通过 zksolc/zkvyper 编译为 zkEVM 字节码,标准 solc 输出与原始 EVM 字节码无法直接部署;CREATE/CREATE2 地址推导使用字节码哈希而非创建代码,相同输入地址与以太坊不同;所有账户均为智能账户,EOA 由默认账户合约实现,走 validateTransaction/executeTransaction;gas 分 L2 执行 gas 与 L1 pubdata gas,每笔交易必须带 gas_per_pubdata_byte_limit。SELFDESTRUCT 为空操作,EXTCODECOPY 只能复制自身代码,COINBASE 返回 bootloader 地址,DIFFICULTY/PREVRANDAO 返回常量,不可作为随机源,BASEFEE 返回固定值。部署统一经 ContractDeployer 系统合约,msg.value 由 MsgValueSimulator 模拟;账户使用交易 nonce 与部署 nonce 两套计数。

账户抽象与 paymaster:自定义账户实现 IAccount 的五个函数,须以 createAccount 部署类型经 ContractDeployer 部署;paymaster 通过 IPaymaster 赞助 gas,支持通用流程与基于 ERC-20 授权的流程,TypeScript 侧用 getPaymasterParams 传 paymasterParams。

使用方式:安装 npm install -D @matterlabs/hardhat-zksync、npm install zksync-ethers ethers,或安装 Foundry zkSync 分支;配置 Hardhat 网络(主网链 ID 324,Sepolia 链 ID 300)与 zksolc;部署命令如 npx hardhat deploy-zksync --script deploy.ts --network zkSyncSepolia,或 forge build --zksync 后 forge create ... --zksync。系统合约需启用 enableEraVMExtensions 才能调用。

适用场景与限制:适合在 zkSync Era 主网/Sepolia 上开发部署合约、实现账户抽象与代付 gas、进行 L1↔L2 桥接。桥接 L1→L2 约需 1–3 分钟,L2→L1 提现需在 L1 完成最终确认。资料未提供具体收费、价格与完整限制清单,使用前应以官方最新文档为准。