From 035f1f0aac9b02afa45b95c44c01d0d96755db8f Mon Sep 17 00:00:00 2001 From: Gabriel Coutinho de Paula Date: Thu, 18 Sep 2025 14:50:33 -0300 Subject: [PATCH] fix: fix reason extration --- src/AdvanceStatus.sol | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/AdvanceStatus.sol b/src/AdvanceStatus.sol index 57614a4..3df320b 100644 --- a/src/AdvanceStatus.sol +++ b/src/AdvanceStatus.sol @@ -39,6 +39,8 @@ library AdvanceStatus { } cmt_io_yield_t; */ + error InvalidReason(uint16 reason); + function advanceStatus(AccessLogs.Context memory a) internal pure @@ -55,7 +57,7 @@ library AdvanceStatus { uint64 tohost = EmulatorCompat.readWord(a, EmulatorConstants.HTIF_TOHOST_ADDRESS); - uint16 reason = uint16((tohost >> 16) & ((1 << 16) - 1)); + uint16 reason = uint16(tohost >> 32); if (reason == EmulatorConstants.CMIO_YIELD_MANUAL_REASON_RX_ACCEPTED) { return Status.ACCEPTED; @@ -68,7 +70,7 @@ library AdvanceStatus { ) { return Status.EXCEPTION; } else { - revert("Invalid reason"); + revert InvalidReason(reason); } } }