有人可以告诉我从以太坊区块链获取ERC-20代币信息(小数,名称和符号(的正确方法吗? 我认为可以通过调用适当的函数 decimals((、name((、symbol(( 通过 ABI 构造(如果用户 web3js 库(对确切令牌的合约地址来完成。在许多情况下,它可以以这种方式完成。但不幸的是,这并不适合所有情况。例如,有一个带有地址的令牌: 0xb5a5f22694352c15b00323844ad545abb2b11028 如果我们在etherscan的网页上阅读有关此令牌的合约信息,则合约公共变量名称,符号和小数中没有任何信息: https://etherscan.io/address/0xb5a5f22694352c15b00323844ad545abb2b11028#readContract 但是etherscan知道这个令牌的名称和符号(ICON(ICX((。此外,还有另一个网站可以获取有关此令牌的小数计数的信息: https://api.ethplorer.io/getTokenInfo/0xb5a5f22694352c15b00323844ad545abb2b11028?apiKey=freekey 所以问题是:是否有任何通用的方法可以通过区块链调用获取确切令牌(例如0xb5a5f22694352c15b00323844ad545abb2b11028(的小数、名称和符号?etherscan和 ethplorer.io 网站如何处理这样的计算? 希望有人可以帮助我的问题。提前感谢!
令牌提供程序接口规范说这 3 个方法是可选的。这意味着你不能指望每个代币合约都实现这些。我想您必须为那些与标准不兼容的合同提供解决方法。
对于 https://etherscan.io/address/0xb5a5f22694352c15b00323844ad545abb2b11028#readContract,如果您查看源代码,合约名称是contract IcxToken
,这至少是识别它的一种方法。