diff --git a/src/ape/api/transactions.py b/src/ape/api/transactions.py index b9e4f28482..138a0aa77b 100644 --- a/src/ape/api/transactions.py +++ b/src/ape/api/transactions.py @@ -171,14 +171,23 @@ def __repr__(self) -> str: def __str__(self) -> str: data = self.dict() if len(data["data"]) > 9: - data["data"] = ( - "0x" - + bytes(data["data"][:3], encoding="utf8").hex() - + "..." - + bytes(data["data"][-3:], encoding="utf8").hex() - ) + # only want to specify encoding if data["data"] is a string + if isinstance(data["data"], str): + data["data"] = ( + "0x" + + bytes(data["data"][:3], encoding="utf8").hex() + + "..." + + bytes(data["data"][-3:], encoding="utf8").hex() + ) + else: + data["data"] = ( + "0x" + bytes(data["data"][:3]).hex() + "..." + bytes(data["data"][-3:]).hex() + ) else: - data["data"] = "0x" + bytes(data["data"], encoding="utf8").hex() + if isinstance(data["data"], str): + data["data"] = "0x" + bytes(data["data"], encoding="utf8").hex() + else: + data["data"] = "0x" + bytes(data["data"]).hex() params = "\n ".join(f"{k}: {v}" for k, v in data.items()) return f"{self.__class__.__name__}:\n {params}"