首页 > 解决方案 > 获取以太坊 ERC-20 代币信息的正确方法

问题描述

有人能告诉我从以太坊区块链获取 ERC-20 代币信息(小数位数、名称和符号)的正确方法吗?我认为可以通过 ABI 构造(如果用户 web3js 库)调用适当的函数 decimals()、name()、symbol() 到确切令牌的合约地址来完成。在许多情况下,它可以这样做。但不幸的是,这并不适用于所有情况。例如,有一个地址为:0xb5a5f22694352c15b00323844ad545abb2b11028 的代币如果我们在 etherscan 的网页上阅读有关此代币的合约信息,则合约公共变量名称、符号和小数中没有任何信息: https ://etherscan.io/address/0xb5a5f22694352c15b00323844ad54abb210528 #readContract 但是 etherscan 知道这个令牌 (ICON (ICX)) 的名称和符号。此外,还有另一个网站可以获取有关此令牌的小数计数的信息: https ://api.ethplorer.io/getTokenInfo/0xb5a5f22694352c15b00323844ad545abb2b11028?apiKey=freekey 所以问题是:有没有通用的方法来获取小数、名称和符号确切的令牌(例如 0xb5a5f22694352c15b00323844ad545abb2b11028)是否通过区块链调用?以及 etherscan 和 ethplorer.io 网站如何处理此类计算?希望有人可以帮助我的问题。提前致谢!

标签: tokenethereumweb3jserc20

解决方案


令牌提供者接口规范说这 3 种方法是可选的。这意味着你不能期望每个代币合约都实现这些。我想您必须为那些与标准不兼容的合同提供解决方法。

对于https://etherscan.io/address/0xb5a5f22694352c15b00323844ad545abb2b11028#readContract,如果你查看源代码,合约名称是contract IcxToken,这至少是一种识别方式。


推荐阅读