Update to LDK 0.0.121
[ldk-sample] / src / hex_utils.rs
index 70fe28b13f30d8c5cf13ae3c6257bc3f3ece701c..8b853dbb6330826132096a7c2c55f204592be486 100644 (file)
@@ -1,4 +1,5 @@
-use bitcoin::secp256k1::key::PublicKey;
+use bitcoin::secp256k1::PublicKey;
+use std::fmt::Write;
 
 pub fn to_vec(hex: &str) -> Option<Vec<u8>> {
        let mut out = Vec::with_capacity(hex.len() / 2);
@@ -23,14 +24,17 @@ pub fn to_vec(hex: &str) -> Option<Vec<u8>> {
 
 #[inline]
 pub fn hex_str(value: &[u8]) -> String {
-       let mut res = String::with_capacity(64);
+       let mut res = String::with_capacity(2 * value.len());
        for v in value {
-               res += &format!("{:02x}", v);
+               write!(&mut res, "{:02x}", v).expect("Unable to write");
        }
        res
 }
 
 pub fn to_compressed_pubkey(hex: &str) -> Option<PublicKey> {
+       if hex.len() != 33 * 2 {
+               return None;
+       }
        let data = match to_vec(&hex[0..33 * 2]) {
                Some(bytes) => bytes,
                None => return None,