web3.eth.getAccounts不使用infura

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

PS:我正在使用web3 beta-37(因为每个版本都有自己的问题)部署功能中的web3.eth.getAccounts下的任何内容都不起作用。当我运行代码时它只显示没有!这是代码:

const HDWalletProvider = require('truffle-hdwallet-provider');
const Web3 = require('web3');
const {interface , bytecode} = require('./compile');

const provider = new HDWalletProvider(mnemonic,
'https://rinkeby.infura.io/v3/my_project_id');

const web3 = new Web3(provider);

const deploy = async() => {
    const accounts = await web3.eth.getAccounts();
    console.log('Attempting to deploy from account', accounts[0]);
    const result = await new web3.eth.Contract(JSON.parse(interface))
                             .deploy({data: bytecode, arguments: ['Hi There!']})
                             .send({'from': accounts[0], 'gas': '1000000'});

    console.log('Contract deployed to: ', result.options.address);
};
deploy();

此外,在使用ganache-cli时,在mocha中测试它会显示错误

const assert = require('assert');
const HDWalletProvider = require('truffle-hdwallet-provider');
const Web3 = require('web3');
const {bytecode , interface} = require('../compile');

const provider = new HDWalletProvider(mnemonic,
'https://rinkeby.infura.io/v3/project_id');



let accounts;

beforeEach(async () => {
  //Get a list of all accounts
  accounts = await web3.eth.getAccounts();

});

describe('Inbox', () => {
  it('address', () => {
    assert.ok(accounts);
  })

以下是不同版本的结果:beta-46:无法读取未定义的属性贴图()stackexchange上的一个答案说使用beta-36修复此问题

beta-36和beta-37:getAccounts()语句执行后没有任何内容,空白屏幕。

beta-26:core.addProviders不是一个函数

ethereum solidity web3 web3js
1个回答
1
投票

我也有同样的问题。

尝试从infura网址中删除“/ v3”部分:

const provider = new HDWalletProvider(mnemonic,
'https://rinkeby.infura.io/my_project_id');

希望这可以帮助。

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