Hardhat plugin for integration with Tenderly.
This plugin will help you verify your Solidity contracts, as well as allow you to privately push contracts to Tenderly.
npm install --save-dev @tenderly/hardhat-tenderly
And add the following statement to your hardhat.config.js
:
require("@tenderly/hardhat-tenderly");
Or, if you are using typescript:
import "@tenderly/hardhat-tenderly"
This plugin adds the tenderly:verify
task to Hardhat:
Usage: hardhat [GLOBAL OPTIONS] tenderly:verify ...contracts
POSITIONAL ARGUMENTS:
contracts Addresses and names of contracts that will be verified formatted ContractName=Address
tenderly-verify: Verifies contracts on Tenderly
And the tenderly:push
task:
Usage: hardhat [GLOBAL OPTIONS] tenderly:push ...contracts
POSITIONAL ARGUMENTS:
contracts Addresses and names of contracts that will be verified formatted ContractName=Address
tenderly-push: Privately pushes contracts to Tenderly
This plugin extends the Hardhat Runtime Environment by adding a tenderly
field
whose type is Tenderly
.
This field has the verify
and push
methods.
This is an example on how you can call it from your scripts (using ethers to deploy a contract):
const Greeter = await ethers.getContractFactory("Greeter");
const greeter = await Greeter.deploy("Hello, Hardhat!");
await bre.tenderly.verify({
name: "Greeter",
address: greeter.address,
})
Both functions accept variadic parameters:
const contracts = [
{
name: "Greeter",
address: "123"
},
{
name: "Greeter2",
address: "456"
}]
await bre.tenderly.verify(...contracts)
This plugin extends the HardhatConfig
object with optional
project
and username
fields.
This is an example of how to set it:
module.exports = {
tenderly: {
project: "",
username: "",
}
};
For this plugin to function you need to create a config.yaml
file at
$HOME/.tenderly/config.yaml
or %HOMEPATH%\.tenderly\config.yaml
and add an access_key
field to it:
access_key: super_secret_access_key
You can find the access token on the Tenderly dashboard, under Settings -> Authorization.
Alternatively, this step can be skipped by doing tenderly login
on the tenderly-cli
After this you can access Tenderly through the Hardhat Runtime Environment anywhere you need it (tasks, scripts, tests, etc).