def METHOD_NAME(self, cur_fork_head, new_fork_head):
    """
    Args:
        cur_fork_head (BlockWrapper): The current head of the block chain.
        new_fork_head (BlockWrapper): The head of the fork that is being
        evaluated.
    Returns:
        bool: True if the new chain should replace the current chain.
        False if the new chain should be discarded.
    """
    new_num = new_fork_head.block_num
    new_weight = 0
    if new_fork_head.consensus:
        new_weight = int(new_fork_head.consensus.decode().split(':')[1])
    cur_num = cur_fork_head.block_num
    cur_weight = 0
    if cur_fork_head.consensus:
        cur_weight = int(cur_fork_head.consensus.decode().split(':')[1])
    # chains are ordered by length first, then weight
    if new_num == cur_num:
        return new_weight > cur_weight
    return new_num > cur_num