ReturnValue should be hashable
```
>>> r = ReturnValue([0, 1, 2])
>>> set(r)
TypeError: unhashable type: 'ReturnValue'
```

`ReturnValue` is subclassed from`tuple`, this shouldn't be happening. Along with fixing, we should write unit tests to verify the tuple-ness of `ReturnValue`.
diff --git a/brownie/convert.py b/brownie/convert.py
index 624f6582..2e75f50f 100644
--- a/brownie/convert.py
+++ b/brownie/convert.py
@@ -355,6 +355,9 @@ class ReturnValue(tuple):
             self._dict[i['name']] = values[c]
         return self
 
+    def __hash__(self):
+        return super().__hash__()
+
     def __eq__(self, other):
         return _kwargtuple_compare(self, other)
 
diff --git a/tests/network/test_return_value.py b/tests/convert/test_return_value.py
similarity index 95%
rename from tests/network/test_return_value.py
rename to tests/convert/test_return_value.py
index 49d09fd3..d3b986de 100644
--- a/tests/network/test_return_value.py
+++ b/tests/convert/test_return_value.py
@@ -112,3 +112,8 @@ def test_hexstring_length(return_value):
     b = HexString('0x1234', "bytes32")
     assert b == "0x1234"
     assert b == "0x000000000000001234"
+
+
+def test_hashable(return_value):
+    assert hash(ReturnValue([1, 2])) == hash(tuple([1, 2]))
+    assert set(ReturnValue([3, 1, 3, 3, 7])) == set([3, 1, 3, 3, 7])
['tests/network/test_return_value.py', 'brownie/convert.py']