Este proyecto es un ejemplo sencillo para comprender el funcionamiento del Patrón Proxy en smart contracts.
-
Crear un archivo
.envcon dos variables de entorno:PRIVATE_KEYPRIVATE_KEY2
Estas variables corresponden a las claves privadas de dos wallets que se utilizarán en las pruebas.
Nota: El archivo hardhat.config.ts está configurado para desplegar los smart contracts en la testnet de Rootstock. Puedes modificarlo para utilizar otra blockchain si lo deseas.
Instala las librerías necesarias ejecutando el siguiente comando:
npm install @openzeppelin/contracts @openzeppelin/hardhat-upgrades dotenv@openzeppelin/contracts: Incluye contratos estándar, como el Transparent Proxy.@openzeppelin/hardhat-upgrades: Facilita la gestión y actualización de contratos inteligentes.
-
Desplegar el Smart Contract V1:
npm run deploy:favorite-number
-
Ejecutar el script para establecer tu número favorito.
npm run set-number
-
Ejecutar el script para verificar el número favorito guardado.
npm run get-number
-
Actualizar el Smart Contract a la versión V2, agregando una función para consultar el número favorito de cualquier wallet:
npm run deploy:favorite-number-v2
-
Ejecutar el script para verificar que el valor almacenado previamente sigue disponible.
npm run get-number-deployed
-
Ejecutar el script para que otro usuario guarde su número favorito.
npm run set-number-upgrade
-
Este nuevo usuario ejecuta el script para recuperar su número favorito y el de otro usuario.
npm run get-number-upgrade