使用web3时,用contract对象调用name方法有的时候无法获得代币名称,精度,大多情况下可以获取,代码如下:
anacontract = new web3.eth.Contract(myqueryABI, contractana)
var anatokenname = await anacontract.methods.name().call()
.....
```(ABI获取是正常的,contract对象也正常实例化,但是有时执行下一句显示出错,说没有name函数)
而根据论坛里的帖子,经过测试,调用eth对象就可以获得调用contract对象无法获得的代币名称,代码如下:
await web3.eth.call({
to: contractana,
data: "0x06fdde03"
}).then(res => {
var anatokenname1 = "0x"+res.substring(res.length, 64)
console.log(anatokenname1 )
anatokenname = web3.utils.hexToUtf8(anatokenname1)
console.log(anatokenname)
})
请问这是是什么原因造成的 还有就是如果我用第二种方法,请求数据的这个16进制码对照表在哪里有呢
data: **"0x06fdde03"**