code: func (b *Block) resolveHeader(ctx context.Context) (*types.Header, error) {
  	if b.num == nil && b.hash == (common.Hash{}) {
  		return nil, BlockInvariantError
  	}
  
  	if b.header == nil {
  		if _, err := b.resolve(ctx); err != nil {
  			return nil, err
  		}
  	}
  	return b.header, nil
  }
docs: // resolveHeader returns the internal Header object for this block, fetching it
  // if necessary. Call this function instead of `resolve` unless you need the
  // additional data (transactions and uncles).