Add from_string() methods to DescriptorPrivateKey and DescriptorPublicKey
This commit is contained in:
parent
29614b5b78
commit
427816fd9a
@ -946,9 +946,7 @@ impl DescriptorSecretKey {
|
|||||||
|
|
||||||
fn from_string(private_key: String) -> Result<Self, BdkError> {
|
fn from_string(private_key: String) -> Result<Self, BdkError> {
|
||||||
let descriptor_secret_key = BdkDescriptorSecretKey::from_str(private_key.as_str())
|
let descriptor_secret_key = BdkDescriptorSecretKey::from_str(private_key.as_str())
|
||||||
.map_err(
|
.map_err(|e| BdkError::Generic(e.to_string()))?;
|
||||||
| e | BdkError::Generic(e.to_string())
|
|
||||||
)?;
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
descriptor_secret_key_mutex: Mutex::new(descriptor_secret_key),
|
descriptor_secret_key_mutex: Mutex::new(descriptor_secret_key),
|
||||||
})
|
})
|
||||||
@ -975,9 +973,9 @@ impl DescriptorSecretKey {
|
|||||||
descriptor_secret_key_mutex: Mutex::new(derived_descriptor_secret_key),
|
descriptor_secret_key_mutex: Mutex::new(derived_descriptor_secret_key),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
BdkDescriptorSecretKey::Single(_) => {
|
BdkDescriptorSecretKey::Single(_) => Err(BdkError::Generic(
|
||||||
Err(BdkError::Generic("Cannot derive from a single key".to_string()))
|
"Cannot derive from a single key".to_string(),
|
||||||
}
|
)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -997,9 +995,9 @@ impl DescriptorSecretKey {
|
|||||||
descriptor_secret_key_mutex: Mutex::new(extended_descriptor_secret_key),
|
descriptor_secret_key_mutex: Mutex::new(extended_descriptor_secret_key),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
BdkDescriptorSecretKey::Single(_) => {
|
BdkDescriptorSecretKey::Single(_) => Err(BdkError::Generic(
|
||||||
Err(BdkError::Generic("Cannot extend from a single key".to_string()))
|
"Cannot extend from a single key".to_string(),
|
||||||
}
|
)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1044,9 +1042,7 @@ struct DescriptorPublicKey {
|
|||||||
impl DescriptorPublicKey {
|
impl DescriptorPublicKey {
|
||||||
fn from_string(public_key: String) -> Result<Self, BdkError> {
|
fn from_string(public_key: String) -> Result<Self, BdkError> {
|
||||||
let descriptor_public_key = BdkDescriptorPublicKey::from_str(public_key.as_str())
|
let descriptor_public_key = BdkDescriptorPublicKey::from_str(public_key.as_str())
|
||||||
.map_err(
|
.map_err(|e| BdkError::Generic(e.to_string()))?;
|
||||||
| e | BdkError::Generic(e.to_string())
|
|
||||||
)?;
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
descriptor_public_key_mutex: Mutex::new(descriptor_public_key),
|
descriptor_public_key_mutex: Mutex::new(descriptor_public_key),
|
||||||
})
|
})
|
||||||
@ -1074,9 +1070,9 @@ impl DescriptorPublicKey {
|
|||||||
descriptor_public_key_mutex: Mutex::new(derived_descriptor_public_key),
|
descriptor_public_key_mutex: Mutex::new(derived_descriptor_public_key),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
BdkDescriptorPublicKey::Single(_) => {
|
BdkDescriptorPublicKey::Single(_) => Err(BdkError::Generic(
|
||||||
Err(BdkError::Generic("Cannot derive from a single key".to_string()))
|
"Cannot derive from a single key".to_string(),
|
||||||
}
|
)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1096,9 +1092,9 @@ impl DescriptorPublicKey {
|
|||||||
descriptor_public_key_mutex: Mutex::new(extended_descriptor_public_key),
|
descriptor_public_key_mutex: Mutex::new(extended_descriptor_public_key),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
BdkDescriptorPublicKey::Single(_) => {
|
BdkDescriptorPublicKey::Single(_) => Err(BdkError::Generic(
|
||||||
Err(BdkError::Generic("Cannot extend from a single key".to_string()))
|
"Cannot extend from a single key".to_string(),
|
||||||
}
|
)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1198,7 +1194,10 @@ mod test {
|
|||||||
key.derive(path)
|
key.derive(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn extend_dsk(key: &DescriptorSecretKey, path: &str) -> Result<Arc<DescriptorSecretKey>, BdkError> {
|
fn extend_dsk(
|
||||||
|
key: &DescriptorSecretKey,
|
||||||
|
path: &str,
|
||||||
|
) -> Result<Arc<DescriptorSecretKey>, BdkError> {
|
||||||
let path = Arc::new(DerivationPath::new(path.to_string()).unwrap());
|
let path = Arc::new(DerivationPath::new(path.to_string()).unwrap());
|
||||||
key.extend(path)
|
key.extend(path)
|
||||||
}
|
}
|
||||||
@ -1211,7 +1210,10 @@ mod test {
|
|||||||
key.derive(path)
|
key.derive(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn extend_dpk(key: &DescriptorPublicKey, path: &str) -> Result<Arc<DescriptorPublicKey>, BdkError> {
|
fn extend_dpk(
|
||||||
|
key: &DescriptorPublicKey,
|
||||||
|
path: &str,
|
||||||
|
) -> Result<Arc<DescriptorPublicKey>, BdkError> {
|
||||||
let path = Arc::new(DerivationPath::new(path.to_string()).unwrap());
|
let path = Arc::new(DerivationPath::new(path.to_string()).unwrap());
|
||||||
key.extend(path)
|
key.extend(path)
|
||||||
}
|
}
|
||||||
@ -1257,9 +1259,7 @@ mod test {
|
|||||||
|
|
||||||
let wif = "L2wTu6hQrnDMiFNWA5na6jB12ErGQqtXwqpSL7aWquJaZG8Ai3ch";
|
let wif = "L2wTu6hQrnDMiFNWA5na6jB12ErGQqtXwqpSL7aWquJaZG8Ai3ch";
|
||||||
let extended_key = DescriptorSecretKey::from_string(wif.to_string()).unwrap();
|
let extended_key = DescriptorSecretKey::from_string(wif.to_string()).unwrap();
|
||||||
let result = extended_key.derive(
|
let result = extended_key.derive(Arc::new(DerivationPath::new("m/0".to_string()).unwrap()));
|
||||||
Arc::new(DerivationPath::new("m/0".to_string()).unwrap())
|
|
||||||
);
|
|
||||||
dbg!(&result);
|
dbg!(&result);
|
||||||
assert!(result.is_err());
|
assert!(result.is_err());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user