Skip to content
This repository has been archived by the owner on Jul 20, 2023. It is now read-only.
/ etherscan-abi Public archive

⏬ Fetch the most up-to-date ABI of verified Smart Contracts (including proxy implementations) from Etherscan in seconds!

License

Notifications You must be signed in to change notification settings

Rubilmax/etherscan-abi

Repository files navigation

etherscan-abi

npm package Build Status Downloads Issues Commitizen Friendly Semantic Release

⏬🚀 Fetch the most up-to-date ABI of verified Smart Contracts (including proxy implementations) from Etherscan in seconds!

Usage

CLI

  • Fetch the ABI of a contract from an address and save it to abis/ContractName.json:
npx etherscan-abi 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984
  • Note that if a standard proxy is detected, the proxy's implementation ABI will automatically be fetched:
npx etherscan-abi 0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9
  • You can optionally provide a target directory path, an Etherscan apiKey (to bypass the default query rate limit), or specify a network on which to query the Smart Contract's source code (by name or chainId, decimal or hexadecimal):
npx etherscan-abi --target abis/uniswap/ \
    --apiKey ... \
    --network polygon \
    0xb33EaAd8d922B1083446DC23f610c2567fB5180f

Javascript

const { ethers } = require("ethers");
const { getContractAt } = require("etherscan-abi");

getContractAt(
  "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",
  new ethers.providers.JsonRpcProvider("...")
)
  .then((uni) => uni.balanceOf("..."))
  .then(console.log);

Install

npm install etherscan-abi
yarn add etherscan-abi