web3.eth.getAccounts не работают с infura - PullRequest
0 голосов
/ 26 февраля 2019

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();

Кроме того, проверка этого в mocha показывает ошибку, пока он работает при использовании ganache-cli

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);
  })

Вот результаты с различными версиями: бета-46: Невозможно прочитать карту свойств () неопределенного. Один ответ на stackexchange говорит, что для устранения этой проблемы используйте beta-36

beta-36 и beta-37: Ничего после выполнения инструкции getAccounts (), пустой экран.

бета-26: core.addProviders не является функцией

1 Ответ

0 голосов
/ 28 февраля 2019

У меня тоже была та же проблема.

Попробуйте удалить часть "/ v3" из URL-адреса infura:

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

Надеюсь, это поможет.

...