未定义“ Web3.utils”和未定义“ Web3.eth”

时间:2019-04-10 17:58:24

标签: web3

将Web3从1.0.0-beta.34升级到1.0.0-beta.37后,尝试访问Web3.utilsWeb3.ethWeb3.bzzWeb3.shh的任何属性一个错误。例如,按以下步骤在web3.utils.utf8ToHex('some string')处调用2_deploy_contract.js

const Web3 = require('web3');
web3.utils.utf8ToHex('some string');

正在引发以下异常:

> TypeError: Cannot read property 'utf8ToHex' of undefined

我发现以下代码段:

const Web3 = require('web3');
console.log("Web3.eth = " + Web3.eth)
console.log("Web3.utils = " + Web3.utils)
console.log("Web3.bzz = " + Web3.bzz)
console.log("Web3.shh = " + Web3.shh)

将输出:

> Web3.eth = undefined 
> Web3.utils = undefined 
> Web3.bzz = undefined
> Web3.shh = undefined

1 个答案:

答案 0 :(得分:0)

静态属性(Web3.utilsWeb3.eth等)已删除,因为如果有人只是在使用utils,那么他可能应该使用web3-utils和{直接使用{1}}模块,而不是捆绑整个库(ref)。

示例工作代码:

web3-eth

注意:长期目标是删除Web3类并创建Web3命名空间。但这将在稳定版本(ref)之后完成。