Proto commits in ethereum/solidity

These 98 commits are when the Protocol Buffers files have changed:

Commit:8c1b4c9
Author:Nikola Matic
Committer:Nikola Matic

Introduce EVM version Amsterdam

Commit:a5216e8
Author:Mate Soos

This was wrong, fixing. we NEED memoryguard

Commit:5a58747
Author:Mate Soos

Fix memorygurad related issues

Commit:d04d36c
Author:Mate Soos

MORE stuff

Commit:9c6ae23
Author:Mate Soos

Add more features

Commit:28d838d
Author:Mate Soos

More ● All four phases are implemented and building successfully. Here's a summary of what was done: Phase 1 - Event/Log Comparison: solProtoFuzzer2.cpp now captures recorded_logs from the EVMHost after each run and compares them between optimized/unoptimized and viaIR/legacy runs. Phase 2 - Storage Comparison: Same file captures all account storage state and compares current values between runs (skipping access_status which legitimately differs). Phase 3 - Expanded Parameter Types: Added ParamType enum (PARAM_UINT256, PARAM_BOOL, PARAM_ADDRESS, PARAM_BYTES32) to sol2Proto.proto. Functions declare params with actual types but convert them to uint256 shadow variables at the start of the body, keeping the expression system uniform. The test contract uses properly typed ABI signatures and casts calldata values. Phase 4 - Try/Catch Constructors: generateTestContract() now wraps each new ContractName() in try ... returns (ContractName inst) { ... } catch {}, so a reverting constructor skips that contract but continues testing others. CREATE2 salt is supported in the try syntax.

Commit:773635b
Author:Mate Soos

More

Commit:3858062
Author:Mate Soos

Add transient storage usage

Commit:939b2d9
Author:Mate Soos

More calldata fuzzing

Commit:d862665
Author:Mate Soos

Add calldata

Commit:9e1ed04
Author:Mate Soos

More built-in command

Commit:3650751
Author:Mate Soos

Fixes

Commit:4a71625
Author:Mate Soos

Update

Commit:ee69504
Author:Mate Soos

More

Commit:3eee926
Author:Mate Soos

Update

Commit:be8fec7
Author:Mate Soos

More fuzzing

Commit:4241960
Author:Mate Soos

Update

Commit:3d21bb6
Author:Mate Soos

Fixing up thanks to @r0qs

Commit:c354c02
Author:Mate Soos
Committer:Mate Soos

Let's hope for this one None of this Less noise Update Compile now Less noise

Commit:4dbfe8e
Author:clonker
Committer:r0qs

docs: update links to argotorg and ipsilon where appropriate

The documentation is generated from this commit.

Commit:41fc34b
Author:clonker
Committer:clonker

docs: update links to argotorg and ipsilon where appropriate

The documentation is generated from this commit.

Commit:6b4ee52
Author:r0qs
Committer:Nikola Matic

Introduces EVM version Osaka

Commit:85396f4
Author:Matheus Aguiar
Committer:Matheus Aguiar

Introduce evm version prague

Commit:ed96eb2
Author:Bhargava Shastry
Committer:Bhargava Shastry

Yul fuzzer: Support blobhash(uint) global function

Commit:4edbaf1
Author:Kamil Śliwak
Committer:GitHub

Merge pull request #14807 from ethereum/fuzz-transient-storage Yul fuzzer: Support transient storage.

Commit:fb7c2b4
Author:Bhargava Shastry
Committer:Kamil Śliwak

Yul fuzzer: Support transient storage.

Commit:9d80e0e
Author:Kamil Śliwak
Committer:Kamil Śliwak

Yul proto fuzzer: Add mcopy builtin to generator.

Commit:9af30b5
Author:Bhargava Shastry
Committer:Bhargava Shastry

Yul fuzzer: Introduce basefee() and blobbasefee() builtins

Commit:47fc4f9
Author:Bhargava Shastry

Yul fuzzer: Add Shanghai EVM version

Commit:156871c
Author:Bhargava Shastry
Committer:Bhargava Shastry

Introduce very simple verbatim construct in yul protobuf spec and converter.

Commit:2993f2c
Author:Bhargava Shastry
Committer:Bhargava Shastry

Enable fuzzing of yul optimizer steps in optimiser setting.

Commit:eb8af2c
Author:Alex Beregszaszi
Committer:Kamil Śliwak

Add basic support for the EVM version Paris This mostly means testing with evmone, but instruction renaming of difficulty->prevrandao is omitted.

Commit:e3ed29d
Author:Bhargava Shastry
Committer:Bhargava Shastry

Permit multiple indirections in coding calldata to and from memory/calldata.

Commit:39a0ecd
Author:Bhargava Shastry
Committer:Bhargava Shastry

