> For the complete documentation index, see [llms.txt](https://edp.ethkipu.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://edp.ethkipu.org/modulo-2/fundamentos-de-solidity/variables/ejercicio-1.md).

# Ejercicio 1

Es hora de poner en práctica los conceptos anteriores creando un contrato que tenga una variable de estado privada de tipo string llamada **`storedInfo`** y dos funciones:

* Una primera función llamada **`setInfo`** con visibilidad externa que se utilizará para cambiar el valor de la variable **`storedInfo`**
* Una segunda función denominada **`getInfo`** de visibilidad externa y que sólo leerá y retornará el contenido de **`storedInfo`**

**Pasos a seguir:**

1. Programe el contrato en Remix,
2. Despliéguelo en una red de prueba de Ethereum como Sepolia,
3. Publique y verifique el contrato utilizando un explorador de bloques
4. Interactúe con el contrato a través del explorador de bloques modificando dos veces el valor de **`setInfo`**

```solidity
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.19;
/// @title Storage string
/// @author Solange Gueiros
contract Register {
string private storedInfo;
/// Store `myInfo`
/// @dev stores the string in the state variable `storedInfo`
/// @param myInfo the new string to store
function setInfo(string memory myInfo) external {
    storedInfo = myInfo;
}

/// Return the stored string
/// @dev retrieves the string of the state variable `storedInfo`
/// @return the stored string
function getInfo() external view returns (string memory) {
    return storedInfo;
}
}
```

> La mayoría de ejercicios de este curso están basados en el GitHub <https://github.com/solangegueiros/register-learn-solidity> de Solange Gueiros, destacada educadora blockchain brasileña, a quien agradecemos por su apoyo continuo a nuestro programa 🙏🏻.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://edp.ethkipu.org/modulo-2/fundamentos-de-solidity/variables/ejercicio-1.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
