rustywallet_import/lib.rs
1//! # rustywallet-import
2//!
3//! Import private keys from various wallet formats.
4//!
5//! ## Supported Formats
6//!
7//! - **WIF** - Wallet Import Format (compressed/uncompressed)
8//! - **Hex** - Raw 64-character hex string
9//! - **Mini Key** - Casascius mini private key (22 or 30 chars)
10//! - **Mnemonic** - BIP39 mnemonic phrase with BIP44/49/84 derivation
11//! - **BIP38** - Password-encrypted private key
12//!
13//! ## Quick Start
14//!
15//! ```rust
16//! use rustywallet_import::{import_any, import_wif, import_hex};
17//!
18//! // Auto-detect format
19//! let result = import_any("5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ");
20//! assert!(result.is_ok());
21//!
22//! // Import WIF directly
23//! let (key, network, compressed) = import_wif("5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ").unwrap();
24//!
25//! // Import hex
26//! let key = import_hex("0c28fca386c7a227600b2fe50b7cae11ec86d3bf1fbe471be89827e19d72aa1d").unwrap();
27//! ```
28
29pub mod error;
30pub mod types;
31
32mod wif;
33mod hex_import;
34mod mini_key;
35mod mnemonic_import;
36mod bip38;
37mod detect;
38
39pub use error::{ImportError, Result};
40pub use types::{ImportFormat, ImportResult, ImportMetadata};
41
42pub use wif::import_wif;
43pub use hex_import::import_hex;
44pub use mini_key::import_mini_key;
45pub use mnemonic_import::{import_mnemonic, MnemonicImport, paths};
46pub use bip38::import_bip38;
47pub use detect::{detect_format, import_any};
48
49/// Prelude module for convenient imports.
50pub mod prelude {
51 pub use crate::{
52 import_any, import_wif, import_hex, import_mini_key,
53 import_mnemonic, import_bip38, detect_format,
54 ImportError, ImportFormat, ImportResult, ImportMetadata,
55 MnemonicImport,
56 };
57}