Go-Ethereum

如何使 web3 工作?

  • February 11, 2022

對不起菜鳥問題。我安裝了 web3 (npm install web3),

但由於某種原因,nodejs 沒有呼叫 web3 方法或顯示對像數據,而是顯示對象結構:

> web3.eth.accounts
Accounts {
 currentProvider: [Getter/Setter],
 _requestManager:
  RequestManager {
    provider:
     HttpProvider {

當我通過 geth attach 連接到 geth 時,嵌入到 geth 的 web3 可以正常工作

我正在嘗試從 docker 內部使用 web3,Dockerfile 如下:

FROM node:carbon

# Create app directory
WORKDIR /usr/src/app


# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN apt-get -y update && \
   apt-get -y install vim

RUN npm install

RUN npm install express

RUN npm install nodemon -g

RUN npm install hashmap && \
   npm install body-parser -g

# If you are building your code for production
# RUN npm install --only=production



# Bundle app source
COPY . .


CMD [ "nodemon", "start" ]

下面的程式碼對我有用:

> web3.eth.getAccounts().then(console.log)

根據文件:https ://web3js.readthedocs.io/en/1.0/web3-eth.html#getaccounts

嘗試await在您的程式碼上添加關鍵字。像:

await web3.eth.accounts

您正在添加這個,因為:web3 返回一個 Promise。您可以在 javascript 中搜尋什麼是承諾。

引用自:https://ethereum.stackexchange.com/questions/40733