From 31697e5500568ec192513a7f03c624244fc66b71 Mon Sep 17 00:00:00 2001 From: cakevm Date: Sat, 8 Mar 2025 08:46:04 +0100 Subject: [PATCH] chore: Add 0x prefix and use macro if possible (#14907) --- crates/cli/commands/src/db/get.rs | 6 +- crates/ethereum/consensus/src/validation.rs | 4 +- crates/ethereum/primitives/src/transaction.rs | 2 +- crates/exex/exex/src/backfill/test_utils.rs | 4 +- .../downloaders/src/receipt_file_client.rs | 101 +++++------------ crates/net/ecies/src/algorithm.rs | 6 +- crates/optimism/cli/src/ovm_file_codec.rs | 4 +- crates/optimism/cli/src/receipt_file_codec.rs | 104 ++++++------------ crates/optimism/consensus/src/proof.rs | 71 ++++++------ crates/optimism/evm/src/execute.rs | 4 +- .../src/transaction/signature.rs | 4 +- crates/rpc/rpc-eth-types/src/error/mod.rs | 4 +- .../storage/db/src/implementation/mdbx/mod.rs | 4 +- crates/trie/db/tests/proof.rs | 14 +-- 14 files changed, 126 insertions(+), 206 deletions(-) diff --git a/crates/cli/commands/src/db/get.rs b/crates/cli/commands/src/db/get.rs index a7f2f9c146..9da5343313 100644 --- a/crates/cli/commands/src/db/get.rs +++ b/crates/cli/commands/src/db/get.rs @@ -205,7 +205,7 @@ pub(crate) fn maybe_json_value_parser(value: &str) -> Result(r#"{ "address": "0x01957911244e546ce519fbac6f798958fafadb41", "sharded_key": { "key": "0x0000000000000000000000000000000000000000000000000000000000000003", "highest_block_number": 18446744073709551615 } }"#).unwrap(), StorageShardedKey::new( - Address::from_str("0x01957911244e546ce519fbac6f798958fafadb41").unwrap(), + address!("0x01957911244e546ce519fbac6f798958fafadb41"), B256::from_str( "0x0000000000000000000000000000000000000000000000000000000000000003" ) @@ -261,7 +261,7 @@ mod tests { assert_eq!( table_key::(r#"{ "key": "0x4448e1273fd5a8bfdb9ed111e96889c960eee145", "highest_block_number": 18446744073709551615 }"#).unwrap(), ShardedKey::new( - Address::from_str("0x4448e1273fd5a8bfdb9ed111e96889c960eee145").unwrap(), + address!("0x4448e1273fd5a8bfdb9ed111e96889c960eee145"), 18446744073709551615 ) ); diff --git a/crates/ethereum/consensus/src/validation.rs b/crates/ethereum/consensus/src/validation.rs index 69145b9d37..2cf94a9b82 100644 --- a/crates/ethereum/consensus/src/validation.rs +++ b/crates/ethereum/consensus/src/validation.rs @@ -109,7 +109,7 @@ fn compare_receipts_root_and_logs_bloom( #[cfg(test)] mod tests { - use alloy_primitives::hex; + use alloy_primitives::{b256, hex}; use reth_primitives::Receipt; use super::*; @@ -121,7 +121,7 @@ mod tests { // Compare against expected values assert!(verify_receipts( - B256::from(hex!("61353b4fb714dc1fccacbf7eafc4273e62f3d1eed716fe41b2a0cd2e12c63ebc")), + b256!("0x61353b4fb714dc1fccacbf7eafc4273e62f3d1eed716fe41b2a0cd2e12c63ebc"), Bloom::from(hex!("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")), &receipts ) diff --git a/crates/ethereum/primitives/src/transaction.rs b/crates/ethereum/primitives/src/transaction.rs index 6187f61437..a2a84acacf 100644 --- a/crates/ethereum/primitives/src/transaction.rs +++ b/crates/ethereum/primitives/src/transaction.rs @@ -1170,7 +1170,7 @@ mod tests { let decoded = TransactionSigned::decode_2718(&mut &tx_bytes[..]).unwrap(); assert_eq!( decoded.recover_signer().unwrap(), - Address::from_str("0x95222290DD7278Aa3Ddd389Cc1E1d165CC4BAfe5").unwrap() + address!("0x95222290DD7278Aa3Ddd389Cc1E1d165CC4BAfe5") ); } diff --git a/crates/exex/exex/src/backfill/test_utils.rs b/crates/exex/exex/src/backfill/test_utils.rs index c849c0b3a5..b952f08ae7 100644 --- a/crates/exex/exex/src/backfill/test_utils.rs +++ b/crates/exex/exex/src/backfill/test_utils.rs @@ -96,7 +96,7 @@ fn blocks( header: Header { parent_hash: chain_spec.genesis_hash(), receipts_root: b256!( - "d3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e" + "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e" ), difficulty: chain_spec.fork(EthereumHardfork::Paris).ttd().expect("Paris TTD"), number: 1, @@ -127,7 +127,7 @@ fn blocks( header: Header { parent_hash: block1.hash(), receipts_root: b256!( - "d3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e" + "0xd3a6acf9a244d78b33831df95d472c4128ea85bf079a1d41e32ed0b7d2244c9e" ), difficulty: chain_spec.fork(EthereumHardfork::Paris).ttd().expect("Paris TTD"), number: 2, diff --git a/crates/net/downloaders/src/receipt_file_client.rs b/crates/net/downloaders/src/receipt_file_client.rs index a5aa0ff0d2..47608b9ace 100644 --- a/crates/net/downloaders/src/receipt_file_client.rs +++ b/crates/net/downloaders/src/receipt_file_client.rs @@ -215,8 +215,9 @@ pub struct ReceiptWithBlockNumber { #[cfg(test)] mod test { use alloy_primitives::{ + address, b256, bytes::{Buf, BytesMut}, - hex, Address, Bytes, Log, LogData, B256, + hex, Bytes, Log, LogData, }; use alloy_rlp::{Decodable, RlpDecodable}; use reth_primitives::{Receipt, TxType}; @@ -326,18 +327,12 @@ mod test { fn receipt_block_1() -> ReceiptWithBlockNumber { let log_1 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae"), data: LogData::new( vec![ - B256::from(hex!( - "0109fc6f55cf40689f02fbaad7af7fe7bbac8a3d2186600afc7d3e10cac6027b" - )), - B256::from(hex!( - "0000000000000000000000000000000000000000000000000000000000014218" - )), - B256::from(hex!( - "00000000000000000000000070b17c0fe982ab4a7ac17a4c25485643151a1f2d" - )), + b256!("0x0109fc6f55cf40689f02fbaad7af7fe7bbac8a3d2186600afc7d3e10cac6027b"), + b256!("0x0000000000000000000000000000000000000000000000000000000000014218"), + b256!("0x00000000000000000000000070b17c0fe982ab4a7ac17a4c25485643151a1f2d"), ], Bytes::from(hex!( "00000000000000000000000000000000000000000000000000000000618d8837" @@ -347,21 +342,13 @@ mod test { }; let log_2 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae"), data: LogData::new( vec![ - B256::from(hex!( - "92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68b" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000000000000000d0e3ebf0" - )), - B256::from(hex!( - "0000000000000000000000000000000000000000000000000000000000014218" - )), - B256::from(hex!( - "00000000000000000000000070b17c0fe982ab4a7ac17a4c25485643151a1f2d" - )), + b256!("0x92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68b"), + b256!("0x00000000000000000000000000000000000000000000000000000000d0e3ebf0"), + b256!("0x0000000000000000000000000000000000000000000000000000000000014218"), + b256!("0x00000000000000000000000070b17c0fe982ab4a7ac17a4c25485643151a1f2d"), ], Bytes::default(), ) @@ -369,15 +356,11 @@ mod test { }; let log_3 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae"), data: LogData::new( vec![ - B256::from(hex!( - "fe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234f" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000007edc6ca0bb68348000" - )), + b256!("0xfe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234f"), + b256!("0x00000000000000000000000000000000000000000000007edc6ca0bb68348000"), ], Bytes::default(), ) @@ -398,21 +381,13 @@ mod test { fn receipt_block_2() -> ReceiptWithBlockNumber { let log_1 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae"), data: LogData::new( vec![ - B256::from(hex!( - "92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68d" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000000000000000d0ea0e40" - )), - B256::from(hex!( - "0000000000000000000000000000000000000000000000000000000000014218" - )), - B256::from(hex!( - "000000000000000000000000e5e7492282fd1e3bfac337a0beccd29b15b7b240" - )), + b256!("0x92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68d"), + b256!("0x00000000000000000000000000000000000000000000000000000000d0ea0e40"), + b256!("0x0000000000000000000000000000000000000000000000000000000000014218"), + b256!("0x000000000000000000000000e5e7492282fd1e3bfac337a0beccd29b15b7b240"), ], Bytes::default(), ) @@ -420,15 +395,11 @@ mod test { }; let log_2 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae"), data: LogData::new( vec![ - B256::from(hex!( - "fe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234e" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000007eda7867e0c7d48000" - )), + b256!("0xfe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234e"), + b256!("0x00000000000000000000000000000000000000000000007eda7867e0c7d48000"), ], Bytes::default(), ) @@ -448,21 +419,13 @@ mod test { fn receipt_block_3() -> ReceiptWithBlockNumber { let log_1 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae"), data: LogData::new( vec![ - B256::from(hex!( - "92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68d" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000000000000000d101e54b" - )), - B256::from(hex!( - "0000000000000000000000000000000000000000000000000000000000014218" - )), - B256::from(hex!( - "000000000000000000000000fa011d8d6c26f13abe2cefed38226e401b2b8a99" - )), + b256!("0x92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68d"), + b256!("0x00000000000000000000000000000000000000000000000000000000d101e54b"), + b256!("0x0000000000000000000000000000000000000000000000000000000000014218"), + b256!("0x000000000000000000000000fa011d8d6c26f13abe2cefed38226e401b2b8a99"), ], Bytes::default(), ) @@ -470,15 +433,11 @@ mod test { }; let log_2 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850ae"), data: LogData::new( vec![ - B256::from(hex!( - "fe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234e" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000007ed8842f0627748000" - )), + b256!("0xfe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234e"), + b256!("0x00000000000000000000000000000000000000000000007ed8842f0627748000"), ], Bytes::default(), ) diff --git a/crates/net/ecies/src/algorithm.rs b/crates/net/ecies/src/algorithm.rs index bd27de3e08..9d16a13bf2 100644 --- a/crates/net/ecies/src/algorithm.rs +++ b/crates/net/ecies/src/algorithm.rs @@ -852,7 +852,7 @@ mod tests { .unwrap(); let client_nonce = - b256!("7e968bba13b6c50e2c4cd7f241cc0d64d1ac25c7f5952df231ac6a2bda8ee5d6"); + b256!("0x7e968bba13b6c50e2c4cd7f241cc0d64d1ac25c7f5952df231ac6a2bda8ee5d6"); let server_id = pk2id(&PublicKey::from_secret_key(SECP256K1, &eip8_test_server_key())); @@ -867,7 +867,7 @@ mod tests { .unwrap(); let server_nonce = - b256!("559aead08264d5795d3909718cdd05abd49572e84fe55590eef31a88a08fdffd"); + b256!("0x559aead08264d5795d3909718cdd05abd49572e84fe55590eef31a88a08fdffd"); ECIES::new_static_server(eip8_test_server_key(), server_nonce, server_ephemeral_key) .unwrap() @@ -970,7 +970,7 @@ mod tests { for len in len_range { let mut dest = vec![1u8; len]; kdf( - b256!("7000000000000000000000000000000000000000000000000000000000000007"), + b256!("0x7000000000000000000000000000000000000000000000000000000000000007"), &[0x01, 0x33, 0x70, 0xbe, 0xef], &mut dest, ); diff --git a/crates/optimism/cli/src/ovm_file_codec.rs b/crates/optimism/cli/src/ovm_file_codec.rs index 78763426fc..69c339d8f2 100644 --- a/crates/optimism/cli/src/ovm_file_codec.rs +++ b/crates/optimism/cli/src/ovm_file_codec.rs @@ -293,7 +293,7 @@ impl Decodable2718 for OvmTransactionSigned { mod tests { use crate::ovm_file_codec::OvmTransactionSigned; use alloy_consensus::Typed2718; - use alloy_primitives::{address, hex, TxKind, B256, U256}; + use alloy_primitives::{address, b256, hex, TxKind, U256}; use op_alloy_consensus::OpTypedTransaction; const DEPOSIT_FUNCTION_SELECTOR: [u8; 4] = [0xb6, 0xb5, 0x5f, 0x25]; use alloy_rlp::Decodable; @@ -379,7 +379,7 @@ mod tests { ); assert_eq!( system_decoded.hash, - B256::from(hex!("e20b11349681dd049f8df32f5cdbb4c68d46b537685defcd86c7fa42cfe75b9e")) + b256!("0xe20b11349681dd049f8df32f5cdbb4c68d46b537685defcd86c7fa42cfe75b9e") ); } } diff --git a/crates/optimism/cli/src/receipt_file_codec.rs b/crates/optimism/cli/src/receipt_file_codec.rs index 0345c02875..b70964ebca 100644 --- a/crates/optimism/cli/src/receipt_file_codec.rs +++ b/crates/optimism/cli/src/receipt_file_codec.rs @@ -121,7 +121,7 @@ impl TryFrom for OpReceipt { #[cfg(test)] pub(crate) mod test { use alloy_consensus::{Receipt, TxReceipt}; - use alloy_primitives::{hex, LogData}; + use alloy_primitives::{address, b256, hex, LogData}; use super::*; @@ -141,8 +141,8 @@ pub(crate) mod test { cumulative_gas_used: receipt.receipt.cumulative_gas_used(), bloom: Bloom::from(hex!("00000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000400000000000100000000000000200000000002000000000000001000000000000000000004000000000000000000000000000040000400000100400000000000000100000000000000000000000000000020000000000000000000000000000000000000000000000001000000000000000000000100000000000000000000000000000000000000000000000000000000000000088000000080000000000010000000000000000000000000000800008000120000000000000000000000000000000002000")), logs: receipt.receipt.logs().to_vec(), - tx_hash: B256::from(hex!("5e77a04531c7c107af1882d76cbff9486d0a9aa53701c30888509d4f5f2b003a")), contract_address: Address::from(hex!("0000000000000000000000000000000000000000")), gas_used: 202813, - block_hash: B256::from(hex!("bee7192e575af30420cae0c7776304ac196077ee72b048970549e4f08e875453")), + tx_hash: b256!("0x5e77a04531c7c107af1882d76cbff9486d0a9aa53701c30888509d4f5f2b003a"), contract_address: address!("0x0000000000000000000000000000000000000000"), gas_used: 202813, + block_hash: b256!("0xbee7192e575af30420cae0c7776304ac196077ee72b048970549e4f08e875453"), block_number: receipt.number, transaction_index: 0, l1_gas_price: 1, @@ -154,18 +154,12 @@ pub(crate) mod test { pub(crate) fn receipt_block_1() -> ReceiptWithBlockNumber { let log_1 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850af")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850af"), data: LogData::new( vec![ - B256::from(hex!( - "0109fc6f55cf40689f02fbaad7af7fe7bbac8a3d2186600afc7d3e10cac60271" - )), - B256::from(hex!( - "0000000000000000000000000000000000000000000000000000000000014218" - )), - B256::from(hex!( - "00000000000000000000000070b17c0fe982ab4a7ac17a4c25485643151a1f2d" - )), + b256!("0x0109fc6f55cf40689f02fbaad7af7fe7bbac8a3d2186600afc7d3e10cac60271"), + b256!("0x0000000000000000000000000000000000000000000000000000000000014218"), + b256!("0x00000000000000000000000070b17c0fe982ab4a7ac17a4c25485643151a1f2d"), ], Bytes::from(hex!( "00000000000000000000000000000000000000000000000000000000618d8837" @@ -175,21 +169,13 @@ pub(crate) mod test { }; let log_2 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850af")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850af"), data: LogData::new( vec![ - B256::from(hex!( - "92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68c" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000000000000000d0e3ebf0" - )), - B256::from(hex!( - "0000000000000000000000000000000000000000000000000000000000014218" - )), - B256::from(hex!( - "00000000000000000000000070b17c0fe982ab4a7ac17a4c25485643151a1f2d" - )), + b256!("0x92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68c"), + b256!("0x00000000000000000000000000000000000000000000000000000000d0e3ebf0"), + b256!("0x0000000000000000000000000000000000000000000000000000000000014218"), + b256!("0x00000000000000000000000070b17c0fe982ab4a7ac17a4c25485643151a1f2d"), ], Bytes::default(), ) @@ -197,15 +183,11 @@ pub(crate) mod test { }; let log_3 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850af")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850af"), data: LogData::new( vec![ - B256::from(hex!( - "fe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234f" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000007edc6ca0bb68348000" - )), + b256!("0xfe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234f"), + b256!("0x00000000000000000000000000000000000000000000007edc6ca0bb68348000"), ], Bytes::default(), ) @@ -223,21 +205,13 @@ pub(crate) mod test { pub(crate) fn receipt_block_2() -> ReceiptWithBlockNumber { let log_1 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850af")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850af"), data: LogData::new( vec![ - B256::from(hex!( - "92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68c" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000000000000000d0ea0e40" - )), - B256::from(hex!( - "0000000000000000000000000000000000000000000000000000000000014218" - )), - B256::from(hex!( - "000000000000000000000000e5e7492282fd1e3bfac337a0beccd29b15b7b240" - )), + b256!("0x92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68c"), + b256!("0x00000000000000000000000000000000000000000000000000000000d0ea0e40"), + b256!("0x0000000000000000000000000000000000000000000000000000000000014218"), + b256!("0x000000000000000000000000e5e7492282fd1e3bfac337a0beccd29b15b7b240"), ], Bytes::default(), ) @@ -245,15 +219,11 @@ pub(crate) mod test { }; let log_2 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850af")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850af"), data: LogData::new( vec![ - B256::from(hex!( - "fe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234f" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000007eda7867e0c7d48000" - )), + b256!("0xfe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234f"), + b256!("0x00000000000000000000000000000000000000000000007eda7867e0c7d48000"), ], Bytes::default(), ) @@ -271,21 +241,13 @@ pub(crate) mod test { pub(crate) fn receipt_block_3() -> ReceiptWithBlockNumber { let log_1 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850af")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850af"), data: LogData::new( vec![ - B256::from(hex!( - "92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68c" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000000000000000d101e54b" - )), - B256::from(hex!( - "0000000000000000000000000000000000000000000000000000000000014218" - )), - B256::from(hex!( - "000000000000000000000000fa011d8d6c26f13abe2cefed38226e401b2b8a99" - )), + b256!("0x92e98423f8adac6e64d0608e519fd1cefb861498385c6dee70d58fc926ddc68c"), + b256!("0x00000000000000000000000000000000000000000000000000000000d101e54b"), + b256!("0x0000000000000000000000000000000000000000000000000000000000014218"), + b256!("0x000000000000000000000000fa011d8d6c26f13abe2cefed38226e401b2b8a99"), ], Bytes::default(), ) @@ -293,15 +255,11 @@ pub(crate) mod test { }; let log_2 = Log { - address: Address::from(hex!("8ce8c13d816fe6daf12d6fd9e4952e1fc88850af")), + address: address!("0x8ce8c13d816fe6daf12d6fd9e4952e1fc88850af"), data: LogData::new( vec![ - B256::from(hex!( - "fe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234f" - )), - B256::from(hex!( - "00000000000000000000000000000000000000000000007ed8842f0627748000" - )), + b256!("0xfe25c73e3b9089fac37d55c4c7efcba6f04af04cebd2fc4d6d7dbb07e1e5234f"), + b256!("0x00000000000000000000000000000000000000000000007ed8842f0627748000"), ], Bytes::default(), ) diff --git a/crates/optimism/consensus/src/proof.rs b/crates/optimism/consensus/src/proof.rs index 6745699d6c..22f11cc74c 100644 --- a/crates/optimism/consensus/src/proof.rs +++ b/crates/optimism/consensus/src/proof.rs @@ -194,9 +194,9 @@ mod tests { address: hex!("ddb6dcce6b794415145eb5caa6cd335aeda9c272").into(), data: LogData::new_unchecked(vec![ b256!("0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62"), - b256!("0000000000000000000000009d521a04bee134ff8136d2ec957e5bc8c50394ec"), - b256!("0000000000000000000000000000000000000000000000000000000000000000"), - b256!("0000000000000000000000009d521a04bee134ff8136d2ec957e5bc8c50394ec"), + b256!("0x0000000000000000000000009d521a04bee134ff8136d2ec957e5bc8c50394ec"), + b256!("0x0000000000000000000000000000000000000000000000000000000000000000"), + b256!("0x0000000000000000000000009d521a04bee134ff8136d2ec957e5bc8c50394ec"), ], Bytes::from_static(&hex!("00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001"))) }, @@ -204,8 +204,8 @@ mod tests { address: hex!("ddb6dcce6b794415145eb5caa6cd335aeda9c272").into(), data: LogData::new_unchecked(vec![ b256!("0x0eb774bb9698a73583fe07b6972cf2dcc08d1d97581a22861f45feb86b395820"), - b256!("0000000000000000000000009d521a04bee134ff8136d2ec957e5bc8c50394ec"), - b256!("0000000000000000000000009d521a04bee134ff8136d2ec957e5bc8c50394ec"), + b256!("0x0000000000000000000000009d521a04bee134ff8136d2ec957e5bc8c50394ec"), + b256!("0x0000000000000000000000009d521a04bee134ff8136d2ec957e5bc8c50394ec"), ], Bytes::from_static(&hex!("0000000000000000000000000000000000000000000000000000000000000003"))) }, @@ -222,59 +222,59 @@ mod tests { Log { address: hex!("4200000000000000000000000000000000000006").into(), data: LogData::new_unchecked( vec![ - b256!("ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"), - b256!("000000000000000000000000c3feb4ef4c2a5af77add15c95bd98f6b43640cc8"), - b256!("0000000000000000000000002992607c1614484fe6d865088e5c048f0650afd4"), + b256!("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"), + b256!("0x000000000000000000000000c3feb4ef4c2a5af77add15c95bd98f6b43640cc8"), + b256!("0x0000000000000000000000002992607c1614484fe6d865088e5c048f0650afd4"), ], Bytes::from_static(&hex!("0000000000000000000000000000000000000000000000000018de76816d8000"))) }, Log { address: hex!("cf8e7e6b26f407dee615fc4db18bf829e7aa8c09").into(), data: LogData::new_unchecked( vec![ - b256!("ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"), - b256!("0000000000000000000000002992607c1614484fe6d865088e5c048f0650afd4"), - b256!("0000000000000000000000008dbffe4c8bf3caf5deae3a99b50cfcf3648cbc09"), + b256!("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"), + b256!("0x0000000000000000000000002992607c1614484fe6d865088e5c048f0650afd4"), + b256!("0x0000000000000000000000008dbffe4c8bf3caf5deae3a99b50cfcf3648cbc09"), ], Bytes::from_static(&hex!("000000000000000000000000000000000000000000000002d24d8e9ac1aa79e2"))) }, Log { address: hex!("2992607c1614484fe6d865088e5c048f0650afd4").into(), data: LogData::new_unchecked( vec![ - b256!("1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"), + b256!("0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"), ], Bytes::from_static(&hex!("000000000000000000000000000000000000000000000009bd50642785c15736000000000000000000000000000000000000000000011bb7ac324f724a29bbbf"))) }, Log { address: hex!("2992607c1614484fe6d865088e5c048f0650afd4").into(), data: LogData::new_unchecked( vec![ - b256!("d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822"), - b256!("00000000000000000000000029843613c7211d014f5dd5718cf32bcd314914cb"), - b256!("0000000000000000000000008dbffe4c8bf3caf5deae3a99b50cfcf3648cbc09"), + b256!("0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822"), + b256!("0x00000000000000000000000029843613c7211d014f5dd5718cf32bcd314914cb"), + b256!("0x0000000000000000000000008dbffe4c8bf3caf5deae3a99b50cfcf3648cbc09"), ], Bytes::from_static(&hex!("0000000000000000000000000000000000000000000000000018de76816d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d24d8e9ac1aa79e2"))) }, Log { address: hex!("6d0f8d488b669aa9ba2d0f0b7b75a88bf5051cd3").into(), data: LogData::new_unchecked( vec![ - b256!("ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"), - b256!("0000000000000000000000008dbffe4c8bf3caf5deae3a99b50cfcf3648cbc09"), - b256!("000000000000000000000000c3feb4ef4c2a5af77add15c95bd98f6b43640cc8"), + b256!("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"), + b256!("0x0000000000000000000000008dbffe4c8bf3caf5deae3a99b50cfcf3648cbc09"), + b256!("0x000000000000000000000000c3feb4ef4c2a5af77add15c95bd98f6b43640cc8"), ], Bytes::from_static(&hex!("00000000000000000000000000000000000000000000000014bc73062aea8093"))) }, Log { address: hex!("8dbffe4c8bf3caf5deae3a99b50cfcf3648cbc09").into(), data: LogData::new_unchecked( vec![ - b256!("1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"), + b256!("0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1"), ], Bytes::from_static(&hex!("00000000000000000000000000000000000000000000002f122cfadc1ca82a35000000000000000000000000000000000000000000000665879dc0609945d6d1"))) }, Log { address: hex!("8dbffe4c8bf3caf5deae3a99b50cfcf3648cbc09").into(), data: LogData::new_unchecked( vec![ - b256!("d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822"), - b256!("00000000000000000000000029843613c7211d014f5dd5718cf32bcd314914cb"), - b256!("000000000000000000000000c3feb4ef4c2a5af77add15c95bd98f6b43640cc8"), + b256!("0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822"), + b256!("0x00000000000000000000000029843613c7211d014f5dd5718cf32bcd314914cb"), + b256!("0x000000000000000000000000c3feb4ef4c2a5af77add15c95bd98f6b43640cc8"), ], Bytes::from_static(&hex!("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d24d8e9ac1aa79e200000000000000000000000000000000000000000000000014bc73062aea80930000000000000000000000000000000000000000000000000000000000000000"))) }, @@ -291,29 +291,29 @@ mod tests { Log { address: hex!("ac6564f3718837caadd42eed742d75c12b90a052").into(), data: LogData::new_unchecked( vec![ - b256!("ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"), - b256!("0000000000000000000000000000000000000000000000000000000000000000"), - b256!("000000000000000000000000a4fa7f3fbf0677f254ebdb1646146864c305b76e"), - b256!("000000000000000000000000000000000000000000000000000000000011a1d3"), + b256!("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"), + b256!("0x0000000000000000000000000000000000000000000000000000000000000000"), + b256!("0x000000000000000000000000a4fa7f3fbf0677f254ebdb1646146864c305b76e"), + b256!("0x000000000000000000000000000000000000000000000000000000000011a1d3"), ], Default::default()) }, Log { address: hex!("ac6564f3718837caadd42eed742d75c12b90a052").into(), data: LogData::new_unchecked( vec![ - b256!("9d89e36eadf856db0ad9ffb5a569e07f95634dddd9501141ecf04820484ad0dc"), - b256!("000000000000000000000000a4fa7f3fbf0677f254ebdb1646146864c305b76e"), - b256!("000000000000000000000000000000000000000000000000000000000011a1d3"), + b256!("0x9d89e36eadf856db0ad9ffb5a569e07f95634dddd9501141ecf04820484ad0dc"), + b256!("0x000000000000000000000000a4fa7f3fbf0677f254ebdb1646146864c305b76e"), + b256!("0x000000000000000000000000000000000000000000000000000000000011a1d3"), ], Bytes::from_static(&hex!("00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000037697066733a2f2f516d515141646b33736538396b47716577395256567a316b68643548375562476d4d4a485a62566f386a6d346f4a2f30000000000000000000"))) }, Log { address: hex!("ac6564f3718837caadd42eed742d75c12b90a052").into(), data: LogData::new_unchecked( vec![ - b256!("110d160a1bedeea919a88fbc4b2a9fb61b7e664084391b6ca2740db66fef80fe"), - b256!("00000000000000000000000084d47f6eea8f8d87910448325519d1bb45c2972a"), - b256!("000000000000000000000000a4fa7f3fbf0677f254ebdb1646146864c305b76e"), - b256!("000000000000000000000000000000000000000000000000000000000011a1d3"), + b256!("0x110d160a1bedeea919a88fbc4b2a9fb61b7e664084391b6ca2740db66fef80fe"), + b256!("0x00000000000000000000000084d47f6eea8f8d87910448325519d1bb45c2972a"), + b256!("0x000000000000000000000000a4fa7f3fbf0677f254ebdb1646146864c305b76e"), + b256!("0x000000000000000000000000000000000000000000000000000000000011a1d3"), ], Bytes::from_static(&hex!("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a4fa7f3fbf0677f254ebdb1646146864c305b76e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007717500762343034303661353035646234633961386163316433306335633332303265370000000000000000000000000000000000000000000000000000000000000037697066733a2f2f516d515141646b33736538396b47716577395256567a316b68643548375562476d4d4a485a62566f386a6d346f4a2f30000000000000000000"))) }, @@ -344,6 +344,9 @@ mod tests { }; let receipt = vec![receipt]; let root = calculate_receipt_root_optimism(&receipt, BASE_SEPOLIA.as_ref(), 0); - assert_eq!(root, b256!("fe70ae4a136d98944951b2123859698d59ad251a381abc9960fa81cae3d0d4a0")); + assert_eq!( + root, + b256!("0xfe70ae4a136d98944951b2123859698d59ad251a381abc9960fa81cae3d0d4a0") + ); } } diff --git a/crates/optimism/evm/src/execute.rs b/crates/optimism/evm/src/execute.rs index f2ccbf9da3..8c3235bb89 100644 --- a/crates/optimism/evm/src/execute.rs +++ b/crates/optimism/evm/src/execute.rs @@ -383,7 +383,7 @@ mod tests { gas_limit: 1_000_000, gas_used: 42_000, receipts_root: b256!( - "83465d1e7d01578c0d609be33570f91242f013e9e295b0879905346abbd63731" + "0x83465d1e7d01578c0d609be33570f91242f013e9e295b0879905346abbd63731" ), ..Default::default() }; @@ -459,7 +459,7 @@ mod tests { gas_limit: 1_000_000, gas_used: 42_000, receipts_root: b256!( - "fffc85c4004fd03c7bfbe5491fae98a7473126c099ac11e8286fd0013f15f908" + "0xfffc85c4004fd03c7bfbe5491fae98a7473126c099ac11e8286fd0013f15f908" ), ..Default::default() }; diff --git a/crates/primitives-traits/src/transaction/signature.rs b/crates/primitives-traits/src/transaction/signature.rs index 06bbb6db14..acc77fe449 100644 --- a/crates/primitives-traits/src/transaction/signature.rs +++ b/crates/primitives-traits/src/transaction/signature.rs @@ -6,7 +6,7 @@ pub use alloy_primitives::PrimitiveSignature as Signature; #[cfg(test)] mod tests { use crate::crypto::secp256k1::recover_signer; - use alloy_primitives::{Address, PrimitiveSignature as Signature, B256, U256}; + use alloy_primitives::{address, PrimitiveSignature as Signature, B256, U256}; use std::str::FromStr; #[test] @@ -26,7 +26,7 @@ mod tests { B256::from_str("daf5a779ae972f972197303d7b574746c7ef83eadac0f2791ad23db92e4c8e53") .unwrap(); let signer = recover_signer(&signature, hash).unwrap(); - let expected = Address::from_str("0x9d8a62f656a8d1615c1294fd71e9cfb3e4855a4f").unwrap(); + let expected = address!("0x9d8a62f656a8d1615c1294fd71e9cfb3e4855a4f"); assert_eq!(expected, signer); } } diff --git a/crates/rpc/rpc-eth-types/src/error/mod.rs b/crates/rpc/rpc-eth-types/src/error/mod.rs index e1cfa09d16..14ad0c35e3 100644 --- a/crates/rpc/rpc-eth-types/src/error/mod.rs +++ b/crates/rpc/rpc-eth-types/src/error/mod.rs @@ -823,13 +823,13 @@ mod tests { fn header_not_found_message() { let err: jsonrpsee_types::error::ErrorObject<'static> = EthApiError::HeaderNotFound(BlockId::hash(b256!( - "1a15e3c30cf094a99826869517b16d185d45831d3a494f01030b0001a9d3ebb9" + "0x1a15e3c30cf094a99826869517b16d185d45831d3a494f01030b0001a9d3ebb9" ))) .into(); assert_eq!(err.message(), "block not found: hash 0x1a15e3c30cf094a99826869517b16d185d45831d3a494f01030b0001a9d3ebb9"); let err: jsonrpsee_types::error::ErrorObject<'static> = EthApiError::HeaderNotFound(BlockId::hash_canonical(b256!( - "1a15e3c30cf094a99826869517b16d185d45831d3a494f01030b0001a9d3ebb9" + "0x1a15e3c30cf094a99826869517b16d185d45831d3a494f01030b0001a9d3ebb9" ))) .into(); assert_eq!(err.message(), "block not found: canonical hash 0x1a15e3c30cf094a99826869517b16d185d45831d3a494f01030b0001a9d3ebb9"); diff --git a/crates/storage/db/src/implementation/mdbx/mod.rs b/crates/storage/db/src/implementation/mdbx/mod.rs index c92ddb841e..6c7967a9c7 100644 --- a/crates/storage/db/src/implementation/mdbx/mod.rs +++ b/crates/storage/db/src/implementation/mdbx/mod.rs @@ -503,7 +503,7 @@ mod tests { AccountChangeSets, }; use alloy_consensus::Header; - use alloy_primitives::{Address, B256, U256}; + use alloy_primitives::{address, Address, B256, U256}; use reth_db_api::{ cursor::{DbDupCursorRO, DbDupCursorRW, ReverseWalker, Walker}, models::{AccountBeforeTx, IntegerList, ShardedKey}, @@ -1341,7 +1341,7 @@ mod tests { #[test] fn db_sharded_key() { let db: Arc = create_test_db(DatabaseEnvKind::RW); - let real_key = Address::from_str("0xa2c122be93b0074270ebee7f6b7292c7deb45047").unwrap(); + let real_key = address!("0xa2c122be93b0074270ebee7f6b7292c7deb45047"); for i in 1..5 { let key = ShardedKey::new(real_key, i * 100); diff --git a/crates/trie/db/tests/proof.rs b/crates/trie/db/tests/proof.rs index 98086cae38..cbb07ea5ca 100644 --- a/crates/trie/db/tests/proof.rs +++ b/crates/trie/db/tests/proof.rs @@ -1,7 +1,7 @@ #![allow(missing_docs)] use alloy_consensus::EMPTY_ROOT_HASH; -use alloy_primitives::{keccak256, Address, Bytes, B256, U256}; +use alloy_primitives::{address, b256, keccak256, Address, Bytes, B256, U256}; use alloy_rlp::EMPTY_STRING_CODE; use reth_chainspec::{Chain, ChainSpec, HOLESKY, MAINNET}; use reth_primitives_traits::Account; @@ -102,7 +102,7 @@ fn testspec_empty_storage_proof() { let factory = create_test_provider_factory(); let root = insert_genesis(&factory, TEST_SPEC.clone()).unwrap(); - let target = Address::from_str("0x1ed9b1dd266b607ee278726d324b855a093394a6").unwrap(); + let target = address!("0x1ed9b1dd266b607ee278726d324b855a093394a6"); let slots = Vec::from([B256::with_last_byte(1), B256::with_last_byte(3)]); let provider = factory.provider().unwrap(); @@ -129,7 +129,7 @@ fn mainnet_genesis_account_proof() { // Address from mainnet genesis allocation. // keccak256 - `0xcf67b71c90b0d523dd5004cf206f325748da347685071b34812e21801f5270c4` - let target = Address::from_str("0x000d836201318ec6899a67540690382780743280").unwrap(); + let target = address!("0x000d836201318ec6899a67540690382780743280"); // `cast proof 0x000d836201318ec6899a67540690382780743280 --block 0` let expected_account_proof = convert_to_proof([ @@ -154,7 +154,7 @@ fn mainnet_genesis_account_proof_nonexistent() { // Address that does not exist in mainnet genesis allocation. // keccak256 - `0x18f415ffd7f66bb1924d90f0e82fb79ca8c6d8a3473cd9a95446a443b9db1761` - let target = Address::from_str("0x000d836201318ec6899a67540690382780743281").unwrap(); + let target = address!("0x000d836201318ec6899a67540690382780743281"); // `cast proof 0x000d836201318ec6899a67540690382780743281 --block 0` let expected_account_proof = convert_to_proof([ @@ -175,7 +175,7 @@ fn holesky_deposit_contract_proof() { let factory = create_test_provider_factory(); let root = insert_genesis(&factory, HOLESKY.clone()).unwrap(); - let target = Address::from_str("0x4242424242424242424242424242424242424242").unwrap(); + let target = address!("0x4242424242424242424242424242424242424242"); // existent let slot_22 = B256::from_str("0x0000000000000000000000000000000000000000000000000000000000000022") @@ -198,9 +198,9 @@ fn holesky_deposit_contract_proof() { info: Some(Account { balance: U256::ZERO, nonce: 0, - bytecode_hash: Some(B256::from_str("0x2034f79e0e33b0ae6bef948532021baceb116adf2616478703bec6b17329f1cc").unwrap()) + bytecode_hash: Some(b256!("0x2034f79e0e33b0ae6bef948532021baceb116adf2616478703bec6b17329f1cc")) }), - storage_root: B256::from_str("0x556a482068355939c95a3412bdb21213a301483edb1b64402fb66ac9f3583599").unwrap(), + storage_root: b256!("0x556a482068355939c95a3412bdb21213a301483edb1b64402fb66ac9f3583599"), proof: convert_to_proof([ "0xf90211a0ea92fb71507739d5afe328d607b2c5e98322b7aa7cdfeccf817543058b54af70a0bd0c2525b5bee47abf7120c9e01ec3249699d687f80ebb96ed9ad9de913dbab0a0ab4b14b89416eb23c6b64204fa45cfcb39d4220016a9cd0815ebb751fe45eb71a0986ae29c2148b9e61f9a7543f44a1f8d029f1c5095b359652e9ec94e64b5d393a0555d54aa23ed990b0488153418637df7b2c878b604eb761aa2673b609937b0eba0140afb6a3909cc6047b3d44af13fc83f161a7e4c4ddba430a2841862912eb222a031b1185c1f455022d9e42ce04a71f174eb9441b1ada67449510500f4d85b3b22a051ecd01e18113b23cc65e62f67d69b33ee15d20bf81a6b524f7df90ded00ca15a0703769d6a7befad000bc2b4faae3e41b809b1b1241fe2964262554e7e3603488a0e5de7f600e4e6c3c3e5630e0c66f50506a17c9715642fccb63667e81397bbf93a095f783cd1d464a60e3c8adcadc28c6eb9fec7306664df39553be41dccc909606a04225fda3b89f0c59bf40129d1d5e5c3bf67a2129f0c55e53ffdd2cebf185d644a078e0f7fd3ae5a9bc90f66169614211b48fe235eb64818b3935d3e69c53523b9aa0a870e00e53ebaa1e9ec16e5f36606fd7d21d3a3c96894c0a2a23550949d4fdf7a0809226b69cee1f4f22ced1974e7805230da1909036a49a7652428999431afac2a0f11593b2407e86e11997325d8df2d22d937bbe0aef8302ba40c6be0601b04fc380", "0xf901f1a09da7d9755fe0c558b3c3de9fdcdf9f28ae641f38c9787b05b73ab22ae53af3e2a0d9990bf0b810d1145ecb2b011fd68c63cc85564e6724166fd4a9520180706e5fa05f5f09855df46330aa310e8d6be5fb82d1a4b975782d9b29acf06ac8d3e72b1ca0ca976997ddaf06f18992f6207e4f6a05979d07acead96568058789017cc6d06ba04d78166b48044fdc28ed22d2fd39c8df6f8aaa04cb71d3a17286856f6893ff83a004f8c7cc4f1335182a1709fb28fc67d52e59878480210abcba864d5d1fd4a066a0fc3b71c33e2e6b77c5e494c1db7fdbb447473f003daf378c7a63ba9bf3f0049d80a07b8e7a21c1178d28074f157b50fca85ee25c12568ff8e9706dcbcdacb77bf854a0973274526811393ea0bf4811ca9077531db00d06b86237a2ecd683f55ba4bcb0a03a93d726d7487874e51b52d8d534c63aa2a689df18e3b307c0d6cb0a388b00f3a06aa67101d011d1c22fe739ef83b04b5214a3e2f8e1a2625d8bfdb116b447e86fa02dd545b33c62d33a183e127a08a4767fba891d9f3b94fc20a2ca02600d6d1fffa0f3b039a4f32349e85c782d1164c1890e5bf16badc9ee4cf827db6afd2229dde6a0d9240a9d2d5851d05a97ff3305334dfdb0101e1e321fc279d2bb3cad6afa8fc8a01b69c6ab5173de8a8ec53a6ebba965713a4cc7feb86cb3e230def37c230ca2b280",