add support for transaction revert