fuels_core/traits/signer.rs
1use async_trait::async_trait;
2use fuel_crypto::{Message, Signature};
3
4use crate::types::{bech32::Bech32Address, errors::Result};
5
6/// Trait for signing transactions and messages
7///
8/// Implement this trait to support different signing modes, e.g. hardware wallet, hosted etc.
9#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
10#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
11pub trait Signer: 'static {
12 async fn sign(&self, message: Message) -> Result<Signature>;
13 fn address(&self) -> &Bech32Address;
14}