#css-selectors #selector #download

evm-selectors

A library for downloading and working with known EVM selectors

2 releases

0.1.1 May 22, 2024
0.1.0 May 22, 2024

#36 in #selector

Custom license

11KB
162 lines

evm-selectors

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.

Usage

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();

Requirements

If the download feature is active (it is by default), a SSL/TLS library must be present. See the reqwest documentation for further details.

Acknowledgements

OpenChain for providing a reliable selector database.

Dependencies

~25–41MB
~764K SLoC