wavs-types 0.4.0-beta.4

WAVS Types
Documentation
mod service_manager {
    alloy_sol_macro::sol!(
        #[allow(missing_docs)]
        #[cfg(feature = "solidity-rpc")]
        #[sol(rpc)]
        IWavsServiceManager,
        "./src/contracts/solidity/abi/IWavsServiceManager.sol/IWavsServiceManager.json"
    );
}

mod service_handler {
    alloy_sol_macro::sol!(
        #[allow(missing_docs)]
        #[cfg(feature = "solidity-rpc")]
        #[sol(rpc)]
        #[derive(serde::Deserialize, serde::Serialize, Debug, PartialEq, Eq)]
        IWavsServiceHandler,
        "./src/contracts/solidity/abi/IWavsServiceHandler.sol/IWavsServiceHandler.json"
    );
}

pub use service_handler::{
    IWavsServiceHandler, IWavsServiceHandler::Envelope, IWavsServiceHandler::SignatureData,
};
pub use service_manager::IWavsServiceManager;
// yup, the service handler interface as seen by the service manager is a different service handler interface
// even though it's literally a direct import of the same file
pub use service_manager::{
    IWavsServiceHandler::Envelope as ServiceManagerEnvelope,
    IWavsServiceHandler::SignatureData as ServiceManagerSignatureData,
};

#[cfg(feature = "solidity-rpc")]
mod rpc {
    use alloy_provider::DynProvider;

    pub type IWavsServiceHandlerSigningT =
        super::service_handler::IWavsServiceHandler::IWavsServiceHandlerInstance<DynProvider>;

    pub type IWavsServiceHandlerQueryT =
        super::service_handler::IWavsServiceHandler::IWavsServiceHandlerInstance<DynProvider>;

    pub type IWavsServiceManagerSigningT =
        super::service_manager::IWavsServiceManager::IWavsServiceManagerInstance<DynProvider>;

    pub type IWavsServiceManagerQueryT =
        super::service_manager::IWavsServiceManager::IWavsServiceManagerInstance<DynProvider>;
}

#[cfg(feature = "solidity-rpc")]
pub use rpc::*;