Add upto 32 function I/O parameters.

Commit:d81a43e
Author:Bhargava Shastry
Committer:Bhargava Shastry

Add upto 32 function I/O parameters.

Commit:15bf6af
Author:Bhargava Shastry
Committer:Bhargava Shastry

Remove output parameters from function call since they are generated on the fly in the converter.

Commit:1709b29
Author:Bhargava Shastry
Committer:Bhargava Shastry

Changes to how function calls are generated.

Commit:e35ddbc
Author:Bhargava Shastry

yul fuzzer: Permit upto 7 I/O function parameters (previously 4).

Commit:f36bc0f
Author:Bhargava Shastry
Committer:Bhargava Shastry

Changes to how function calls are generated.

Commit:b3dd83a
Author:Bhargava Shastry
Committer:Bhargava Shastry

Enable fine grained yul optimizer fuzzing

Commit:b273e52
Author:Bhargava Shastry
Committer:Bhargava Shastry

Abiv2 fuzzer: Enable differential fuzzing and remove support for string coding co-authored-by: Leonardo <leo@ethereum.org>

Commit:dc1c0e9
Author:Bhargava Shastry
Committer:Bhargava Shastry

Abiv2 fuzzer: Retrieve values to be encoded from the fuzzer

Commit:3b3c64e
Author:Bhargava Shastry
Committer:Bhargava Shastry

Fuzzer: Enable fine-grained yul optimizer fuzzing

Commit:2eb1a1d
Author:Bhargava Shastry
Committer:Bhargava Shastry

Add fuzzing steps for stacklimitevader, fakestacklimitevader, reasoningbasedsimplifier, and unusedfunctionparameterpruner

Commit:9da9ace
Author:Bhargava Shastry
Committer:Bhargava Shastry

Add proto fuzzer to test imports

Commit:845c1ae
Author:chriseth
Committer:GitHub

Merge pull request #9469 from ethereum/fix-9468 Yul fuzzer: Enable nested object references

Commit:115380c
Author:Bhargava Shastry
Committer:Bhargava Shastry

Yul fuzzer: Enable nested object references Co-authored-by: Đorđe Mijović <djordje.mijovic@gmail.com>

Commit:9be5ed1
Author:chriseth
Committer:chriseth

Merge remote-tracking branch 'origin/develop' into breaking

Commit:b7adb2a
Author:Sachin Grover

Add SPDX license identifier if not present already in source file Fixes: #9220

Commit:61431d2
Author:Bhargava Shastry
Committer:Bhargava Shastry

ossfuzz: Remove PC from yul proto specification

Commit:00946f3
Author:Bhargava Shastry
Committer:Bhargava Shastry

ossfuzz: Add sol proto fuzzer skeleton Co-Authored-By: Leonardo <leo@ethereum.org>

Commit:596ac01
Author:Bhargava Shastry
Committer:Bhargava Shastry

Fuzzer: Add test harness for solidity inheritance protobuf fuzzer Co-Authored-By: Leonardo <leo@ethereum.org>

Commit:b7f7188
Author:Bhargava Shastry
Committer:Bhargava Shastry

ossfuzz: Add sol proto fuzzer skeleton

Commit:1426dec
Author:Bhargava Shastry
Committer:Bhargava Shastry

Review suggestions Co-Authored-By: Leonardo <leo@ethereum.org>

Commit:7c91a31
Author:Bhargava Shastry
Committer:Bhargava Shastry

Add fuzzer for testing clean up of dirty bits via inline assembly

Commit:67952d5
Author:Bhargava Shastry

Add inline assembly

Commit:3db10b8
Author:Bhargava Shastry

Add exception for stack too deep error and binop stmt

Commit:f92f2ed
Author:Bhargava Shastry
Committer:Bhargava Shastry

Arithmetic fuzzer in a day

Commit:7280ed7
Author:Bhargava Shastry
Committer:Bhargava Shastry

Yul proto spec: Add multiple variable declaration statement

Commit:1d53369
Author:Bhargava Shastry
Committer:Bhargava Shastry

Add solidity protobuf based inheritance fuzzer

Commit:5159396
Author:Bhargava Shastry
Committer:Bhargava Shastry

Made proto spec a bit leaner and started work on contracts

Commit:8973ca3
Author:Bhargava Shastry
Committer:Bhargava Shastry

Add adaptor and support library and interface inheritance

Commit:79f1917
Author:Bhargava Shastry

yul proto fuzzer: Refactor dataoffset/size specification

Commit:59e7206
Author:Bhargava Shastry

yul proto fuzzer: Support boolean literal generation

Commit:8cbe1d4
Author:Bhargava Shastry
Committer:Bhargava Shastry

yul proto fuzzer: Make function call generation optional

