Skip to content

Frame-One-Software/hardhat-etherscan-abi

 
 

Repository files navigation

hardhat-etherscan-abi Build Status npm hardhat

Hardhat plugin that fetches verified contract ABI from Etherscan.

What

This plugin adds extra features on top of @nomiclabs/hardhat-ethers and allows creating contract instances without manually downloading ABI: ethers.getVerifiedContractAt('<address>'). It supports Mainnet, BSC, and most testnets.

Installation

npm install --save-dev hardhat-etherscan-abi

And add the following statement to your hardhat.config.js:

require("hardhat-etherscan-abi");

Or, if you are using TypeScript, add this to your hardhat.config.ts:

import "hardhat-etherscan-abi";

Tasks

This plugin creates no additional tasks.

Environment extensions

This object has adds some extra hardhat-etherscan-abi specific functionalities by adding new extra fields to hre.ethers

Helpers

These helpers are added to the ethers object:

export async function getVerifiedContractAt(
  hre: HardhatRuntimeEnvironment,
  address: string,
  signer?: ethers.Signer
): Promise<ethers.Contract>;

Usage

You need to add the following Etherscan config to your hardhat.config.js file. Etherscan API key is optional but without it Etherscan allows only 1 request per 5 seconds.

module.exports = {
  networks: {
    mainnet: { ... }
  },
  etherscan: {
    // Your API key for Etherscan
    // Obtain one at https://etherscan.io/
    apiKey: "YOUR_ETHERSCAN_API_KEY"
  }
};

Then use the function:

const contract = await hre.ethers.getVerifiedContractAt('<address>');

It requires only contract address and will fetch the ABI for the contract automatically from Etherscan

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 96.7%
  • JavaScript 3.3%