0 votes
1 view
in Blockchain by (7k points)

I'm trying to run my deploy.js file which has the code :

const HDWalletProvider = require("truffle-hdwallet-provider");

const Web3 = require("web3");

const compiledFactory = require('./build/CampaignFactory.json');

//const web3 = new Web3(provider);

const provider = new HDWalletProvider(

  "[12 word mnemonic]",

  "[rinkeby api from infura]"

);

const web3 = new Web3(provider);

const deploy = async () => {

  const accounts = await web3.eth.getAccounts();

  console.log("Attempting to deply from account", accounts[0]);

  const result = await new web3.eth.Contract(JSON.parse(compiledFactory.interface))

    .deploy({ data: compiledFactory.bytecode })

    .send({ gas: '1000000', from: accounts[0] });

  //console.log(interface);

  console.log("Contract deployed to", result.options.address);

};

deploy();

And when I run node deploy.js: it is throwing the error now, which was working fine before, The Error is shown below:

C:\Users\Kartik.Ganiga\Desktop\BlockChain\Ethereum\campaign\node_modules\web3\src\index.js:76

core.addProviders(Web3);

     ^

TypeError: core.addProviders is not a function

    at Object.<anonymous> (C:\Users\Kartik.Ganiga\Desktop\BlockChain\Ethereum\campaign\node_modules\web3\src\index.js:76:6)

    at Module._compile (internal/modules/cjs/loader.js:689:30)

    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)

    at Module.load (internal/modules/cjs/loader.js:599:32)

    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)

    at Function.Module._load (internal/modules/cjs/loader.js:530:3)

    at Module.require (internal/modules/cjs/loader.js:637:17)

    at require (internal/modules/cjs/helpers.js:20:18)

    at Object.<anonymous> (C:\Users\Kartik.Ganiga\Desktop\BlockChain\Ethereum\campaign\ethereum\deploy.js:2:14)

    at Module._compile (internal/modules/cjs/loader.js:689:30)

    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)

    at Module.load (internal/modules/cjs/loader.js:599:32)

    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)

    at Function.Module._load (internal/modules/cjs/loader.js:530:3)

    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)

    at startup (internal/bootstrap/node.js:279:19)

and the web3.js(which is inside node_modules) file has the code:

/*

    This file is part of web3.js.

    web3.js is free software: you can redistribute it and/or modify

    it under the terms of the GNU Lesser General Public License as published by

    the Free Software Foundation, either version 3 of the License, or

    (at your option) any later version.

    web3.js is distributed in the hope that it will be useful,

    but WITHOUT ANY WARRANTY; without even the implied warranty of

    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License

    along with web3.js.  If not, see <http://www.gnu.org/licenses/>.

*/

/**

 * @file index.js

 * @authors:

 *   Fabian Vogelsteller <[email protected]>

 *   Gav Wood <[email protected]>

 *   Jeffrey Wilcke <[email protected]>

 *   Marek Kotewicz <[email protected]>

 *   Marian Oancea <[email protected]>

 * @date 2017

 */

"use strict";

var version = require('../package.json').version;

var core = require('web3-core');

var Eth = require('web3-eth');

var Net = require('web3-net');

var Personal = require('web3-eth-personal');

var Shh = require('web3-shh');

var Bzz = require('web3-bzz');

var utils = require('web3-utils');

var Web3 = function Web3() {

    var _this = this;

    // sets _requestmanager etc

    core.packageInit(this, arguments);

    this.version = version;

    this.utils = utils;

    this.eth = new Eth(this);

    this.shh = new Shh(this);

    this.bzz = new Bzz(this);

    // overwrite package setProvider

    var setProvider = this.setProvider;

    this.setProvider = function (provider, net) {

        setProvider.apply(_this, arguments);

        this.eth.setProvider(provider, net);

        this.shh.setProvider(provider, net);

        this.bzz.setProvider(provider);

        return true;

    };

};

Web3.version = version;

Web3.utils = utils;

Web3.modules = {

    Eth: Eth,

    Net: Net,

    Personal: Personal,

    Shh: Shh,

    Bzz: Bzz

};

core.addProviders(Web3);

module.exports = Web3;

1 Answer

0 votes
by (14.5k points)

This problem has a short and simple solution. Simply change your web3 version to 1.0.0-beta.37. Execute the code once you update your web3 version. It should work fine.

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...