Trait async_hwi::HWI

source ·
pub trait HWI: Debug {
    fn device_kind(&self) -> DeviceKind;
    fn get_version<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Version, Error>> + Send + 'async_trait>>
    where
        Self: 'async_trait,
        'life0: 'async_trait
; fn is_connected<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
    where
        Self: 'async_trait,
        'life0: 'async_trait
; fn get_master_fingerprint<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Fingerprint, Error>> + Send + 'async_trait>>
    where
        Self: 'async_trait,
        'life0: 'async_trait
; fn get_extended_pubkey<'life0, 'life1, 'async_trait>(
        &'life0 self,
        path: &'life1 DerivationPath,
        display: bool
    ) -> Pin<Box<dyn Future<Output = Result<ExtendedPubKey, Error>> + Send + 'async_trait>>
    where
        Self: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait
; fn register_wallet<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        name: &'life1 str,
        policy: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<[u8; 32]>, Error>> + Send + 'async_trait>>
    where
        Self: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait
; fn sign_tx<'life0, 'life1, 'async_trait>(
        &'life0 self,
        tx: &'life1 mut Psbt
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
    where
        Self: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait
; }
Expand description

HWI is the common Hardware Wallet Interface.

Required Methods§

source

fn device_kind(&self) -> DeviceKind

Return the device kind

source

fn get_version<'life0, 'async_trait>(
    &'life0 self
) -> Pin<Box<dyn Future<Output = Result<Version, Error>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,

Application version or OS version.

source

fn is_connected<'life0, 'async_trait>(
    &'life0 self
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,

Check that the device is connected but not necessarily available.

source

fn get_master_fingerprint<'life0, 'async_trait>(
    &'life0 self
) -> Pin<Box<dyn Future<Output = Result<Fingerprint, Error>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,

Get master fingerprint.

source

fn get_extended_pubkey<'life0, 'life1, 'async_trait>(
    &'life0 self,
    path: &'life1 DerivationPath,
    display: bool
) -> Pin<Box<dyn Future<Output = Result<ExtendedPubKey, Error>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,

Get the xpub with the given derivation path.

source

fn register_wallet<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    name: &'life1 str,
    policy: &'life2 str
) -> Pin<Box<dyn Future<Output = Result<Option<[u8; 32]>, Error>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,

Register a new wallet policy

source

fn sign_tx<'life0, 'life1, 'async_trait>(
    &'life0 self,
    tx: &'life1 mut Psbt
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,

Sign a partially signed bitcoin transaction (PSBT).

Trait Implementations§

source§

impl<T: 'static + Transport + Sync + Send> From<Ledger<T>> for Box<dyn HWI + Send>

source§

fn from(s: Ledger<T>) -> Box<dyn HWI + Send>

Converts to this type from the input type.
source§

impl<T: 'static + Transport + Sync + Send> From<Specter<T>> for Box<dyn HWI + Send>

source§

fn from(s: Specter<T>) -> Box<dyn HWI + Send>

Converts to this type from the input type.

Implementors§

source§

impl<T: Transport + Sync + Send> HWI for Ledger<T>

source§

impl<T: Transport + Sync + Send> HWI for Specter<T>