yldfi-common

Crates.ioyldfi-common
lib.rsyldfi-common
version0.1.2
created_at2026-01-17 08:01:42.569439+00
updated_at2026-01-23 23:35:39.425813+00
descriptionShared utilities for yldfi-rs API clients
homepage
repositoryhttps://github.com/yldfi/yldfi-rs
max_upload_size
id2050120
size138,245
michaeldim (michaeldim)

documentation

README

yld_fi

yldfi-common

Shared utilities for yldfi-rs API clients

crates.io MIT License

Features

  • Retry utilities - Retry with exponential backoff for transient errors
  • Ethereum utilities - Address and transaction hash validation
  • Chain mappings - EVM chain ID and name mappings
  • Unit conversions - Wei/Gwei/Ether conversion utilities
  • HTTP client - Pre-configured reqwest client builder

Retry Utilities

use yldfi_common::{with_retry, RetryConfig, RetryableError};

// Implement RetryableError for your error type
impl RetryableError for MyError {
    fn is_retryable(&self) -> bool { true }
}

async fn example() {
    let config = RetryConfig::default();
    let result = with_retry(&config, || async {
        Ok::<_, MyError>("success")
    }).await;
}

Ethereum Utilities

use yldfi_common::eth::{is_valid_address, normalize_address};

assert!(is_valid_address("0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"));

Chain Mappings

use yldfi_common::chains::Chain;

let chain = Chain::from_id(1);
assert_eq!(chain, Chain::Ethereum);
assert_eq!(chain.name(), "ethereum");

Unit Conversions

use yldfi_common::units::{to_wei, from_wei};

// Convert 1.5 ETH to wei
let wei = to_wei("1.5", 18).unwrap();

Installation

[dependencies]
yldfi-common = "0.1"

License

MIT

Commit count: 46

cargo fmt