无法读取未定义的属性(读取“providers”)

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

我正在将 web3 版本 1.2.11 导入为

import Web3 from 'web3' 

打字稿中的

const readonlyProvider = new Web3.providers.HttpProvider(providerURL)

编译后进入javascript

const readonlyProvider = new web3_1.default.providers.HttpProvider(providerURL);

其中 web3_1.default 在控制台中未定义。

typescript ethereum blockchain smartcontracts web3js
1个回答
0
投票

在 web3 的早期版本中,没有

Web3.providers.
我们用来创建一个提供程序然后将其插入到
new Web3
像这样

let web3;
if (typeof window !== "undefined" && typeof window.web3 !== "undefined") {
  window.ethereum.enable();
  // we are on browser and we are running metamask
  // window.web3 is old spec. recent one is window.ethereum
  web3 = new Web3(window.web3);
  // web3 = new Web3(window.ethereum)
} else {
  // we are on server or user is not runnint metamask
  const provider = new HDWalletProvider({
    mnemonic: {
      phrase: process.env.METAMASK_KEY,
    },
    providerOrUrl: process.env.YOUR_PRIVATE_NODE, // GOERLI MAYBE
  });

  // THIS IS HOW WE USED TO INITIALIZE WEB3 INSTANCE
  web3 = new Web3(provider);
© www.soinside.com 2019 - 2024. All rights reserved.