`Web3.utils`未定义,`Web3.eth`未定义

问题描述 投票:0回答:1

在将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
web3
1个回答
0
投票

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

样本工作代码:

const Web3Utils = require('web3-utils');
const someString = Web3Utils.utf8ToHex('some string');

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

© www.soinside.com 2019 - 2024. All rights reserved.