1use crate::contracts::eas::{EASErrors, EAS as Contract};
2use ethers::contract::ContractError;
3use ethers::providers::Middleware;
4
5use thiserror::Error;
6
7mod attest;
8mod revoke;
9mod timestamp;
10
11pub use attest::*;
12pub use revoke::*;
13pub use timestamp::*;
14
15#[derive(Error, Debug)]
16pub enum Error<M: Middleware> {
17 #[error("attestation error: {0}")]
18 EASError(EASErrors),
19
20 #[error("contract error: {0}")]
21 ContractError(#[from] ContractError<M>),
22
23 #[error("unknown error: {0}")]
24 Other(String),
25}
26
27pub struct EAS<M: Middleware> {
28 pub contract: Contract<M>,
29}
30
31impl<M: Middleware + 'static> EAS<M> {
32 pub fn new(contract: Contract<M>) -> Self {
33 Self { contract }
34 }
35
36 pub fn contract(&self) -> &Contract<M> {
37 &self.contract
38 }
39}