diff --git a/src/lib/parse/LibParseError.sol b/src/lib/parse/LibParseError.sol index 9a1e7e518..d2db90f53 100644 --- a/src/lib/parse/LibParseError.sol +++ b/src/lib/parse/LibParseError.sol @@ -3,11 +3,14 @@ pragma solidity ^0.8.18; import {ParseState} from "./LibParseState.sol"; +bytes32 constant MAGIC_NUMBER_RAIN_PARSE_ERROR_V1 = keccak256("rain.interpreter.error.parse.0") << 0x10; + library LibParseError { function parseErrorOffset(ParseState memory state, uint256 cursor) internal pure returns (uint256 offset) { bytes memory data = state.data; + bytes32 magicNumber = MAGIC_NUMBER_RAIN_PARSE_ERROR_V1; assembly ("memory-safe") { - offset := sub(cursor, add(data, 0x20)) + offset := or(magicNumber, sub(cursor, add(data, 0x20))) } } }