code: func (t *Transaction) resolve(ctx context.Context) (*types.Transaction, error) {
  	if t.tx == nil {
  		tx, blockHash, _, index := rawdb.ReadTransaction(t.backend.ChainDb(), t.hash)
  		if tx != nil {
  			t.tx = tx
  			t.block = &Block{
  				backend:   t.backend,
  				hash:      blockHash,
  				canonical: unknown,
  			}
  			t.index = index
  		} else {
  			t.tx = t.backend.GetPoolTransaction(t.hash)
  		}
  	}
  	return t.tx, nil
  }
docs: // resolve returns the internal transaction object, fetching it if needed.