mirror of
https://github.com/status-im/nimbus-eth1.git
synced 2025-01-24 03:00:25 +00:00
separate Frontier and Homestead opcode dispatcher
This commit is contained in:
parent
b4720bce26
commit
4383831772
@ -86,7 +86,7 @@ OK: 2/3 Fail: 0/3 Skip: 1/3
|
||||
callcallcallcode_001.json Skip
|
||||
callcallcallcode_001_OOGE.json Skip
|
||||
callcallcallcode_001_OOGMAfter.json Skip
|
||||
+ callcallcallcode_001_OOGMBefore.json OK
|
||||
callcallcallcode_001_OOGMBefore.json Skip
|
||||
callcallcallcode_001_SuicideEnd.json Skip
|
||||
+ callcallcallcode_001_SuicideMiddle.json OK
|
||||
callcallcallcode_ABCB_RECURSIVE.json Skip
|
||||
@ -94,16 +94,16 @@ OK: 2/3 Fail: 0/3 Skip: 1/3
|
||||
callcallcode_01_OOGE.json Skip
|
||||
callcallcode_01_SuicideEnd.json Skip
|
||||
callcallcodecall_010.json Skip
|
||||
callcallcodecall_010_OOGE.json Skip
|
||||
+ callcallcodecall_010_OOGMAfter.json OK
|
||||
+ callcallcodecall_010_OOGE.json OK
|
||||
callcallcodecall_010_OOGMAfter.json Skip
|
||||
callcallcodecall_010_OOGMBefore.json Skip
|
||||
callcallcodecall_010_SuicideEnd.json Skip
|
||||
callcallcodecall_010_SuicideMiddle.json Skip
|
||||
callcallcodecall_ABCB_RECURSIVE.json Skip
|
||||
callcallcodecallcode_011.json Skip
|
||||
callcallcodecallcode_011_OOGE.json Skip
|
||||
+ callcallcodecallcode_011_OOGMAfter.json OK
|
||||
callcallcodecallcode_011_OOGMBefore.json Skip
|
||||
+ callcallcodecallcode_011_OOGE.json OK
|
||||
callcallcodecallcode_011_OOGMAfter.json Skip
|
||||
+ callcallcodecallcode_011_OOGMBefore.json OK
|
||||
callcallcodecallcode_011_SuicideEnd.json Skip
|
||||
callcallcodecallcode_011_SuicideMiddle.json Skip
|
||||
callcallcodecallcode_ABCB_RECURSIVE.json Skip
|
||||
@ -115,42 +115,42 @@ OK: 2/3 Fail: 0/3 Skip: 1/3
|
||||
+ callcodeInInitcodeToExistingContract.json OK
|
||||
+ callcodeInInitcodeToExistingContractWithValueTransfer.json OK
|
||||
+ callcode_checkPC.json OK
|
||||
callcodecall_10.json Skip
|
||||
callcodecall_10_OOGE.json Skip
|
||||
callcodecall_10_SuicideEnd.json Skip
|
||||
+ callcodecall_10.json OK
|
||||
+ callcodecall_10_OOGE.json OK
|
||||
+ callcodecall_10_SuicideEnd.json OK
|
||||
callcodecallcall_100.json Skip
|
||||
callcodecallcall_100_OOGE.json Skip
|
||||
+ callcodecallcall_100_OOGE.json OK
|
||||
+ callcodecallcall_100_OOGMAfter.json OK
|
||||
callcodecallcall_100_OOGMBefore.json Skip
|
||||
callcodecallcall_100_SuicideEnd.json Skip
|
||||
callcodecallcall_100_SuicideMiddle.json Skip
|
||||
+ callcodecallcall_100_OOGMBefore.json OK
|
||||
+ callcodecallcall_100_SuicideEnd.json OK
|
||||
+ callcodecallcall_100_SuicideMiddle.json OK
|
||||
callcodecallcall_ABCB_RECURSIVE.json Skip
|
||||
callcodecallcallcode_101.json Skip
|
||||
callcodecallcallcode_101_OOGE.json Skip
|
||||
callcodecallcallcode_101_OOGMAfter.json Skip
|
||||
callcodecallcallcode_101_OOGMBefore.json Skip
|
||||
callcodecallcallcode_101_SuicideEnd.json Skip
|
||||
callcodecallcallcode_101_SuicideMiddle.json Skip
|
||||
+ callcodecallcallcode_101_OOGE.json OK
|
||||
+ callcodecallcallcode_101_OOGMAfter.json OK
|
||||
+ callcodecallcallcode_101_OOGMBefore.json OK
|
||||
+ callcodecallcallcode_101_SuicideEnd.json OK
|
||||
+ callcodecallcallcode_101_SuicideMiddle.json OK
|
||||
callcodecallcallcode_ABCB_RECURSIVE.json Skip
|
||||
callcodecallcode_11.json Skip
|
||||
callcodecallcode_11_OOGE.json Skip
|
||||
callcodecallcode_11_SuicideEnd.json Skip
|
||||
+ callcodecallcode_11_OOGE.json OK
|
||||
+ callcodecallcode_11_SuicideEnd.json OK
|
||||
callcodecallcodecall_110.json Skip
|
||||
callcodecallcodecall_110_OOGE.json Skip
|
||||
callcodecallcodecall_110_OOGMAfter.json Skip
|
||||
callcodecallcodecall_110_OOGMBefore.json Skip
|
||||
callcodecallcodecall_110_SuicideEnd.json Skip
|
||||
callcodecallcodecall_110_SuicideMiddle.json Skip
|
||||
+ callcodecallcodecall_110_OOGE.json OK
|
||||
+ callcodecallcodecall_110_OOGMAfter.json OK
|
||||
+ callcodecallcodecall_110_OOGMBefore.json OK
|
||||
+ callcodecallcodecall_110_SuicideEnd.json OK
|
||||
+ callcodecallcodecall_110_SuicideMiddle.json OK
|
||||
callcodecallcodecall_ABCB_RECURSIVE.json Skip
|
||||
callcodecallcodecallcode_111.json Skip
|
||||
callcodecallcodecallcode_111_OOGE.json Skip
|
||||
+ callcodecallcodecallcode_111_OOGE.json OK
|
||||
+ callcodecallcodecallcode_111_OOGMAfter.json OK
|
||||
callcodecallcodecallcode_111_OOGMBefore.json Skip
|
||||
callcodecallcodecallcode_111_SuicideEnd.json Skip
|
||||
callcodecallcodecallcode_111_SuicideMiddle.json Skip
|
||||
+ callcodecallcodecallcode_111_OOGMBefore.json OK
|
||||
+ callcodecallcodecallcode_111_SuicideEnd.json OK
|
||||
+ callcodecallcodecallcode_111_SuicideMiddle.json OK
|
||||
callcodecallcodecallcode_ABCB_RECURSIVE.json Skip
|
||||
```
|
||||
OK: 27/79 Fail: 0/79 Skip: 52/79
|
||||
OK: 50/79 Fail: 0/79 Skip: 29/79
|
||||
## stCallCreateCallCodeTest
|
||||
```diff
|
||||
Call1024BalanceTooLow.json Skip
|
||||
@ -183,7 +183,7 @@ OK: 27/79 Fail: 0/79 Skip: 52/79
|
||||
+ createInitFailBadJumpDestination.json OK
|
||||
+ createInitFailStackSizeLargerThan1024.json OK
|
||||
+ createInitFailStackUnderflow.json OK
|
||||
+ createInitFailUndefinedInstruction.json OK
|
||||
createInitFailUndefinedInstruction.json Skip
|
||||
+ createInitFail_OOGduringInit.json OK
|
||||
+ createInitOOGforCREATE.json OK
|
||||
createJS_ExampleContract.json Skip
|
||||
@ -193,13 +193,13 @@ OK: 27/79 Fail: 0/79 Skip: 52/79
|
||||
+ createNameRegistratorPreStore1NotEnoughGas.json OK
|
||||
+ createNameRegistratorendowmentTooHigh.json OK
|
||||
```
|
||||
OK: 19/39 Fail: 0/39 Skip: 20/39
|
||||
OK: 18/39 Fail: 0/39 Skip: 21/39
|
||||
## stCallDelegateCodesCallCodeHomestead
|
||||
```diff
|
||||
callcallcallcode_001.json Skip
|
||||
callcallcallcode_001_OOGE.json Skip
|
||||
callcallcallcode_001_OOGMAfter.json Skip
|
||||
+ callcallcallcode_001_OOGMBefore.json OK
|
||||
callcallcallcode_001_OOGMBefore.json Skip
|
||||
callcallcallcode_001_SuicideEnd.json Skip
|
||||
+ callcallcallcode_001_SuicideMiddle.json OK
|
||||
callcallcallcode_ABCB_RECURSIVE.json Skip
|
||||
@ -207,61 +207,61 @@ OK: 19/39 Fail: 0/39 Skip: 20/39
|
||||
callcallcode_01_OOGE.json Skip
|
||||
callcallcode_01_SuicideEnd.json Skip
|
||||
callcallcodecall_010.json Skip
|
||||
callcallcodecall_010_OOGE.json Skip
|
||||
+ callcallcodecall_010_OOGMAfter.json OK
|
||||
+ callcallcodecall_010_OOGE.json OK
|
||||
callcallcodecall_010_OOGMAfter.json Skip
|
||||
callcallcodecall_010_OOGMBefore.json Skip
|
||||
callcallcodecall_010_SuicideEnd.json Skip
|
||||
callcallcodecall_010_SuicideMiddle.json Skip
|
||||
callcallcodecall_ABCB_RECURSIVE.json Skip
|
||||
callcallcodecallcode_011.json Skip
|
||||
callcallcodecallcode_011_OOGE.json Skip
|
||||
+ callcallcodecallcode_011_OOGMAfter.json OK
|
||||
callcallcodecallcode_011_OOGMBefore.json Skip
|
||||
+ callcallcodecallcode_011_OOGE.json OK
|
||||
callcallcodecallcode_011_OOGMAfter.json Skip
|
||||
+ callcallcodecallcode_011_OOGMBefore.json OK
|
||||
callcallcodecallcode_011_SuicideEnd.json Skip
|
||||
callcallcodecallcode_011_SuicideMiddle.json Skip
|
||||
callcallcodecallcode_ABCB_RECURSIVE.json Skip
|
||||
callcodecall_10.json Skip
|
||||
callcodecall_10_OOGE.json Skip
|
||||
callcodecall_10_SuicideEnd.json Skip
|
||||
+ callcodecall_10.json OK
|
||||
+ callcodecall_10_OOGE.json OK
|
||||
+ callcodecall_10_SuicideEnd.json OK
|
||||
callcodecallcall_100.json Skip
|
||||
callcodecallcall_100_OOGE.json Skip
|
||||
+ callcodecallcall_100_OOGE.json OK
|
||||
+ callcodecallcall_100_OOGMAfter.json OK
|
||||
callcodecallcall_100_OOGMBefore.json Skip
|
||||
callcodecallcall_100_SuicideEnd.json Skip
|
||||
callcodecallcall_100_SuicideMiddle.json Skip
|
||||
+ callcodecallcall_100_OOGMBefore.json OK
|
||||
+ callcodecallcall_100_SuicideEnd.json OK
|
||||
+ callcodecallcall_100_SuicideMiddle.json OK
|
||||
callcodecallcall_ABCB_RECURSIVE.json Skip
|
||||
callcodecallcallcode_101.json Skip
|
||||
callcodecallcallcode_101_OOGE.json Skip
|
||||
callcodecallcallcode_101_OOGMAfter.json Skip
|
||||
callcodecallcallcode_101_OOGMBefore.json Skip
|
||||
callcodecallcallcode_101_SuicideEnd.json Skip
|
||||
callcodecallcallcode_101_SuicideMiddle.json Skip
|
||||
+ callcodecallcallcode_101_OOGE.json OK
|
||||
+ callcodecallcallcode_101_OOGMAfter.json OK
|
||||
+ callcodecallcallcode_101_OOGMBefore.json OK
|
||||
+ callcodecallcallcode_101_SuicideEnd.json OK
|
||||
+ callcodecallcallcode_101_SuicideMiddle.json OK
|
||||
callcodecallcallcode_ABCB_RECURSIVE.json Skip
|
||||
callcodecallcode_11.json Skip
|
||||
callcodecallcode_11_OOGE.json Skip
|
||||
callcodecallcode_11_SuicideEnd.json Skip
|
||||
+ callcodecallcode_11_OOGE.json OK
|
||||
+ callcodecallcode_11_SuicideEnd.json OK
|
||||
callcodecallcodecall_110.json Skip
|
||||
callcodecallcodecall_110_OOGE.json Skip
|
||||
callcodecallcodecall_110_OOGMAfter.json Skip
|
||||
callcodecallcodecall_110_OOGMBefore.json Skip
|
||||
callcodecallcodecall_110_SuicideEnd.json Skip
|
||||
callcodecallcodecall_110_SuicideMiddle.json Skip
|
||||
+ callcodecallcodecall_110_OOGE.json OK
|
||||
+ callcodecallcodecall_110_OOGMAfter.json OK
|
||||
+ callcodecallcodecall_110_OOGMBefore.json OK
|
||||
+ callcodecallcodecall_110_SuicideEnd.json OK
|
||||
+ callcodecallcodecall_110_SuicideMiddle.json OK
|
||||
callcodecallcodecall_ABCB_RECURSIVE.json Skip
|
||||
callcodecallcodecallcode_111.json Skip
|
||||
callcodecallcodecallcode_111_OOGE.json Skip
|
||||
+ callcodecallcodecallcode_111_OOGE.json OK
|
||||
+ callcodecallcodecallcode_111_OOGMAfter.json OK
|
||||
callcodecallcodecallcode_111_OOGMBefore.json Skip
|
||||
callcodecallcodecallcode_111_SuicideEnd.json Skip
|
||||
callcodecallcodecallcode_111_SuicideMiddle.json Skip
|
||||
+ callcodecallcodecallcode_111_OOGMBefore.json OK
|
||||
+ callcodecallcodecallcode_111_SuicideEnd.json OK
|
||||
+ callcodecallcodecallcode_111_SuicideMiddle.json OK
|
||||
callcodecallcodecallcode_ABCB_RECURSIVE.json Skip
|
||||
```
|
||||
OK: 6/58 Fail: 0/58 Skip: 52/58
|
||||
OK: 29/58 Fail: 0/58 Skip: 29/58
|
||||
## stCallDelegateCodesHomestead
|
||||
```diff
|
||||
callcallcallcode_001.json Skip
|
||||
callcallcallcode_001_OOGE.json Skip
|
||||
callcallcallcode_001_OOGMAfter.json Skip
|
||||
+ callcallcallcode_001_OOGMBefore.json OK
|
||||
callcallcallcode_001_OOGMBefore.json Skip
|
||||
callcallcallcode_001_SuicideEnd.json Skip
|
||||
+ callcallcallcode_001_SuicideMiddle.json OK
|
||||
callcallcallcode_ABCB_RECURSIVE.json Skip
|
||||
@ -269,55 +269,55 @@ OK: 6/58 Fail: 0/58 Skip: 52/58
|
||||
callcallcode_01_OOGE.json Skip
|
||||
callcallcode_01_SuicideEnd.json Skip
|
||||
callcallcodecall_010.json Skip
|
||||
callcallcodecall_010_OOGE.json Skip
|
||||
+ callcallcodecall_010_OOGMAfter.json OK
|
||||
+ callcallcodecall_010_OOGE.json OK
|
||||
callcallcodecall_010_OOGMAfter.json Skip
|
||||
callcallcodecall_010_OOGMBefore.json Skip
|
||||
callcallcodecall_010_SuicideEnd.json Skip
|
||||
callcallcodecall_010_SuicideMiddle.json Skip
|
||||
callcallcodecall_ABCB_RECURSIVE.json Skip
|
||||
callcallcodecallcode_011.json Skip
|
||||
callcallcodecallcode_011_OOGE.json Skip
|
||||
+ callcallcodecallcode_011_OOGMAfter.json OK
|
||||
callcallcodecallcode_011_OOGMBefore.json Skip
|
||||
+ callcallcodecallcode_011_OOGE.json OK
|
||||
callcallcodecallcode_011_OOGMAfter.json Skip
|
||||
+ callcallcodecallcode_011_OOGMBefore.json OK
|
||||
callcallcodecallcode_011_SuicideEnd.json Skip
|
||||
callcallcodecallcode_011_SuicideMiddle.json Skip
|
||||
callcallcodecallcode_ABCB_RECURSIVE.json Skip
|
||||
callcodecall_10.json Skip
|
||||
callcodecall_10_OOGE.json Skip
|
||||
callcodecall_10_SuicideEnd.json Skip
|
||||
+ callcodecall_10.json OK
|
||||
+ callcodecall_10_OOGE.json OK
|
||||
+ callcodecall_10_SuicideEnd.json OK
|
||||
callcodecallcall_100.json Skip
|
||||
callcodecallcall_100_OOGE.json Skip
|
||||
+ callcodecallcall_100_OOGE.json OK
|
||||
+ callcodecallcall_100_OOGMAfter.json OK
|
||||
callcodecallcall_100_OOGMBefore.json Skip
|
||||
callcodecallcall_100_SuicideEnd.json Skip
|
||||
callcodecallcall_100_SuicideMiddle.json Skip
|
||||
+ callcodecallcall_100_OOGMBefore.json OK
|
||||
+ callcodecallcall_100_SuicideEnd.json OK
|
||||
+ callcodecallcall_100_SuicideMiddle.json OK
|
||||
callcodecallcall_ABCB_RECURSIVE.json Skip
|
||||
callcodecallcallcode_101.json Skip
|
||||
callcodecallcallcode_101_OOGE.json Skip
|
||||
callcodecallcallcode_101_OOGMAfter.json Skip
|
||||
callcodecallcallcode_101_OOGMBefore.json Skip
|
||||
callcodecallcallcode_101_SuicideEnd.json Skip
|
||||
callcodecallcallcode_101_SuicideMiddle.json Skip
|
||||
+ callcodecallcallcode_101_OOGE.json OK
|
||||
+ callcodecallcallcode_101_OOGMAfter.json OK
|
||||
+ callcodecallcallcode_101_OOGMBefore.json OK
|
||||
+ callcodecallcallcode_101_SuicideEnd.json OK
|
||||
+ callcodecallcallcode_101_SuicideMiddle.json OK
|
||||
callcodecallcallcode_ABCB_RECURSIVE.json Skip
|
||||
callcodecallcode_11.json Skip
|
||||
callcodecallcode_11_OOGE.json Skip
|
||||
callcodecallcode_11_SuicideEnd.json Skip
|
||||
+ callcodecallcode_11_OOGE.json OK
|
||||
+ callcodecallcode_11_SuicideEnd.json OK
|
||||
callcodecallcodecall_110.json Skip
|
||||
callcodecallcodecall_110_OOGE.json Skip
|
||||
callcodecallcodecall_110_OOGMAfter.json Skip
|
||||
callcodecallcodecall_110_OOGMBefore.json Skip
|
||||
callcodecallcodecall_110_SuicideEnd.json Skip
|
||||
callcodecallcodecall_110_SuicideMiddle.json Skip
|
||||
+ callcodecallcodecall_110_OOGE.json OK
|
||||
+ callcodecallcodecall_110_OOGMAfter.json OK
|
||||
+ callcodecallcodecall_110_OOGMBefore.json OK
|
||||
+ callcodecallcodecall_110_SuicideEnd.json OK
|
||||
+ callcodecallcodecall_110_SuicideMiddle.json OK
|
||||
callcodecallcodecall_ABCB_RECURSIVE.json Skip
|
||||
callcodecallcodecallcode_111.json Skip
|
||||
callcodecallcodecallcode_111_OOGE.json Skip
|
||||
+ callcodecallcodecallcode_111_OOGE.json OK
|
||||
+ callcodecallcodecallcode_111_OOGMAfter.json OK
|
||||
callcodecallcodecallcode_111_OOGMBefore.json Skip
|
||||
callcodecallcodecallcode_111_SuicideEnd.json Skip
|
||||
callcodecallcodecallcode_111_SuicideMiddle.json Skip
|
||||
+ callcodecallcodecallcode_111_OOGMBefore.json OK
|
||||
+ callcodecallcodecallcode_111_SuicideEnd.json OK
|
||||
+ callcodecallcodecallcode_111_SuicideMiddle.json OK
|
||||
callcodecallcodecallcode_ABCB_RECURSIVE.json Skip
|
||||
```
|
||||
OK: 6/58 Fail: 0/58 Skip: 52/58
|
||||
OK: 29/58 Fail: 0/58 Skip: 29/58
|
||||
## stChangedEIP150
|
||||
```diff
|
||||
Call1024BalanceTooLow.json Skip
|
||||
@ -335,7 +335,7 @@ OK: 6/58 Fail: 0/58 Skip: 52/58
|
||||
+ callcallcodecall_010_OOGMAfter_3.json OK
|
||||
+ callcallcodecallcode_011_OOGMAfter_1.json OK
|
||||
+ callcallcodecallcode_011_OOGMAfter_2.json OK
|
||||
callcodecallcall_100_OOGMAfter_1.json Skip
|
||||
+ callcodecallcall_100_OOGMAfter_1.json OK
|
||||
+ callcodecallcall_100_OOGMAfter_2.json OK
|
||||
+ callcodecallcall_100_OOGMAfter_3.json OK
|
||||
+ callcodecallcallcode_101_OOGMAfter_1.json OK
|
||||
@ -351,7 +351,7 @@ OK: 6/58 Fail: 0/58 Skip: 52/58
|
||||
+ contractCreationMakeCallThatAskMoreGasThenTransactionProvided.jsonOK
|
||||
+ createInitFail_OOGduringInit.json OK
|
||||
```
|
||||
OK: 25/30 Fail: 0/30 Skip: 5/30
|
||||
OK: 26/30 Fail: 0/30 Skip: 4/30
|
||||
## stCodeCopyTest
|
||||
```diff
|
||||
+ ExtCodeCopyTests.json OK
|
||||
@ -592,9 +592,9 @@ OK: 46/46 Fail: 0/46 Skip: 0/46
|
||||
+ CreateAndGasInsideCreateWithMemExpandingCalls.json OK
|
||||
+ DelegateCallOnEIPWithMemExpandingCalls.json OK
|
||||
+ ExecuteCallThatAskMoreGasThenTransactionHasWithMemExpandingCalls.jsonOK
|
||||
NewGasPriceForCodesWithMemExpandingCalls.json Skip
|
||||
+ NewGasPriceForCodesWithMemExpandingCalls.json OK
|
||||
```
|
||||
OK: 7/8 Fail: 0/8 Skip: 1/8
|
||||
OK: 8/8 Fail: 0/8 Skip: 0/8
|
||||
## stMemoryStressTest
|
||||
```diff
|
||||
CALLCODE_Bounds.json Skip
|
||||
@ -718,10 +718,10 @@ OK: 67/67 Fail: 0/67 Skip: 0/67
|
||||
+ NonZeroValue_CALL_ToEmpty.json OK
|
||||
+ NonZeroValue_CALL_ToNonNonZeroBalance.json OK
|
||||
+ NonZeroValue_CALL_ToOneStorageKey.json OK
|
||||
NonZeroValue_DELEGATECALL.json Skip
|
||||
NonZeroValue_DELEGATECALL_ToEmpty.json Skip
|
||||
NonZeroValue_DELEGATECALL_ToNonNonZeroBalance.json Skip
|
||||
NonZeroValue_DELEGATECALL_ToOneStorageKey.json Skip
|
||||
+ NonZeroValue_DELEGATECALL.json OK
|
||||
+ NonZeroValue_DELEGATECALL_ToEmpty.json OK
|
||||
+ NonZeroValue_DELEGATECALL_ToNonNonZeroBalance.json OK
|
||||
+ NonZeroValue_DELEGATECALL_ToOneStorageKey.json OK
|
||||
+ NonZeroValue_SUICIDE.json OK
|
||||
+ NonZeroValue_SUICIDE_ToEmpty.json OK
|
||||
+ NonZeroValue_SUICIDE_ToNonNonZeroBalance.json OK
|
||||
@ -735,7 +735,7 @@ OK: 67/67 Fail: 0/67 Skip: 0/67
|
||||
+ NonZeroValue_TransactionCALLwithData_ToNonNonZeroBalance.json OK
|
||||
+ NonZeroValue_TransactionCALLwithData_ToOneStorageKey.json OK
|
||||
```
|
||||
OK: 20/24 Fail: 0/24 Skip: 4/24
|
||||
OK: 24/24 Fail: 0/24 Skip: 0/24
|
||||
## stPreCompiledContracts
|
||||
```diff
|
||||
identity_to_bigger.json Skip
|
||||
@ -2229,10 +2229,10 @@ OK: 0/24 Fail: 0/24 Skip: 24/24
|
||||
+ ZeroValue_CALL_ToEmpty.json OK
|
||||
+ ZeroValue_CALL_ToNonZeroBalance.json OK
|
||||
+ ZeroValue_CALL_ToOneStorageKey.json OK
|
||||
ZeroValue_DELEGATECALL.json Skip
|
||||
ZeroValue_DELEGATECALL_ToEmpty.json Skip
|
||||
ZeroValue_DELEGATECALL_ToNonZeroBalance.json Skip
|
||||
ZeroValue_DELEGATECALL_ToOneStorageKey.json Skip
|
||||
+ ZeroValue_DELEGATECALL.json OK
|
||||
+ ZeroValue_DELEGATECALL_ToEmpty.json OK
|
||||
+ ZeroValue_DELEGATECALL_ToNonZeroBalance.json OK
|
||||
+ ZeroValue_DELEGATECALL_ToOneStorageKey.json OK
|
||||
+ ZeroValue_SUICIDE.json OK
|
||||
+ ZeroValue_SUICIDE_ToEmpty.json OK
|
||||
+ ZeroValue_SUICIDE_ToNonZeroBalance.json OK
|
||||
@ -2246,7 +2246,7 @@ OK: 0/24 Fail: 0/24 Skip: 24/24
|
||||
+ ZeroValue_TransactionCALLwithData_ToNonZeroBalance.json OK
|
||||
+ ZeroValue_TransactionCALLwithData_ToOneStorageKey.json OK
|
||||
```
|
||||
OK: 20/24 Fail: 0/24 Skip: 4/24
|
||||
OK: 24/24 Fail: 0/24 Skip: 0/24
|
||||
## stZeroKnowledge
|
||||
```diff
|
||||
ecmul_1-2_2_28000_128.json Skip
|
||||
@ -2520,4 +2520,4 @@ OK: 0/133 Fail: 0/133 Skip: 133/133
|
||||
OK: 0/130 Fail: 0/130 Skip: 130/130
|
||||
|
||||
---TOTAL---
|
||||
OK: 1231/2334 Fail: 0/2334 Skip: 1103/2334
|
||||
OK: 1309/2334 Fail: 0/2334 Skip: 1025/2334
|
||||
|
@ -172,13 +172,18 @@ let FrontierOpDispatch {.compileTime.}: array[Op, NimNode] = block:
|
||||
Call: newIdentNode "call",
|
||||
CallCode: newIdentNode "callCode",
|
||||
Return: newIdentNode "returnOp",
|
||||
DelegateCall: newIdentNode "delegateCall",
|
||||
# StaticCall: introduced in Byzantium
|
||||
# Revert: introduced in Byzantium
|
||||
# Invalid: newIdentNode "invalid",
|
||||
SelfDestruct: newIdentNode "selfDestruct"
|
||||
]
|
||||
|
||||
proc genHomesteadJumpTable(ops: array[Op, NimNode]): array[Op, NimNode] {.compileTime.} =
|
||||
result = ops
|
||||
result[DelegateCall] = newIdentNode "delegateCall"
|
||||
|
||||
let HomesteadOpDispatch {.compileTime.}: array[Op, NimNode] = genHomesteadJumpTable(FrontierOpDispatch)
|
||||
|
||||
proc opTableToCaseStmt(opTable: array[Op, NimNode], computation: NimNode): NimNode =
|
||||
|
||||
let instr = genSym(nskVar)
|
||||
@ -240,15 +245,25 @@ proc opTableToCaseStmt(opTable: array[Op, NimNode], computation: NimNode): NimNo
|
||||
macro genFrontierDispatch(computation: BaseComputation): untyped =
|
||||
result = opTableToCaseStmt(FrontierOpDispatch, computation)
|
||||
|
||||
macro genHomesteadDispatch(computation: BaseComputation): untyped =
|
||||
result = opTableToCaseStmt(HomesteadOpDispatch, computation)
|
||||
|
||||
proc frontierVM(computation: var BaseComputation) =
|
||||
if not computation.execPrecompiles:
|
||||
genFrontierDispatch(computation)
|
||||
|
||||
proc homesteadVM(computation: var BaseComputation) =
|
||||
if not computation.execPrecompiles:
|
||||
genHomesteadDispatch(computation)
|
||||
|
||||
proc updateOpcodeExec*(computation: var BaseComputation, fork: Fork) =
|
||||
case fork
|
||||
of FkFrontier..FkSpurious:
|
||||
of FkFrontier:
|
||||
computation.opCodeExec = frontierVM
|
||||
computation.frontierVM()
|
||||
of FkHomestead..FkSpurious:
|
||||
computation.opCodeExec = homesteadVM
|
||||
computation.homesteadVM()
|
||||
else:
|
||||
raise newException(VMError, "Unknown or not implemented fork: " & $fork)
|
||||
|
||||
|
@ -13,32 +13,8 @@
|
||||
# being mostly used for short-term regression prevention.
|
||||
func allowedFailingGeneralStateTest*(folder, name: string): bool =
|
||||
let allowedFailingGeneralStateTests = @[
|
||||
"callcallcallcode_001.json",
|
||||
"callcallcallcode_001.json",
|
||||
"callcallcode_01.json",
|
||||
"callcallcodecall_010.json",
|
||||
"callcallcodecallcode_011.json",
|
||||
"callcodecallcall_100.json",
|
||||
"callcodecallcallcode_101.json",
|
||||
"callcodecallcode_11.json",
|
||||
"callcodecallcodecall_110.json",
|
||||
"callcodecallcodecallcode_111.json",
|
||||
"TransactionCollisionToEmptyButCode.json",
|
||||
"TransactionCollisionToEmptyButNonce.json",
|
||||
"CallLoseGasOOG.json",
|
||||
"CallcodeLoseGasOOG.json",
|
||||
"callOutput1.json",
|
||||
"callOutput2.json",
|
||||
"callOutput3.json",
|
||||
"callOutput3Fail.json",
|
||||
"callOutput3partial.json",
|
||||
"callOutput3partialFail.json",
|
||||
"callcodeOutput1.json",
|
||||
"callcodeOutput2.json",
|
||||
"callcodeOutput3.json",
|
||||
"callcodeOutput3Fail.json",
|
||||
"callcodeOutput3partial.json",
|
||||
"callcodeOutput3partialFail.json",
|
||||
"deleagateCallAfterValueTransfer.json",
|
||||
"delegatecallInInitcodeToEmptyContract.json",
|
||||
"delegatecallInInitcodeToExistingContract.json",
|
||||
@ -104,54 +80,52 @@ func allowedFailingGeneralStateTest*(folder, name: string): bool =
|
||||
"callcodecallcodecallcode_ABCB_RECURSIVE.json",
|
||||
# Frontier failed test cases
|
||||
"createJS_ExampleContract.json",
|
||||
"callcallcallcode_001_OOGMAfter_1.json",
|
||||
"callcallcallcode_001_OOGMAfter_2.json",
|
||||
"createInitFailUndefinedInstruction.json",
|
||||
"callcallcodecall_010_OOGMAfter.json",
|
||||
|
||||
# Failed in homestead but OK in Frontier
|
||||
"callcallcallcode_001.json",
|
||||
"callcallcallcode_001_OOGE.json",
|
||||
"callcallcallcode_001_OOGMAfter.json",
|
||||
"callcallcallcode_001_OOGMBefore.json",
|
||||
"callcallcallcode_001_SuicideEnd.json",
|
||||
"callcallcallcode_ABCB_RECURSIVE.json",
|
||||
"callcallcode_01.json",
|
||||
"callcallcode_01_OOGE.json",
|
||||
"callcallcode_01_SuicideEnd.json",
|
||||
"callcallcodecall_010_OOGE.json",
|
||||
"callcallcodecall_010.json",
|
||||
"callcallcodecall_010_OOGMBefore.json",
|
||||
"callcallcodecall_010_SuicideEnd.json",
|
||||
"callcallcodecall_010_SuicideMiddle.json",
|
||||
"callcallcodecallcode_011_OOGE.json",
|
||||
"callcallcodecallcode_011_OOGMBefore.json",
|
||||
"callcallcodecallcode_011.json",
|
||||
"callcallcodecallcode_011_OOGMAfter.json",
|
||||
"callcallcodecallcode_011_SuicideEnd.json",
|
||||
"callcallcodecallcode_011_SuicideMiddle.json",
|
||||
"callcodecall_10.json",
|
||||
"callcodecall_10_OOGE.json",
|
||||
"callcodecall_10_SuicideEnd.json",
|
||||
"callcodecallcall_100_OOGE.json",
|
||||
"callcodecallcall_100_OOGMBefore.json",
|
||||
"callcodecallcall_100_SuicideEnd.json",
|
||||
"callcodecallcall_100_SuicideMiddle.json",
|
||||
"callcodecallcallcode_101_OOGE.json",
|
||||
"callcodecallcallcode_101_OOGMAfter.json",
|
||||
"callcodecallcallcode_101_OOGMBefore.json",
|
||||
"callcodecallcallcode_101_SuicideEnd.json",
|
||||
"callcodecallcallcode_101_SuicideMiddle.json",
|
||||
"callcodecallcode_11_OOGE.json",
|
||||
"callcodecallcode_11_SuicideEnd.json",
|
||||
"callcodecallcodecall_110_OOGE.json",
|
||||
"callcodecallcodecall_110_OOGMAfter.json",
|
||||
"callcodecallcodecall_110_OOGMBefore.json",
|
||||
"callcodecallcodecall_110_SuicideEnd.json",
|
||||
"callcodecallcodecall_110_SuicideMiddle.json",
|
||||
"callcodecallcodecallcode_111_OOGE.json",
|
||||
"callcodecallcodecallcode_111_OOGMBefore.json",
|
||||
"callcodecallcodecallcode_111_SuicideEnd.json",
|
||||
"callcodecallcodecallcode_111_SuicideMiddle.json",
|
||||
"callcallcallcode_001_OOGMAfter_1.json",
|
||||
"callcallcallcode_001_OOGMAfter_2.json",
|
||||
"callcodecallcall_100_OOGMAfter_1.json",
|
||||
"NewGasPriceForCodesWithMemExpandingCalls.json",
|
||||
"NonZeroValue_DELEGATECALL.json",
|
||||
"NonZeroValue_DELEGATECALL_ToEmpty.json",
|
||||
"NonZeroValue_DELEGATECALL_ToNonNonZeroBalance.json",
|
||||
"NonZeroValue_DELEGATECALL_ToOneStorageKey.json",
|
||||
"ZeroValue_DELEGATECALL.json",
|
||||
"ZeroValue_DELEGATECALL_ToEmpty.json",
|
||||
"ZeroValue_DELEGATECALL_ToNonZeroBalance.json",
|
||||
"ZeroValue_DELEGATECALL_ToOneStorageKey.json"
|
||||
"callcallcallcode_001.json",
|
||||
"callcallcallcode_001_OOGMAfter.json",
|
||||
"callcallcode_01.json",
|
||||
"callcallcodecall_010.json",
|
||||
"callcallcodecallcode_011.json",
|
||||
"callcodecallcall_100.json",
|
||||
"callcodecallcallcode_101.json",
|
||||
"callcodecallcode_11.json",
|
||||
"callcodecallcodecall_110.json",
|
||||
"callcodecallcodecallcode_111.json",
|
||||
"CallLoseGasOOG.json",
|
||||
"CallcodeLoseGasOOG.json",
|
||||
"callOutput1.json",
|
||||
"callOutput2.json",
|
||||
"callOutput3.json",
|
||||
"callOutput3Fail.json",
|
||||
"callOutput3partial.json",
|
||||
"callOutput3partialFail.json",
|
||||
"callcodeOutput1.json",
|
||||
"callcodeOutput2.json",
|
||||
"callcodeOutput3.json",
|
||||
"callcodeOutput3Fail.json",
|
||||
"callcodeOutput3partial.json",
|
||||
"callcodeOutput3partialFail.json"
|
||||
]
|
||||
result = name in allowedFailingGeneralStateTests
|
||||
|
@ -290,7 +290,6 @@ proc getFixtureTransaction*(j: JsonNode, dataIndex, gasIndex, valueIndex: int):
|
||||
result.R = fromBytesBE(Uint256, raw[0..31])
|
||||
result.S = fromBytesBE(Uint256, raw[32..63])
|
||||
result.V = raw[64] + 27.byte
|
||||
|
||||
|
||||
proc hashLogEntries*(logs: seq[Log]): string =
|
||||
toLowerAscii("0x" & $keccakHash(rlp.encode(logs)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user