使用ethers.js连接MetaMask时地址全小写问题排查
问题原因解析
- 核心差异源于方法的封装层级和地址规范处理逻辑:
provider.listAccounts()是ethers库封装的上层方法,内部会自动按照EIP-55标准对地址做校验和格式化,返回的是大小写混合的checksum地址(这种格式能通过校验机制避免地址输入错误)。await provider.send("eth_requestAccounts", [])是直接调用MetaMask暴露的底层JSON-RPC接口,MetaMask为了兼容早期以太坊生态的实现,该接口返回的是未经格式化的纯小写地址——以太坊地址本身大小写不敏感,checksum格式只是通过大小写来添加校验维度。
如果需要将小写地址转为标准checksum格式,可使用ethers提供的工具方法:
const checksumAddress = ethers.utils.getAddress(lowercaseAddress);
内容的提问来源于stack exchange,提问作者Sumrender Singh
相关产品推荐
相关产品推荐

