use cosmrs::crypto::PublicKey;
use fuel_core_services::stream::BoxStream;
use fuel_core_types::{
fuel_crypto::Signature,
services::block_importer::SharedImportResult,
};
#[async_trait::async_trait]
pub trait Signer: Send + Sync {
async fn sign(&self, data: &[u8]) -> anyhow::Result<Signature>;
fn public_key(&self) -> PublicKey;
fn is_available(&self) -> bool;
}
pub trait BlocksProvider {
fn subscribe(&self) -> BoxStream<SharedImportResult>;
}