web3.js使用bug汇总及解决方法

2020年2月13日23:04:11
评论
402
摘要

web3.js使用bug解决:More than one instance of bitcore-lib found;BigNumber Error;gasLimit无法解析而报错;js合约方法调用出现undefine;out of gas;Returned error: VM Exception while processing transaction: invalid opcode;Number can only safely store up to 53 bits;Error encountered, bailing. Network state unknown.

更多区块链技术与应用分类:

区块链应用    区块链开发

以太坊 | Fabric | BCOS | 密码技术 | 共识算法 | 比特币其他链

通证经济传统金融场景 | 去中心化金融 | 防伪溯源 | 数据共享 | 可信存证

 

web3.js使用bug汇总及解决方法

 

1.More than one instance of bitcore-lib found

More than one instance of bitcore-lib found. Please make sure to require bitcore-lib and check that submodules do not also include their own bitcore-lib dependency.

解决方法:

找到报错的module所在目录,

1)如果是全局安装的bitcore库,则打开

~/.nvm/versions/node/v4.8.3/lib/node_modules/bitcore/node_modules/insight-api/node_modules/bitcore-lib/index.js

修改:

line 7:

Change it to:

2)如果是本项目module中,则修改对应bitcore-lib中index.js中第7行(直接return)

2.BigNumber Error

错误描述

解决方法

暂时不解析logs中的data

进入工程web3源码包mxx-contractProject\node_modules\web3\lib\solidity(或..\node_modules\trufflecontract\node_modules\web3\lib\solidity\type.js)中,修改type.js,242行加上return。

但这样有一个问题:

中result中将不能解析出汉字的Nickname名字

3.gasLimit无法解析而报错

错误描述

Number can only safely store up to 53 bits

解决办法

修改nodejs工程目录下库中formatters.js

..\node_modules\web3-core-helpers\src\formatters.js

的236行,修改为如下:

4.js合约方法调用出现undefine

5. out of gas问题

后面加“gas:6000000”参数,如下。

6. 时间问题

7. Error: Returned error: VM Exception while processing transaction: invalid opcode

解决方法

账户中没有足够的代币,需先使用mint方法发币,再使用方法

8 .Number can only safely store up to 53 bits

解决方法

修改工程目录下

C:\CodeProject\lottery_project\lottery-eth\node_modules\web3-core-helpers\src\formatters.js

236行

9. compilation failed

web3.js使用bug汇总及解决方法

解决方法

将constructor换成function XXX()

10.迁移合约时报错

错误描述

Error encountered, bailing. Network state unknown. Review successful transactions manually.

Error: The contract code couldn't be stored, please check your gas amount.

web3.js使用bug汇总及解决方法

解决方法1

后面进行代码排查,发现只需要把部署合约的is ERC721继承关系去掉,truffle migrate的时候就可以成功。最后发现,原来是继承关系中,必需实现父contract中的接口方法,否则部署的时候就会报错!Mark!为什么编译的时候不报错呢。。)

在逐一实现ERC721的接口方法后,再进行编译部署,此时可成功部署:

解决方法2

弃用私链,使用testrpc

(1)npm install -g ganache-cli

(2)ganache-cli --secure -u 0 -u 1

(3)修改truffle.js

解决方法3(有效)

原因:gas费问题,在调用处指定gas费


原文链接:web3.js使用bug汇总及解决方法

  • 本文由 发表于 2020年2月13日23:04:11
  • 转载请注明:https://www.wanghaoyi.com/ethereum-web3-troubleshooting.html
以太坊之数据存储详解 以太坊

以太坊之数据存储详解

本文整理分析以太坊网络中的区块、交易以及合约数据是如何存储的。 区块结构 区块由两部分组成,分别是区块头(header)和区块体(body)两部分,详细结构图如下。 区块头(header) 区块头存储...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: