首页 > 解决方案 > Web3如何调用返回字节32的方法?

问题描述

我正在尝试合约 DAI 的调用方法符号

contract.methods.symbol().call()

该合约返回的不是字符串,而是字节 32

由于这个事实,我总是犯错:

Number 最多只能安全存储 53 位

如何正确地做到这一点?

标签: javascriptnode.jsweb3

解决方案


正如在以太坊 stackexchange web3 中已经提到的那样string,有 util 函数可以在和之间进行转换byte32

const val32 = contract.methods.symbol().call();
const valString = web3.toAscii(val32);

如果您使用的是 web3 版本 0.x。

或者:

const val32 = contract.methods.symbol().call();
const valString = web3.utils.toAscii(val32);

对于 web3 版本 1.0。


推荐阅读