|
|
@ -100,7 +100,7 @@ func (v *BlockValidator) ValidateState(block, parent *types.Block, statedb *stat |
|
|
|
return fmt.Errorf("invalid receipt root hash (remote: %x local: %x)", header.ReceiptHash(), receiptSha) |
|
|
|
return fmt.Errorf("invalid receipt root hash (remote: %x local: %x)", header.ReceiptHash(), receiptSha) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if v.config.AcceptsCrossTx(block.Epoch()) { |
|
|
|
if v.config.HasCrossTxFields(block.Epoch()) { |
|
|
|
cxsSha := types.DeriveMultipleShardsSha(cxReceipts) |
|
|
|
cxsSha := types.DeriveMultipleShardsSha(cxReceipts) |
|
|
|
if cxsSha != header.OutgoingReceiptHash() { |
|
|
|
if cxsSha != header.OutgoingReceiptHash() { |
|
|
|
return fmt.Errorf("invalid cross shard receipt root hash (remote: %x local: %x)", header.OutgoingReceiptHash(), cxsSha) |
|
|
|
return fmt.Errorf("invalid cross shard receipt root hash (remote: %x local: %x)", header.OutgoingReceiptHash(), cxsSha) |
|
|
|