|
@@ -2,7 +2,7 @@
|
|
|
//!
|
|
|
//! <https://github.com/cashubtc/nuts/blob/main/13.md>
|
|
|
|
|
|
-use bitcoin::bip32::{ChildNumber, DerivationPath, ExtendedPrivKey};
|
|
|
+use bitcoin::bip32::{ChildNumber, DerivationPath, Xpriv};
|
|
|
use thiserror::Error;
|
|
|
use tracing::instrument;
|
|
|
|
|
@@ -37,7 +37,7 @@ pub enum Error {
|
|
|
|
|
|
impl Secret {
|
|
|
/// Create new [`Secret`] from xpriv
|
|
|
- pub fn from_xpriv(xpriv: ExtendedPrivKey, keyset_id: Id, counter: u32) -> Result<Self, Error> {
|
|
|
+ pub fn from_xpriv(xpriv: Xpriv, keyset_id: Id, counter: u32) -> Result<Self, Error> {
|
|
|
let path = derive_path_from_keyset_id(keyset_id)?
|
|
|
.child(ChildNumber::from_hardened_idx(counter)?)
|
|
|
.child(ChildNumber::from_normal_idx(0)?);
|
|
@@ -51,7 +51,7 @@ impl Secret {
|
|
|
|
|
|
impl SecretKey {
|
|
|
/// Create new [`SecretKey`] from xpriv
|
|
|
- pub fn from_xpriv(xpriv: ExtendedPrivKey, keyset_id: Id, counter: u32) -> Result<Self, Error> {
|
|
|
+ pub fn from_xpriv(xpriv: Xpriv, keyset_id: Id, counter: u32) -> Result<Self, Error> {
|
|
|
let path = derive_path_from_keyset_id(keyset_id)?
|
|
|
.child(ChildNumber::from_hardened_idx(counter)?)
|
|
|
.child(ChildNumber::from_normal_idx(1)?);
|
|
@@ -68,7 +68,7 @@ impl PreMintSecrets {
|
|
|
pub fn from_xpriv(
|
|
|
keyset_id: Id,
|
|
|
counter: u32,
|
|
|
- xpriv: ExtendedPrivKey,
|
|
|
+ xpriv: Xpriv,
|
|
|
amount: Amount,
|
|
|
amount_split_target: &SplitTarget,
|
|
|
) -> Result<Self, Error> {
|
|
@@ -102,7 +102,7 @@ impl PreMintSecrets {
|
|
|
pub fn from_xpriv_blank(
|
|
|
keyset_id: Id,
|
|
|
counter: u32,
|
|
|
- xpriv: ExtendedPrivKey,
|
|
|
+ xpriv: Xpriv,
|
|
|
amount: Amount,
|
|
|
) -> Result<Self, Error> {
|
|
|
if amount <= Amount::ZERO {
|
|
@@ -141,7 +141,7 @@ impl PreMintSecrets {
|
|
|
/// factor
|
|
|
pub fn restore_batch(
|
|
|
keyset_id: Id,
|
|
|
- xpriv: ExtendedPrivKey,
|
|
|
+ xpriv: Xpriv,
|
|
|
start_count: u32,
|
|
|
end_count: u32,
|
|
|
) -> Result<Self, Error> {
|
|
@@ -194,7 +194,7 @@ mod tests {
|
|
|
"half depart obvious quality work element tank gorilla view sugar picture humble";
|
|
|
let mnemonic = Mnemonic::from_str(seed).unwrap();
|
|
|
let seed: [u8; 64] = mnemonic.to_seed("");
|
|
|
- let xpriv = ExtendedPrivKey::new_master(Network::Bitcoin, &seed).unwrap();
|
|
|
+ let xpriv = Xpriv::new_master(Network::Bitcoin, &seed).unwrap();
|
|
|
let keyset_id = Id::from_str("009a1f293253e41e").unwrap();
|
|
|
|
|
|
let test_secrets = [
|
|
@@ -216,7 +216,7 @@ mod tests {
|
|
|
"half depart obvious quality work element tank gorilla view sugar picture humble";
|
|
|
let mnemonic = Mnemonic::from_str(seed).unwrap();
|
|
|
let seed: [u8; 64] = mnemonic.to_seed("");
|
|
|
- let xpriv = ExtendedPrivKey::new_master(Network::Bitcoin, &seed).unwrap();
|
|
|
+ let xpriv = Xpriv::new_master(Network::Bitcoin, &seed).unwrap();
|
|
|
let keyset_id = Id::from_str("009a1f293253e41e").unwrap();
|
|
|
|
|
|
let test_rs = [
|