evm-selectors 0.1.1

A library for downloading and working with known EVM selectors.
Documentation
# 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](https://docs.openchain.xyz/).

## Usage
Downloading the database
```rust
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
```rust
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
```rust
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](https://github.com/seanmonstar/reqwest?tab=readme-ov-file#requirements) for further details.

## Acknowledgements
[OpenChain](https://openchain.xyz) for providing a reliable selector database.