使用 web3j 检查 ERC20 合约中的余额
Checking balance in ERC20 contract using web3j
我想使用 web3j 检查用户的几个 ERC20 兼容令牌的余额。
是否有一种通用的方法(对每个 ERC20 合约都是通用的)或者我应该为每个合约获取 ABI 并从中生成 java 类?
我没用过web3j,但是web3js用的挺多的。我会link你给相关资料。
Here 是已经在 web3j 库的测试中创建的接口,因此最好从这里开始。
附加说明(对您来说可能是基本的)
您不想为检查余额生成交易(因为它不会改变区块链的状态),因此您应该使用 'call',如 here.
此外,首先了解以太坊如何创建 ABI 可能会有用。每个交易或调用都可以包含数据,然后网络使用这些数据来确定正在调用哪个函数及其参数。此函数的逻辑位于函数 name/parameters (some info) 的 kekak 散列的前 4 个字节的地址处,这就是此散列无冲突如此重要的原因之一(想象一下 2 个不同的函数散列到同一个地址)。但重要的是,所有 erc20 代币(如果它们遵循标准)都具有用于这些功能的通用 ABI。
PS。下次我认为这个问题更适合 Ethereum Stackexchange.
我想使用 web3j 检查用户的几个 ERC20 兼容令牌的余额。
是否有一种通用的方法(对每个 ERC20 合约都是通用的)或者我应该为每个合约获取 ABI 并从中生成 java 类?
我没用过web3j,但是web3js用的挺多的。我会link你给相关资料。
Here 是已经在 web3j 库的测试中创建的接口,因此最好从这里开始。
附加说明(对您来说可能是基本的)
您不想为检查余额生成交易(因为它不会改变区块链的状态),因此您应该使用 'call',如 here.
此外,首先了解以太坊如何创建 ABI 可能会有用。每个交易或调用都可以包含数据,然后网络使用这些数据来确定正在调用哪个函数及其参数。此函数的逻辑位于函数 name/parameters (some info) 的 kekak 散列的前 4 个字节的地址处,这就是此散列无冲突如此重要的原因之一(想象一下 2 个不同的函数散列到同一个地址)。但重要的是,所有 erc20 代币(如果它们遵循标准)都具有用于这些功能的通用 ABI。
PS。下次我认为这个问题更适合 Ethereum Stackexchange.