Skip to content

Nadai2010/Nadai-StarknetEs--Deploy-Cairo1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

starknet logo

StarkNet-Es - Guía desplegando Cairo 1.0

Desplegando tu primer contrato Cairo 1 en Starknet

Esta es una guía oficial de StarkNet-Es para la comunidad hispana, puede consultar repo oficial aquí o el video de Henri Desplegando Cairo 1, que te ayudará a desplegar tus primeros contratos Cairo 1 en Starknet. Incluimos algunas explicaciones adicionales y capturas de pantalla para ayudarte a entender mejor el proceso.

Antes de comenzar, es importante que tengas una comprensión básica de lo que son Cairo y Starknet. Cairo es un lenguaje de programación de contratos inteligentes y Starknet es una plataforma de contrato inteligente sin permisos basada en la tecnología zk-rollup.

Con el despliegue de la versión 0.11 en Starknet, ahora es posible desplegar tus primeros contratos Cairo 1. ¡Fantástico! Pero, ¿cómo hacerlo? No te preocupes, hemos creado esta guía aproximada para ayudarte en el proceso antes de poner en orden nuestra documentación.


El flujo

Para completar necesitarás hacer lo siguiente:

  • Instalar las dependencias necesarias, como Git y Python.
  • Clonar el repositorio de demostración "deploy-cairo1-demo", la herramienta para compilar tu contrato Cairo 1.
  • Instalar la última versión de Cairo-lang, la herramienta para interactuar con Starknet.
  • Compilar tu contrato Cairo 1 en formato Sierra.
  • Declarar tu contrato Sierra utilizando Cairo-lang.
  • Desplegar tu contrato en Starknet utilizando Cairo-lang.
  • Compartir tus logros en Twitter.

Clone Repo

Primero, clona el repositorio de demostración deploy-cairo1-demo utilizando Git.

git clone https://github.com/starknet-edu/deploy-cairo1-demo
cd deploy-cairo1-demo

Instalar el compilador Cairo one

Para instalar el compilador Cairo 1, primero debes descargar el código fuente de Cairo desde el repositorio oficial y luego compilarlo.

Si es la primera vez que instalas Cairo, ejecuta los siguientes comandos:

git clone https://github.com/starkware-libs/cairo/
cd cairo
git checkout 9c190561ce1e8323665857f1a77082925c817b4c
cargo build --all --release

Si ya tienes Cairo instalado, ejecuta los siguientes comandos:

cd cairo
git fetch && git pull
git checkout 9c190561ce1e8323665857f1a77082925c817b4c
cargo build --all --release

En este punto ya tienes instalado Cairo en este repositorio.


Instalando Cairo-lang

Para instalar Cairo-lang, descarga la última versión desde el sitio oficial y luego instálala, para ello primero vuelva a la carpeta raíz del repositorio.

cd ..

Configura un entorno virtual python:

python3.9 -m venv ~/cairo_venv_v11
source ~/cairo_venv_v11/bin/activate

Si tenías cairo-lang instalado previamente, desinstálalo:

pip3 uninstall cairo-lang

Descarga la última versión de Cairo-lang aquí la carpeta raíz de este repositorio.

Instala Cairo-Lang:

pip3 install cairo-lang-0.11.0.1.zip

Graph

Para verificar que Cairo-lang se ha instalado correctamente, ejecuta el siguiente comando:

starknet --version

Graph


Compila tu contrato usando Cairo

Puedes usar este contrato demo para completar esta prueba. Es un registrador de eventos muy básico.

Desde tu terminal, en la carpeta en la que instalaste Cairo

cd cairo
cargo run --bin starknet-compile -- ../hello_starknet.cairo ../hello_starknet.sierra --replace-ids	

Graph

Enhorabuena, ¡has compilado tus contratos de Cairo a Sierra!


Declara tu contrato usando Cairo-lang

Configurar variables de entorno

Antes de declarar tu contrato, debes configurar algunas variables de entorno en tu terminal. Ejecuta los siguientes comandos:

export STARKNET_NETWORK=alpha-goerli
export STARKNET_WALLET=starkware.starknet.wallets.open_zeppelin.OpenZeppelinAccount

