简体   繁体   English

Web3如何调用返回字节32的方法?

[英]Web3 how to call method which return bytes 32?

I am trying call method symbol, of contract DAI 我正在尝试合同DAI的呼叫方法符号

contract.methods.symbol().call()

This contract returns not string, but bytes 32 此合约不返回字符串,而是字节32

And due this fact I always get err: 由于这个事实我总是犯错:

Number can only safely store up to 53 bits 数字最多只能安全存储53位

How to do it properly? 怎么做得好?

As already mentioned over at the ethereum stackexchange web3 has util functions to convert between string and byte32 : 正如在ethereum stackexchange中已经提到的,web3具有util函数以在stringbyte32之间进行转换:

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

if you're on a web3 version 0.x. 如果您使用的是web3版本0.x.

Or: 要么:

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

for a web3 version 1.0. 对于web3版本1.0。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM