I'm using web3 beta-37 (Since every version has its own issues) Anything under the line web3.eth.getAccounts in the deploy function isn't working.
When I run the code it just shows nothing!
Here is the code:
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();
Also, testing this in mocha shows error while it works when using 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);
})
Here are the results with different versions:
beta-46: Cannot read property map() of undefined
One answer on stack exchange says use beta-36 to fix this issue
beta-36 and beta-37: Nothing after the getAccounts() statement gets executed, blank screen.
beta-26: core.addProviders is not a function
I also had the same issue.
Try to remove the "/v3" part from the infura url:
const provider = new HDWalletProvider(mnemonic,
'https://rinkeby.infura.io/my_project_id');