MetaMask 地址与以太坊格式地址

MetaMask address vs Ethereum formatted address

当我使用 web3 从智能合约获取以太坊地址时,它看起来像这样:

0xD034739C2aE807C70Cd703092b946f62a49509D1

但是当我从 MetaMask 得到它时,它看起来像这样:

0xd034739c2ae807c70cd703092b946f62a49509d1

我明白这些基本上是一样的,但是:

1) MetaMask 地址总是全部小写吗? 2)是否有简单的方法将 MetaMask 地址转换为以太坊格式? 3)为什么不一样,MM不使用以太坊格式的想法是什么?

以太坊地址实际上是不区分大小写的。所以两者都是正确的。但是您称为 "ethereum address" 的地址只是一个包含校验和的地址。您可以在 eip-55 "Mixed-case checksum address encoding" 中阅读更多相关信息,MetaMask 是完全支持混合大小写校验和地址的钱包之一。

第二个问题,直接用web3.utils.toChecksumAddress('0xd034739c2ae807c70cd703092b946f62a49509d1');

即可

以便将其转换为校验和地址。