code: func (hn *hashOrNumber) EncodeRLP(w io.Writer) error {
  	if hn.Hash == (common.Hash{}) {
  		return rlp.Encode(w, hn.Number)
  	}
  	if hn.Number != 0 {
  		return fmt.Errorf("both origin hash (%x) and number (%d) provided", hn.Hash, hn.Number)
  	}
  	return rlp.Encode(w, hn.Hash)
  }
docs: // EncodeRLP is a specialized encoder for hashOrNumber to encode only one of the
  // two contained union fields.