Commit:a335fed
Author:Bhargava Shastry
Committer:Bhargava Shastry

yul proto fuzzer: Add EVM version field

Commit:8aa7aba
Author:Bhargava Shastry

Add multi variable decl statement; use dummy expressions instead of dictionary tokens alone; dont visit blocks unless they contain at least one statement

Commit:4089c2c
Author:Bhargava Shastry
Committer:Bhargava Shastry

yul proto fuzzer: Make function call generation optional

Commit:bb96d87
Author:Bhargava Shastry
Committer:Bhargava Shastry

yul proto fuzzer: Add EVM version field

Commit:ed45b00
Author:Christian Parpart
Committer:Daniel Kirchner

Adapt tests directory to C++ namespace changes.

Commit:94272d4
Author:Erik K
Committer:GitHub

Merge pull request #7745 from ethereum/develop Merge develop into develop_060

Commit:505b5de
Author:Bhargava Shastry
Committer:Bhargava Shastry

Add chainid and selfbalance opcodes to yul proto converter and enable it in the yul proto differential fuzzer.

Commit:2e5a428
Author:chriseth
Committer:GitHub

Merge pull request #7681 from ethereum/develop Merge develop into develop_060

Commit:9772cc4
Author:Bhargava Shastry
Committer:Bhargava Shastry

abiv2 proto fuzzer: Fuzz return data coding

Commit:46ac16d
Author:chriseth

Merge remote-tracking branch 'origin/develop' into develop_060

Commit:3cfeca3
Author:Bhargava Shastry
Committer:Bhargava Shastry

Abiv2 proto fuzzer: Refactor and add support for structs

Commit:edc5059
Author:Bhargava Shastry

yul proto: Add leave statement

Commit:34022a2
Author:Bhargava Shastry
Committer:Bhargava Shastry

Pseudo-randomly choose object/data identifier that is in scope

Commit:d677a15
Author:Bhargava Shastry
Committer:Bhargava Shastry

Add object access builtin functions

Commit:6b27ef8
Author:Bhargava Shastry
Committer:chriseth

Yul proto fuzzer: Additional blockchain opcodes

Commit:c889e6e
Author:Bhargava Shastry
Committer:chriseth

Yul proto fuzzer: Add create and call opcodes

Commit:4837ef4
Author:Bhargava Shastry
Committer:Bhargava Shastry

Yul proto fuzzer: Make function definition a statement

Commit:bf16f2f
Author:Bhargava Shastry
Committer:Bhargava Shastry

Test low level calls with correct and incorrect encodings

Commit:90d4213
Author:Bhargava Shastry
Committer:Bhargava Shastry

Add bool type and array of bool and dynamic byte types

Commit:5bc1a68
Author:Bhargava Shastry
Committer:Bhargava Shastry

ABIv2 proto fuzzer implementation for a limited set of value and non-value types (arrays included).

Commit:b5cbb1a
Author:Bhargava Shastry
Committer:Bhargava Shastry

For loop with custom init and post blocks and potentially unbounded conditional expression

Commit:495f7f9
Author:Bhargava Shastry
Committer:Bhargava Shastry

[Proto fuzzer] Add function calls, and multi variable declaration/assignment statements

Commit:a552498
Author:Bhargava Shastry
Committer:Bhargava Shastry

[Proto fuzzer]: Add terminating opcodes

Commit:ac7bfec
Author:Bhargava Shastry
Committer:Bhargava Shastry

Support generation of calldata, code, extcode and returndata opcodes

Commit:d894ffa
Author:Bhargava Shastry
Committer:Bhargava Shastry

Proto fuzzer: Add missing memory and log opcodes and fix visitation bug for ternary ops

Commit:836c466
Author:Bhargava Shastry
Committer:Bhargava Shastry

ossfuzz: Generate addmod and mulmod builtin functions

Commit:6f673f5
Author:Bhargava Shastry
Committer:Bhargava Shastry

Generate break and continue statements inside for loop body.

Commit:762dd24
Author:Bhargava Shastry
Committer:Bhargava Shastry

Reference only those variables that are in scope.

Commit:d1d3dd8
Author:Bhargava Shastry
Committer:Bhargava Shastry

yul proto: Add support for generating string and hex literals.

Commit:22f5a82
Author:Bhargava Shastry
Committer:Alex Beregszaszi

yul proto: Add support for generating for and switch statements.

Commit:5e8ed42
Author:Bhargava Shastry

Add more binary operations to the yul proto spec.

Commit:5681086
Author:Bhargava Shastry

Proto spec and translator bug fixes.

Commit:d9bcbe6
Author:Bhargava Shastry
Committer:Bhargava Shastry

LibProtobuf Mutator (LPM) based fuzzer for yul subset