- Notifications
You must be signed in to change notification settings - Fork17
License
NotificationsYou must be signed in to change notification settings
wizardsardine/async-hwi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
CurrentMinimum Supported Rust Version: v1.71.1
/// HWI is the common Hardware Wallet Interface.#[async_trait]pubtraitHWI:Debug{/// 0. Return the device kindfndevice_kind(&self) ->DeviceKind;/// 1. Application version or OS version.asyncfnget_version(&self) ->Result<Version,Error>;/// 2. Get master fingerprint.asyncfnget_master_fingerprint(&self) ->Result<Fingerprint,Error>;/// 3. Get the xpub with the given derivation path.asyncfnget_extended_pubkey(&self,path:&DerivationPath) ->Result<Xpub,Error>;/// 4. Register a new wallet policyasyncfnregister_wallet(&self,name:&str,policy:&str) ->Result<Option<[u8;32]>,Error>;/// 5. Returns true if the wallet is registeredasyncfnis_wallet_registered(&self,name:&str,policy:&str) ->Result<bool,HWIError>;/// 6. Display an address on the device screenasyncfndisplay_address(&self,script:&AddressScript) ->Result<(),Error>;/// 7. Sign a partially signed bitcoin transaction (PSBT).asyncfnsign_tx(&self,tx:&mutPsbt) ->Result<(),Error>;}#[derive(Debug,Clone,PartialEq,Eq)]pubenumAddressScript{/// Must be a bip86 path.P2TR(DerivationPath),/// Miniscript requires the policy be loaded into the device.Miniscript{index:u32,change:bool},}
A Empty case means the method is unimplemented on the client or device side.
device | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
BitBox021 | >= v9.15.0 | >= v9.15.0 | >= v9.15.0 | >= v9.15.0 | >= v9.15.0 | >= v9.15.0 | >= v9.15.0 |
Coldcard2 | >= v6.2.1X | >= v6.2.1X | >= v6.2.1X | >= v6.2.1X | >= v6.2.1X | >= v6.2.1X | >= v6.2.1X |
Jade3 | >= v1.0.30 | >= v1.0.30 | >= v1.0.30 | >= v1.0.30 | >= v1.0.30 | >= v1.0.30 | >= v1.0.30 |
Ledger Nano S/S+4 | >= v2.1.2 | >= v2.1.2 | >= v2.1.2 | >= v2.1.2 | *check hmac presence | >= v2.1.2 | >= v2.1.2 |
Specter5 | >= v1.8.0 | >= v1.8.0 | >= v1.8.0 | >= v1.8.0 |