code: func (b *Block) resolve(ctx context.Context) (*types.Block, error) {
  	if b.block != nil {
  		return b.block, nil
  	}
  
  	var err error
  	if b.hash != (common.Hash{}) {
  		b.block, err = b.backend.GetBlock(ctx, b.hash)
  	} else {
  		b.block, err = b.backend.BlockByNumber(ctx, *b.num)
  	}
  	if b.block != nil {
  		b.header = b.block.Header()
  	}
  	return b.block, err
  }
docs: // resolve returns the internal Block object representing this block, fetching
  // it if necessary.