returnfmt.Errorf("failed to execute payload %s, node is syncing",payload.ID())
caseExecutionInvalid:
returnfmt.Errorf("execution payload %s was INVALID! Latest valid hash is %s, ignoring bad block: %v",payload.ID(),payloadStatus.LatestValidHash,payloadStatus.ValidationError)
caseExecutionInvalidBlockHash:
returnfmt.Errorf("execution payload %s has INVALID BLOCKHASH! %v",payload.BlockHash,payloadStatus.ValidationError)
caseExecutionInvalidTerminalBlock:
returnfmt.Errorf("engine is misconfigured. Received invalid-terminal-block error while engine API should be active at genesis. err: %v",payloadStatus.ValidationError)
caseExecutionAccepted:
returnfmt.Errorf("execution payload cannot be validated yet, latest valid hash is %s",payloadStatus.LatestValidHash)
default:
returnfmt.Errorf("unknown execution status on %s: %q, ",payload.ID(),string(payloadStatus.Status))
returnfmt.Errorf("failed to execute payload: %v",err)
}
switchresult.Status{
caseeth.ExecutionValid:
returnnil
caseeth.ExecutionSyncing:
returnfmt.Errorf("failed to execute payload %s, node is syncing",payload.ID())
caseeth.ExecutionInvalid:
returnfmt.Errorf("execution payload %s was INVALID! Latest valid hash is %s, ignoring bad block: %q",payload.ID(),result.LatestValidHash,result.ValidationError)
caseeth.ExecutionInvalidBlockHash:
returnfmt.Errorf("execution payload %s has INVALID BLOCKHASH! %v",payload.BlockHash,result.ValidationError)
caseeth.ExecutionInvalidTerminalBlock:
returnfmt.Errorf("engine is misconfigured. Received invalid-terminal-block error while engine API should be active at genesis. err: %v",result.ValidationError)
caseeth.ExecutionAccepted:
returnfmt.Errorf("execution payload cannot be validated yet, latest valid hash is %s",result.LatestValidHash)
default:
returnfmt.Errorf("unknown execution status on %s: %q, ",payload.ID(),string(result.Status))
returnnil,fmt.Errorf("failed to execute payload: %v",err)
}
return&result,nil
}
// GetPayload gets the execution payload associated with the PayloadId