async-hwi
```rust
/// HWI is the common Hardware Wallet Interface.
[async_trait]
pub trait HWI: Debug {
/// Return the device kind
fn devicekind(&self) -> DeviceKind;
/// Application version or OS version.
async fn getversion(&self) -> Result;
/// Check that the device is connected but not necessarily available.
async fn isconnected(&self) -> Result<(), Error>;
/// Get master fingerprint.
async fn getfingerprint(&self) -> Result;
/// Get the xpub with the given derivation path.
async fn getextendedpubkey(&self, path: &DerivationPath) -> Result;
/// Register a new wallet policy
async fn registerwallet(&mut self, name: &str, policy: &str) -> Resulttx(&self, tx: &mut Psbt) -> Result<(), Error>;
}
```
Devices supported
| name | App version |
|---------------------------------------------------------|-------------|
| Specter | v1.8.0 |
| Ledger | v2.1.2 |