Hardhat is a development environment to compile, deploy, test, and debug your Ethereum software.
OTHER License
Bot releases are hidden (Show)
This release fixes a problem that was preventing hardhat-foundry
from working when certain remappings were used.
Notice that this version depends on Hardhat v2.17.2, so you need to upgrade both packages.
Published by fvictorio about 1 year ago
This release includes several fixes and some new features:
eth_call
RPC methodenableTransientStorage
option to enable EIP-1153 opcodesTASK_COMPILE_TRANSFORM_IMPORT_NAME
subtask, added a new TASK_COMPILE_GET_REMAPPINGS
subtask, and added support for remappings in the resolver.debug_traceTransaction
to return traces where the memory had a lot of empty wordsartifactExists
would throw an error for missing artifactsThis release forbids our async matchers from being chained. This means that you can't do something like:
await expect(contract.f())
.to.changeEtherBalance(...)
.and.to.changeTokenBalance(...)
This never worked properly, leading to potential false positives in tests. Now this pattern will throw an error to make it clear that it's not supported.
If some of your tests start throwing because of this, the way to do the same thing without chaining is:
const tx = contract.f();
await expect(tx).to.changeEtherBalance(...);
await expect(tx).to.changeTokenBalance(...);
This release exposes the Etherscan class as a public API for third-party consumers. Check the "Using the Etherscan class from another plugin" section of the readme to learn more.
Published by fvictorio about 1 year ago
This release adds support for solc v0.8.21, allows using console.log
in pure functions and improves the output of the flatten task (see https://github.com/NomicFoundation/hardhat/issues/1499).
Besides that, this version:
abort-controller
) because it's no longer needed in the versions of node.js supported by Hardhat (thanks @orlandoortegajr!)Retry-After
header (thanks @kowalski!)debug_traceTransaction
method is called with a tracer parameter that is not supported.This release throws an error when a Brownie test directive is detected. These directives look like #@ if mode == "test":
and are used to only include certain code blocks during testing. Since not handling them means including test code in a compilation output, Hardhat throws an error when it sees one.
This version reduces the impact that hardhat-ethers
has in Hardhat initial load time.
Besides that, we fixed to issues related to listening for events with contract.on
(see https://github.com/NomicFoundation/hardhat/issues/4098).
Published by fvictorio over 1 year ago
This version adds support for verifying contracts in Base Goerli.
Published by fvictorio over 1 year ago
This new minor version of Hardhat drops support for Node.js v14 and adds support for Node v20. To learn about which versions of Node we support, check our Stability guarantees page.
This version also adds support for solc 0.8.19 and 0.8.20 and fixes two bugs:
Published by fvictorio over 1 year ago
This release removes the rinkeby
, ropsten
and kovan
deprecated test networks (thanks @pcaversaccio!)
Published by fvictorio over 1 year ago
This release adds support for listening for events using contract.on
.
Published by fvictorio over 1 year ago
This version fixes a problem that was causing the compilation to be slower when using hardhat-foundry
.
Published by fvictorio over 1 year ago
This release fixes an issue in the compiler download that happens when Hardhat is used with node v18.16.x (the latest versions of node v18).
Published by fvictorio over 1 year ago
This is the first release of our new official plugin: hardhat-ledger
! This plugin lets you send transactions and sign messages using your Ledger wallet.
To start using it, first you'll have to install it:
npm install --save-dev @nomicfoundation/hardhat-ledger
And add it to your Hardhat config:
require("@nomicfoundation/hardhat-ledger")
Then add a ledgerAccounts
entry to the network where you want to use a Ledger account. This entry is an array of addresses:
module.exports = {
networks: {
sepolia: {
url: "...",
ledgerAccounts: ["0x123..."],
},
},
};
When a transaction is sent or a message is signed from one of those addresses, the execution will halt until you confirm the signing in your Ledger.
Check the plugin docs to learn more.
Feedback is welcome! Please open an issue if you find a problem or there's something you think could be improved.
Published by fvictorio over 1 year ago
This version of Hardhat adds a new extensibility point: you can now wrap Hardhat's network provider with your own logic.
This is done by using the new extendProvider
configuration function:
extendProvider(async (provider, config, network) => {
const newProvider = new MyProviderWrapper(provider);
return newProvider;
});
Doing this means that all the JSON-RPC calls will go through your custom provider wrapper. You can use this to intercept and handle some requests while forwarding the rest to the original provider.
To learn more about this, read the "Extending the Hardhat provider" section in our docs. If you have questions about how to use this, please open a new discussion.
Besides this new feature, this version includes the following changes:
console.sol
is now memory-safe (thanks @ZumZoom!)true
to prevent Hardhat from showing the telemetry consent promptPublished by fvictorio over 1 year ago
--list-networks
flag wasn't working without passing an address (thanks @clauBv23!)