Skip to content

Base de datos de una central de autobuses

Notifications You must be signed in to change notification settings

DvdRivas/Central

 
 

Repository files navigation

banner

Sui Starter Kit Backend

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.

Proyecto base

Puedes usar este repositorio como tu punto de partida para el desarrollo de tu proyecto backend.

Abriendo con Codespaces

  • Asegúrate de clonar este repositorio a tu cuenta usando el botón Fork.

    fork

    • Puedes renombrar el repositorio a lo que sea que se ajuste con tu proyecto.
  • Presiona el botón <> Code y luego haz click en la sección Codespaces

    codespaces

  • 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.

Contenido

Este proyecto instala las siguientes herramientas:

Todas las herramientas fueron desarrolladas por MystenLabs.

Ejecutando el proyecto

Ingresa a tu terminal y ejecuta el siguiente comando:

sui move test

Deberí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.

Estructura de un módulo

La estructura de un módulo es la siguiente:

module direccion::nombre_modulo {
    // ...  resto del código
}
  1. Declaración del módulo con la palabra clave module.
  2. 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 de addresses. En nuestro caso:
    [addresses]
    starter = "0x0"
  3. 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.

Output

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: 0

El 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 Intro

Estas 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::prueba

La estructura es algo así:

direccion::nombre_modulo::funcion

Con 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

About

Base de datos de una central de autobuses

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Move 98.9%
  • Shell 1.1%