eas-sdk-rs 0.1.0

A Rust client library for Ethereum Attestation Service.
Documentation
use crate::contracts::eas::{EASErrors, EAS as Contract};
use ethers::contract::ContractError;
use ethers::providers::Middleware;

use thiserror::Error;

mod attest;
mod revoke;
mod timestamp;

pub use attest::*;
pub use revoke::*;
pub use timestamp::*;

#[derive(Error, Debug)]
pub enum Error<M: Middleware> {
    #[error("attestation error: {0}")]
    EASError(EASErrors),

    #[error("contract error: {0}")]
    ContractError(#[from] ContractError<M>),

    #[error("unknown error: {0}")]
    Other(String),
}

pub struct EAS<M: Middleware> {
    pub contract: Contract<M>,
}

impl<M: Middleware + 'static> EAS<M> {
    pub fn new(contract: Contract<M>) -> Self {
        Self { contract }
    }

    pub fn contract(&self) -> &Contract<M> {
        &self.contract
    }
}