用途:ethers.js v6 是面向 EVM 兼容链的 TypeScript/JavaScript 库,用于读取链上数据、签名与发送交易、调用合约。v6 为整体重写,采用原生 ES2020 bigint 与可 tree-shake 的导出。
主要能力:Provider 提供只读链访问(JsonRpcProvider、WebSocketProvider、BrowserProvider、FallbackProvider 等);Signer/Wallet 负责交易授权与消息签名(含 EIP-712 类型化数据);Contract 对象支持类型化链上交互、human-readable ABI、ContractFactory 部署;工具函数含 parseEther、formatEther、parseUnits、formatUnits、keccak256、id、AbiCoder、Interface 等;支持事件过滤与 ENS 解析。
使用方式:安装 npm install ethers,v6 需 Node.js 16+,TypeScript 需 5.0+。创建只读 Provider:new JsonRpcProvider(RPC_URL);读写钱包:new Wallet(PRIVATE_KEY, provider);浏览器钱包:new BrowserProvider(window.ethereum) 后 getSigner();合约:new Contract(address, abi, runner),runner 可为 Provider 或 Signer,.connect() 返回新实例。
v6 要点:使用原生 bigint,无 BigNumber;工具函数为顶层导出,无 ethers.utils;Provider 类为顶层,无 ethers.providers;BrowserProvider 取代 Web3Provider;receipt.status 为数字 0/1;tx.wait() 可能返回 null;ENS 仅在支持网络可用。
限制:getDefaultProvider() 仍可用但受限速,生产环境应使用自有 RPC 的 JsonRpcProvider;ENS 解析在非主网等无 ENS 部署网络返回 null;资料未提供收费、价格与平台支持等更多信息。