Graph


Configurar una nueva cuenta para el tutorial

Usted necesita asegurarse de que su CLI starknet está configurado con un contrato de cuenta adecuada, y los fondos. Por seguridad crearemos un nueva cuenta. Para crear una nueva cuenta, ejecuta el siguiente comando:

starknet new_account --account version_11_test

Graph

Este comando creará una nueva cuenta de StarkNet y deberías obtener la dirección del contrato esperada. Envíale 0.1 ETH a la cuenta creada. Monitoriza la transacción de transferencia hasta el estado pending.

Graph Graph

  • Una vez que ha pasado al estado pending, procede a ejecutar el siguiente comando:
starknet deploy_account --account version_11_test

Grpah

  • Este comando desplegará la cuenta creada. Monitoriza la transacción de despliegue, una vez que ha pasado al estado pending podemos seguir.

Graph Graph


Declarando el contrato

Una vez que hayas desplegado la cuenta, vuelve a la carpeta raíz del tutorial e intenta declarar el contrato. Si ya ha sido declarado, puedes omitir este paso. De lo contrario, declara el contrato utilizando Cairo-lang con el siguiente comando:

cd ..
starknet declare --contract hello_starknet.sierra --account version_11_test

¡Deberías recibir el hash de tu nueva clase declarada!


Troubleshooting

Si no has tenido ningún error, puedes omitir este paso. Sin embargo, si has recibido un error al declarar el contrato, y se ha devuelto el uso de declarar, sigue los siguientes pasos:

Error: OSError: [Errno 8] Exec format error: '~/cairo_venv_11/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile'

La razón es que Cairo-lang necesita compilar tu código Sierra y utiliza un binario rust importado llamado 'starknet-sierra-compile' para hacerlo. Pero en este caso, el binario importado no fue construido para esta arquitectura :-(.

Para solucionarlo, debes tomar el 'starknet-sierra-compile' del repo de Cairo, construirlo localmente y reemplazar el paquete Python. Aquí hay un comando que debería funcionar:

cp cairo/target/release/starknet-sierra-compile ~/cairo_venv_v11/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile

A continuación, inténtalo de nuevo declarando. Debería funcionar.


Despliega tu contrato usando Cairo-lang

Ahora, estás de vuelta en el flujo al que estás acostumbrado. Usa el hash de la clase que recibiste antes para desplegar tu contrato en Starknet usando Cairo-lang:

starknet deploy --class_hash 0x3ae6bb224f12a8818c3ad59cc248968e8ee3a3081ff805610141695381a28f7 --account version_11_test

Graph

Monitorea tu transacción y, en caso de que falle debido a la estimación de tasas, inténtalo nuevamente.

Grpah Grpah

Una vez que su transacción es accepted_on_l2.... ¡Enhorabuena! ¡Has desplegado tu primer contrato Cairo 1! Puedes verificar que el contrato se ha desplegado correctamente siguiendo este enlace:

Graph


Presumir en Twitter

¡No te olvides de presumir de tu logro en Twitter! Publica tu contrato desplegado aquí

Además, ¡añade nuevas funcionalidades interesantes a tu contrato! El equipo de Starknet edu lanzará pronto la versión Cairo 1 de Cairo-101. Mientras tanto, puedes obtener ideas de qué hacer con Cairo 1 en Starklings-cairo1


¿Quiere saber más?

Si estás interesado en:

  • Aprender a desarrollar cosas interesantes en Starknet
  • Cómo funciona Starknet
  • Qué es Cairo
  • Cómo funcionan las pruebas Stark
  • Únete a nuestra comunidad StarkNet-Es Telegram
  • Síguenos en nuestro Twitter StarkNet Español
  • Deberías unirte a Basecamp, nuestro programa de formación gratuito de 6 semanas para aspirantes a desarrolladores de Starknet. Las dos próximas cohortes comienzan en abril y puedes inscribirte aquí para la cohorte en Inglés, y aqui para la cohorte en Español.

About

Guía en Español para desplegar un contrato en Cairo 1

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages