Skip to content

A Rust library to interact with ERC-20 contracts using Alloy.

Notifications You must be signed in to change notification settings

leruaa/alloy-erc20

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alloy-erc20

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

Installation

Add alloy-erc20 to your Cargo.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 Tokens 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:

cargo test --test integration_tests

About

A Rust library to interact with ERC-20 contracts using Alloy.

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages