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);
})
Вот результаты для разных версий: beta-46: Невозможно прочитать карту свойств () undefined. В одном ответе на stackexchange говорится, что для устранения этой проблемы используйте beta-36.
бета-36 и бета-37: ничего после выполнения оператора getAccounts (), пустой экран.
beta-26: core.addProviders не является функцией
my_project_id
в ссылке на Infura, верно? Кроме того, кажется странным, что он не работает? Какую версиюweb3
вы используете? Можете ли вы проверить правильность настройки поставщика (возможно, путем отладки)? - person nikos fotiadis   schedule 26.02.2019compile.js
файлом? иAttempting to deploy from account
эта строка записывается в консоль? - person Iftifar Taz   schedule 26.02.2019const accounts = await web3.eth.getAccounts();
войдет в консоль - person akshay sharma   schedule 27.02.2019