Skip to content

Commit 97c680d

Browse files
committed
Merge rust-bitcoin/rust-bitcoin#1081: Use to_hex when available
32cfd93 Use to_hex when available (Tobin C. Harding) Pull request description: We have a bunch of calls to `format!("{:x}", foo)` for types that implement `ToHex`. The code is terser with no loss of clarity if we use the trait method and call `to_hex()`. ACKs for top commit: apoelstra: ACK 32cfd93 Kixunil: ACK 32cfd93 Tree-SHA512: 87cb6660708c11dfafb56bd6e2ea2634043b2226d51903a20806c1ba51c6e7c4f0e4cc25e49f820b5b1236600af7da2a20893c49a5b8845d7652b143fd0ec388
2 parents 443bc4f + 32cfd93 commit 97c680d

File tree

2 files changed

+28
-32
lines changed

2 files changed

+28
-32
lines changed

src/blockdata/constants.rs

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ impl ChainHash {
207207
mod test {
208208
use core::default::Default;
209209
use super::*;
210-
use crate::hashes::hex::FromHex;
210+
use crate::hashes::hex::{ToHex, FromHex};
211211
use crate::network::constants::Network;
212212
use crate::consensus::encode::serialize;
213213

@@ -229,8 +229,7 @@ mod test {
229229
assert_eq!(gen.output[0].value, 50 * COIN_VALUE);
230230
assert_eq!(gen.lock_time, 0);
231231

232-
assert_eq!(format!("{:x}", gen.wtxid()),
233-
"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b".to_string());
232+
assert_eq!(gen.wtxid().to_hex(), "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b");
234233
}
235234

236235
#[test]
@@ -239,41 +238,36 @@ mod test {
239238

240239
assert_eq!(gen.header.version, 1);
241240
assert_eq!(gen.header.prev_blockhash, Default::default());
242-
assert_eq!(format!("{:x}", gen.header.merkle_root),
243-
"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b".to_string());
241+
assert_eq!(gen.header.merkle_root.to_hex(), "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b");
242+
244243
assert_eq!(gen.header.time, 1231006505);
245244
assert_eq!(gen.header.bits, 0x1d00ffff);
246245
assert_eq!(gen.header.nonce, 2083236893);
247-
assert_eq!(format!("{:x}", gen.header.block_hash()),
248-
"000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f".to_string());
246+
assert_eq!(gen.header.block_hash().to_hex(), "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f");
249247
}
250248

251249
#[test]
252250
fn testnet_genesis_full_block() {
253251
let gen = genesis_block(Network::Testnet);
254252
assert_eq!(gen.header.version, 1);
255253
assert_eq!(gen.header.prev_blockhash, Default::default());
256-
assert_eq!(format!("{:x}", gen.header.merkle_root),
257-
"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b".to_string());
254+
assert_eq!(gen.header.merkle_root.to_hex(), "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b");
258255
assert_eq!(gen.header.time, 1296688602);
259256
assert_eq!(gen.header.bits, 0x1d00ffff);
260257
assert_eq!(gen.header.nonce, 414098458);
261-
assert_eq!(format!("{:x}", gen.header.block_hash()),
262-
"000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943".to_string());
258+
assert_eq!(gen.header.block_hash().to_hex(), "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943");
263259
}
264260

265261
#[test]
266262
fn signet_genesis_full_block() {
267263
let gen = genesis_block(Network::Signet);
268264
assert_eq!(gen.header.version, 1);
269265
assert_eq!(gen.header.prev_blockhash, Default::default());
270-
assert_eq!(format!("{:x}", gen.header.merkle_root),
271-
"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b".to_string());
266+
assert_eq!(gen.header.merkle_root.to_hex(), "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b");
272267
assert_eq!(gen.header.time, 1598918400);
273268
assert_eq!(gen.header.bits, 0x1e0377ae);
274269
assert_eq!(gen.header.nonce, 52613770);
275-
assert_eq!(format!("{:x}", gen.header.block_hash()),
276-
"00000008819873e925422c1ff0f99f7cc9bbb232af63a077a480a3633bee1ef6".to_string());
270+
assert_eq!(gen.header.block_hash().to_hex(), "00000008819873e925422c1ff0f99f7cc9bbb232af63a077a480a3633bee1ef6");
277271
}
278272

279273
// The *_chain_hash tests are sanity/regression tests, they verify that the const byte array
@@ -315,7 +309,7 @@ mod test {
315309
// Test vector taken from: https://github.com/lightning/bolts/blob/master/00-introduction.md
316310
#[test]
317311
fn mainnet_chain_hash_test_vector() {
318-
let got = format!("{:x}", ChainHash::using_genesis_block(Network::Bitcoin));
312+
let got = ChainHash::using_genesis_block(Network::Bitcoin).to_hex();
319313
let want = "6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000";
320314
assert_eq!(got, want);
321315
}

src/blockdata/script.rs

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,8 +1067,10 @@ impl serde::Serialize for Script {
10671067
where
10681068
S: serde::Serializer,
10691069
{
1070+
use crate::hashes::hex::ToHex;
1071+
10701072
if serializer.is_human_readable() {
1071-
serializer.serialize_str(&format!("{:x}", self))
1073+
serializer.serialize_str(&self.to_hex())
10721074
} else {
10731075
serializer.serialize_bytes(self.as_bytes())
10741076
}
@@ -1158,7 +1160,7 @@ mod test {
11581160
.push_opcode(opcodes::all::OP_EQUALVERIFY)
11591161
.push_opcode(opcodes::all::OP_CHECKSIG)
11601162
.into_script();
1161-
assert_eq!(&format!("{:x}", script), "76a91416e1ae70ff0fa102905d4af297f6912bda6cce1988ac");
1163+
assert_eq!(script.to_hex(), "76a91416e1ae70ff0fa102905d4af297f6912bda6cce1988ac");
11621164
}
11631165

11641166
#[test]
@@ -1198,71 +1200,71 @@ mod test {
11981200
let simple = Builder::new()
11991201
.push_verify()
12001202
.into_script();
1201-
assert_eq!(format!("{:x}", simple), "69");
1203+
assert_eq!(simple.to_hex(), "69");
12021204
let simple2 = Builder::from(vec![])
12031205
.push_verify()
12041206
.into_script();
1205-
assert_eq!(format!("{:x}", simple2), "69");
1207+
assert_eq!(simple2.to_hex(), "69");
12061208

12071209
let nonverify = Builder::new()
12081210
.push_verify()
12091211
.push_verify()
12101212
.into_script();
1211-
assert_eq!(format!("{:x}", nonverify), "6969");
1213+
assert_eq!(nonverify.to_hex(), "6969");
12121214
let nonverify2 = Builder::from(vec![0x69])
12131215
.push_verify()
12141216
.into_script();
1215-
assert_eq!(format!("{:x}", nonverify2), "6969");
1217+
assert_eq!(nonverify2.to_hex(), "6969");
12161218

12171219
let equal = Builder::new()
12181220
.push_opcode(opcodes::all::OP_EQUAL)
12191221
.push_verify()
12201222
.into_script();
1221-
assert_eq!(format!("{:x}", equal), "88");
1223+
assert_eq!(equal.to_hex(), "88");
12221224
let equal2 = Builder::from(vec![0x87])
12231225
.push_verify()
12241226
.into_script();
1225-
assert_eq!(format!("{:x}", equal2), "88");
1227+
assert_eq!(equal2.to_hex(), "88");
12261228

12271229
let numequal = Builder::new()
12281230
.push_opcode(opcodes::all::OP_NUMEQUAL)
12291231
.push_verify()
12301232
.into_script();
1231-
assert_eq!(format!("{:x}", numequal), "9d");
1233+
assert_eq!(numequal.to_hex(), "9d");
12321234
let numequal2 = Builder::from(vec![0x9c])
12331235
.push_verify()
12341236
.into_script();
1235-
assert_eq!(format!("{:x}", numequal2), "9d");
1237+
assert_eq!(numequal2.to_hex(), "9d");
12361238

12371239
let checksig = Builder::new()
12381240
.push_opcode(opcodes::all::OP_CHECKSIG)
12391241
.push_verify()
12401242
.into_script();
1241-
assert_eq!(format!("{:x}", checksig), "ad");
1243+
assert_eq!(checksig.to_hex(), "ad");
12421244
let checksig2 = Builder::from(vec![0xac])
12431245
.push_verify()
12441246
.into_script();
1245-
assert_eq!(format!("{:x}", checksig2), "ad");
1247+
assert_eq!(checksig2.to_hex(), "ad");
12461248

12471249
let checkmultisig = Builder::new()
12481250
.push_opcode(opcodes::all::OP_CHECKMULTISIG)
12491251
.push_verify()
12501252
.into_script();
1251-
assert_eq!(format!("{:x}", checkmultisig), "af");
1253+
assert_eq!(checkmultisig.to_hex(), "af");
12521254
let checkmultisig2 = Builder::from(vec![0xae])
12531255
.push_verify()
12541256
.into_script();
1255-
assert_eq!(format!("{:x}", checkmultisig2), "af");
1257+
assert_eq!(checkmultisig2.to_hex(), "af");
12561258

12571259
let trick_slice = Builder::new()
12581260
.push_slice(&[0xae]) // OP_CHECKMULTISIG
12591261
.push_verify()
12601262
.into_script();
1261-
assert_eq!(format!("{:x}", trick_slice), "01ae69");
1263+
assert_eq!(trick_slice.to_hex(), "01ae69");
12621264
let trick_slice2 = Builder::from(vec![0x01, 0xae])
12631265
.push_verify()
12641266
.into_script();
1265-
assert_eq!(format!("{:x}", trick_slice2), "01ae69");
1267+
assert_eq!(trick_slice2.to_hex(), "01ae69");
12661268
}
12671269

12681270
#[test]

0 commit comments

Comments
 (0)