evm-signatures
is a Rust library for working with known Ethereum Virtual Machine (EVM) function, error, event, and other selectors, with support for downloading the selector database from the OpenChain API.
Downloading the database
use evm_selectors::EvmSelectors;
use std::path::Path;
// Download and return as string
let data = EvmSelectors::download(None).await?;
// Download and write to tempfile.txt
EvmSelectors::download_to_file(Path::new("tempfile.txt"), None).await?;
Loading the database
use evm_selectors::EvmSelectors;
use std::path::Path;
// From a string
let data = "...".to_string();
let db = EvmSelectors::new_from_raw(&data)?;
// From a file
let db = EvmSelectors::new_from_file(Path::new("tempfile.txt"))?;
Querying selectors
use evm_selectors::EvmSelectors;
use std::path::Path;
// Query a single selector
let db = EvmSelectors::new_from_file(Path::new("tempfile.txt"))?;
let functions = db.get(&[0x00, 0x01, 0x02, 0x03].into());
// Get all available selectors
let all = db.items();
If the download
feature is active (it is by default), a SSL/TLS library must be present. See the reqwest documentation for further details.
OpenChain for providing a reliable selector database.