版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33612918/article/details/87869209
坑1
meta.getBalance.call(address)方法不可用,无法得到余额
原因没找到,坑了我很久,我的truffle
版本为v5.0.4
,可能是版本的原因
解决办法
使用web3的方法替代,代码如下
async function myGetBalance(address){
let value = 0
await web3.eth.getBalance(address).then( v => {
value = v
})
return value
}
//调用
let balance = await myGetBalance(user_address)
坑2
报错Error: Number can only safely store up to 53 bits
解决办法
应该是以太坊大数(BN)的原因,将
userPaid = registrantsPaid.toNumber()
//修改为
userPaid = registrantsPaid
坑3
用meta.<variableName>.call(<address>)
调用solidity
的public
变量时,返回的是promise
对象
解决办法
用promise
方法即可
坑4
web3.toWei(1, 'ether')
方法不可用,报错TypeError: web3.toWei is not a function
解决办法
作为替代,使用web3.utils.toWei(1, 'ether')
总结
网上很多truffle
的资料过时了,就连一些官网上的教程的方法都不可用,还是需要不断的踩坑才能进步。
web3
是个好东西,有方法不可用的话尽量用web3
的方法来替代。