code: func (a Address) Hex() string {
  	unchecksummed := hex.EncodeToString(a[:])
  	sha := sha3.NewLegacyKeccak256()
  	sha.Write([]byte(unchecksummed))
  	hash := sha.Sum(nil)
  
  	result := []byte(unchecksummed)
  	for i := 0; i < len(result); i++ {
  		hashByte := hash[i/2]
  		if i%2 == 0 {
  			hashByte = hashByte >> 4
  		} else {
  			hashByte &= 0xf
  		}
  		if result[i] > '9' && hashByte > 7 {
  			result[i] -= 32
  		}
  	}
  	return "0x" + string(result)
  }
docs: // Hex returns an EIP55-compliant hex string representation of the address.