From a4b8913e63fbc189f2dd91e961ce9bc30e093920 Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 18 Apr 2023 13:51:48 -0700 Subject: [PATCH] Update README --- EOFTests/EIP4200/validInvalid.json | 4 +- .../EIP4200/validInvalidFiller.yml | 5 -- src/README.md | 55 +++++++++++++++++++ 3 files changed, 57 insertions(+), 7 deletions(-) diff --git a/EOFTests/EIP4200/validInvalid.json b/EOFTests/EIP4200/validInvalid.json index 9457e00d418..b8d7d99bdfe 100644 --- a/EOFTests/EIP4200/validInvalid.json +++ b/EOFTests/EIP4200/validInvalid.json @@ -1,14 +1,14 @@ { "validInvalid" : { "_info" : { - "comment" : "Test various examples to see if they are valid or invalid.\nImplements\n# >@f1\n EOF1V4200_0001 (Valid) EOF code containing RJUMP (Positive, Negative)\n EOF1V4200_0002 (Valid) EOF code containing RJUMP (Zero)\n EOF1V4200_0003 (Valid) EOF code containing RJUMPI (Positive)\n EOF1V4200_0004 (Valid) EOF code containing RJUMPI (Negative)\n EOF1V4200_0005 (Valid) EOF code containing RJUMPI (Zero)\n EOF1V4200_0006 (Valid) EOF with RJUMPV table size 1 (Positive)\n EOF1V4200_0007 (Valid) EOF with RJUMPV table size 1 (Negative)\n EOF1V4200_0008 (Valid) EOF with RJUMPV table size 1 (Zero)\n EOF1V4200_0009 (Valid) EOF with RJUMPV table size 3\n EOF1V4200_0010 (Valid) EOF with RJUMPV table size 255 (Target 0)\n EOF1V4200_0011 (Valid) EOF with RJUMPV table size 255 (Target 100)\n EOF1V4200_0012 (Valid) EOF with RJUMPV table size 255 (Target 254)\n EOF1V4200_0013 (Valid) EOF with RJUMPV table size 255 (Target 256)\n EOF1I4200_0001 (Invalid) EOF code containing truncated RJUMP\n EOF1I4200_0002 (Invalid) EOF code containing truncated RJUMP\n EOF1I4200_0003 (Invalid) EOF code containing RJUMP with target outside code bounds (Jumping into header)\n EOF1I4200_0004 (Invalid) EOF code containing RJUMP with target outside code bounds (Jumping before code begin)\n EOF1I4200_0005 (Invalid) EOF code containing RJUMP with target outside code bounds (Jumping into data section)\n EOF1I4200_0006 (Invalid) EOF code containing RJUMP with target outside code bounds (Jumping after code end)\n EOF1I4200_0007 (Invalid) EOF code containing RJUMP with target outside code bounds (Jumping to code end)\n EOF1I4200_0008 (Invalid) EOF code containing RJUMP with target self RJUMP immediate\n EOF1I4200_0009 (Invalid) EOF code containing RJUMP with target other RJUMP immediate\n EOF1I4200_0010 (Invalid) EOF code containing RJUMP with target RJUMPI immediate\n EOF1I4200_0011 (Invalid) EOF code containing RJUMP with target PUSH immediate\n EOF1I4200_0012 (Invalid) EOF code containing RJUMP with target RJUMPV immediate\n EOF1I4200_0013 (Invalid) EOF code containing RJUMP with target CALLF immediate\n EOF1I4200_0014 (Invalid) EOF code containing truncated RJUMPI\n EOF1I4200_0015 (Invalid) EOF code containing truncated RJUMPI\n EOF1I4200_0016 (Invalid) EOF code containing RJUMPI with target outside code bounds (Jumping into header)\n EOF1I4200_0017 (Invalid) EOF code containing RJUMPI with target outside code bounds (Jumping to before code begin)\n EOF1I4200_0018 (Invalid) EOF code containing RJUMPI with target outside code bounds (Jumping into data section)\n EOF1I4200_0019 (Invalid) EOF code containing RJUMPI with target outside code bounds (Jumping to after code end)\n EOF1I4200_0020 (Invalid) EOF code containing RJUMPI with target outside code bounds (Jumping to code end)\n EOF1I4200_0021 (Invalid) EOF code containing RJUMPI with target same RJUMPI immediate\n EOF1I4200_0022 (Invalid) EOF code containing RJUMPI with target other RJUMPI immediate\n EOF1I4200_0023 (Invalid) EOF code containing RJUMPI with target RJUMP immediate\n EOF1I4200_0024 (Invalid) EOF code containing RJUMPI with target PUSH immediate\n EOF1I4200_0025 (Invalid) EOF code containing RJUMPI with target RJUMPV immediate\n EOF1I4200_0026 (Invalid) EOF code containing RJUMPI with target CALLF immediate\n EOF1I4200_0027 (Invalid) EOF code containing RJUMPV with count 0 and zero immediates\n EOF1I4200_0028 (Invalid) EOF code containing RJUMPV with count 0 and one immediates\n EOF1I4200_0029 (Invalid) EOF code containing truncated RJUMPV\n EOF1I4200_0030 (Invalid) EOF code containing truncated RJUMPV\n EOF1I4200_0031 (Invalid) EOF code containing truncated RJUMPV\n EOF1I4200_0032 (Invalid) EOF code containing RJUMPV with target outside code bounds (Jumping into header)\n EOF1I4200_0033 (Invalid) EOF code containing RJUMPV with target outside code bounds (Jumping to before code begin)\n EOF1I4200_0034 (Invalid) EOF code containing RJUMPV with target outside code bounds (Jumping into data section)\n EOF1I4200_0035 (Invalid) EOF code containing RJUMPV with target outside code bounds (Jumping to after code end)\n EOF1I4200_0036 (Invalid) EOF code containing RJUMPV with target outside code bounds (Jumping to code end)\n EOF1I4200_0037 (Invalid) EOF code containing RJUMPV with target same RJUMPV immediate\n EOF1I4200_0038 (Invalid) EOF code containing RJUMPV with target RJUMP immediate\n EOF1I4200_0039 (Invalid) EOF code containing RJUMPV with target RJUMPI immediate\n EOF1I4200_0040 (Invalid) EOF code containing RJUMPV with target PUSH immediate\n EOF1I4200_0041 (Invalid) EOF code containing RJUMPV with target other RJUMPV immediate\n EOF1I4200_0042 (Invalid) EOF code containing RJUMPV with target CALLF immediate\n # <@f1\n", + "comment" : "Test various examples to see if they are valid or invalid.\nImplements\n EOF1V4200_0001 (Valid) EOF code containing RJUMP (Positive, Negative)\n EOF1V4200_0002 (Valid) EOF code containing RJUMP (Zero)\n EOF1V4200_0003 (Valid) EOF code containing RJUMPI (Positive)\n EOF1V4200_0004 (Valid) EOF code containing RJUMPI (Negative)\n EOF1V4200_0005 (Valid) EOF code containing RJUMPI (Zero)\n EOF1V4200_0006 (Valid) EOF with RJUMPV table size 1 (Positive)\n EOF1V4200_0007 (Valid) EOF with RJUMPV table size 1 (Negative)\n EOF1V4200_0008 (Valid) EOF with RJUMPV table size 1 (Zero)\n EOF1V4200_0009 (Valid) EOF with RJUMPV table size 3\n EOF1V4200_0010 (Valid) EOF with RJUMPV table size 255 (Target 0)\n EOF1V4200_0011 (Valid) EOF with RJUMPV table size 255 (Target 100)\n EOF1V4200_0012 (Valid) EOF with RJUMPV table size 255 (Target 254)\n EOF1V4200_0013 (Valid) EOF with RJUMPV table size 255 (Target 256)\n EOF1I4200_0001 (Invalid) EOF code containing truncated RJUMP\n EOF1I4200_0002 (Invalid) EOF code containing truncated RJUMP\n EOF1I4200_0003 (Invalid) EOF code containing RJUMP with target outside code bounds (Jumping into header)\n EOF1I4200_0004 (Invalid) EOF code containing RJUMP with target outside code bounds (Jumping before code begin)\n EOF1I4200_0005 (Invalid) EOF code containing RJUMP with target outside code bounds (Jumping into data section)\n EOF1I4200_0006 (Invalid) EOF code containing RJUMP with target outside code bounds (Jumping after code end)\n EOF1I4200_0007 (Invalid) EOF code containing RJUMP with target outside code bounds (Jumping to code end)\n EOF1I4200_0008 (Invalid) EOF code containing RJUMP with target self RJUMP immediate\n EOF1I4200_0009 (Invalid) EOF code containing RJUMP with target other RJUMP immediate\n EOF1I4200_0010 (Invalid) EOF code containing RJUMP with target RJUMPI immediate\n EOF1I4200_0011 (Invalid) EOF code containing RJUMP with target PUSH immediate\n EOF1I4200_0012 (Invalid) EOF code containing RJUMP with target RJUMPV immediate\n EOF1I4200_0013 (Invalid) EOF code containing RJUMP with target CALLF immediate\n EOF1I4200_0014 (Invalid) EOF code containing truncated RJUMPI\n EOF1I4200_0015 (Invalid) EOF code containing truncated RJUMPI\n EOF1I4200_0016 (Invalid) EOF code containing RJUMPI with target outside code bounds (Jumping into header)\n EOF1I4200_0017 (Invalid) EOF code containing RJUMPI with target outside code bounds (Jumping to before code begin)\n EOF1I4200_0018 (Invalid) EOF code containing RJUMPI with target outside code bounds (Jumping into data section)\n EOF1I4200_0019 (Invalid) EOF code containing RJUMPI with target outside code bounds (Jumping to after code end)\n EOF1I4200_0020 (Invalid) EOF code containing RJUMPI with target outside code bounds (Jumping to code end)\n EOF1I4200_0021 (Invalid) EOF code containing RJUMPI with target same RJUMPI immediate\n EOF1I4200_0022 (Invalid) EOF code containing RJUMPI with target other RJUMPI immediate\n EOF1I4200_0023 (Invalid) EOF code containing RJUMPI with target RJUMP immediate\n EOF1I4200_0024 (Invalid) EOF code containing RJUMPI with target PUSH immediate\n EOF1I4200_0025 (Invalid) EOF code containing RJUMPI with target RJUMPV immediate\n EOF1I4200_0026 (Invalid) EOF code containing RJUMPI with target CALLF immediate\n EOF1I4200_0027 (Invalid) EOF code containing RJUMPV with count 0 and zero immediates\n EOF1I4200_0028 (Invalid) EOF code containing RJUMPV with count 0 and one immediates\n EOF1I4200_0029 (Invalid) EOF code containing truncated RJUMPV\n EOF1I4200_0030 (Invalid) EOF code containing truncated RJUMPV\n EOF1I4200_0031 (Invalid) EOF code containing truncated RJUMPV\n EOF1I4200_0032 (Invalid) EOF code containing RJUMPV with target outside code bounds (Jumping into header)\n EOF1I4200_0033 (Invalid) EOF code containing RJUMPV with target outside code bounds (Jumping to before code begin)\n EOF1I4200_0034 (Invalid) EOF code containing RJUMPV with target outside code bounds (Jumping into data section)\n EOF1I4200_0035 (Invalid) EOF code containing RJUMPV with target outside code bounds (Jumping to after code end)\n EOF1I4200_0036 (Invalid) EOF code containing RJUMPV with target outside code bounds (Jumping to code end)\n EOF1I4200_0037 (Invalid) EOF code containing RJUMPV with target same RJUMPV immediate\n EOF1I4200_0038 (Invalid) EOF code containing RJUMPV with target RJUMP immediate\n EOF1I4200_0039 (Invalid) EOF code containing RJUMPV with target RJUMPI immediate\n EOF1I4200_0040 (Invalid) EOF code containing RJUMPV with target PUSH immediate\n EOF1I4200_0041 (Invalid) EOF code containing RJUMPV with target other RJUMPV immediate\n EOF1I4200_0042 (Invalid) EOF code containing RJUMPV with target CALLF immediate\n", "filling-rpc-server" : "evmone-t8n 0.10.0-dev", "filling-tool-version" : "retesteth-0.3.1-shanghai+commit.e3504804.Linux.g++", "generatedTestHash" : "db9811be39b2647352dadf51ac6a30091ebdde4345e4e2464b20acdf1b16adcb", "lllcversion" : "Version: 0.5.14-develop.2022.4.6+commit.401d5358.Linux.g++", "solidity" : "Version: 0.8.18-develop.2023.1.16+commit.469d6d4d.Linux.g++", "source" : "src/EOFTestsFiller/EIP4200/validInvalidFiller.yml", - "sourceHash" : "23f21c115cc90793d790d5fc54219dec1b62060baa98cadffc346db6fb2a1aa8" + "sourceHash" : "80bd2ab94fc95a2f082a5b5bff98530379aa3ff7bde0364cc591f124f34975a0" }, "vectors" : { "validInvalid_0" : { diff --git a/src/EOFTestsFiller/EIP4200/validInvalidFiller.yml b/src/EOFTestsFiller/EIP4200/validInvalidFiller.yml index a892b10570c..7262714f84a 100644 --- a/src/EOFTestsFiller/EIP4200/validInvalidFiller.yml +++ b/src/EOFTestsFiller/EIP4200/validInvalidFiller.yml @@ -3,7 +3,6 @@ validInvalid: comment: | Test various examples to see if they are valid or invalid. Implements - # >@f1 EOF1V4200_0001 (Valid) EOF code containing RJUMP (Positive, Negative) EOF1V4200_0002 (Valid) EOF code containing RJUMP (Zero) EOF1V4200_0003 (Valid) EOF code containing RJUMPI (Positive) @@ -59,13 +58,11 @@ validInvalid: EOF1I4200_0040 (Invalid) EOF code containing RJUMPV with target PUSH immediate EOF1I4200_0041 (Invalid) EOF code containing RJUMPV with target other RJUMPV immediate EOF1I4200_0042 (Invalid) EOF code containing RJUMPV with target CALLF immediate - # <@f1 forks: - ">=Shanghai" vectors: - # >@f2 # EOF1V4200_0001 (Valid) EOF code containing RJUMP (Positive, Negative) # Code: RJUMP(push) save: SSTORE STOP push: PUSH1(1) PUSH1(1) RJUMP(save) - data: | @@ -1218,5 +1215,3 @@ validInvalid: expectException: "Shanghai" : "EOF_InvalidCode" ">=Cancun" : "EOF_InvalidJumpDestination" - - # <@f2 diff --git a/src/README.md b/src/README.md index 9e1413decc6..362b18e91ee 100644 --- a/src/README.md +++ b/src/README.md @@ -66,6 +66,48 @@ - ID: **EOF1I0023** sections with unreachable code fail - ID: **EOF1I0024** sections that end with a non-terminator opcode fail - ID: **EOF1I0025** data stack height of 1024 is invalid +- ID: **EOF1I4200_0001**: EOF code containing truncated RJUMP +- ID: **EOF1I4200_0002**: EOF code containing truncated RJUMP +- ID: **EOF1I4200_0003**: EOF code containing RJUMP with target outside code bounds (Jumping into header) +- ID: **EOF1I4200_0004**: EOF code containing RJUMP with target outside code bounds (Jumping before code begin) +- ID: **EOF1I4200_0005**: EOF code containing RJUMP with target outside code bounds (Jumping into data section) +- ID: **EOF1I4200_0006**: EOF code containing RJUMP with target outside code bounds (Jumping after code end) +- ID: **EOF1I4200_0007**: EOF code containing RJUMP with target outside code bounds (Jumping to code end) +- ID: **EOF1I4200_0008**: EOF code containing RJUMP with target self RJUMP immediate +- ID: **EOF1I4200_0009**: EOF code containing RJUMP with target other RJUMP immediate +- ID: **EOF1I4200_0010**: EOF code containing RJUMP with target RJUMPI immediate +- ID: **EOF1I4200_0011**: EOF code containing RJUMP with target PUSH immediate +- ID: **EOF1I4200_0012**: EOF code containing RJUMP with target RJUMPV immediate +- ID: **EOF1I4200_0013**: EOF code containing RJUMP with target CALLF immediate +- ID: **EOF1I4200_0014**: EOF code containing truncated RJUMPI +- ID: **EOF1I4200_0015**: EOF code containing truncated RJUMPI +- ID: **EOF1I4200_0016**: EOF code containing RJUMPI with target outside code bounds (Jumping into header) +- ID: **EOF1I4200_0017**: EOF code containing RJUMPI with target outside code bounds (Jumping to before code begin) +- ID: **EOF1I4200_0018**: EOF code containing RJUMPI with target outside code bounds (Jumping into data section) +- ID: **EOF1I4200_0019**: EOF code containing RJUMPI with target outside code bounds (Jumping to after code end) +- ID: **EOF1I4200_0020**: EOF code containing RJUMPI with target outside code bounds (Jumping to code end) +- ID: **EOF1I4200_0021**: EOF code containing RJUMPI with target same RJUMPI immediate +- ID: **EOF1I4200_0022**: EOF code containing RJUMPI with target other RJUMPI immediate +- ID: **EOF1I4200_0023**: EOF code containing RJUMPI with target RJUMP immediate +- ID: **EOF1I4200_0024**: EOF code containing RJUMPI with target PUSH immediate +- ID: **EOF1I4200_0025**: EOF code containing RJUMPI with target RJUMPV immediate +- ID: **EOF1I4200_0026**: EOF code containing RJUMPI with target CALLF immediate +- ID: **EOF1I4200_0027**: EOF code containing RJUMPV with count 0 and zero immediates +- ID: **EOF1I4200_0028**: EOF code containing RJUMPV with count 0 and one immediates +- ID: **EOF1I4200_0029**: EOF code containing truncated RJUMPV +- ID: **EOF1I4200_0030**: EOF code containing truncated RJUMPV +- ID: **EOF1I4200_0031**: EOF code containing truncated RJUMPV +- ID: **EOF1I4200_0032**: EOF code containing RJUMPV with target outside code bounds (Jumping into header) +- ID: **EOF1I4200_0033**: EOF code containing RJUMPV with target outside code bounds (Jumping to before code begin) +- ID: **EOF1I4200_0034**: EOF code containing RJUMPV with target outside code bounds (Jumping into data section) +- ID: **EOF1I4200_0035**: EOF code containing RJUMPV with target outside code bounds (Jumping to after code end) +- ID: **EOF1I4200_0036**: EOF code containing RJUMPV with target outside code bounds (Jumping to code end) +- ID: **EOF1I4200_0037**: EOF code containing RJUMPV with target same RJUMPV immediate +- ID: **EOF1I4200_0038**: EOF code containing RJUMPV with target RJUMP immediate +- ID: **EOF1I4200_0039**: EOF code containing RJUMPV with target RJUMPI immediate +- ID: **EOF1I4200_0040**: EOF code containing RJUMPV with target PUSH immediate +- ID: **EOF1I4200_0041**: EOF code containing RJUMPV with target other RJUMPV immediate +- ID: **EOF1I4200_0042**: EOF code containing RJUMPV with target CALLF immediate - ID: **EOF1I4750_0001**: EOF code missing mandatory type section - ID: **EOF1I4750_0002**: EOF code containing multiple type headers - ID: **EOF1I4750_0003**: EOF code containing type section size (Size 1) @@ -206,6 +248,19 @@ - ID: **EOF1V0013** jump tables work - ID: **EOF1V0014** sections that end with a legit terminating opcode are OK - ID: **EOF1V0015** data stack height of 1023 is valid +- ID: **EOF1V4200_0001**: EOF code containing RJUMP (Positive, Negative) +- ID: **EOF1V4200_0002**: EOF code containing RJUMP (Zero) +- ID: **EOF1V4200_0003**: EOF code containing RJUMPI (Positive) +- ID: **EOF1V4200_0004**: EOF code containing RJUMPI (Negative) +- ID: **EOF1V4200_0005**: EOF code containing RJUMPI (Zero) +- ID: **EOF1V4200_0006**: EOF with RJUMPV table size 1 (Positive) +- ID: **EOF1V4200_0007**: EOF with RJUMPV table size 1 (Negative) +- ID: **EOF1V4200_0008**: EOF with RJUMPV table size 1 (Zero) +- ID: **EOF1V4200_0009**: EOF with RJUMPV table size 3 +- ID: **EOF1V4200_0010**: EOF with RJUMPV table size 255 (Target 0) +- ID: **EOF1V4200_0011**: EOF with RJUMPV table size 255 (Target 100) +- ID: **EOF1V4200_0012**: EOF with RJUMPV table size 255 (Target 254) +- ID: **EOF1V4200_0013**: EOF with RJUMPV table size 255 (Target 256) - ID: **EOF1V4750_0001**: EOF code containing single type section - ID: **EOF1V4750_0002**: EOF code containing single type section and data section - ID: **EOF1V4750_0003**: EOF code containing multiple type/code sections