This repository contains Application Binary Interfaces (ABIs) for MegaEth smart contracts.
To add your contract ABI to this repository:
- Create a new JSON file in the
contracts/directory - Name it descriptively (e.g.,
my-contract.json) - Use this format:
{
"name": "YourContractName",
"abi": [
{
"inputs": [...],
"name": "functionName",
"outputs": [...],
"stateMutability": "view|pure|payable|nonpayable",
"type": "function|event|error|constructor"
}
]
}- Update
abis.jsonto include your contract:
{
"0xYourContractAddress": {
"name": "YourContractName",
"file": "contracts/your-contract.json"
}
}- Submit a pull request
Load any contract ABI directly:
const fs = require('fs');
const abi = JSON.parse(fs.readFileSync('./contracts/your-contract.json', 'utf8'));
const contract = new web3.eth.Contract(abi.abi, contractAddress);This repository includes automated validation via GitHub Actions that validates every pull request.
The validation ensures:
- All contract files have valid JSON structure
- Required fields (
name,abi) are present - ABI items have valid types (
function,event,error,constructor,fallback,receive) - Contract index is consistent with files
- No duplicate addresses
- All addresses have valid format