diff --git a/src/action/evm_bytecode_visitor.h b/src/action/evm_bytecode_visitor.h index 454ea6f60..5e15a1989 100644 --- a/src/action/evm_bytecode_visitor.h +++ b/src/action/evm_bytecode_visitor.h @@ -852,7 +852,7 @@ template class EVMByteCodeVisitor { } else { std::array Topics; for (size_t i = 0; i < NumTopics; ++i) { - Topics[NumTopics - 1 - i] = pop(); + Topics[i] = pop(); } if constexpr (NumTopics == 1) { diff --git a/src/compiler/evm_frontend/evm_imported.cpp b/src/compiler/evm_frontend/evm_imported.cpp index 2b5c6dd4f..13987feee 100644 --- a/src/compiler/evm_frontend/evm_imported.cpp +++ b/src/compiler/evm_frontend/evm_imported.cpp @@ -686,7 +686,7 @@ static void evmEmitLogGeneric(zen::runtime::EVMInstance *Instance, for (size_t i = 0; i < MaxTopics; ++i) { if (TopicsData[i]) { - std::memcpy(Topics[ActualNumTopics].bytes, TopicsData[i], 32); + Topics[ActualNumTopics] = loadBytes32FromLE(TopicsData[i]); ActualNumTopics++; } }