我试图通过Metamask中的web3从solidity合同中获取数据。我不明白。为什么我得到数组而不是数字或字符串?也许您知道从以太坊合同中获取正常数据的其他方法吗?考虑我的代码:
let contractAddress = $("#addressContract").val();
instaceContract = web3.eth.contract(contract.abi);
contractInstance= instaceContract.at(contractAddress);
contractInstance.name.call((err, result)=>{
if(!err){
console.log('Name ', result)
} else {
console.log(err);
}
});
contractInstance.decimals.call((err, result)=>{
if(!err){
console.log('Decimals ', result)
} else {
console.log(err);
}
});
这是BigNumber表示法。
Solidity使用大数字来表示精确度。 Javascript数字有浮点数学问题,这意味着当数字变得非常大或非常小时,它们会向上或向下舍入。当这些数字可以表示金钱时,并不是理想的,因为它们确实是稳固的。
result.toNumber()
应该为你做的伎俩。