Reputation: 99
I am new to deploying smart contracts with hardhat and am following a tutorial at https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13. However, after running npx hardhat run scripts/deploy.js --network localhost
, I get the following error. Any ideas on how to fix connection issues?
HardhatError: HH108: Cannot connect to the network localhost.
Please make sure your node is running, and check your internet connection and networks config
at HttpProvider._fetchJsonRpcResponse (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/hardhat/src/internal/core/providers/http.ts:176:15)
at processTicksAndRejections (node:internal/process/task_queues:93:5)
at HttpProvider.request (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/hardhat/src/internal/core/providers/http.ts:55:29)
at GanacheGasMultiplierProvider._isGanache (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/hardhat/src/internal/core/providers/gas-providers.ts:302:30)
at GanacheGasMultiplierProvider.request (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/hardhat/src/internal/core/providers/gas-providers.ts:291:23)
at EthersProviderWrapper.send (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/@nomiclabs/hardhat-ethers/src/internal/ethers-provider-wrapper.ts:13:20)
at Object.getSigners (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/@nomiclabs/hardhat-ethers/src/internal/helpers.ts:23:20)
at getContractFactoryByAbiAndBytecode (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/@nomiclabs/hardhat-ethers/src/internal/helpers.ts:250:21)
at main (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/scripts/deploy.js:17:19)
Caused by: FetchError: request to http://127.0.0.1:8545/ failed, reason: connect ECONNREFUSED 127.0.0.1:8545
at ClientRequest.<anonymous> (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/node-fetch/lib/index.js:1461:11)
at ClientRequest.emit (node:events:376:20)
at Socket.socketErrorListener (node:_http_client:490:9)
at Socket.emit (node:events:376:20)
at emitErrorNT (node:internal/streams/destroy:188:8)
at emitErrorCloseNT (node:internal/streams/destroy:153:3)
at processTicksAndRejections (node:internal/process/task_queues:80:21)
Upvotes: 9
Views: 20726
Reputation: 11
Enter npx hardhat node
or yarn hardhat node
.
And then open another terminal and run
npx hardhat run scripts/deploy.js --network localhost
This should work
Upvotes: 1
Reputation: 11
You can go to the hardhat.config.js, go to the networks, localhost and change the url from the "http://localhost:8545
" to "http://127.0.0.1:8545
"
In my local machine, /etc/hosts ::1 localhost
entry was already commented and uncommenting it did not help, instead Replacing the above url entry in the hardhar config js did.
Upvotes: 1
Reputation: 29
This problem is mainly faced only by the newbies.
Don't directly deploy your contract. First, you have to start your local node to deploy your contract in localhost.
You can start your local eth node by typing the command :: npx hardhat node
Now deploy the contract.
Upvotes: 2
Reputation: 939
I have had this problem. After some research, I noticed that the node version is the key. If you are using node version 17, you can downgrade it to version 16. It applies to my project.
Upvotes: 3
Reputation: 444
I had this issue too, both in the context of connecting Hardhat to Ethereum and to Avalanche.
The following worked for me:
/etc/hosts
and delete the line
::1 localhost
as mentioned by others (https://stackoverflow.com/a/69808847/6189922)npx hardhat node
. This should output a line like:Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/
hardhat.config.ts
so that the url
entry under local
has the same port number as the URL printed in step 2. (8545
, in this case)Your npx
commands will probably work after this.
Upvotes: 2
Reputation: 529
Similar issue when running the deploy script with the following:
npx hardhat run scripts/deploy.js --network localhost
I could fix this by using hardhat instead of localhost:
npx hardhat run scripts/deploy.js --network hardhat
Upvotes: 12
Reputation: 2311
I had the same issue with running:
npx hardhat run scripts/deploy.js --network localhost
and tried to change the solidity version, clean up the project, removed and installed the npm_modules
from scratch but the only solution that I found is reviewing my /etc/hosts file. There was this record:
::1 localhost
which obviously was creating troubles for the hardhat server.
As a tip please note the WebSocket JSON-RPC server address when you run npx hardhat node
to be sure at which url it's running.
Upvotes: 3
Reputation: 191
Petr has the right solution - your local test node (which you started with npx hardhat node
) needs to continue running when you deploy your smart contract.
In other words, you should:
npx hardhat node
in your terminal. Leave the process running.npx hardhat run [script-name] --network localhost
Upvotes: 19