12 unstable releases (3 breaking)
new 0.4.1 | May 5, 2025 |
---|---|
0.4.0 | May 3, 2025 |
0.3.2 | Apr 30, 2025 |
0.2.2 | Apr 2, 2025 |
0.1.0 | Feb 24, 2025 |
#242 in Magic Beans
576 downloads per month
4.5MB
113K
SLoC
Substreams ABIs
This directory contains standard ABIs for the various blockchains that Substreams supports.
EVM
Ethereum, Base, BSC, ArbOne, Polygon,...
-
ERC-20
-
ERC-721
-
ERC-1155
-
ERC-2981
-
ERC-4626
-
ERC-777
-
ERC-3643
EVM Tokens
- SAI/DAI
- USDC
- USDT
- WETH
- WBTC
- stETH
EVM Contracts
-
Uniswap V2
-
Pair
-
Factory
-
-
Uniswap V3
-
Pool
-
Factory
-
-
Uniswap V4
-
PoolManager
-
-
ENS V1
-
ENSRegistry
-
EthRegistrarController
-
PublicResolver
-
ReverseRegistrar
-
NameWrapper
-
Solana
Solana, Eclipse, Solana Devnet
-
spl-token
-
spl-memo
Antelope
EOS, WAX, Telos, Ultra,...
-
eosio.token
-
eosio.system
How to contribute?
- Compile the ABI from the source code.
- Add the ABI to the corresponding directory.
- Only include
abi
section in the JSON file. - Name the file as the contract name (ex:
evm/token/ERC20.json
).
- Only include
- Build
cargo build
- Update/add new contract to
mod.rs
file(s). - Run
cargo test
to ensure everything is working. - Create a PR.
Quickstart
...
use substreams_abi::evm::token::erc20::events::Transfer;
// Iterates over successful transactions
for trx in block.transactions() {
// Iterates over all logs in the transaction, excluding those from calls that were not recorded to the chain's state.
// The logs are sorted by their ordinal and returned as pairs of (log, call) where call is the call that produced the log.
for (log, call_view) in trx.logs_with_calls() {
// -- Transfer --
let transfer = match Transfer::decode(&log) {
Some(transfer) => transfer,
None => continue,
};
// transfer.from => 6D1D1ebe7dA598194293784252659e862d55b52c
// transfer.to => c7bBeC68d12a0d1830360F8Ec58fA599bA1b0e9b
// transfer.value => 3400000000
}
}
Dependencies
~8–11MB
~198K SLoC