diff --git a/msgblock_test.go b/msgblock_test.go
index 6a16ed7d8..ed18cfcfc 100644
--- a/msgblock_test.go
+++ b/msgblock_test.go
@@ -291,6 +291,73 @@ func TestBlockWireErrors(t *testing.T) {
 	}
 }
 
+// TestBlockSerialize tests MsgBlock serialize and deserialize.
+func TestBlockSerialize(t *testing.T) {
+	tests := []struct {
+		in     *btcwire.MsgBlock // Message to encode
+		out    *btcwire.MsgBlock // Expected decoded message
+		buf    []byte            // Serialized data
+		txLocs []btcwire.TxLoc   // Expected transaction locations
+	}{
+		{
+			&blockOne,
+			&blockOne,
+			blockOneBytes,
+			blockOneTxLocs,
+		},
+	}
+
+	t.Logf("Running %d tests", len(tests))
+	for i, test := range tests {
+		// Serialize the block.
+		var buf bytes.Buffer
+		err := test.in.Serialize(&buf)
+		if err != nil {
+			t.Errorf("Serialize #%d error %v", i, err)
+			continue
+		}
+		if !bytes.Equal(buf.Bytes(), test.buf) {
+			t.Errorf("Serialize #%d\n got: %s want: %s", i,
+				spew.Sdump(buf.Bytes()), spew.Sdump(test.buf))
+			continue
+		}
+
+		// Deserialize the block.
+		var block btcwire.MsgBlock
+		rbuf := bytes.NewBuffer(test.buf)
+		err = block.Deserialize(rbuf)
+		if err != nil {
+			t.Errorf("Deserialize #%d error %v", i, err)
+			continue
+		}
+		if !reflect.DeepEqual(&block, test.out) {
+			t.Errorf("Deserialize #%d\n got: %s want: %s", i,
+				spew.Sdump(&block), spew.Sdump(test.out))
+			continue
+		}
+
+		// Deserialize the block while gathering transaction location
+		// information.
+		var txLocBlock btcwire.MsgBlock
+		rbuf = bytes.NewBuffer(test.buf)
+		txLocs, err := txLocBlock.DeserializeTxLoc(rbuf)
+		if err != nil {
+			t.Errorf("DeserializeTxLoc #%d error %v", i, err)
+			continue
+		}
+		if !reflect.DeepEqual(&txLocBlock, test.out) {
+			t.Errorf("DeserializeTxLoc #%d\n got: %s want: %s", i,
+				spew.Sdump(&txLocBlock), spew.Sdump(test.out))
+			continue
+		}
+		if !reflect.DeepEqual(txLocs, test.txLocs) {
+			t.Errorf("DeserializeTxLoc #%d\n got: %s want: %s", i,
+				spew.Sdump(txLocs), spew.Sdump(test.txLocs))
+			continue
+		}
+	}
+}
+
 var blockOne = btcwire.MsgBlock{
 	Header: btcwire.BlockHeader{
 		Version: 1,
diff --git a/msgtx_test.go b/msgtx_test.go
index d7149e089..9939fc7c0 100644
--- a/msgtx_test.go
+++ b/msgtx_test.go
@@ -119,6 +119,7 @@ func TestTx(t *testing.T) {
 	return
 }
 
+// TestTxSha tests the ability to generate the hash of a transaction accurately.
 func TestTxSha(t *testing.T) {
 	pver := btcwire.ProtocolVersion
 
@@ -369,6 +370,68 @@ func TestTxWireErrors(t *testing.T) {
 	}
 }
 
+// TestTxSerialize tests MsgTx serialize and deserialize.
+func TestTxSerialize(t *testing.T) {
+	noTx := btcwire.NewMsgTx()
+	noTx.Version = 1
+	noTxEncoded := []byte{
+		0x01, 0x00, 0x00, 0x00, // Version
+		0x00,                   // Varint for number of input transactions
+		0x00,                   // Varint for number of output transactions
+		0x00, 0x00, 0x00, 0x00, // Lock time
+	}
+
+	tests := []struct {
+		in  *btcwire.MsgTx // Message to encode
+		out *btcwire.MsgTx // Expected decoded message
+		buf []byte         // Serialized data
+	}{
+		// No transactions.
+		{
+			noTx,
+			noTx,
+			noTxEncoded,
+		},
+
+		// Multiple transactions.
+		{
+			multiTx,
+			multiTx,
+			multiTxEncoded,
+		},
+	}
+
+	t.Logf("Running %d tests", len(tests))
+	for i, test := range tests {
+		// Serialize the transaction.
+		var buf bytes.Buffer
+		err := test.in.Serialize(&buf)
+		if err != nil {
+			t.Errorf("Serialize #%d error %v", i, err)
+			continue
+		}
+		if !bytes.Equal(buf.Bytes(), test.buf) {
+			t.Errorf("Serialize #%d\n got: %s want: %s", i,
+				spew.Sdump(buf.Bytes()), spew.Sdump(test.buf))
+			continue
+		}
+
+		// Deserialize the transaction.
+		var tx btcwire.MsgTx
+		rbuf := bytes.NewBuffer(test.buf)
+		err = tx.Deserialize(rbuf)
+		if err != nil {
+			t.Errorf("Deserialize #%d error %v", i, err)
+			continue
+		}
+		if !reflect.DeepEqual(&tx, test.out) {
+			t.Errorf("Deserialize #%d\n got: %s want: %s", i,
+				spew.Sdump(&tx), spew.Sdump(test.out))
+			continue
+		}
+	}
+}
+
 // multiTx is a MsgTx with an input and output and used in various tests.
 var multiTx = &btcwire.MsgTx{
 	Version: 1,
diff --git a/test_coverage.txt b/test_coverage.txt
index fce686214..547351892 100644
--- a/test_coverage.txt
+++ b/test_coverage.txt
@@ -3,151 +3,156 @@ github.com/conformal/btcwire/message.go		 ReadMessage				 100.00% (37/37)
 github.com/conformal/btcwire/message.go		 WriteMessage				 100.00% (31/31)
 github.com/conformal/btcwire/msgtx.go		 MsgTx.BtcDecode			 100.00% (25/25)
 github.com/conformal/btcwire/msgversion.go	 MsgVersion.BtcDecode			 100.00% (25/25)
-github.com/conformal/btcwire/msgtx.go		 MsgTx.Copy				 100.00% (24/24)
 github.com/conformal/btcwire/common.go		 readVarInt				 100.00% (24/24)
+github.com/conformal/btcwire/msgtx.go		 MsgTx.Copy				 100.00% (24/24)
 github.com/conformal/btcwire/msgtx.go		 MsgTx.BtcEncode			 100.00% (23/23)
 github.com/conformal/btcwire/msgversion.go	 MsgVersion.BtcEncode			 100.00% (22/22)
-github.com/conformal/btcwire/netaddress.go	 readNetAddress				 100.00% (20/20)
 github.com/conformal/btcwire/message.go		 makeEmptyMessage			 100.00% (20/20)
+github.com/conformal/btcwire/netaddress.go	 readNetAddress				 100.00% (20/20)
 github.com/conformal/btcwire/msggetheaders.go	 MsgGetHeaders.BtcDecode		 100.00% (19/19)
 github.com/conformal/btcwire/msggetblocks.go	 MsgGetBlocks.BtcDecode			 100.00% (19/19)
-github.com/conformal/btcwire/msggetblocks.go	 MsgGetBlocks.BtcEncode			 100.00% (18/18)
 github.com/conformal/btcwire/msggetheaders.go	 MsgGetHeaders.BtcEncode		 100.00% (18/18)
+github.com/conformal/btcwire/msggetblocks.go	 MsgGetBlocks.BtcEncode			 100.00% (18/18)
 github.com/conformal/btcwire/msgtx.go		 readTxIn				 100.00% (17/17)
 github.com/conformal/btcwire/msgheaders.go	 MsgHeaders.BtcDecode			 100.00% (16/16)
-github.com/conformal/btcwire/msgblock.go	 MsgBlock.BtcDecodeTxLoc		 100.00% (16/16)
 github.com/conformal/btcwire/common.go		 writeVarInt				 100.00% (16/16)
-github.com/conformal/btcwire/msgaddr.go		 MsgAddr.BtcEncode			 100.00% (15/15)
-github.com/conformal/btcwire/msgheaders.go	 MsgHeaders.BtcEncode			 100.00% (15/15)
 github.com/conformal/btcwire/shahash.go		 NewShaHashFromStr			 100.00% (15/15)
+github.com/conformal/btcwire/msgaddr.go		 MsgAddr.BtcEncode			 100.00% (15/15)
+github.com/conformal/btcwire/msgblock.go	 MsgBlock.BtcDecodeTxLoc		 100.00% (15/15)
+github.com/conformal/btcwire/msgheaders.go	 MsgHeaders.BtcEncode			 100.00% (15/15)
 github.com/conformal/btcwire/msgtx.go		 writeTxIn				 100.00% (15/15)
 github.com/conformal/btcwire/netaddress.go	 writeNetAddress			 100.00% (14/14)
 github.com/conformal/btcwire/msginv.go		 MsgInv.BtcDecode			 100.00% (13/13)
-github.com/conformal/btcwire/msggetdata.go	 MsgGetData.BtcDecode			 100.00% (13/13)
 github.com/conformal/btcwire/msgnotfound.go	 MsgNotFound.BtcDecode			 100.00% (13/13)
+github.com/conformal/btcwire/msggetdata.go	 MsgGetData.BtcDecode			 100.00% (13/13)
 github.com/conformal/btcwire/msgaddr.go		 MsgAddr.BtcDecode			 100.00% (13/13)
-github.com/conformal/btcwire/msgnotfound.go	 MsgNotFound.BtcEncode			 100.00% (12/12)
-github.com/conformal/btcwire/msggetdata.go	 MsgGetData.BtcEncode			 100.00% (12/12)
-github.com/conformal/btcwire/protocol.go	 ServiceFlag.String			 100.00% (12/12)
-github.com/conformal/btcwire/msginv.go		 MsgInv.BtcEncode			 100.00% (12/12)
 github.com/conformal/btcwire/msgtx.go		 readTxOut				 100.00% (12/12)
+github.com/conformal/btcwire/msginv.go		 MsgInv.BtcEncode			 100.00% (12/12)
+github.com/conformal/btcwire/protocol.go	 ServiceFlag.String			 100.00% (12/12)
+github.com/conformal/btcwire/msggetdata.go	 MsgGetData.BtcEncode			 100.00% (12/12)
+github.com/conformal/btcwire/msgnotfound.go	 MsgNotFound.BtcEncode			 100.00% (12/12)
 github.com/conformal/btcwire/msgtx.go		 writeTxOut				 100.00% (11/11)
-github.com/conformal/btcwire/blockheader.go	 readBlockHeader			 100.00% (10/10)
-github.com/conformal/btcwire/message.go		 discardInput				 100.00% (10/10)
 github.com/conformal/btcwire/msgblock.go	 MsgBlock.BtcDecode			 100.00% (10/10)
+github.com/conformal/btcwire/message.go		 discardInput				 100.00% (10/10)
+github.com/conformal/btcwire/blockheader.go	 readBlockHeader			 100.00% (10/10)
 github.com/conformal/btcwire/msgblock.go	 MsgBlock.BtcEncode			 100.00% (9/9)
-github.com/conformal/btcwire/common.go		 readVarString				 100.00% (8/8)
 github.com/conformal/btcwire/blockheader.go	 writeBlockHeader			 100.00% (8/8)
-github.com/conformal/btcwire/msgalert.go	 MsgAlert.BtcDecode			 100.00% (8/8)
 github.com/conformal/btcwire/msgalert.go	 MsgAlert.BtcEncode			 100.00% (8/8)
-github.com/conformal/btcwire/msgpong.go		 MsgPong.BtcEncode			 100.00% (7/7)
-github.com/conformal/btcwire/msgpong.go		 MsgPong.BtcDecode			 100.00% (7/7)
-github.com/conformal/btcwire/msgversion.go	 NewMsgVersionFromConn			 100.00% (7/7)
-github.com/conformal/btcwire/message.go		 readMessageHeader			 100.00% (7/7)
-github.com/conformal/btcwire/common.go		 DoubleSha256				 100.00% (7/7)
+github.com/conformal/btcwire/msgalert.go	 MsgAlert.BtcDecode			 100.00% (8/8)
+github.com/conformal/btcwire/common.go		 readVarString				 100.00% (8/8)
 github.com/conformal/btcwire/common.go		 writeVarString				 100.00% (7/7)
+github.com/conformal/btcwire/msgpong.go		 MsgPong.BtcDecode			 100.00% (7/7)
+github.com/conformal/btcwire/msgpong.go		 MsgPong.BtcEncode			 100.00% (7/7)
+github.com/conformal/btcwire/message.go		 readMessageHeader			 100.00% (7/7)
+github.com/conformal/btcwire/msgversion.go	 NewMsgVersionFromConn			 100.00% (7/7)
 github.com/conformal/btcwire/common.go		 randomUint64				 100.00% (7/7)
-github.com/conformal/btcwire/msgping.go		 MsgPing.BtcDecode			 100.00% (5/5)
-github.com/conformal/btcwire/msgnotfound.go	 MsgNotFound.AddInvVect			 100.00% (5/5)
-github.com/conformal/btcwire/msgping.go		 MsgPing.BtcEncode			 100.00% (5/5)
+github.com/conformal/btcwire/common.go		 DoubleSha256				 100.00% (7/7)
+github.com/conformal/btcwire/msgheaders.go	 MsgHeaders.AddBlockHeader		 100.00% (5/5)
+github.com/conformal/btcwire/shahash.go		 NewShaHash				 100.00% (5/5)
+github.com/conformal/btcwire/msginv.go		 MsgInv.AddInvVect			 100.00% (5/5)
+github.com/conformal/btcwire/msgaddr.go		 MsgAddr.AddAddress			 100.00% (5/5)
+github.com/conformal/btcwire/msgaddr.go		 MsgAddr.AddAddresses			 100.00% (5/5)
+github.com/conformal/btcwire/shahash.go		 ShaHash.SetBytes			 100.00% (5/5)
+github.com/conformal/btcwire/blockheader.go	 BlockHeader.BlockSha			 100.00% (5/5)
+github.com/conformal/btcwire/netaddress.go	 NewNetAddress				 100.00% (5/5)
 github.com/conformal/btcwire/msgblock.go	 MsgBlock.TxShas			 100.00% (5/5)
 github.com/conformal/btcwire/common.go		 readElements				 100.00% (5/5)
-github.com/conformal/btcwire/msgtx.go		 MsgTx.TxSha				 100.00% (5/5)
-github.com/conformal/btcwire/blockheader.go	 BlockHeader.BlockSha			 100.00% (5/5)
-github.com/conformal/btcwire/msggetblocks.go	 MsgGetBlocks.AddBlockLocatorHash	 100.00% (5/5)
-github.com/conformal/btcwire/msggetdata.go	 MsgGetData.AddInvVect			 100.00% (5/5)
-github.com/conformal/btcwire/netaddress.go	 NewNetAddress				 100.00% (5/5)
-github.com/conformal/btcwire/shahash.go		 ShaHash.SetBytes			 100.00% (5/5)
-github.com/conformal/btcwire/shahash.go		 NewShaHash				 100.00% (5/5)
-github.com/conformal/btcwire/msgaddr.go		 MsgAddr.AddAddress			 100.00% (5/5)
-github.com/conformal/btcwire/msggetheaders.go	 MsgGetHeaders.AddBlockLocatorHash	 100.00% (5/5)
-github.com/conformal/btcwire/msgaddr.go		 MsgAddr.AddAddresses			 100.00% (5/5)
-github.com/conformal/btcwire/msgheaders.go	 MsgHeaders.AddBlockHeader		 100.00% (5/5)
 github.com/conformal/btcwire/common.go		 writeElements				 100.00% (5/5)
-github.com/conformal/btcwire/msginv.go		 MsgInv.AddInvVect			 100.00% (5/5)
-github.com/conformal/btcwire/msgpong.go		 MsgPong.MaxPayloadLength		 100.00% (4/4)
+github.com/conformal/btcwire/msgtx.go		 MsgTx.TxSha				 100.00% (5/5)
+github.com/conformal/btcwire/msggetblocks.go	 MsgGetBlocks.AddBlockLocatorHash	 100.00% (5/5)
+github.com/conformal/btcwire/msgping.go		 MsgPing.BtcEncode			 100.00% (5/5)
+github.com/conformal/btcwire/msgping.go		 MsgPing.BtcDecode			 100.00% (5/5)
+github.com/conformal/btcwire/msggetdata.go	 MsgGetData.AddInvVect			 100.00% (5/5)
+github.com/conformal/btcwire/msgnotfound.go	 MsgNotFound.AddInvVect			 100.00% (5/5)
+github.com/conformal/btcwire/msggetheaders.go	 MsgGetHeaders.AddBlockLocatorHash	 100.00% (5/5)
+github.com/conformal/btcwire/msgtx.go		 writeOutPoint				 100.00% (4/4)
+github.com/conformal/btcwire/shahash.go		 ShaHash.String				 100.00% (4/4)
+github.com/conformal/btcwire/msgmempool.go	 MsgMemPool.BtcEncode			 100.00% (4/4)
+github.com/conformal/btcwire/invvect.go		 readInvVect				 100.00% (4/4)
+github.com/conformal/btcwire/msgtx.go		 readOutPoint				 100.00% (4/4)
 github.com/conformal/btcwire/netaddress.go	 maxNetAddressPayload			 100.00% (4/4)
 github.com/conformal/btcwire/invvect.go		 writeInvVect				 100.00% (4/4)
-github.com/conformal/btcwire/msgtx.go		 writeOutPoint				 100.00% (4/4)
-github.com/conformal/btcwire/invvect.go		 readInvVect				 100.00% (4/4)
-github.com/conformal/btcwire/msgping.go		 MsgPing.MaxPayloadLength		 100.00% (4/4)
-github.com/conformal/btcwire/msgmempool.go	 MsgMemPool.BtcEncode			 100.00% (4/4)
-github.com/conformal/btcwire/shahash.go		 ShaHash.String				 100.00% (4/4)
-github.com/conformal/btcwire/msgtx.go		 readOutPoint				 100.00% (4/4)
 github.com/conformal/btcwire/msgmempool.go	 MsgMemPool.BtcDecode			 100.00% (4/4)
-github.com/conformal/btcwire/netaddress.go	 NetAddress.HasService			 100.00% (3/3)
-github.com/conformal/btcwire/msgversion.go	 MsgVersion.HasService			 100.00% (3/3)
-github.com/conformal/btcwire/msgaddr.go		 MsgAddr.MaxPayloadLength		 100.00% (3/3)
+github.com/conformal/btcwire/msgping.go		 MsgPing.MaxPayloadLength		 100.00% (4/4)
+github.com/conformal/btcwire/msgpong.go		 MsgPong.MaxPayloadLength		 100.00% (4/4)
 github.com/conformal/btcwire/invvect.go		 InvType.String				 100.00% (3/3)
-github.com/conformal/btcwire/msgblock.go	 MsgBlock.AddTransaction		 100.00% (3/3)
 github.com/conformal/btcwire/error.go		 MessageError.Error			 100.00% (3/3)
+github.com/conformal/btcwire/msgaddr.go		 MsgAddr.MaxPayloadLength		 100.00% (3/3)
+github.com/conformal/btcwire/msgblock.go	 MsgBlock.AddTransaction		 100.00% (3/3)
+github.com/conformal/btcwire/msgversion.go	 MsgVersion.HasService			 100.00% (3/3)
+github.com/conformal/btcwire/netaddress.go	 NetAddress.HasService			 100.00% (3/3)
 github.com/conformal/btcwire/shahash.go		 ShaHash.Bytes				 100.00% (3/3)
 github.com/conformal/btcwire/netaddress.go	 NetAddress.SetAddress			 100.00% (2/2)
 github.com/conformal/btcwire/msgblock.go	 MsgBlock.ClearTransactions		 100.00% (2/2)
-github.com/conformal/btcwire/msgheaders.go	 MsgHeaders.Command			 100.00% (1/1)
-github.com/conformal/btcwire/blockheader.go	 NewBlockHeader				 100.00% (1/1)
-github.com/conformal/btcwire/common.go		 readElement				 100.00% (1/1)
-github.com/conformal/btcwire/common.go		 writeElement				 100.00% (1/1)
-github.com/conformal/btcwire/common.go		 RandomUint64				 100.00% (1/1)
-github.com/conformal/btcwire/error.go		 messageError				 100.00% (1/1)
-github.com/conformal/btcwire/msgaddr.go		 MsgAddr.ClearAddresses			 100.00% (1/1)
-github.com/conformal/btcwire/msgaddr.go		 MsgAddr.Command			 100.00% (1/1)
-github.com/conformal/btcwire/msgaddr.go		 NewMsgAddr				 100.00% (1/1)
-github.com/conformal/btcwire/msgalert.go	 MsgAlert.Command			 100.00% (1/1)
-github.com/conformal/btcwire/msgalert.go	 MsgAlert.MaxPayloadLength		 100.00% (1/1)
-github.com/conformal/btcwire/msgalert.go	 NewMsgAlert				 100.00% (1/1)
-github.com/conformal/btcwire/msgblock.go	 MsgBlock.Command			 100.00% (1/1)
-github.com/conformal/btcwire/msgblock.go	 MsgBlock.MaxPayloadLength		 100.00% (1/1)
-github.com/conformal/btcwire/msgblock.go	 MsgBlock.BlockSha			 100.00% (1/1)
-github.com/conformal/btcwire/msgblock.go	 NewMsgBlock				 100.00% (1/1)
-github.com/conformal/btcwire/msggetaddr.go	 MsgGetAddr.BtcDecode			 100.00% (1/1)
-github.com/conformal/btcwire/msggetaddr.go	 MsgGetAddr.BtcEncode			 100.00% (1/1)
-github.com/conformal/btcwire/msggetaddr.go	 MsgGetAddr.Command			 100.00% (1/1)
-github.com/conformal/btcwire/msggetaddr.go	 MsgGetAddr.MaxPayloadLength		 100.00% (1/1)
-github.com/conformal/btcwire/msggetaddr.go	 NewMsgGetAddr				 100.00% (1/1)
-github.com/conformal/btcwire/msggetblocks.go	 MsgGetBlocks.Command			 100.00% (1/1)
-github.com/conformal/btcwire/msggetblocks.go	 MsgGetBlocks.MaxPayloadLength		 100.00% (1/1)
-github.com/conformal/btcwire/msggetblocks.go	 NewMsgGetBlocks			 100.00% (1/1)
-github.com/conformal/btcwire/msggetdata.go	 MsgGetData.Command			 100.00% (1/1)
-github.com/conformal/btcwire/msggetdata.go	 MsgGetData.MaxPayloadLength		 100.00% (1/1)
-github.com/conformal/btcwire/msggetdata.go	 NewMsgGetData				 100.00% (1/1)
-github.com/conformal/btcwire/msggetheaders.go	 MsgGetHeaders.Command			 100.00% (1/1)
-github.com/conformal/btcwire/msggetheaders.go	 MsgGetHeaders.MaxPayloadLength		 100.00% (1/1)
-github.com/conformal/btcwire/msggetheaders.go	 NewMsgGetHeaders			 100.00% (1/1)
-github.com/conformal/btcwire/msgheaders.go	 MsgHeaders.MaxPayloadLength		 100.00% (1/1)
-github.com/conformal/btcwire/msgheaders.go	 NewMsgHeaders				 100.00% (1/1)
-github.com/conformal/btcwire/msginv.go		 MsgInv.Command				 100.00% (1/1)
 github.com/conformal/btcwire/msginv.go		 MsgInv.MaxPayloadLength		 100.00% (1/1)
 github.com/conformal/btcwire/msginv.go		 NewMsgInv				 100.00% (1/1)
+github.com/conformal/btcwire/msggetheaders.go	 MsgGetHeaders.MaxPayloadLength		 100.00% (1/1)
+github.com/conformal/btcwire/msggetdata.go	 NewMsgGetData				 100.00% (1/1)
 github.com/conformal/btcwire/msgmempool.go	 MsgMemPool.Command			 100.00% (1/1)
 github.com/conformal/btcwire/msgmempool.go	 MsgMemPool.MaxPayloadLength		 100.00% (1/1)
 github.com/conformal/btcwire/msgmempool.go	 NewMsgMemPool				 100.00% (1/1)
+github.com/conformal/btcwire/msggetdata.go	 MsgGetData.MaxPayloadLength		 100.00% (1/1)
+github.com/conformal/btcwire/msggetdata.go	 MsgGetData.Command			 100.00% (1/1)
+github.com/conformal/btcwire/msggetblocks.go	 NewMsgGetBlocks			 100.00% (1/1)
 github.com/conformal/btcwire/msgnotfound.go	 MsgNotFound.Command			 100.00% (1/1)
 github.com/conformal/btcwire/msgnotfound.go	 MsgNotFound.MaxPayloadLength		 100.00% (1/1)
 github.com/conformal/btcwire/msgnotfound.go	 NewMsgNotFound				 100.00% (1/1)
+github.com/conformal/btcwire/msggetblocks.go	 MsgGetBlocks.MaxPayloadLength		 100.00% (1/1)
+github.com/conformal/btcwire/msggetblocks.go	 MsgGetBlocks.Command			 100.00% (1/1)
 github.com/conformal/btcwire/msgping.go		 MsgPing.Command			 100.00% (1/1)
+github.com/conformal/btcwire/common.go		 RandomUint64				 100.00% (1/1)
 github.com/conformal/btcwire/msgping.go		 NewMsgPing				 100.00% (1/1)
+github.com/conformal/btcwire/msggetaddr.go	 NewMsgGetAddr				 100.00% (1/1)
+github.com/conformal/btcwire/msggetheaders.go	 MsgGetHeaders.Command			 100.00% (1/1)
 github.com/conformal/btcwire/msgpong.go		 MsgPong.Command			 100.00% (1/1)
+github.com/conformal/btcwire/msggetaddr.go	 MsgGetAddr.MaxPayloadLength		 100.00% (1/1)
 github.com/conformal/btcwire/msgpong.go		 NewMsgPong				 100.00% (1/1)
 github.com/conformal/btcwire/msgtx.go		 NewOutPoint				 100.00% (1/1)
 github.com/conformal/btcwire/msgtx.go		 NewTxIn				 100.00% (1/1)
 github.com/conformal/btcwire/msgtx.go		 NewTxOut				 100.00% (1/1)
 github.com/conformal/btcwire/msgtx.go		 MsgTx.AddTxIn				 100.00% (1/1)
 github.com/conformal/btcwire/msgtx.go		 MsgTx.AddTxOut				 100.00% (1/1)
+github.com/conformal/btcwire/msggetaddr.go	 MsgGetAddr.Command			 100.00% (1/1)
+github.com/conformal/btcwire/msggetaddr.go	 MsgGetAddr.BtcEncode			 100.00% (1/1)
+github.com/conformal/btcwire/common.go		 writeElement				 100.00% (1/1)
+github.com/conformal/btcwire/msgtx.go		 MsgTx.Deserialize			 100.00% (1/1)
+github.com/conformal/btcwire/msggetaddr.go	 MsgGetAddr.BtcDecode			 100.00% (1/1)
+github.com/conformal/btcwire/msgtx.go		 MsgTx.Serialize			 100.00% (1/1)
 github.com/conformal/btcwire/msgtx.go		 MsgTx.Command				 100.00% (1/1)
 github.com/conformal/btcwire/msgtx.go		 MsgTx.MaxPayloadLength			 100.00% (1/1)
 github.com/conformal/btcwire/msgtx.go		 NewMsgTx				 100.00% (1/1)
+github.com/conformal/btcwire/msgversion.go	 MsgVersion.MaxPayloadLength		 100.00% (1/1)
+github.com/conformal/btcwire/msgblock.go	 NewMsgBlock				 100.00% (1/1)
+github.com/conformal/btcwire/common.go		 readElement				 100.00% (1/1)
+github.com/conformal/btcwire/msgblock.go	 MsgBlock.BlockSha			 100.00% (1/1)
+github.com/conformal/btcwire/msgblock.go	 MsgBlock.MaxPayloadLength		 100.00% (1/1)
+github.com/conformal/btcwire/msgblock.go	 MsgBlock.Command			 100.00% (1/1)
 github.com/conformal/btcwire/msgverack.go	 MsgVerAck.BtcDecode			 100.00% (1/1)
 github.com/conformal/btcwire/msgverack.go	 MsgVerAck.BtcEncode			 100.00% (1/1)
 github.com/conformal/btcwire/msgverack.go	 MsgVerAck.Command			 100.00% (1/1)
 github.com/conformal/btcwire/msgverack.go	 MsgVerAck.MaxPayloadLength		 100.00% (1/1)
 github.com/conformal/btcwire/msgverack.go	 NewMsgVerAck				 100.00% (1/1)
+github.com/conformal/btcwire/msgaddr.go		 MsgAddr.ClearAddresses			 100.00% (1/1)
 github.com/conformal/btcwire/msgversion.go	 MsgVersion.AddService			 100.00% (1/1)
+github.com/conformal/btcwire/msgblock.go	 MsgBlock.Serialize			 100.00% (1/1)
 github.com/conformal/btcwire/msgversion.go	 MsgVersion.Command			 100.00% (1/1)
-github.com/conformal/btcwire/msgversion.go	 MsgVersion.MaxPayloadLength		 100.00% (1/1)
+github.com/conformal/btcwire/msgblock.go	 MsgBlock.Deserialize			 100.00% (1/1)
 github.com/conformal/btcwire/msgversion.go	 NewMsgVersion				 100.00% (1/1)
-github.com/conformal/btcwire/netaddress.go	 NetAddress.AddService			 100.00% (1/1)
 github.com/conformal/btcwire/shahash.go		 ShaHash.IsEqual			 100.00% (1/1)
+github.com/conformal/btcwire/error.go		 messageError				 100.00% (1/1)
+github.com/conformal/btcwire/netaddress.go	 NetAddress.AddService			 100.00% (1/1)
+github.com/conformal/btcwire/msggetheaders.go	 NewMsgGetHeaders			 100.00% (1/1)
+github.com/conformal/btcwire/msginv.go		 MsgInv.Command				 100.00% (1/1)
+github.com/conformal/btcwire/msgheaders.go	 MsgHeaders.Command			 100.00% (1/1)
+github.com/conformal/btcwire/msgalert.go	 MsgAlert.MaxPayloadLength		 100.00% (1/1)
+github.com/conformal/btcwire/blockheader.go	 NewBlockHeader				 100.00% (1/1)
+github.com/conformal/btcwire/msgalert.go	 MsgAlert.Command			 100.00% (1/1)
+github.com/conformal/btcwire/msgaddr.go		 NewMsgAddr				 100.00% (1/1)
+github.com/conformal/btcwire/msgaddr.go		 MsgAddr.Command			 100.00% (1/1)
+github.com/conformal/btcwire/msgalert.go	 NewMsgAlert				 100.00% (1/1)
 github.com/conformal/btcwire/invvect.go		 NewInvVect				 100.00% (1/1)
-github.com/conformal/btcwire			 ---------------------------------	 100.00% (927/927)
+github.com/conformal/btcwire/msgheaders.go	 NewMsgHeaders				 100.00% (1/1)
+github.com/conformal/btcwire/msgheaders.go	 MsgHeaders.MaxPayloadLength		 100.00% (1/1)
+github.com/conformal/btcwire/msgblock.go	 MsgBlock.DeserializeTxLoc		 86.67% (13/15)
+github.com/conformal/btcwire			 ---------------------------------	 99.79% (943/945)