Hardhat TypeScript plugin boilerplate
npm install hardhat-deploy-ethers
Hardhat plugin extension for @nomicfoundation/hardhat-ethers and its integration with ethers.js.
The extension add support for hardhat-deploy.
hardhat-deploy-ethers require the installation of hardhat-deploy and @nomicfoundation/hardhat-ethers
Note that you cannot use @nomicfoundation/hardhat-toolbox for installing @nomicfoundation/hardhat-ethers as this interfere with the typing extensions provided by hardhat-deploy-ethers
``bash`
npm install --save-dev @nomicfoundation/hardhat-ethers ethers hardhat-deploy hardhat-deploy-ethers
Which means you then add the following statement to your hardhat.config.js:
`js`
require("@nomicfoundation/hardhat-ethers");
require("hardhat-deploy");
require("hardhat-deploy-ethers");
Or, if you are using TypeScript, add this to your hardhat.config.ts:
`ts
import '@nomicfoundation/hardhat-ethers';
import 'hardhat-deploy';
import 'hardhat-deploy-ethers';
`
Note that if you were using @nomicfoundation/hardhat-toolbox you can simply add the dependencies it added for you with
`bash`
npm install --save-dev @nomicfoundation/hardhat-chai-matchers @nomicfoundation/hardhat-ethers @typechain/hardhat hardhat-gas-reporter solidity-coverage
and add them to your hardhat.config.js
`js`
require('@nomicfoundation/hardhat-chai-matchers');
require('@nomicfoundation/hardhat-ethers');
require('@typechain/hardhat');
require('hardhat-gas-reporter');
require('solidity-coverage');
or hardhat.config.ts (typescript)
`ts`
import '@nomicfoundation/hardhat-chai-matchers';
import '@nomicfoundation/hardhat-ethers';
import '@typechain/hardhat';
import 'hardhat-gas-reporter';
import 'solidity-coverage';
This plugin creates no additional tasks.
This object has add some extra hardhat-deploy specific functionalities to the hre.ethers added already by @nomicfoundation/hardhat-ethers
These helpers are added to the ethers object:
`ts`
interface HardhatEthersHelpers {
getContractAtWithSignerAddress:
getSignerOrNull: (address: string) => Promise
getNamedSigners: () => Promise
getNamedSigner: (name: string) => Promise
getNamedSignerOrNull: (name: string) => Promise
getUnnamedSigners: () => Promise
getContract:
getContractOrNull:
}
There are no additional steps you need to take for this plugin to work.
It automatically integrate with the hardhat-deploy plugin if detected and let you do the following:
`js``
const contract = await hre.ethers.getContract('