alloy-erc20 1.1.0

Interact with ERC-20 contracts using Alloy.
# alloy-erc20

ERC20 is a Rust libary relying on [Alloy] allowing to interact with ERC-20
contracts.

[Alloy]: https://github.com/alloy-rs/alloy

## Installation

Add `alloy-erc20` to your `Cargo.toml`.

```toml
alloy-erc20 = "1.0"
```

## Features

* A basic `Token` struct and associated extensions methods on Alloy's
  `Provider`, allowing to retrieve token decimals, and compute balances
  as `BigDecimal` from `U256`.
* A `TokenStore` trait, and a `BasicTokenStore` impl, allowing to cache
  `Token`s in memory.
* A `LazyToken` struct, acting as a wrapper around Alloy contract instance,
  lazily retrieving `name`, `symbol`, `decimals` and `totalSupply` from the
  blockchain.
* A `LazyTokenSigner` struct for executing write operations like `transfer`,
  `approve`, and `transferFrom` with a signer-capable provider.

## Testing

This library includes comprehensive integration tests using [testcontainers-modules] and [Anvil].

The integration tests:

* Run completely standalone without external RPC dependencies
* Deploy a mock ERC-20 contract to a blank Anvil dev chain
* Test all `LazyToken` and `LazyTokenSigner` operations
* Complete in approximately 1 second
* Require only Docker to be installed

To run the integration tests:

```bash
cargo test --test integration_tests
```

[testcontainers-modules]: https://github.com/testcontainers/testcontainers-modules
[Anvil]: https://book.getfoundry.sh/reference/anvil/