Bump hwi to 0.4.0
This commit is contained in:
		
							parent
							
								
									634a0575cb
								
							
						
					
					
						commit
						4cad18bbca
					
				| @ -31,7 +31,7 @@ async-trait = { version = "0.1", optional = true } | |||||||
| rocksdb = { version = "0.14", default-features = false, features = ["snappy"], optional = true } | rocksdb = { version = "0.14", default-features = false, features = ["snappy"], optional = true } | ||||||
| cc = { version = ">=1.0.64", optional = true } | cc = { version = ">=1.0.64", optional = true } | ||||||
| socks = { version = "0.3", optional = true } | socks = { version = "0.3", optional = true } | ||||||
| hwi = { version = "0.3.0", optional = true } | hwi = { version = "0.4.0", optional = true, features = [ "use-miniscript"] } | ||||||
| 
 | 
 | ||||||
| bip39 = { version = "1.0.1", optional = true } | bip39 = { version = "1.0.1", optional = true } | ||||||
| bitcoinconsensus = { version = "0.19.0-3", optional = true } | bitcoinconsensus = { version = "0.19.0-3", optional = true } | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ use bdk::bitcoin::{Address, Network}; | |||||||
| use bdk::blockchain::{Blockchain, ElectrumBlockchain}; | use bdk::blockchain::{Blockchain, ElectrumBlockchain}; | ||||||
| use bdk::database::MemoryDatabase; | use bdk::database::MemoryDatabase; | ||||||
| use bdk::hwi::{types::HWIChain, HWIClient}; | use bdk::hwi::{types::HWIChain, HWIClient}; | ||||||
|  | use bdk::miniscript::{Descriptor, DescriptorPublicKey}; | ||||||
| use bdk::signer::SignerOrdering; | use bdk::signer::SignerOrdering; | ||||||
| use bdk::wallet::{hardwaresigner::HWISigner, AddressIndex}; | use bdk::wallet::{hardwaresigner::HWISigner, AddressIndex}; | ||||||
| use bdk::{FeeRate, KeychainKind, SignOptions, SyncOptions, Wallet}; | use bdk::{FeeRate, KeychainKind, SignOptions, SyncOptions, Wallet}; | ||||||
| @ -23,26 +24,27 @@ fn main() -> Result<(), Box<dyn std::error::Error>> { | |||||||
|     println!("Hold tight, I'm connecting to your hardware wallet..."); |     println!("Hold tight, I'm connecting to your hardware wallet..."); | ||||||
| 
 | 
 | ||||||
|     // Listing all the available hardware wallet devices...
 |     // Listing all the available hardware wallet devices...
 | ||||||
|     let devices = HWIClient::enumerate()?; |     let mut devices = HWIClient::enumerate()?; | ||||||
|     let first_device = devices |     if devices.is_empty() { | ||||||
|         .first() |         panic!("No devices found. Either plug in a hardware wallet, or start a simulator."); | ||||||
|         .expect("No devices found. Either plug in a hardware wallet, or start a simulator."); |     } | ||||||
|  |     let first_device = devices.remove(0)?; | ||||||
|     // ...and creating a client out of the first one
 |     // ...and creating a client out of the first one
 | ||||||
|     let client = HWIClient::get_client(first_device, true, HWIChain::Test)?; |     let client = HWIClient::get_client(&first_device, true, HWIChain::Test)?; | ||||||
|     println!("Look what I found, a {}!", first_device.model); |     println!("Look what I found, a {}!", first_device.model); | ||||||
| 
 | 
 | ||||||
|     // Getting the HW's public descriptors
 |     // Getting the HW's public descriptors
 | ||||||
|     let descriptors = client.get_descriptors(None)?; |     let descriptors = client.get_descriptors::<Descriptor<DescriptorPublicKey>>(None)?; | ||||||
|     println!( |     println!( | ||||||
|         "The hardware wallet's descriptor is: {}", |         "The hardware wallet's descriptor is: {}", | ||||||
|         descriptors.receive[0] |         descriptors.receive[0] | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|     // Creating a custom signer from the device
 |     // Creating a custom signer from the device
 | ||||||
|     let custom_signer = HWISigner::from_device(first_device, HWIChain::Test)?; |     let custom_signer = HWISigner::from_device(&first_device, HWIChain::Test)?; | ||||||
|     let mut wallet = Wallet::new( |     let mut wallet = Wallet::new( | ||||||
|         &descriptors.receive[0], |         descriptors.receive[0].clone(), | ||||||
|         Some(&descriptors.internal[0]), |         Some(descriptors.internal[0].clone()), | ||||||
|         Network::Testnet, |         Network::Testnet, | ||||||
|         MemoryDatabase::default(), |         MemoryDatabase::default(), | ||||||
|     )?; |     )?; | ||||||
|  | |||||||
| @ -24,9 +24,12 @@ | |||||||
| //! # use std::sync::Arc;
 | //! # use std::sync::Arc;
 | ||||||
| //! #
 | //! #
 | ||||||
| //! # fn main() -> Result<(), Box<dyn std::error::Error>> {
 | //! # fn main() -> Result<(), Box<dyn std::error::Error>> {
 | ||||||
| //! let devices = HWIClient::enumerate()?;
 | //! let mut devices = HWIClient::enumerate()?;
 | ||||||
| //! let first_device = devices.first().expect("No devices found!");
 | //! if devices.is_empty() {
 | ||||||
| //! let custom_signer = HWISigner::from_device(first_device, HWIChain::Test)?;
 | //!     panic!("No devices found!");
 | ||||||
|  | //! }
 | ||||||
|  | //! let first_device = devices.remove(0)?;
 | ||||||
|  | //! let custom_signer = HWISigner::from_device(&first_device, HWIChain::Test)?;
 | ||||||
| //!
 | //!
 | ||||||
| //! # let mut wallet = Wallet::new(
 | //! # let mut wallet = Wallet::new(
 | ||||||
| //! #     "",
 | //! #     "",
 | ||||||
|  | |||||||
| @ -5546,11 +5546,14 @@ pub(crate) mod test { | |||||||
|         use hwi::types::HWIChain; |         use hwi::types::HWIChain; | ||||||
|         use hwi::HWIClient; |         use hwi::HWIClient; | ||||||
| 
 | 
 | ||||||
|         let devices = HWIClient::enumerate().unwrap(); |         let mut devices = HWIClient::enumerate().unwrap(); | ||||||
|         let device = devices.first().expect("No devices found"); |         if devices.is_empty() { | ||||||
|         let client = HWIClient::get_client(device, true, HWIChain::Regtest).unwrap(); |             panic!("No devices found!"); | ||||||
|         let descriptors = client.get_descriptors(None).unwrap(); |         } | ||||||
|         let custom_signer = HWISigner::from_device(device, HWIChain::Regtest).unwrap(); |         let device = devices.remove(0).unwrap(); | ||||||
|  |         let client = HWIClient::get_client(&device, true, HWIChain::Regtest).unwrap(); | ||||||
|  |         let descriptors = client.get_descriptors::<String>(None).unwrap(); | ||||||
|  |         let custom_signer = HWISigner::from_device(&device, HWIChain::Regtest).unwrap(); | ||||||
| 
 | 
 | ||||||
|         let (mut wallet, _, _) = get_funded_wallet(&descriptors.internal[0]); |         let (mut wallet, _, _) = get_funded_wallet(&descriptors.internal[0]); | ||||||
|         wallet.add_signer( |         wallet.add_signer( | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user