如何解决如何在 RSK 上获取诸如 ERC20 代币符号之类的信息?
我想在 RSK 网络上查询多个 ERC20 代币以获取以下字段:symbol
、name
和 decimals
。
如何使用 web3.js 执行此操作?
解决方法
要使用 web3.js 执行此操作:
-
web3
:初始化 web3 实例并连接到 web3 提供程序 -
abiOfToken
:此特定令牌的 ABI 对象。注意,如果你没有这个,你可以通过对原始合约代码运行solc
来获取它;或者,您可以简单地将“标准”ABI 对象用于 ERC-20 令牌 -
addressOfToken
:代币部署的智能合约地址
完成上述操作后,您可以在 async
函数中执行以下操作:
const tokenContract = new web3.eth.Contract(
abiOfToken,addressOfToken);
const symbol = await tokenContract.methods.symbol().call();
const decimals = await tokenContract.methods.decimals().call();
const name = await tkenContract.methods.name().call();
上面的代码按顺序运行它们,并且为了清楚起见而提供。 实际上,由于您正在为多个令牌运行它, 您可能需要考虑并行运行查询, 并将它们提取到一个单独的函数中,如下所示:
// run this just once,as part of initialisation
const tokenContract = new web3.eth.Contract(abiOfToken,addressOfToken);
// run this multiple times by putting in its own function
async function getTokenInfo(tokenContract) {
const [decimals,name,symbol] = await Promise.all([
tokenContract.methods.symbol().call(),tokenContract.methods.decimals().call(),tokenContract.methods.name().call(),]);
return { decimals,symbol };
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。