Skip to content

Commit b1694d3

Browse files
committed
Fix slice offset semantics in mockState.ts
The createMockState adapter used a right-aligned big-endian calculation (32 - offset - length) for stack, storage, and transient slice offsets. The correct convention is direct byte offset from the start of the word, matching the ganache test adapter and evm machine adapter.
1 parent cd0f686 commit b1694d3

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

‎packages/pointers-react/src/utils/mockState.ts‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ export function createMockState(spec: MockStateSpec): Machine.State {
7979
return entry;
8080
}
8181
const { offset, length } = slice;
82-
const startByte = 32 - Number(offset) - Number(length);
83-
const endByte = startByte + Number(length);
84-
return Data.fromBytes(entry.slice(startByte, endByte));
82+
return Data.fromBytes(
83+
entry.slice(Number(offset), Number(offset + length)),
84+
);
8585
},
8686
};
8787

@@ -115,9 +115,9 @@ export function createMockState(spec: MockStateSpec): Machine.State {
115115
return value;
116116
}
117117
const { offset, length } = slice;
118-
const startByte = 32 - Number(offset) - Number(length);
119-
const endByte = startByte + Number(length);
120-
return Data.fromBytes(value.slice(startByte, endByte));
118+
return Data.fromBytes(
119+
value.slice(Number(offset), Number(offset + length)),
120+
);
121121
},
122122
};
123123

@@ -190,9 +190,9 @@ export function createMockState(spec: MockStateSpec): Machine.State {
190190
return value;
191191
}
192192
const { offset, length } = slice;
193-
const startByte = 32 - Number(offset) - Number(length);
194-
const endByte = startByte + Number(length);
195-
return Data.fromBytes(value.slice(startByte, endByte));
193+
return Data.fromBytes(
194+
value.slice(Number(offset), Number(offset + length)),
195+
);
196196
},
197197
};
198198

0 commit comments

Comments
 (0)