我想使用web3j检查用户的几个ERC20兼容令牌的余额。
是否有通用的方法(每个ERC20合同都是通用的)或者我应该为每个合同获得ABI并从中生成java类吗?
答案 0 :(得分:2)
我从未使用过web3j,但我使用了web3js。我会将您链接到相关信息。
Here是一个已经在web3j库的测试中创建的接口,因此是最好的起点。
检查余额是您不希望为其生成交易(因为它不会更改区块链的状态),因此您应该使用“调用”,如here所述。
此外,了解以太坊如何创建ABI可能很有用。每个事务或调用都可以包含数据,然后网络使用此数据来确定调用哪个函数及其参数。这个函数的逻辑位于函数名/参数(some info)的kekak散列的前4个字节的地址,这是为什么这个散列是无冲突的重要原因之一(想象一下) 2个不同的函数散列到同一地址)。但这样做的结果是所有erc20令牌(如果它们遵循标准)都具有这些功能的共同ABI。
PS。下次我认为这个问题更适合Ethereum Stackexchange。