fix ecrecover bad V, GST +1
This commit is contained in:
parent
aed0db2d03
commit
7198ce2d05
|
@ -853,7 +853,7 @@ OK: 0/96 Fail: 0/96 Skip: 96/96
|
||||||
+ CALLCODEEcrecoverR_prefixed0.json OK
|
+ CALLCODEEcrecoverR_prefixed0.json OK
|
||||||
+ CALLCODEEcrecoverS_prefixed0.json OK
|
+ CALLCODEEcrecoverS_prefixed0.json OK
|
||||||
+ CALLCODEEcrecoverV_prefixed0.json OK
|
+ CALLCODEEcrecoverV_prefixed0.json OK
|
||||||
CALLCODEEcrecoverV_prefixedf0.json Skip
|
+ CALLCODEEcrecoverV_prefixedf0.json OK
|
||||||
+ CALLCODEIdentitiy_0.json OK
|
+ CALLCODEIdentitiy_0.json OK
|
||||||
+ CALLCODEIdentitiy_1.json OK
|
+ CALLCODEIdentitiy_1.json OK
|
||||||
+ CALLCODEIdentity_1_nonzeroValue.json OK
|
+ CALLCODEIdentity_1_nonzeroValue.json OK
|
||||||
|
@ -933,7 +933,7 @@ OK: 0/96 Fail: 0/96 Skip: 96/96
|
||||||
modexp_0_0_0_25000.json Skip
|
modexp_0_0_0_25000.json Skip
|
||||||
modexp_0_0_0_35000.json Skip
|
modexp_0_0_0_35000.json Skip
|
||||||
```
|
```
|
||||||
OK: 88/94 Fail: 0/94 Skip: 6/94
|
OK: 89/94 Fail: 0/94 Skip: 5/94
|
||||||
## stQuadraticComplexityTest
|
## stQuadraticComplexityTest
|
||||||
```diff
|
```diff
|
||||||
Call1MB1024Calldepth.json Skip
|
Call1MB1024Calldepth.json Skip
|
||||||
|
@ -2520,4 +2520,4 @@ OK: 0/133 Fail: 0/133 Skip: 133/133
|
||||||
OK: 0/130 Fail: 0/130 Skip: 130/130
|
OK: 0/130 Fail: 0/130 Skip: 130/130
|
||||||
|
|
||||||
---TOTAL---
|
---TOTAL---
|
||||||
OK: 1424/2334 Fail: 0/2334 Skip: 910/2334
|
OK: 1425/2334 Fail: 0/2334 Skip: 909/2334
|
||||||
|
|
|
@ -27,8 +27,12 @@ proc getSignature*(computation: BaseComputation): (array[32, byte], Signature) =
|
||||||
# Copy message data to buffer
|
# Copy message data to buffer
|
||||||
# Note that we need to rearrange to R, S, V
|
# Note that we need to rearrange to R, S, V
|
||||||
bytes[0..63] = data[64..127]
|
bytes[0..63] = data[64..127]
|
||||||
let v = data[63] # TODO: Endian
|
var VOK = true
|
||||||
if v.int notin 27..28:
|
let v = data[63]
|
||||||
|
for x in 32..<63:
|
||||||
|
if data[x] != 0: VOK = false
|
||||||
|
VOK = VOK and v.int in 27..28
|
||||||
|
if not VOK:
|
||||||
raise newException(ValidationError, "Invalid V in getSignature")
|
raise newException(ValidationError, "Invalid V in getSignature")
|
||||||
bytes[64] = v - 27
|
bytes[64] = v - 27
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
# being mostly used for short-term regression prevention.
|
# being mostly used for short-term regression prevention.
|
||||||
func allowedFailingGeneralStateTest*(folder, name: string): bool =
|
func allowedFailingGeneralStateTest*(folder, name: string): bool =
|
||||||
let allowedFailingGeneralStateTests = @[
|
let allowedFailingGeneralStateTests = @[
|
||||||
"CALLCODEEcrecoverV_prefixedf0.json",
|
|
||||||
"randomStatetest14.json",
|
"randomStatetest14.json",
|
||||||
"randomStatetest85.json",
|
"randomStatetest85.json",
|
||||||
"tx_e1c174e2.json",
|
"tx_e1c174e2.json",
|
||||||
|
|
Loading…
Reference in New Issue