mirror of
https://github.com/romanz/electrs.git
synced 2025-02-24 06:57:53 +01:00
Add simple from_hex() helper
This commit is contained in:
parent
c68a6fdedb
commit
611fce4dfb
2 changed files with 33 additions and 4 deletions
|
@ -40,10 +40,9 @@ impl Daemon {
|
|||
|
||||
fn get_headers(&self) -> (HeaderMap, Bytes) {
|
||||
let mut headers = HashMap::new();
|
||||
let mut blockhash: Bytes = vec![
|
||||
111, 226, 140, 10, 182, 241, 179, 114, 193, 166, 162, 70, 174, 99, 247, 79, 147, 30,
|
||||
131, 101, 225, 90, 8, 156, 104, 214, 25, 0, 0, 0, 0, 0,
|
||||
]; // genesis block hash
|
||||
let mut blockhash: Bytes = util::from_hex(
|
||||
"6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000",
|
||||
).unwrap(); // genesis block hash
|
||||
loop {
|
||||
let data = self.get(&format!("headers/2000/{}.bin", util::revhex(&blockhash)));
|
||||
assert!(!data.is_empty());
|
||||
|
|
30
src/util.rs
30
src/util.rs
|
@ -8,3 +8,33 @@ pub fn revhex(data: &[u8]) -> String {
|
|||
}
|
||||
ret
|
||||
}
|
||||
|
||||
pub fn from_hex(s: &str) -> Option<Vec<u8>> {
|
||||
let mut b = Vec::with_capacity(s.len() / 2);
|
||||
let mut modulus = 0;
|
||||
let mut buf = 0;
|
||||
|
||||
for byte in s.bytes() {
|
||||
buf <<= 4;
|
||||
|
||||
match byte {
|
||||
b'A'...b'F' => buf |= byte - b'A' + 10,
|
||||
b'a'...b'f' => buf |= byte - b'a' + 10,
|
||||
b'0'...b'9' => buf |= byte - b'0',
|
||||
_ => {
|
||||
return None;
|
||||
}
|
||||
}
|
||||
|
||||
modulus += 1;
|
||||
if modulus == 2 {
|
||||
modulus = 0;
|
||||
b.push(buf);
|
||||
}
|
||||
}
|
||||
|
||||
match modulus {
|
||||
0 => Some(b),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue