Skip to content

Nadai2010/Nadai-ERC721-Protostar-Cairo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nadai ERC721 en StarkNet con Protostar

El tutorial a realizar es una guía de como instalar Protostar, la usaremos para realizar un Deploy que un implemente un contrato ERC721 personalizado en la red de prueba Goerli mediante Protostar, inspirado en el documento oficial ERC721 Starknet-edu

ERC721

El contrato ERC721Custom nos permite acuñar animales con características como alas, patas y sexo.


Resumen del tutorial

Consiste en instalar Protostar, una herramienta que administra sus dependencias, compila su proyecto y ejecuta pruebas.

Usaremos el ERC721 importado para hacer el deploy en testnet, crear nuestro primer NFT de la colección con las carateristicas de estos animales que veremos en el tutorial. También nos servirá de práctica para los ejercicios ERC721 Starknet-edu que luego en el contrato evaluador podremos añadir el address del contrato que estuvimos trabajando. Y de esta forma obtener puntos y seguir avanzando.


Requisitos


Instalación

Primero instalaremos curl y el repositorio que trae las herramientas. Copie y ejecute en una terminal los siguientes comandos

sudo apt install curl
curl -L https://raw.githubusercontent.com/software-mansion/protostar/master/install.sh | bash

Si desea especificar una versión, ejecute el siguiente comando con la versión solicitada:

curl -L https://raw.githubusercontent.com/software-mansion/protostar/master/install.sh | bash -s -- -v 0.3.2

Reinicie la terminal. Luego procedemos ha comprobar la versión de Protostar y Cairo Lang.

protostar -v

Saldrá un mensaje de versión actualizado similar a este:

Protostar version: 0.4.2
Cairo-lang version: ^0.10.0
21:38:49 [INFO] Execution time: 3.43 s

Para actualizar Protostar, ejecute:

protostar upgrade

Inicialización del proyecto

Primero clonamos la repo

gh repo clone Nadai2010/Nadai-ERC721-Protostar-Cairo
cd Nadai-ERC721-Protostar-Cairo

Para crear un nuevo proyecto ejecute:

protostar init

A continuación les pedirá un nombre para el proyecto, escríbalo y dele a continuar, se le creará varias carpetas y protostar.toml. Ahora le haremos un test con los siguientes comandos:

protostar -p ci test

22:43:16 [INFO] Test suites: 1 passed, 1 total
22:43:16 [INFO] Tests: 2 passed, 2 total
22:43:16 [INFO] Seed: 822203972
22:43:16 [INFO] Execution time: 10.92 s

El proyecto Protostar debe ser un repositorio git y tener protostar.toml, un archivo. Puede adaptar su proyecto manualmente o ejecutando

protostar init --existing.

El resultado de la ejecución protostar inites un archivo de configuración protostar.toml, archivos de ejemplo y los siguientes 3 directorios:

  • src— Un directorio para su código.
  • lib— Un directorio predeterminado para dependencias externas.
  • tests— Un directorio que almacena pruebas.
  • protostar.toml— Un archivo principal que guardara rutas, e información principal.

Configuración para crear ERC721

Primero instalaremos la repo que usaremos con el comando de la biblioteca de OpenZeppelin

protostar install https://github.com/OpenZeppelin/cairo-contracts.git

Nos deberia de imprimir una pantalla similar a esta

21:24:38 [INFO] Executing install                                                                                       
21:24:38 [INFO] Installing cairo_contracts_git (https://github.com/OpenZeppelin/cairo-contracts.git)
21:24:40 [INFO] Installed successfully
21:24:40 [INFO] Execution time: 6.70 s

Build al contrato

En este punto asegurarno de que estamos dentro de la carpeta instalada, sino nos lanzará un error. Una vez dentro realizamos

protostar build

Imprimirá algo similar a esto

18:26:24 [INFO] Built the project successfully                                                           
18:26:24 [INFO] Execution time: 24.21 s

Convertir string a int

Puede convertir un string en un int utilizando el editor online https://www.cairo-lang.org/playground/

Utilice el siguiente código y modifique los valores que desee añadir, luego presione Run y copie los outpout obtenidos.

%builtins output

from starkware.cairo.common.serialize import serialize_word

func main{output_ptr: felt*}() {
    tempvar x = 'NADAI';
    tempvar y = 'NFI';
    serialize_word(x);
    serialize_word(y);
    return ();
}

Graph


Realizar el deploy en tesnet Goerli

Para realizar el deploy del ERC721 necesitamos pasarle parámetros nombre, símbolo, y un address. El address en el caso de querer hacer los ejercicios de ERC721 Starknet-edutiene que añadir la del contrato evaluador que es 0x2d15a378e131b0a9dc323d0eae882bfe8ecc59de0eb206266ca236f823e0a15. En esta prueba hemos añadido nuestra Smart Wallet de Argent X

Para el nombre y el simbolo debemos convertir los string en int. Si queremos hacer el deploy del ERC721 con los Oficiales sería

nombre = 'STARKNET' = 6004496024898258260 símbolo = 'STARK' = 357895852619

Quedaría de la siguiente manera

protostar deploy ./build/ERC721.json --network alpha-goerli -i 6004496024898258260 357895852619 0x2d15a378e131b0a9dc323d0eae882bfe8ecc59de0eb206266ca236f823e0a15

En el caso de esta repo ha sido

protostar deploy ./build/ERC721_custom.json --network alpha-goerli -i 336102441289 5129801 0x03F878C94De81906ba1A016aB0E228D361753536681a776ddA29674FfeBB3CB0

Listo ya realizo el deploy de su contrato de ERC721Custom. Ahora desde él podremos crear nuestro primer NFT.


Ahora vamos a Mint nuestro primer NFT

En el contrato deployado, vamos a write smart y en el punto uno declare_animal especificamos los valores 1,2,1

Graph

¡¡¡FELICIDADES!!!Si todo ha ido bien, su primer NFT ha debido de ser deployado en este caso NFI Podrá verlo en su wallet Argent X, en la parte collectibles y abrirlos con MINTSQUARE o con ASPECT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published