`StopIteration` on show traceback with passing test
### Environment information

* `brownie` Version: 1.12.3
* `ganache-cli` Version: 6.12.1
* Python Version: 3.8.6
* OS: linux

### What was wrong?
```python
self = <Transaction '0x01f9dddc187e040669e200b5ee7abf6806b542ae5cbe856c19dcae22e669c2d2'>            
                                                                                                     
    @trace_inspection                                                                                
    def _traceback_string(self) -> str:                                                              
        """Returns an error traceback for the transaction."""                                        
        if self.status == 1:                                                                         
            return ""                                                                                
        trace = self.trace                                                                           
                                                                                                     
        try:                                                                                         
            idx = next(i for i in range(len(trace)) if trace[i]["op"] in ("REVERT", "INVALID"))       
            trace_range = range(idx, -1, -1)
        except StopIteration:                      
            return ""
                                                                                                     
>       result = [next(i for i in trace_range if trace[i]["source"])]                                 
E       StopIteration 
```

If I change this to catch the `StopIeration` exception and return `""` instead, there is no further issue with the test. Not sure if this is a false positive, or if the exception is the problem.
diff --git a/brownie/network/transaction.py b/brownie/network/transaction.py
index 0f61acde..16d2f947 100644
--- a/brownie/network/transaction.py
+++ b/brownie/network/transaction.py
@@ -716,8 +716,8 @@ class TransactionReceipt:
                     self._dev_revert_msg = ""
                 return
 
-        step = next(i for i in trace[::-1] if i["op"] in ("REVERT", "INVALID"))
-        self._revert_msg = "invalid opcode" if step["op"] == "INVALID" else ""
+        op = next((i["op"] for i in trace[::-1] if i["op"] in ("REVERT", "INVALID")), None)
+        self._revert_msg = "invalid opcode" if op == "INVALID" else ""
 
     def _expand_trace(self) -> None:
         """Adds the following attributes to each step of the stack trace:
@@ -1101,7 +1101,10 @@ class TransactionReceipt:
         except StopIteration:
             return ""
 
-        result = [next(i for i in trace_range if trace[i]["source"])]
+        try:
+            result = [next(i for i in trace_range if trace[i]["source"])]
+        except StopIteration:
+            return ""
         depth, jump_depth = trace[idx]["depth"], trace[idx]["jumpDepth"]
 
         while True:
['brownie/network/transaction.py']