Sui es una plataforma de blockchain y contratos inteligentes de capa 1 diseñada para que la propiedad de activos digitales sea rápida, privada, segura y accesible.
Move es un lenguaje de código abierto para escribir paquetes seguros para manipular objetos en blockchain. Permite bibliotecas, herramientas y comunidades de desarrolladores comunes en blockchains con modelos de datos y ejecución muy diferentes.
Puedes usar este repositorio como tu punto de partida para el desarrollo de tu proyecto backend.
-
Asegúrate de clonar este repositorio a tu cuenta usando el botón
Fork.- Puedes renombrar el repositorio a lo que sea que se ajuste con tu proyecto.
-
Presiona el botón
<> Codey luego haz click en la secciónCodespaces -
Por último, presiona
Create codespace on master. Esto abrirá el proyecto en una interfaz gráfica de Visual Studio Code e instalará todas las herramientas necesarias para desarrollar con Move.
Este proyecto instala las siguientes herramientas:
- SuiUp (Administrador de versiones).
- Sui CLI (Instalada usando SuiUp).
- Extensión de VS Code Move.
- Extensión de VS Code Move Formatter.
Todas las herramientas fueron desarrolladas por MystenLabs.
Ingresa a tu terminal y ejecuta el siguiente comando:
sui move testDeberías de obtener el siguiente resultado:
INCLUDING DEPENDENCY Bridge
INCLUDING DEPENDENCY SuiSystem
INCLUDING DEPENDENCY Sui
INCLUDING DEPENDENCY MoveStdlib
BUILDING Intro
Running Move unit tests
[debug] "Hello, World!"
[ PASS ] introduccion::practica_sui::prueba
Test result: OK. Total tests: 1; passed: 1; failed: 0¡Felicidades! 🥳 Acabas de ejecutar de manera exitosa tu primer módulo Move. Ahora, analicemos que está pasando.
En la carpeta sources podemos encontrar un archivo llamado starter.move. Este archivo, como lo indica la extensión, contiene el código de Move que estamos ejecutando. En este caso, es un módulo con una función y un test.
La estructura de un módulo es la siguiente:
module direccion::nombre_modulo {
// ... resto del código
}- Declaración del módulo con la palabra clave
module. - Dirección en la que se desplegará el módulo.
La dirección la encontramos en el archivo de configuraciones
Move.toml, en el apartado deaddresses. En nuestro caso:[addresses] starter = "0x0"
- Nombre del módulo, en nuestro caso:
practica_sui
Por lo que nuestro código luce así:
module introduccion::practica_sui {
// ... resto del código
}Después, vienen los imports o los módulos/librerías que estamos importando para que el nuestro funcione. En nuestro código, estamos importando dos funciones de la librería principal de Move:
use std::debug::print;
use std::string::utf8;Se importa la función para imprimir en consola, así como una función para convertir cadenas de texto a un formato aceptado por la función anterior.
La siguiente sección de código incluye nuestra primera función:
fun practica() {
print(&utf8(b"Hello, World!"));
}En ella, hacemos uso de ambas librerías importadas. La función simplemente imprime la cadena Hello, World! en la consola.
Y por último, necesitamos una forma de ejecutar esta función. Por ahora lo estamos haciendo a través de un bloque de pruebas o test:
#[test]
fun prueba() {
practica();
}Al nosotros haber ejecutado sui move test le estamos diciendo a la CLI que ejecute todas las funciones que tengan un bloque [#test], en este caso, ejecuta nuestra función prueba, la cual a su vez llama a la función practica.
Por último, analicemos el resultado que se imprimió en la consola.
INCLUDING DEPENDENCY Bridge
INCLUDING DEPENDENCY SuiSystem
INCLUDING DEPENDENCY Sui
INCLUDING DEPENDENCY MoveStdlib
BUILDING Intro
Running Move unit tests
[debug] "Hello, World!"
[ PASS ] introduccion::practica_sui::prueba
Test result: OK. Total tests: 1; passed: 1; failed: 0El primer bloque de texto nos indica que está incluyendo las dependencias necesarias para ejecutar el proyecto:
INCLUDING DEPENDENCY Bridge
INCLUDING DEPENDENCY SuiSystem
INCLUDING DEPENDENCY Sui
INCLUDING DEPENDENCY MoveStdlib
BUILDING IntroEstas dependencias son las dependencias básicas que todo paquete en Move necesita, así que el compilador las importa de manera automática.
Puedes comprobar que no estamos importando ninguna dependencia en el archivo Move.toml en el apartado [dependencies].
La siguiente línea en el output nos indica que se ejecutaran las pruebas unitarias en el archivo, recuerda que esto es porque corrimos el comando sui move test:
Running Move unit tests
Después, obtenemos el mensaje que ejecuta la función prueba, en nuestro caso, la línea de texto Hello, World!:
[debug] "Hello, World!"Ahora, en la siguiente línea, podemos obtener información de exactamente que funciones se ejecutaron:
[ PASS ] starter::practica_sui::pruebaLa estructura es algo así:
direccion::nombre_modulo::funcionCon esto, podemos comprobar que la función que se ejecutó fue prueba.
Por último, obtenemos información sobre las pruebas unitarias, cómo cuantas se ejecutaron y cuantas se pasaron:
Test result: OK. Total tests: 1; passed: 1; failed: 0

