From 7e7bffea0d828bc8e01ec94ded668066a3f38795 Mon Sep 17 00:00:00 2001 From: Minhyuk Kim Date: Thu, 9 Jan 2025 06:13:12 +0900 Subject: [PATCH] Make stateContentOffset uint16 by default --- rvgo/slow/vm.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rvgo/slow/vm.go b/rvgo/slow/vm.go index a6a33fd..dfa8ad8 100644 --- a/rvgo/slow/vm.go +++ b/rvgo/slow/vm.go @@ -128,8 +128,8 @@ func Step(calldata []byte, po PreimageOracle) (stateHash common.Hash, outErr err panic("invalid function selector") } - stateContentOffset := uint8(4 + 32 + 32 + 32 + 32) - if iszero(eq(add(b32asBEWord(calldataload(byteToU64(4))), shortToU256(32+4)), shortToU256(uint16(stateContentOffset)))) { + stateContentOffset := uint16(4 + 32 + 32 + 32 + 32) + if iszero(eq(add(b32asBEWord(calldataload(byteToU64(4))), shortToU256(32+4)), shortToU256(stateContentOffset))) { // _stateData.offset = _stateData.pointer + 32 + 4 // 32*4+4 = 132 expected state data offset panic("invalid state offset input") @@ -139,9 +139,9 @@ func Step(calldata []byte, po PreimageOracle) (stateHash common.Hash, outErr err panic("invalid state size input") } - proofContentOffset := shortToU64(uint16(stateContentOffset) + paddedStateSize + 32) + proofContentOffset := shortToU64(stateContentOffset + paddedStateSize + 32) - if mod(b32asBEWord(calldataload(shortToU64(uint16(stateContentOffset)+paddedStateSize))), shortToU256(60*32)) != byteToU256(0) { + if mod(b32asBEWord(calldataload(shortToU64(stateContentOffset+paddedStateSize))), shortToU256(60*32)) != byteToU256(0) { // proof offset must be stateContentOffset+paddedStateSize+32 // proof size: 64-5+1=60 * 32 byte leaf, // but multiple memProof can be used, so the proofSize must be a multiple of 60