'How to get web3 accounts in solc?

My blockchain project with solc version ^0.4.6 . Has been throwing errors when given the command of being web3.eth.accounts.

web3.eth.accounts

Uncaught Error: Invalid JSON RPC response: undefined at Object.InvalidResponse (E:\techdot-master\node_modules\web3\lib\web3\errors.js:38:16) at HttpProvider.send (E:\techdot-master\node_modules\web3\lib\web3\httpprovider.js:91:22) at RequestManager.send (E:\techdot-master\node_modules\web3\lib\web3\requestmanager.js:58:32) at Eth.get [as accounts] (E:\techdot-master\node_modules\web3\lib\web3\property.js:107:62).

I have tried reading the docs and tried other commands. Still unable to resolve the issue!



Solution 1:[1]

"Invalid JSON RPC response" means you are not connected to the node. In order to connect to a node, you need a provider. You can get an infura account and create a provider HdWalletProvider

const HDWalletProvider = require("@truffle/hdwallet-provider");
const provider = new HDWalletProvider({
  mnemonic: {
    phrase: metamask_mnemonic, 
  },
  providerOrUrl: ropsten_network,//infura endpoint here
});

Or if you are using ganache-cli

const ganache = require('ganache-cli');
const provider = ganache.provider()

Then create web3

   const web3 = new Web3(provider);

I think instead of accounts, should be getAccounts

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

Solution 2:[2]

I recommend using ehtersjs, with it everything is a lot easier.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Yilmaz
Solution 2 Nerdy19