@@ -48,7 +48,7 @@ func (v *Validator) ValidateBlocks(blocks []common.BlockData) (validBlocks []com
48
48
invalidBlocks = make ([]common.BlockData , 0 )
49
49
validBlocks = make ([]common.BlockData , 0 )
50
50
for _ , blockData := range blocks {
51
- valid , err := ValidateBlock (blockData )
51
+ valid , err := v . ValidateBlock (blockData )
52
52
if err != nil {
53
53
log .Error ().Err (err ).Msgf ("Block verification failed for block %s" , blockData .Block .Number )
54
54
return nil , nil , err
@@ -62,7 +62,7 @@ func (v *Validator) ValidateBlocks(blocks []common.BlockData) (validBlocks []com
62
62
return validBlocks , invalidBlocks , nil
63
63
}
64
64
65
- func ValidateBlock (blockData common.BlockData ) (valid bool , err error ) {
65
+ func ( v * Validator ) ValidateBlock (blockData common.BlockData ) (valid bool , err error ) {
66
66
if blockData .Block .TransactionCount != uint64 (len (blockData .Transactions )) {
67
67
log .Error ().Msgf ("Block verification failed for block %s: transaction count mismatch: expected=%d, fetched from DB=%d" , blockData .Block .Number , blockData .Block .TransactionCount , len (blockData .Transactions ))
68
68
return false , nil
@@ -76,6 +76,12 @@ func ValidateBlock(blockData common.BlockData) (valid bool, err error) {
76
76
return false , nil
77
77
}
78
78
79
+ // Check transactionsRoot
80
+ if blockData .Block .TransactionsRoot == "0x0000000000000000000000000000000000000000000000000000000000000000" {
81
+ // likely a zk chain and does not support tx root
82
+ return true , nil
83
+ }
84
+
79
85
// TODO: remove this once we know how to validate all tx types
80
86
for _ , tx := range blockData .Transactions {
81
87
if tx .TransactionType > 4 { // Currently supported types are 0-4
0 commit comments