From 9af30b56eb24c7239b5f9f2a2b92cea152db6160 Mon Sep 17 00:00:00 2001 From: Bhargava Shastry Date: Fri, 12 Jan 2024 07:22:11 +0100 Subject: [PATCH] Yul fuzzer: Introduce basefee() and blobbasefee() builtins --- test/tools/ossfuzz/protoToYul.cpp | 18 ++++++++++++++++++ test/tools/ossfuzz/yulProto.proto | 3 +++ 2 files changed, 21 insertions(+) diff --git a/test/tools/ossfuzz/protoToYul.cpp b/test/tools/ossfuzz/protoToYul.cpp index 9b487daf5dba..6c8f291d29a3 100644 --- a/test/tools/ossfuzz/protoToYul.cpp +++ b/test/tools/ossfuzz/protoToYul.cpp @@ -118,6 +118,8 @@ EVMVersion ProtoConverter::evmVersionMapping(Program_Version const& _ver) return EVMVersion::paris(); case Program::SHANGHAI: return EVMVersion::shanghai(); + case Program::CANCUN: + return EVMVersion::cancun(); } } @@ -761,6 +763,22 @@ void ProtoConverter::visit(NullaryOp const& _x) else m_output << dictionaryToken(); break; + case NullaryOp::BASEFEE: + // Replace calls to basefee() on unsupported EVMs with a dictionary + // token. + if (m_evmVersion.hasBaseFee()) + m_output << "basefee()"; + else + m_output << dictionaryToken(); + break; + case NullaryOp::BLOBBASEFEE: + // Replace calls to blobbasefee() on unsupported EVMs with a dictionary + // token. + if (m_evmVersion.hasBlobBaseFee()) + m_output << "blobbasefee()"; + else + m_output << dictionaryToken(); + break; } } diff --git a/test/tools/ossfuzz/yulProto.proto b/test/tools/ossfuzz/yulProto.proto index e78080058c7b..7552fb23adde 100644 --- a/test/tools/ossfuzz/yulProto.proto +++ b/test/tools/ossfuzz/yulProto.proto @@ -219,6 +219,8 @@ message NullaryOp { GASLIMIT = 15; SELFBALANCE = 16; CHAINID = 17; + BASEFEE = 18; + BLOBBASEFEE = 19; } required NOp op = 1; } @@ -399,6 +401,7 @@ message Program { LONDON = 8; PARIS = 9; SHANGHAI = 10; + CANCUN = 11; } oneof program_oneof { Block block = 1;