From 8c707c5befe47d7e22cdfce748207dec18f40bfe Mon Sep 17 00:00:00 2001 From: Julius Naperkowski Date: Mon, 23 Nov 2015 00:28:49 +0100 Subject: [PATCH 1/2] Added support for mempool messages --- src/network/message.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/network/message.rs b/src/network/message.rs index a86e5bc..0028abb 100644 --- a/src/network/message.rs +++ b/src/network/message.rs @@ -98,6 +98,8 @@ pub enum NetworkMessage { GetBlocks(message_blockdata::GetBlocksMessage), /// `getheaders` GetHeaders(message_blockdata::GetHeadersMessage), + /// `mempool` + MemPool, /// tx Tx(transaction::Transaction), /// `block` @@ -105,7 +107,6 @@ pub enum NetworkMessage { /// `headers` Headers(Vec), // TODO: getaddr, - // TODO: mempool, // TODO: checkorder, // TODO: submitorder, // TODO: reply, @@ -129,6 +130,7 @@ impl RawNetworkMessage { NetworkMessage::NotFound(_) => "notfound", NetworkMessage::GetBlocks(_) => "getblocks", NetworkMessage::GetHeaders(_) => "getheaders", + NetworkMessage::MemPool => "mempool", NetworkMessage::Tx(_) => "tx", NetworkMessage::Block(_) => "block", NetworkMessage::Headers(_) => "headers", @@ -151,6 +153,7 @@ impl ConsensusEncodable for RawNetworkMessage { NetworkMessage::NotFound(ref dat) => serialize(dat), NetworkMessage::GetBlocks(ref dat) => serialize(dat), NetworkMessage::GetHeaders(ref dat) => serialize(dat), + NetworkMessage::MemPool => Ok(vec![]), NetworkMessage::Tx(ref dat) => serialize(dat), NetworkMessage::Block(ref dat) => serialize(dat), NetworkMessage::Headers(ref dat) => serialize(dat), @@ -179,6 +182,7 @@ impl> ConsensusDecodable for RawNetworkMe "notfound" => NetworkMessage::NotFound(try!(propagate_err("notfound".to_owned(), ConsensusDecodable::consensus_decode(&mut mem_d)))), "getblocks" => NetworkMessage::GetBlocks(try!(propagate_err("getblocks".to_owned(), ConsensusDecodable::consensus_decode(&mut mem_d)))), "getheaders" => NetworkMessage::GetHeaders(try!(propagate_err("getheaders".to_owned(), ConsensusDecodable::consensus_decode(&mut mem_d)))), + "mempool" => NetworkMessage::MemPool, "block" => NetworkMessage::Block(try!(propagate_err("block".to_owned(), ConsensusDecodable::consensus_decode(&mut mem_d)))), "headers" => NetworkMessage::Headers(try!(propagate_err("headers".to_owned(), ConsensusDecodable::consensus_decode(&mut mem_d)))), "ping" => NetworkMessage::Ping(try!(propagate_err("ping".to_owned(), ConsensusDecodable::consensus_decode(&mut mem_d)))), @@ -231,5 +235,15 @@ mod test { 0x08, 0x00, 0x00, 0x00, 0x24, 0x67, 0xf1, 0x1d, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])); } + + + #[test] + fn serialize_mempool_test() { + assert_eq!(serialize(&RawNetworkMessage { magic: 0xd9b4bef9, payload: NetworkMessage::MemPool }).ok(), + Some(vec![0xf9, 0xbe, 0xb4, 0xd9, 0x6d, 0x65, 0x6d, 0x70, + 0x6f, 0x6f, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf6, 0xe0, 0xe2])); + } + } From 51f389e0b240d13cc548a3f9eb504f1aceab2035 Mon Sep 17 00:00:00 2001 From: Julius Naperkowski Date: Mon, 23 Nov 2015 18:04:57 +0100 Subject: [PATCH 2/2] Bump minor version to 0.4.3 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index cb5f9a2..69e52f4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "bitcoin" -version = "0.4.2" +version = "0.4.3" authors = ["Andrew Poelstra "] license = "CC0-1.0" homepage = "https://github.com/apoelstra/rust-bitcoin/"