Add some accessors to the `Privkey` structure
This commit is contained in:
parent
1bbd492da6
commit
a7c2dc6bb6
|
@ -166,6 +166,30 @@ impl Privkey {
|
||||||
let key = try!(PublicKey::from_secret_key(secp, &self.key).map_err(Error::Secp));
|
let key = try!(PublicKey::from_secret_key(secp, &self.key).map_err(Error::Secp));
|
||||||
Ok(Address::from_key(self.network, &key, self.compressed))
|
Ok(Address::from_key(self.network, &key, self.compressed))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Accessor for the underlying secp key
|
||||||
|
#[inline]
|
||||||
|
pub fn secret_key(&self) -> &SecretKey {
|
||||||
|
&self.key
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Accessor for the underlying secp key that consumes the privkey
|
||||||
|
#[inline]
|
||||||
|
pub fn into_secret_key(self) -> SecretKey {
|
||||||
|
self.key
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Accessor for the network type
|
||||||
|
#[inline]
|
||||||
|
pub fn network(&self) -> Network {
|
||||||
|
self.network
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Accessor for the compressed flag
|
||||||
|
#[inline]
|
||||||
|
pub fn is_compressed(&self) -> bool {
|
||||||
|
self.compressed
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ToBase58 for Privkey {
|
impl ToBase58 for Privkey {
|
||||||
|
@ -276,8 +300,8 @@ mod tests {
|
||||||
fn test_key_derivation() {
|
fn test_key_derivation() {
|
||||||
// testnet compressed
|
// testnet compressed
|
||||||
let sk: Privkey = FromBase58::from_base58check("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy").unwrap();
|
let sk: Privkey = FromBase58::from_base58check("cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy").unwrap();
|
||||||
assert_eq!(sk.network, Testnet);
|
assert_eq!(sk.network(), Testnet);
|
||||||
assert_eq!(sk.compressed, true);
|
assert_eq!(sk.is_compressed(), true);
|
||||||
assert_eq!(&sk.to_base58check(), "cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy");
|
assert_eq!(&sk.to_base58check(), "cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy");
|
||||||
|
|
||||||
let secp = Secp256k1::new();
|
let secp = Secp256k1::new();
|
||||||
|
@ -286,8 +310,8 @@ mod tests {
|
||||||
|
|
||||||
// mainnet uncompressed
|
// mainnet uncompressed
|
||||||
let sk: Privkey = FromBase58::from_base58check("5JYkZjmN7PVMjJUfJWfRFwtuXTGB439XV6faajeHPAM9Z2PT2R3").unwrap();
|
let sk: Privkey = FromBase58::from_base58check("5JYkZjmN7PVMjJUfJWfRFwtuXTGB439XV6faajeHPAM9Z2PT2R3").unwrap();
|
||||||
assert_eq!(sk.network, Bitcoin);
|
assert_eq!(sk.network(), Bitcoin);
|
||||||
assert_eq!(sk.compressed, false);
|
assert_eq!(sk.is_compressed(), false);
|
||||||
assert_eq!(&sk.to_base58check(), "5JYkZjmN7PVMjJUfJWfRFwtuXTGB439XV6faajeHPAM9Z2PT2R3");
|
assert_eq!(&sk.to_base58check(), "5JYkZjmN7PVMjJUfJWfRFwtuXTGB439XV6faajeHPAM9Z2PT2R3");
|
||||||
|
|
||||||
let secp = Secp256k1::new();
|
let secp = Secp256k1::new();
|
||||||
|
|
Loading…
Reference in New Issue