A TypeScript/JavaScript library for finding and loading Ethereum mainnet smart contract ABIs without manually retrieving them.
npm install autoabi --save
Import
const { AutoABI } = require('autoabi')
Get a single contract's ABI
let contractABI = await AutoABI.getABI("0xeeDcD34aCd9f87aAE1eB47f06e42868E81ad2924") // returns ABI object
Get a single contract's ABI with etherscan API
let contractABI = await AutoABI.getABIFromAPI("0xeeDcD34aCd9f87aAE1eB47f06e42868E81ad2924") // returns ABI object
Get many contracts' ABIs
let contractABIs = await AutoABI.getABIs(["0xeeDcD34aCd9f87aAE1eB47f06e42868E81ad2924", "0xfb6916095ca1df60bb79ce92ce3ea74c37c5d359"]) // returns array of ABI objects
let contractABI = await AutoABI.getABI("0xeeDcD34aCd9f87aAE1eB47f06e42868E81ad2924")
console.log(contractABI.abiString) // Prints ABI in string format
console.log(contractABI.abiJSON) // Prints ABI in JSON format
console.log(contractABI.readableABI) // Prints a readable JSON format of ABI
console.log(contractABI.length) // Prints length of ABI JSON array
console.log(contractABI.getFunctions()) // Prints object of all functions from ABI
console.log(contractABI.getFunctionInputs('aFunction')) // Prints object of inputs required for 'aFunction'
console.log(contractABI.getEvents()) // Prints object of all events from ABI
Please contribute to the project by making it more general or doing whatever you think could help fellow blockchain developers! Make a pull request for any features you might add and I will take a look. Thank you!