Cómo crear una aplicación de gestión de bibliotecas descentralizada | Rahul Agarwal | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Cómo crear una aplicación de gestión de bibliotecas descentralizada

teacher avatar Rahul Agarwal, Flutter Developer & Trainer

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      INTRODUCCIÓN AL CURSO

      0:53

    • 2.

      Crea un nuevo proyecto

      7:39

    • 3.

      Claves de alquimia y Metamask

      9:04

    • 4.

      Cómo crear contrato de biblioteca

      6:54

    • 5.

      Funcionalidad para conseguir libros

      12:45

    • 6.

      Cómo crear un archivo de prueba

      13:14

    • 7.

      Prueba de unidad para agregar y obtener libros

      13:59

    • 8.

      Ejecutar las pruebas

      5:05

    • 9.

      Cómo escribir el script

      4:54

    • 10.

      Cómo trabajar en el frontend siguiente

      9:46

    • 11.

      Funcionalidad para connet MetaMask

      11:18

    • 12.

      Funcionalidad para agregar un libro

      16:32

    • 13.

      Funcionalidad para conseguir libros

      9:29

    • 14.

      Cómo crear un componente

      18:52

    • 15.

      Funcionalidad para cambiar el estado de los libros

      5:10

    • 16.

      Prueba la aplicación completa

      4:40

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

48

Estudiantes

1

Proyecto

Acerca de esta clase

Blockchain es una tecnología clave detrás de Web3. La blockchain de bitcoin es un libro mayor de actividad público de la red de bitcoins. Pero bitcoin no es propiedad de una sola empresa o persona y no es emitido por una autoridad central como un banco central. En su lugar se descentraliza y la red es mantenida por un grupo global de personas que operan computadoras especializadas.

En este curso aprenderemos cómo crear una aplicación completa de gestión de bibliotecas personales descentralizadas. Usaremos la solidez para el contrato inteligente, el hardhat para probar y usar propósito, Ethers js para comunicarse con el contrato, Metamask para firmar la transacción, Next js para el frontend y Alchemy como proveedor de nodos blockchain. Al final del curso entenderás todos los conceptos necesarios para solicitar un trabajo de desarrolladores o incluso crear tu propia aplicación en la blockchain de Ethereum.

Nuestra pila

  • Solidez (para escribir nuestro contrato inteligente)

  • Hardat (marco de construcción, pruebas e implementación)

  • React / Next js (para crear nuestro frontend)

  • Ethers (biblioteca web3 para interactuar con la blockchain y nuestro contrato inteligente)

  • Alquimia (proveedor de nodos Ethereum)

Conoce a tu profesor(a)

Teacher Profile Image

Rahul Agarwal

Flutter Developer & Trainer

Profesor(a)

Hello, I'm Rahul. I am skilled in building cross platform application using Flutter. I am freelance developer as well as conduct workshops to share my knowledge with the community.

Ver perfil completo

Level: Intermediate

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. INTRODUCCIÓN AL CURSO: Blockchain es la fuerza impulsora de la próxima generación, que también se conoce como el árbol de verbos. Blockchain reinventa la forma en que se almacenan y administran los datos. El árbol web abraza la descentralización y se está construyendo y es propiedad de sus usuarios. Ya que está en muchas oportunidades nuevas para desarrolladores como nosotros en este dominante. En este curso, aprenderemos a construir una completa aplicación descentralizada de gestión de celebridades desde cero, estaremos utilizando la solidaridad para el paradigma de desarrollo de contratos inteligentes para prueba y despliegue parte nos dio sed de comunicarnos con el contrato, MetaMask para firmar la transacción, React JS por el financiamiento y alquimia es que blockchain les proporcionará. Al final del curso, entenderás sobre los conceptos requeridos para solicitar que pongan un trabajo o incluso construyan tu propia aplicación en la cadena de bloques akadiana sin perder más tiempo. Inscríbase ahora y comencemos. 2. Crea un nuevo proyecto de hardhat: Hola, bienvenidos al primer video del curso, donde aprenderemos a construir una aplicación de gestión de bibliotecas descentralizada. Entonces no perderé tu tiempo explicando qué es la Web tres, qué es la descentralización y todo. Si lo desea, puede Google por su cuenta. Simplemente voy a ir estáticamente al currículo del curso o a la hoja de ruta del curso. Por lo que el curso se divide en pasos D7. El primer paso será establecer el entorno de desarrollo. Entonces crearemos un contrato inteligente. Entonces escribiremos prueba unitaria. Entonces desplegaremos contrato inteligente. Después de todas esas pruebas son exitosas. Entonces usaremos un framework, React framework conocido como próximos dos años para construir un front-end. Y luego usaremos sillas éteres en el front-end para interactuar con el contrato inteligente. Y por último, probaremos toda la aplicación si todo está funcionando bien o no. Entonces antes de avanzar, sólo me gustaría asegurarme de que haya instalado máscara Matter y tener algunos intereses académicos de prueba en su cuenta. No voy a armar con, de nuevo. Por favor, vea cualquier tutorial sobre él y continúe con el curso. Apenas va a tecnologia cinco minutos, eso es todo. Ahora, antes, antes de trabajar en la aplicación, al menos deberías conocer esa pila tecnológica. Así que obviamente estamos usando una cadena de bloques de titanio. Y la solidez es ese lenguaje de programación para escribir contratos inteligentes. Entonces usaremos hard hat como herramienta de despliegue. Entonces billetera MetaMask. Entonces la alquimia es un proveedor de nodos ocultos. Te dice que este es un laboratorio para comunicarte con el contrato inteligente, luego HTML, CSS, y finalmente, React JS, o puedes decir Next JS. Eso es todo. Empecemos con el entorno de desarrollo. Primero, crea una carpeta. El nombre es gestión de bibliotecas. Eso está bien, si quieres, puedes nombrarlo cualquier cosa, luego anexar una terminal en ella. Y para instalar hearted, primero necesitas crear un paquete NPM ejecutando el comando y VM en él. ¿ Por qué? Se inicializará un paquete NPM vacío. Eso es todo. Para que puedas ver este archivo package.json está ahí. Entonces haciendo estilo hardhead. Ese comando es npm. Instala, dash, dash, save, tab, hard hat, and press Enter. Ok. Los paquetes hardhead son la dependencia más difícil que se instala. No para crear un proyecto hardhat, usaremos este comando, que nos dará una estructura mínima desnuda, es decir NP hard hat. A continuación pulse Enter. A continuación selecciona el primero que es crear un proyecto de muestra B6 y pulsa Intro de nuevo, luego otra vez, Enter, luego ingresa. Eso es todo. Ahora, se crean pocas carpetas y archivos. El proyecto de muestra te pedirá instalar duro encabezado por un completo más duro es terroristas y pocas otras dependencias lo que hace hardhead compatible con prueba fallará y tiene celebridad para simplemente copiar esta línea y pegarlo y presionar enter. Se descargarán todas las dependencias requeridas para el proyecto. Ok. Dejar dependencias que he instalado con éxito. Ahora simplemente anexa VS Code Editor y anexa tu carpeta de proyecto en ella. Estos son los archivos ficticios que hardhead nos proporcionan. En el siguiente video, incluiremos claves de alquimia y máscara Meta en el despliegue de la configuración Hardhead. Gracias. 3. Claves de alquimia y Metamask: Hola. Por lo que un sombrero duro nos da pocas carpetas y archivos. Entenderemos todos esos paso a paso. Pero primero, vamos a ir al archivo de punto js de conflicto de cabeza dura. Y asegúrate de que estamos señalando nuestra red para correlacionar la red de pruebas de itanio. Y para que eso funcione, necesitamos ir temprano itanium node URL y una dirección de billetera. Vr usando rizado y no robar Stone ni ningún otro porque en Alquimia, esas redes se están depreciando. Entonces bien, no la mejor opción sería utilizar caudally network. Como ya tengo una cuenta en Alchemy, no voy a estar creando una nueva cuenta, sino simplemente ir a alchemy.com. Y estoy haciendo click en Login. Tienes que registrarte. Es muy sencillo. Simplemente conecta tu cuenta de Google y todo. Nada elegante. Y luego aquí, después de crear una nueva cuenta en alquimia, serás redirigido a esta pantalla de tablero. Aquí, simplemente haga clic en el botón Crear App. Y ahora llenemos esa información. Mi nombre de aplicación será Gestión de bibliotecas, tab. Entonces la cadena será tedio, pero la red será piadosa. Y como dije, esto está depreciado, depreciado. Por lo que es mejor usar solo red fríamente y luego hacer clic en Crear aplicación. Por lo que has creado con éxito una app en la Alquimia. Ahora, el siguiente paso es conseguir la clave privada de MetaMask. Puedes instalar Meta mask yendo a la mascota Madame en tu sitio web e instalar la extensión para tu navegador. Como ya lo tengo, solo puedes pausar el video y ver la configuración de una nueva billetera y cómo conseguir los comedores de prueba en tu cuenta. Porque definitivamente para que funcione, debes tener alguna prueba. Una prueba como esta. Esta es mi billetera. Y solo iniciando sesión. Entonces se puede ver, tengo esto mucho en la prueba. Comedores y asegúrate de que tonta. Selecciona la red oralmente entre las opciones. Después para obtener la clave privada, tienes que hacer click en los detalles de la cuenta, exportar clave privada, y escribir tu contraseña. Eso es todo. Entonces obtendrás tu clave privada. Y esto, este 0 x a d, Esta cosa es tu clave pública, que en este momento no se requiere, pero al menos debes saber. Ahora, hay que instalar algunas dependencias para escribir estas claves. Porque escribiremos URL de alquimia y clave privada MetaMask en nuestra configuración de hardhead. Y para eso, lo instalaremos y utilizaremos dependencia llamada dot ENV porque no se recomienda pasar esa información sensible directamente en nuestro código. Por lo que simplemente anexa tu terminal y escribe npm install dot ENV. Pero también estoy Instalando de Penn Zeplin anexa un avión es decir biblioteca de contratos modulares, reutilizables, inteligentes que regresan sólidos. Por lo que es simplemente código preescrito que puedes usar directamente. Nada más. Acabo de escribir npm instalar un adjunto directo Zeplin slash contratos, y luego espacio D, O, D E, y V dot ENV. Esta es otra dependencia. Eso significa que hay dos dependencias. Y luego solo presionaremos Enter. Entonces está hecho. Ahora. Usa ese punto ENV primero. Voy a crear un nuevo archivo en el directorio raíz por el nombre dot ENV. Eso es así. puede ver que está en el directorio raíz. Y entonces aquí voy a crear un muy bien. O puedes decir algo que almacenará el valor. La URL de alquimia es igual a esto, y let g es igual a esto. Recuerde que no hay nada que sea mina de carbón todo todavía directamente. Lo estoy escribiendo. Ahora para obtener la URL de alquimia, simplemente vaya a su app y haga clic en Ver clave. Entonces verás esta cookie HTTP simplemente copiarla y pegarla en tu URL de alquimia como esta. Y luego para conseguir la clave privada billetera , anexar máscara de método. Entonces aquí los detalles de la cuenta, exportar clave privada y Dario contraseña válida y confirmar. Copia esta clave y pegarla aquí en la clave privada violeta. Eso es todo. Guárdala, y ciérrala. Ahora, queremos esas claves en nuestra configuración de hardhead. Para eso acaba de abrir un archivo de configuración de cabeza dura. Y dentro de los módulos o exportación, ¿verdad? Redes, luego llaves rizadas. Entonces dentro de ella, como el nombre de la red, estoy usando femenina. Entonces otra vez llaves rizadas. Entonces una propiedad es URL, cual usamos esos datos de archivo de puntos ENV. Tenemos que escribir proceso dot ENV alquimia URL. Y para que funcione en la parte superior, tenemos el primero requieren el paquete dot ENV. Eso es dot ENV dot config así. De esta manera podemos acceder al archivo dot ENV. Y luego se da la URL. Y el segundo parámetro tenemos que enviar estas cuentas. Está en la NA, simplemente tenemos que escribir proceso dot ENV, dot wallet, clave privada. Eso es todo. Eso es todo para la cabeza dura puede fertirrigación. Ahora, nuestro proyecto está apuntando hacia la red de escritorio de correlación alquimia. En entonces próximo video, trabajaremos en la creación del contrato. Gracias. 4. Cómo crear el contrato de biblioteca: Por lo que ahora es el momento de que trabajemos en nuestro contrato inteligente. Crea un nuevo archivo dentro de la carpeta Contratos y nombra Biblioteca dot soul. Entonces lo primero que tenemos que hacer cualquier contrato es licencia delta y desvío de DVR sólido, sólido usando el contrato correcto y el nombre del contrato. Daremos el contrato llamado biblioteca. Ahora, soy Wesley biblioteca tendrá libros. Entonces lo primero que haremos es crear una estructura de libro. Es decir, un libro tendrá algunas ideas, algún nombre así. Simplemente escribe libro. Entonces. Tendrá un ID de libro. Entonces el nombre del libro. Entonces sí, publica. Entonces, ¿quién es el Arthur? Y por último, ya sea que hayamos terminado de leer este libro o no, así, porque ese concepto será que tendremos nuestra propia biblioteca donde podamos escribir. Este libro se deja para leer. Ya he leído este libro así. Entonces la estructura está lista. Ahora, voy a crear una variable de listas de libros, que será una lista de libros tipo. Es decir, sostendrá la estructura del libro. Será un privado y lo nombraré vocalista. Entonces mapearemos ese ID de libro a la dirección de la billetera del usuario que está agregando ese libro. Para que más adelante podamos buscar directamente ese libro de usuarios sin ningún tema. Así que simplemente escribiré mapeo. Entonces terminas a 56 será mapeado a domicilio, y será simplemente reservar a dueño. De nuevo, estoy diciendo que es un mapeo de ID de libro a la dirección de billetera del propietario. Eso es todo. Entonces la primera función que crearemos es agregar un libro. Así que simplemente agrega bulto. Entonces esta función será una función externa. Recordará desde fuera. Y aceptará pocos valores como el nombre mamario de cuerda que en 16 año. Entonces cuerda arteria mamaria. Entonces un booleano de terminado. Estas cosas va a aceptar. Ahora para agregar un libro, debemos tener un ID de libro y debe ser único. El servicio simplemente no usará ninguna dependencia externa en este momento. Simplemente le daré al ID la longitud de nuestros folletos. Esa es ésta. Ya que obviamente, después de añadir un libro, seguirá incrementándose. Por lo que siempre esto será único. Sí supone lo primero, vamos a empezar desde 0, entonces ese es el id del libro será 0, luego uno, luego dos como este. Entonces en la lista de libros, empujaremos el valor de la estructura. Es decir, de la estructura libro lo empujará. Y lo primero que tomará es el ID de libro. Entonces nombra eso aquí. Después terminó así. Por lo que esto vamos a empujar en ella. Por lo que automáticamente la longitud aumentará de 0 a uno. Entonces en el mapeo también, voy a hacer el mapeo de libro. Id pertenece al remitente del mensaje así. Entonces este libro pertenece a esto, a quien esté llamando a esta función. Y al final, me gustaría emitir un evento. El evento será añadir libro. Simplemente. Se pedirá identificación de destinatario, destinatario y libro. Por lo que esto se acaba de iniciar sesión en esa blockchain. Cualquier externamente lo podamos leer es información. Simplemente véalo como una función de inicio de sesión. Añadir evento de libro. El destinatario será remitente de mensajes y el ID de libro será ID de libro. Por eso espero que hayan entendido que este es un código muy básico. Si vienes de cualquier otro lenguaje de programación, entenderás el concepto. Obviamente, estas cosas como algo nuevo. Si aún tienes dudas, solo puedes leer sobre mapeo y eventos. Y en el siguiente video, trabajaremos en otras funcionalidades en nuestro contrato inteligente. Gracias. 5. Funcionalidad para encontrar libros: Ahora trabajemos en la funcionalidad para conseguir todos los libros de ese usuario en particular. Así que yo lo nombraría, simplemente conseguir lista de libros. Será una función privada. Te diré por qué. Solo te dará la información de que estoy usando la palabra clave view y devolverá este libro de cosas que es así. Podrías estar pensando por qué esta privada, porque solo quiero pasar argumentos como booleanos terminados. Eso quiere decir si es si estamos pidiendo los libros que están terminados o que no hemos leído. Entonces con esta una función podemos llamar o podemos implementar dos funcionalidades. Empecemos a trabajar. Lo entenderás todo. ¿ De acuerdo? Función ortografía mal. ¿ De acuerdo? Ahora, lo primero que haría es crear una variable, nombrarla. Entonces será una nueva lista de libros. Y esa tierra sería vocalista, tierra oscura como esta. De acuerdo, así que ahora al principio, contaremos cuántos libros tiene este usuario. Porque en esta lista de libros habrá muchos libros de diferentes, diferentes usuarios. Lo primero que tenemos que iterar o recorrer esa lista para encontrar al dueño de. Es decir, definir los libros que son propiedad de este usuario. Significa eso. Simplemente crea un bucle for. Será cuando sea igual a 0. Yo menos que lista de libros, lista de libros, tierra I plus plus, así. Entonces lo primero que tenemos que comprobar es si el dueño del libro, es decir este ID de libro pertenece a este mensaje dot remitente o no. Lo es. Ya que sabemos el ID de libro comienza desde 0. Y por eso hemos iniciado esto desde el 0. Y preguntamos que el mapeo está ahí con esta dirección, por lo que sólo podemos comprobar si pertenece a este remitente. Y otra condición que revisaremos es lista de libros. I. Terminado igual a, igual a terminado. Así. Simplemente es decir, que significa que este libro lista punto terminado. Esa es esta propiedad. Si es igual a la variable que estamos enviando es este booleano, sea igual o no. Si está ahí, entonces en esta variable temporal, simplemente en esta ubicación de contador, inserte este valor que es valor contable. Entonces incrementa ese contador como este. ¿ De acuerdo? Así que ahora, sin duda tenemos todos los libros que son propiedad del usuario en esta variable, pero esa longitud se define una mayor, es decir, toda la lista de libros. Podría ser un 100. Y sólo cinco libros estarán ahí. Para solo ahorrar algo de memoria y espacio. Creará otra variable. Es decir, todas estas son variables temporales que es resultado final. Y será, de nuevo. Una nueva área de libros, pero esta vez, la duración de la que contaba esta tierra real. Y usaré el bucle for para simplemente recuperar todos los datos de estos dos distintos. Ahora otra vez usado new int I es igual a 0. Yo menos que contrarrestar I plus plus. Aquí, simplemente, en la matriz de resultados. Copia todo de esa matriz temporal. Eso es todo. Es sólo una simple copia. Y finalmente regresó. Eso es así. Por lo que de nuevo, me gustaría explicar primero, esta es una función privada que sólo ve. No hace nada en la blockchain. En esta función estamos enviando un parámetro llamado terminado, es decir si verdadero o falso. Entonces enviaremos. Entonces. Lo primero que hemos creado una variable por el nombre temporal. Es una matriz vacía. Con eso es con el tamaño de la matriz igual al tamaño del folleto estable. Podría ser, supongamos, supongamos 500. Entonces hemos creado este contador que parte desde 0. Y simplemente piénsalo. ¿ Cuántos libros son propiedad del usuario? Si es propiedad y se va a implementar. Y como lo sé arranca desde 0, Por eso en lo temporal, acabo de enviarlo a la posición 0. O bien cómo enviaremos un valor dentro de él. Entonces si lo desea, puede devolver el temporal también, pero la longitud es mucho cerdo. Para eliminarlo, acabo de crear una nueva matriz con esa longitud de contador, es decir, diez y horas, solo por ejemplo. Y simplemente copie pegue todo desde temporales dos días, resultado, variable y devuelva el resultado. Ahora, el propósito de hacerlo privado era usar estos dos porque estamos creando para funcionar. En primer lugar, el nombre de la función es conseguir terminado. Libros. externa Vistaexternadevuelve memoria de libro. Y simplemente devolverá esta función que es obtener lista de libros con valor terminado a true. Y otra función vamos a crear y nombrarla, subir terminada. Libros. Vista externa devuelve una matriz de estructura de libros. Y devolverá lo mismo que es, obtener lista de libros, pero definitivamente valor con false. Entonces con esta una función, somos capaces de escribir dos funciones más o de lo contrario tenemos que escribir deseo, podríamos tener que escribir por separado, por separado. Será, de nuevo, el código se repetirá y todo. Entonces es muy sencillo. Lo entenderás paso a paso o bien por favor pausa el video e intenta entender la lógica detrás de él. Ahora, la funcionalidad final que necesitamos es establecer este valor terminado de false. Es decir, de verdadero a falso y todo. Porque obviamente si usan la lectura de ese libro, tal vez quiera actualizarlo. Así que simplemente escribir la función. Castigado. Entonces será una función externa. Ahora esta función pedirá ese ID de libro y un valor booleano. Terminado. En primer lugar, comprobaremos si el usuario es el propietario de este libro o no, porque sólo puede leer o ver sus propios libros. ¿ Este ID de libro pertenece al remitente de puntos de mensaje? Esta cosa estará aquí así. Entonces simplemente lista de libros. ID de libro, punto terminado será este valor. Y después de esto, me gustaría, nuevo, hice un evento. Por lo que al igual que el conjunto de eventos terminado, se pedirá ID de libro. Y el valor booleano. Aquí. Emitamos set terminado. Y estamos enviando este ID de libro y el valor terminado. Entonces eso es todo. Para nuestra biblioteca, contrato inteligente. Lo hemos escrito todo. En el siguiente video, escribiremos una prueba unitaria para asegurarnos de que todo esté funcionando correctamente. Gracias. 6. Crea un nuevo archivo de prueba: Hola, bienvenido de nuevo. Dado que Blockchain es inmutable, por lo que antes de desplegar nuestro contrato inteligente, debemos escribir pruebas unitarias para asegurarnos de que todas nuestras funciones y variables en nuestros contratos funcionen correctamente. Y devolviendo los valores correctos. Estaremos usando Mocha Chai para este propósito. Entonces dentro de esa carpeta de prueba, crea un nuevo archivo y nombra Biblioteca dot test, lo siento, biblioteca dot js. Ahora, vamos a Derecha, lo requerido que son las importaciones y toda esa biblioteca que usaremos es Chai, eso es así, tenemos que escribir. Y entonces lo siguiente que vamos a requerir es comedores es igual a requerir e tos. Tenemos estas dependencias cuando creamos un nuevo proyecto hardhead. Así que vamos a crear nuestro escritorio. Y escribiremos contrato de biblioteca. Entonces dentro de ella. Espero que sepas escribir prueba usando sombrero duro. Por lo que ahora antes de ejecutar las funcionalidades y todo, debemos escribir algunos datos o algunas variables. Como en primer lugar, definitivamente, deberíamos tener nuestro contrato bibliotecario y así sucesivamente. Vamos a escribir estas variables. Entonces, el dueño que está desplegando el contrato. Esta segunda biblioteca que es letras pequeñas será como un objeto y chequeo de nuestro contrato. Y esta será una fábrica, se puede decir. Entonces debemos agregar algunos datos ficticios a nuestra biblioteca al principio. Por lo que acabaremos de escribir número de número de libro terminado es igual a cinco. Sólo datos ficticios. Y secundaria const num, libro terminado, error ortográfico. Cuando el libro de nicho es igual a tres. Entonces hayamos terminado libros sin terminar y otra lista de libros terminada. Entonces Mark II utiliza ganchos para organizar la estructura. Esta palabra clave de escritorio lloró se usa para agrupar todas nuestras pruebas y podemos ir como Nest MLL. Podemos anidarla. Es decir, de nuevo, podemos escribir este gráfico. De nuevo, podemos hacer así para que podamos anidar todo. Después está IT cook, son los casos de prueba y todo lo que usaremos más adelante. Entonces tenemos antes de h, Es un gancho. Es decir, tenemos esto. Tenemos esto antes de cada gancho también. Entonces es un gancho que correrá ante todo el escriba y funciona. Entonces en palabras simples, lo que escribas dentro de esto antesCada uno se ejecutará cuando nuestros casos de prueba que se construyen sobre cuatro escritorio separado. Bien, ahora sigamos adelante. Empecemos con antes de cada gancho. En su interior, ganarán una función sinc. Ahora, usaremos esta palabra clave de biblioteca, es decir variable de biblioteca. Y simplemente escribiremos espera éteres, dot get, contrata fábrica. Y el nombre de nuestro contrato es este. Elaboración. De acuerdo, entonces tendremos éste. Deje que la biblioteca, que estará a espera, la biblioteca dot despliegue. Nuevamente, aguardan esto. No tenemos que escribir directamente. Ahora podemos conseguir al firmante así. Propietario es igual a esperar. Inicio. Consigue firmantes así. Ok. Justo, sólo estoy revisando. Lo tengo todo. Todo está ahí. Ahora. Esta es la estructura. Es decir, tendrá una lista de valores. El primer valor irá dentro de esta variable. Esto es, este es el significado de esta afirmación. Ahora inicialicemos este vocalista sin amueblar a esta lista vacía y el lugar más amable a esta lista vacía. Ahora, lo que haremos es añadir cinco datos ficticios a esta lista de libros pendientes y tres datos ficticios a esta lista de libros terminados. Ahora, para eso, voy a utilizar un bucle for que está lejos lead I es igual a 0. Yo menos de número de libro inconcluso I plus, plus. Así, entonces simplemente, voy a crear un objeto de libro. Objetar o se puede decir así. Entonces tendrá nombre. Tendrá año. Tendrá, tendrá un valor de terminado. Esto será falso. Ahora, obtén valores aleatorios de nombre aquí en Arthur, ya que será bucle a través de él. Voy a crear una función aleatoria básica aquí. Así. Función. Obtener entero aleatorio. Ahora acabaré de establecer los dígitos mínimos y máximos y todos y simplemente devolveré Matemáticas dot floor. Entonces no al azar. Multiplicar por máximo menos mínimo. Así. Esta es una función entumecida muy básica. Si estás usando algunos más complejos, si quieres algunos números más complejos, entonces deberías usar algunas otras bibliotecas. Pero ahora mismo, esto hará ese trabajo. Esto es sólo un propósito de prueba. Simplemente obtendré entero aleatorio. Necesito, ¿es de uno a 10 mil? Y sólo voy a llegar a ensanchar así. Nuevamente, para el año. Será cualquier cosa entre 1800 supongamos a 2022. Entonces nuestro tercero sería solo este número aleatorio. Solo recuerda, esto es sólo para pruebas. Quiero unos pocos datos de ese lado. Ahora, después de este objeto de libro, simplemente escribiré await, biblioteca, dot, agregaré libro y libro. Libro, nombre de punto, libro, oreja de punto, gancho. Nuestro tercer libro, terminado. Y entonces empujaré esta información en detalle, esta lista inconclusa. Ese es este valor de libro como este. Así que sencillamente, de nuevo, esto antes de que h se ejecute antes de cada prueba definida, definiremos total para prueba unitaria aquí. Y antes de cada prueba, se ejecutará este pedazo de código. Aquí primero estamos desplegando nuestro contrato y luego obteniendo la instancia del mismo, y luego agregando alguna caja ficticia. Ahora, de nuevo, de manera similar, tenemos que sumar datos para esto que está terminado libro también. Después de este libro inconcluso, nuevamente, escribiremos algo mismo. Entonces lo que voy a hacer es copiarlo, pegarlo aquí. Entonces lo primero que haré es conseguir este número de libro terminado. Aquí. Yo igual a 0 menos que número de libro terminado. Entonces de nuevo, estos serán los libros y esto aquí, valor de definición será cierto. Entonces escribiré espera biblioteca punto, añadir libro, Libro nombre de punto. Entonces aquí empujaré esta información a esta lista de libros terminada. Eso es todo. Por lo que finalmente, ahora estamos terminados con esto antes de cada gancho. En el siguiente video, escribiremos la prueba unitaria para agregar un libro y obtener todos los libros. Gracias. 7. Prueba de unidad para agregar y buscar libros: Así que ahora vamos a escribir nuestra primera prueba para agregar un libro. Después de esto, ante cada cláusula. Escribamos de nuevo que describan grupo y añada libro. Esta será una función. Entonces dentro de ella, úsalo. Ese es el esto viene de la biblioteca también. Estos son los casos de prueba. El primer caso de prueba será, debemos reunirnos y reservar evento. Apenas escríbelo. Si no estás entendiendo, entonces definitivamente al final de la prueba entenderás lo que significa esta línea. Nuevamente, vamos a crear un libro aleatorio. Para esto. Copia, este objeto de libro. Aquí. Todo está bien. Después de esto, simplemente escribe esperar x de nuevo adentro, nuevo dentro de él de inmediato. Biblioteca punto, añadir, reservar. Entonces escribe esas cosas dentro de ella. Simplemente copie y pegue si lo desea. Entonces esto emitirá un valor que es emitir. Entonces nuestra instancia de biblioteca, es decir instancia de contrato. Eso entonces emitirá un evento llamado Add book con argumentos o dirección NOR. Entonces número de libro y terminado más número de terminado un libro como este. Entonces, a qué me refiero con este código, ya que al final de nuestra función ad book en ese contrato bibliotecario, eso es esto, estamos emitiendo esto, ¿verdad? Entonces este evento es éste, que es receptor, que es quien es el dueño del libro. Y esa identificación de libro. Y puesto que el id del libro es la longitud de la lista de libros. Y en nuestra, antes de cada libro, ya insertamos este número de libros que es 53 en la lista. Ese limón arranca desde 0. Entonces en palabras sencillas, lo que quiero decir es que ya tenemos una tarea que es esta tarea ficticia en esa lista. Y esta será la tarea nueve que somos, es decir nueve libro, que estamos agregando, que tendrá un id ocho. Esto tendrá un índice ocho porque en la lista de correo electrónico el índice comienza desde 0. Por lo que este libro tendrá una identificación ocho. Eso es todo. Así. Este libro tendrá una identificación ocho. Simplemente comprobaremos si el evento emitirá esta información o no. Eso es todo. Y para hacer chequear la igualdad o comparar los resultados esperados contra resultado real, podemos usar Chai, lo que nos da tres aseveración es decir, esto espera que haya un tercio también y hay debe también, pero vamos a utilizar sólo esperar. Ahora. Esto añade que se hace una prueba de libro. Después de esto, escribiremos otra prueba unitaria, que será conseguir libros. Vamos a escribirlo. Será una función de nuevo. El primer caso de prueba, realmente, debemos devolver el número correcto de eso es correcto. Libros inacabados. Habrá una función sinc. Ahora, vamos a conseguir los libros de nuestro contrato. Eso es libros de encadenados. Esta blockchain será punto de instancia de biblioteca. Consigue un libro inconcluso que está aquí. Consigue libros sin terminar como este. Entonces lo que esperamos es, en primer lugar, los libros de longitud de punto de cadena deben ser iguales a número de libros sin terminar. Y entonces lo que vamos a hacer es también verificaremos que los libros es decir, que los libros dentro de esta matriz sean iguales a los libros dentro de esta lista de libros de su contrato. Para eso, tenemos que crear una función que verificará los libros y así simplemente anotarlo. El código que estoy a punto de escribir. La primera función será verificar un solo libro, ¿de acuerdo? Se llevará cadena de libros y libro. Por lo que tendremos esperar que el nombre del punto del libro sea igual al nombre de punto blockchain. Entonces tendremos otra espera. Libro. Dot ir dot dos cadenas será igual a punto blockchain, punto a cadena. Entonces esperaremos libro. Nuestro tercero debe ser lo mismo que n igual a blockchain dot Arthur. Y ahora vamos a tener otra función, verificar lista de libros. Entonces serán libros de cadena y lista de libros. Primero esperemos libros de la cadena. Longitud no debe ser igual a lo que es, no es igual. No es igual a 0. Entonces segundo esperar será lalongitud de la cadenade libros longitud de la cadena es esta lista de libros longitud de punto. Entonces ya que tenemos muchos libros, eso es en esta área también y esta área también tendremos muchos libros. Por lo que tenemos que recorrer cada libro y luego revisar. Entonces tenemos, vamos a tener un bucle de barra. Entonces. Se iniciará de I igual a 0, yo menos que lista de libros dot longitud I plus plus. Así que simplemente escribe const. La cadena de libros es igual a los libros de la cadena. Supongo que 0 índice primer índice como este. Entonces el libro será lista de libros, que es aquí que no es una prueba. Y entonces vamos a utilizar este verificable, que esto verifica solo libro. Esto, para este libro en particular, comprobaremos ese nombre o si tanto el nombre como el autor, Eric color, no así en la blockchain y el libro. Entonces simplemente estamos comparando libros almacenados en ese contrato y libros almacenados en la variable local de esta prueba. Eso es todo. Así que de nuevo, ve aquí abajo. Lo que escribiré esta lista de libros verifica. Entonces simplemente enviaré libros de cadena. Y luego lista de libros pendientes. Por lo que definitivamente debería darnos lista de libros inconclusos de esa cadena. Y luego listas de libros inconclusos desde aquí que está en esta prueba. Y de igual manera, tendremos otra condición para obtener el número correcto de libros terminados. Aquí. Esto vamos a conseguir terminado el libro, libros. Entonces los libros de Jane es igual a número de terminados. Esto se terminarán libros iguales. Y luego verifica folletos, eso es libros de Jane. Y este libro terminado enumera, sea igual o no. Entonces eso es todo. Hemos creado con éxito la prueba unitaria para agregar un libro e incluso buscar nuestros libros. Se trata de buscar libros que están inconclusos y buscar libros que están terminados. Eso es todo por este video. Nos vemos en la próxima sesión. Gracias. 8. Realiza las pruebas: En este video, acabaremos de escribir nuestro caso de prueba final y luego, y luego ejecutar toda nuestra prueba y ver si es, si está funcionando correctamente o no. Por último, la prueba será fijar un libro terminado, es decir un libro inconcluso. Vamos a cambiarlo por terminado. Así que volvamos a así, este gris. A continuación, establecer la función terminada. Ese caso de prueba realmente deberíamos establecer evento terminado. Entonces escribe nuestra función. Supongamos que tomemos ese ID de libro a ser 0. Ese es el primer libro. Después miró. Libro. Terminado es igual a verdadero. Entonces simplemente escribir esperar, esperar. Entonces biblioteca dot set función terminada. Enviaremos el ID del libro. Y ese es el decimal qué genes a verdad. Entonces emitirá. Emitirá una función o un evento que se llama set. Los capitalistas fijaron terminado con argumentos, argumentos, ID de libro, y un valor que es cierto. Entonces cuando llamamos a este conjunto terminado aquí, se puede ver que emite un evento cual tiene el ID del libro y un booleano terminado. Eso es todo. De eso estamos hablando aquí. Vamos a comprobar si se trata de una reunión o no. Ahora, es el momento. Ejecutamos nuestra prueba. Asegúrate de guardar todos tus archivos. Entonces en el directorio de tu proyecto, simplemente trae tu terminal y derecha y px, hardhat, prueba y presiona Enter. Recuerde que si alguna vez obtiene algún error aquí después de terminar ese agregado o después de arreglar ese error, use NP x hardhead clean y luego ejecute la prueba de nuevo. Eso es volver a ejecutar esta prueba. Nuestro contrato de biblioteca hash algunos temas. Ya lo puedes ver. Ok. Vamos a revisar. Tenemos algunos temas. Te responderé con una solución. Entonces conseguí la solución. El error que hice fue el primer error fue, es decir, en la cuarta línea, debería tener este sombrero duro, no una biblioteca de pruebas. Estas cartas deben provenir de la biblioteca principal de Howard. Y un segundo error fue, Esta espera debe venir de la biblioteca infantil, pero no debe ser mayúscula, debe ser letra pequeña que sea CHA, pequeña. Vamos a guardarlo. Y de nuevo, conseguiré una nueva terminal. Voy a leer y px. Yo había tenido limpio. Entonces agregaré NP x había tenido prueba. Veamos. Ahora todo está funcionando correctamente o no. Entonces, por fin, puedes ver que todos los casos de prueba están mostrando, vale, eso significa que estamos listos para irnos. En el siguiente módulo, cargaremos nuestro contrato inteligente a la blockchain. Gracias. 9. Cómo escribir el guion de despliegue: Hola, bienvenido de nuevo. En este video, escribiremos esos scripts de despliegue para nuestro contrato inteligente. Simplemente vaya a la carpeta scripts y cree un nuevo archivo por el nombre deploy dot js. Ahora empecemos a trabajar en ello. Exijamos el paquete ethers de la dependencia de hardhead. Ahora simplemente escribe esta pieza de código que se requiere para el propósito de despliegue. En primer lugar, crearemos una fábrica de contratos. Y espero que los comedores consigan contrato de fábrica. El nombre es biblioteca. Entonces crea una instancia que sea contrato por punto comercial. Despliegue. Un contrato de peso desplegado. Solo esperaremos para asegurarnos de que se esté desplegando ese contrato. Y tras día. Después de eso, vamos a consola log dow contract address, que es muy importante. Utilizaremos esta dirección contractual más adelante en el frente. Simplemente escriba la dirección del contrato. Y luego escribiremos otra función. Para ejecutar la función anterior así. Tener un try catch block. Nos referimos entonces procesar esa salida 0 si todo está bien. Y si tenemos algún adder, entonces lees consola dot log, tal vez error registrado. Y escribiremos salida proceso. Uno. Podemos editar es botón de salida adder. Y finalmente escribiremos y correremos main aquí, digamos. Entonces este es el script de despliegue. Solo guarda todo. Entonces para desplegar simplemente anexado terminal en la carpeta raíz. Y simplemente escriba NP x. Heart había corrido guiones. Despliega dot js. Red es piadosa y presiona Enter. Veamos si todo está bien, entonces conseguiremos nuestra dirección contractual. Cómo se ha desplegado con éxito nuestro contrato. Simplemente copia esta dirección y simplemente consigue una coma, eso es Comando. Y simplemente guárdalo para que no perdamos esta información. Ahora, si lo desea, también puede consultar el contrato. Información en. Piadoso. Ethers puede simplemente ir a este sitio web y simplemente pegar su dirección de contrato y simplemente buscar. Ver, tenemos este contrato que se está subiendo se despliegan hace 52 segundos. Simplemente puedes comprobar que sí, nuestro contrato se ha desplegado días exitosos, no hay problema en él. Entonces eso es todo para este video. El siguiente módulo, vamos a trabajar en el front-end y luego interactuar con nuestro contrato diploide. Gracias. 10. Trabaja en el siguiente frontend de js: Hola. En este módulo, vamos a trabajar en el front-end de nuestra aplicación y estaremos utilizando el próximo JS, que es área todavía framework. Ahora en la carpeta del proyecto, simplemente escriba el comando npm. Crear, próxima aplicación. Entonces vamos a estar usando los vivos allí también. Simplemente escribe tailwind css y lo nombraré cliente y presionaré enter. Creará una próxima aplicación básica de JS. De acuerdo, por lo que nuestra siguiente aplicación sillas se crea con éxito. Ahora para interactuar con nuestro contrato inteligente desplegado, necesitaremos dos cosas. Dirección del contrato y que ABI. Para obtener el ABI simplemente copie el archivo json dot de biblioteca, que se encuentra dentro de la carpeta de artefactos y Contratos, luego biblioteca. Entonces tenemos este archivo de biblioteca dot json también. Este cliente. Y este cliente crea una nueva carpeta llamada ABI. Nueva carpeta aquí, ABI. Y luego dentro de esta carpeta, simplemente pegue ese archivo de biblioteca dot json. Es decir, esta es la ABI que se requiere para la tarea, es decir, para esta dirección contractual. Simplemente cree un nuevo archivo llamado config dot js dentro del directorio cliente. Directamente eso está dentro de este crear un nuevo archivo llamado config dot js. Y por dentro, simplemente escribir exportación, const tarea. O simplemente se puede decir que no contrato, simplemente puede escribir contrato. Dirección es igual a y luego copia directamente esta dirección aquí y guárdela. Usaremos esto más adelante. Ahora, si quieres, solo puedes quitarlo. El domicilio aquí. Eso es todo. Ahora también tendremos, necesitaremos instalar pocas dependencias para nuestra, para nuestro próximo proyecto JS. Así que simplemente vaya a ese directorio de clientes en la terminal es cliente de CD. Y simplemente escribir npm, instalar comedores, tipos de componentes con estilo, y pulse Enter. Por lo que los comedores es un bastante interactuar con el contrato inteligente. Tipos revisarán los apoyos y vamos a ver qué me equivoqué. No hice componentes extendiéndose un poco. Combo. Los tipos de Nance comprobarán que los apoyos pasen a tus componentes, coincidirán con tus condiciones. Y asegúrate de que los datos que recibas sean válidos. Quizás tipos, que es sólo para asegurarse que los datos que se envían al componente sean válidos, entonces esos componentes de estilo nos permiten crear componentes y adjuntar estilos a él usando etiqueta ES6, plantilla literales, los estilos que están devolviendo CSS. En palabras simples, es un paquete de terceros utilizando el cual podemos crear un componente como una variable JavaScript que ya está estilizada con código CSS. Lo entenderás más adelante. Así que ahora acaba de ejecutar, nuestra aplicación es npm run dev. Vale, ahora simplemente vayamos a esto. Es host local y ver nuestra próxima aplicación JS está escrita con éxito. Entonces eso es todo. De nuevo, ¿qué lo haré? Sólo voy a hacer esto pequeño. Es así. El domicilio del contrato, justo el CamelCase cartas posteriores me gusta, me gusta así. Entonces lo siguiente que haremos es trabajar en el archivo índice, que está dentro de las páginas. Aquí. Tenemos este índice dot TypeScript archivo. Y voy a quitar todo de aquí y simplemente empezar a escribir desde cero. Lo primero que haré que te quedes y utilices afectan a la gente de React. Entonces tendré domicilio contractual. Dirección del contrato del archivo de config, que está fuera de esto, ese es este archivo de config. Entonces voy a importar éteres, paquete éteres. Entonces voy a importar nuestra ABA que esta biblioteca de ABA slash library dot json. Entonces voy a importar la siguiente página a partir de la siguiente. Entonces también simplemente voy a declarar ventana de plomo. Para que más adelante no dé ningún error. Eso es genial. Nuestro componente que es hogar explorado por la tardanza. Por lo que ahora tenemos nuestro componente irradiado es nuestra próxima aplicación está lista. En el siguiente video, trabajaremos en cómo conectarlos billetera MetaMask en nuestra aplicación. Gracias. 11. Funcionalidad para confinar MetaMask: Hola. En este video, trabajaremos en esa funcionalidad para conectar nuestro Liam válido es la masa molar a nuestra aplicación. Así que primero trabajemos en la función y llamémosla conectar. O vamos. Envolvamos todo en ella. Intenta atrapar. Block simplemente escribirá console.log adder console.logconectándose a mi termostato. Y sencillamente escribiremos eso agregado. Ahora primero, vamos a conseguir el objeto estadio, este que se inyecta a nuestro navegador. Entonces veremos si tenemos un TDM o no. Si no tenemos un TDM, simplemente escribiremos console.log. Es posible que no se detecte la máscara y regrese. Y si lo tenemos, entonces comprobaremos si está conectado a la red correcta, eso es red Garlin o no, simplemente conseguirá la solicitud para ellos mi turno, que se conoce como ayudante en cadena. Y entonces sabemos que sabemos que ID femenina es 0, X5, esto es cartílago e identificación. Entonces lo compararemos si Shane AD no es igual a correlacionar la cadena AD. En ese caso, simplemente alerta alerta de que no está conectado a una red y simplemente regresa desde aquí. Y si esto también está bien, entonces simplemente conseguirá que cuente. Esta m dot una solicitud. Esa solicitud y escucharemos solicitar que mi tercera, que se conoce como cuentas de solicitud, así. Y entonces deberíamos tener un estado que sea variable aquí. Yo lo nombraré cuenta corriente. Para cambiarlo, simplemente estableceré cuenta corriente. Espero que sepan que usted dice enganchar en React. Simplemente significa que esta es una variable y su valor inicial estará vacío. Esta es una función que se utilizará para asignar valor a esta variable. Eso es todo. Entonces así, copio esta función, luego la pongo aquí y simplemente escribo cuentas. El primero. Apenas, así como esto, tendremos múltiples cuentas en MetaMask, solo consigue la primera. Esta es la función que es la función para conectar billetera. Ahora, trabajemos en la porción HTML. Simplemente devuelva un div. Vamos a darle algunos nombres de clase de CSS. Flex, flex llama artículos. Si lo desea, sólo puede copiar lo que todo esto significa. Porque este es un código CSS de viento de cola, F3, F6 para. Entonces. Esto es solo un estilo básico. Eso es todo. Nada más. 68508. Principalmente mamá estará dentro este relleno inferior 20. Entonces tenga otra clase. Me dio el nombre de la clase. Transición sobre la fecha. Cuando dio. Entonces sobre escala, cuando 05, transición, duración 500. Facilidad de entrada, salida. Entonces no dentro de ella. Fuera de ella. Dado H2. Es que cubiertas C x negrita, y B es margen inferior. Para agregar un margen, top 12. Y nómbralo. Gestiona tu biblioteca personal. Así. Entonces, ahora viene nuestra porción es decir, comprobaremos si cuenta corriente igual a vacía, entonces tendremos un botón o de lo contrario tendremos algo más. ¿ De acuerdo? Veamos. Si está vacío, entonces tendremos un botón. El nombre del botón será conectar. Vamos. Ahora vamos a dar un poco de estilo. Nombre de clase. Texto, fuente a base. Al sumar mis tres. Apuestas x 12. Antecedentes. Uno, C, 232, gran margen, fondo. Después escala 105, transición. Y en el evento onClick, simplemente escribiremos connect, bien función de TI. Lo asignaremos este n Si ya están conectados. Entonces tendremos una etiqueta div, que tendrá una ventaja para eso. Entonces billetera, billetera conectada y su dirección de billetera que esta cuenta corriente. Y vamos a darle un poco de estilo también. A continuación, excel. En el día 12, manejando dot. Vamos a guardarlo. Quiero añadir un C. Tenemos esta hermosa billetera de botón completo, cuello. Si hago clic en él, traerá mi MetaMask. Y mi tarea ya está conectada a la red Golgi. Simplemente escribiré a continuación, conectar y decir, bien conectado, este es mi domicilio público. Por lo que hemos creado con éxito esteadies. Hemos trabajado con éxito en la funcionalidad para conectar nuestra billetera My Thomas a la aplicación. En los próximos videos, trabajaremos en el front-end y la funcionalidad para agregar y eliminar libros y todo. Entonces eso es todo. Nos vemos en el siguiente video. 12. Funcionalidad para agregar un libro: Hola. En este video, trabajaremos en una finca que permitirá al usuario enviar un libro. Y diré que tenemos que escribir una función que inserte esa información en esa blockchain. Tan fuerte, Empecemos con la función. Para que la función funcione. En primer lugar, deberíamos tener algunos estados. Se trata de algunas variables. Se puede decir const, nombre del libro. Por lo que definitivamente leer el libro tendrá un nombre. Y para actualizar esa variable, tenemos este nombre de libro conjunto. Te quedaste desde el principio. Estará vacío. Entonces tendremos autor de libros. Y entonces se habrá puesto. El libro está de acuerdo con el estado de uso. Nuevamente, será y entonces ese libro tendrá un año. Es rico oído, ese libro fue publicado. Reserva aquí. Usted dice MD. Y luego finalmente tendremos libro terminado. Eso es muy que este libro está terminado o no. Dicho libro terminó. Entonces, al principio, será no. Obviamente cuando agregamos, agregando un libro, se debe conocer el valor predeterminado. Entonces vamos a trabajar en su función y nombrarla. Enviar libro. Será una función sinc. Entonces vamos a crear el objeto Book. Simular. La clave se llamará BlockName. Entonces tu jefe. ¿ No tenemos que cambiarlo a entero, esa cadena. Esa es la más voluminosa. Entonces tenemos el tercer libro. Entonces tenemos valor terminado. Si el valor terminado del libro es sí, entonces será verdadero o falso. Entienderás esto de lo que estoy hablando, porque se trata de una biblioteca personal. Por lo que tal vez quieras insertar tu un libro que ya está siendo rojo, pero quieres agregarlo en la blockchain. Eso está bien. Entonces, entonces hagamos el bloque try-catch. Intenta atrapar bloque. Tenemos console.log y presentando nuevo libro. Y luego escribe el editor, trae diarrea. Y lo que vamos a hacer es primero sacaremos el estadio desde esa ventana. Entonces si lo tenemos objeto KTM, entonces vamos a escribir const. Proveedor es igual a los nuevos proveedores de comedores. Proveedor de la Web tres. Y pasaremos ese objeto Itanium. Entonces vamos a conseguir el firmante. Firmante será proveedor dot, consiga firmante así. Y luego tendremos una instancia de contrato. Biblioteca. Contrato es igual a nuevo contrato, esta dirección contractual, entonces deberíamos tener la ABA, ABA, y después tenemos que dar al firmante. Y ahora tenemos que llamar a la función agregar libro de ellos. Um, blockchain. Ahora dejar que la transacción de la biblioteca es igual a esperar contrato de laboratorio. Contrato de biblioteca dot añadir libro. Esto está devolviendo el contrato inteligente. Enviaremos libro, nombre de punto, libro, ese libro de oídos. Nuestro libro. Terminado así. Y luego simplemente vamos a registrar la consola esta transacción, es decir transacción de biblioteca. Y si el objeto Tanium no está disponible, que no será el caso. Pero como no tomaremos ningún riesgo, va a escribir, lo escribiremos. No existe el chequeo. Entonces eso es todo. Que esta es la función para nuestro envío de un libro. Simplemente nombraremos esta función enviar libro. Ahora, trabajemos en la porción HTML. Vamos abajo. Aquí. Es decir, en esta billetera conectada. Quieres que se muestre el formulario porque al principio el usuario tiene que conectarlos a una billetera mezquita. Entonces debajo de esto, debajo de esto tendremos, en primer lugar, lo que haré es envolver esta cosa dentro de un div. Dave, sólo espera, sólo estoy pensando en qué se puede hacer? Sí. Sólo dale un div. Cierre este div. Ok. Ahora, después de que esta billetera conectada, Dave, vamos a escribir esa forma que es rápida. Nuevo div. Voy a dar algunos vientos de cola, CSS a ella. Estas cosas serán texto, fuente, semi negrita, y serán Duan De margin, top four. Entonces vamos a tener nuestros campos de entrada. El primer ingreso será texto de tipo entrada, luego el titular del lugar será el nombre del libro. Y este valor será esa variable que mencionamos anteriormente. Y OnChange. Lo que vamos a tener. Cuando obtengamos el valor. Eso es lo que sea que esté ahí, vamos a poner el nombre del libro. Simplemente estableceremos el nombre del libro y pasaremos e punto, punto, valor de punto. Así. Vamos a darle un poco de estilo también. Así que sólo voy a dar algún nombre de clase. No va a enviar texto Excel a bordo. Margen, margen inferior, top one. Así. Entonces le daré un BR, tag. de línea. Y luego otra vez, tendré otro campo de entrada. Así que sólo cópielo y péguelo aquí. ¿ El estilo será igual. Sólo el marcador de posición será libro. El valor será libro y sin cambios. Se establecerá libro. Así. otra parte, tendré el mismo campo de entrada. Así que sólo estoy copiando la BR, eso es salto de línea también. Ese tercero será el valor contable será la oreja del libro. Sin cambios, dicho libro aquí, así. ¿ De acuerdo? Entonces simplemente tiene una etiqueta BR, luego una etiqueta. Simplemente ¿verdad? ¿Has terminado de leer este libro? ¿ Entonces? Tendremos algunos, tendremos una opción para seleccionar esta etiqueta selecto HTML. El valor será libro terminado. Entonces onchange será de manera similar. Como lo que consigamos, lo cambiaremos para poner el libro terminado. E dot, dot, dot, dot. Dentro de esta etiqueta selecto, deberíamos tener opciones. La primera opción será de valor. Sí, ese es el que he leído este libro. Y la segunda opción, ¿sabremos? Es decir, obviamente este libro no es correcto para él. Obtener. Ahora, después de esta etiqueta, deberíamos tener un botón. Sólo estoy pegando ese código porque en el último grabé este curso y acabo de tener un pequeño error. Para que puedas ver esto es un botón con un nombre de clase de texto, Excel, fuente, negrita POR tres, relleno en x2. Después fondo, color off, hash F1, C, 232, redondeado, amplio margen, fondo diez, margen izquierdo cinco. Después pasa el cursor, escala. 105, luego transición. Duración 500, facilidad de entrada, salida. Y onclick. Sólo estoy asignando la función de botón de enviar y darle un nombre del libro. Eso es todo. Entonces si corres, solo puedes pausar el video y escribirlo. Es sólo una línea de código. Ahora guárdalo y ve a tu aplicación. Basta con hacer clic en Connect wallet. Ver el formulario está aquí. Puedes nombrarlo cualquier cosa. Ya tengo un libro porque como te dije, lo hice que hice las pruebas en él. Así que aprende libro de cabeza dura o ella Eso es correcto. Bill Gates. No sé que esté interesado en esto o no y se lo dio 2019. Agrega un libro, entonces. Thomas pedirá aprobación. Simplemente confirmarlo. Veamos si en la consola obtenemos nuestra transacción o no. Sólo estoy revisando, todavía está pendiente. Ya está hecho. Ahora haga clic en Inspeccionar. Y en esa consola tenemos este objeto, que es la transacción completa C. Así que eso es todo para este video. La funcionalidad para agregar un libro está funcionando perfectamente. En el siguiente video, trabajaremos en cómo buscar esos libros de la blockchain. Gracias. 13. Funcionalidad para encontrar libros: Así que ahora vamos a trabajar en la funcionalidad para buscar libros de la blockchain. En primer lugar, necesitaremos algunos estados. Simplemente escribe libros const. Terminado y dicho cuadro. Terminado es igual al estado de uso. Será una matriz. De igual manera, tendremos otra caja. Y terminaron dichos libros y bienes terminados. Ellos usan fecha. Nuevamente, será una matriz vacía. Ahora, trabajemos con la función debajo de esta función de enviar libro. Voy a escribir const, conseguir libros es igual a un fregadero. Entonces obtengo una, igual manera tendremos un try catch block. Si hay algún error ahí, simplemente consolaré console.log. En esa sección try. Nuevamente, tendremos esta línea de código. Sólo copia esto mucho en licencia. Simplemente copiaré dentro. Voy a quitar, lo cual no es necesario. Simplemente eliminaré estas dos líneas porque necesitaremos el contrato de la biblioteca Itanium. El caso del contrato para trabajar para obtener la función de la blockchain. Ahora, simplemente, vamos a conseguir libros. Amueblado es igual a esperar. Contrato de biblioteca dot get. Ahora vamos a revisar. Consigue trabajos terminados. Consigue libros terminados. Y de igual manera, habremos dejado que los libros sin amueblar, contract dot queden inconclusos. Y entonces simplemente vamos a establecer el valor del estado. Eso se establece libros terminados. El libro está terminado. Y los libros inacabados serán iguales a la lista proveniente de libros sin terminar. Entonces así, tenemos nuestra función get booked también. Ahora, para mostrarlo en el front-end, crearemos un componente separado. Entonces dentro de esta carpeta Pages llamada Come on Nance, gumbo, Nance. Y dentro de ella crea un archivo llamado Book JS. Eso es todo. Por lo que será sólo imaginar libro separado, separado. Simplemente vamos a dar un bucle for y va a devolver este componente. Entonces aquí usaré algún estilo si quieres. De nuevo, estoy diciendo que puedes hacer por tu cuenta estas propiedades que hemos instalado al principio, estas dependencias, tipos de prop, y luego importar marcos clave estilo desde componentes de estilo. Ahora, vamos a la derecha, pocos marcos clave de estilo. Y esto. Entonces dentro de esto tendremos, puedes simplemente escribir este código mismo porque como estoy una y otra vez diciendo, no me importa el estilo. Sólo para filtrarse, sólo para lucir decente. Al menos estoy dando a este estilo transformarse. Escala 0.5. Entonces lee por ciento. Nuevamente, acabaré de copiar estas dos líneas. Pegado. Escala uno. Y luego escalamos uno. ¿ De acuerdo? Entonces con componentes de estilo polvo, tendré un contenedor. Entonces esto es sólo estamos dando estilos a un componente directamente. De esto se trata de las dependencias de componentes de estilo . Quedarse eso. Dave, vamos a anotarlo. Animación uno por uno. Deslizando 0.82 cúbicos Bezier en su interior. ¿ Verdad? W 0.390.5750.5651. A continuación, mostrar rejilla. Entonces las columnas de plantilla de cuadrícula serán 38 porcentaje, 20 por ciento, edad de cinco años, porcentaje, 37 porcentaje. Entonces estamos agregando dos REMs, 0.1881.625168, fecha REM, border, solid, un pixel. Frontera, radio. Para celular grande. Línea, altura. Normal. Transición de nuevo suelo, 0.40 como lineal. Margen. Brillante. Uno, soy tasa a 50 pixel. Mostrar bloque en línea. Eso es todo. Entonces eso es todo por la porción de estilo. Si lo desea, solo puede pausar este video y escribirlo de nuevo. Si fui un poco rápido. Entonces en el siguiente video, trabajaremos en el componente del libro. Gracias. 14. Cómo crear un componente de libro: Así que ahora vamos a crear ese componente de libro. Debajo de este pedazo de código. Digamos que const book es igual a esto. Y en este componente aceptaremos algunos apoyos como id, nombre. Aquí se castigan, y una función que será Click book. Terminado así. Volvamos. Volvamos, vamos entonces este contenedor, que ya está estilizado así. Entonces por eso usamos estos componentes de estilo para que cuando lo usamos, ya esté predefinido y funcione como si estuviera funcionando como un componente. Se puede ver, supongamos algún tipo de componente contenedor. Usted lo nombra, usted lo nombra container y podemos usarlo así. Ahora, vámonos. Ese es Dave, nombre. Entonces. Entonces tenemos aquí. Entonces esta etiqueta span, simplemente diremos si terminado igual a, igual a pausa. Si el libro no se está terminando, entonces tendremos algo o más, o bien, simplemente tendremos una etiqueta p. Entonces tendremos un botón. Entonces esta etiqueta p más adelante. Entonces aquí, si tenemos esto, entonces tendrán un botón. Y vamos a darle un poco de estilo al botón. Fuente, negrita, boda en x, y, romper. Ceniza, F, F, 77, F. Entonces tendremos a Dexter White. Después redondeado. Gran margen, top cinco. Nuestra escala 105. Transición. Duración. 500 está en esta carga. Entonces en este botón, lo que tendremos es que tendremos también el método on click. Está, está adentro, por aquí afuera. Vamos a tener el on click. Cuando el usuario hace clic en un clic, entonces se ejecutará esta divertida función, que es Glick Book amueblado. Y tenemos que mandar el DNI. Eso es libro rico. Tenemos que borrar y simplemente nombrarlo. Libro de nicho como este. Entonces esto será cuando, cuando el, cuando la propiedad sea falsa y si es verdad, entonces simplemente podemos dar un párrafo y darle un poco de estilo. Fuente. Bola, negrita, texto, altura 0 d, 71 E. Y se escribirá libro terminado. Digamos. Entonces. Ahora, después de este componente, tendremos algunos tipos de prop que realmente es asegurarnos de que estas propiedades asciendan en este orden. tiempos de prop es, tenemos algunas condiciones que deben cumplirse al principio. Es decir, esta es la cosa donde es como id se adquiere así. Prop tipos número de punto, que debe ser numerado y se requiere. Eso es un nombre. Tipos de prop. requiere cadena, punto. Prop tipos B cadena de capital se requiere de lo que tenemos. Tenemos nuestro talento terminado. Entonces acabamos de copiar. Tenemos lo hemos terminado. Así. Esto, esta cosa es un número. Y por último, simplemente vamos a exportar libro predeterminado, así. El componente de libro está listo. Ahora vamos a mostrar este libro en la página de índice que no es que las páginas de inicio lo muestran. Después de esto. Tenemos este botón Agregar. Entonces tenemos a este Dave. Tenemos este debate a las 132 horas tras día, tras día es Dave. Tendremos otro div el cual contendrá cual contendrá la lista de libros. Demos un poco de estilo a esto también. Flex, flex, columna, justificar, centro, elementos centro como este. Entonces de nuevo, tendremos un Nombre de Clase Dave. No son texto semi negrita, texto grande, centro, administrando el fondo cuatro. Y lo nombraré lista de libros. ¿ De acuerdo? Entonces tendremos una, entonces tendremos un botón. Entonces tendremos un botón y llamará get books. Y este botón volverá a tener clases como Excel a bordo, como esta. Y si eres bueno con Tailwind CSS, también puedes cambiarlo. Estos son solo un estilo básico. Después redondo, redondeado, margen inferior. Entonces nuestra escala cuando 05, duración de transición, 500 está adentro, out. Entonces este es el botón. Y debajo de este botón, haremos nuestra lógica. Simplemente. Lo que vamos a hacer son libros sin terminar. Esa tierra. Si es mayor que 0, entonces tendremos un div. Si la longitud es 0, entonces lo tendremos div, que como me dirijo, simplemente escribirá libro sin terminar. Y dentro de esto habrá número de libros. Es decir, libros sin terminar, no aterrizar así. Y vamos a darle un poco de estilo básico a esto. Fuente. Texto semi negrita, centro, margen, fondo. Para el margen, los cinco primeros. Y si no lo es, entonces simplemente tendremos algún div vacío. Así. No mostrará ningún rumbo a ella porque será, no se ve bien. Entonces por debajo de esto, por debajo de esto, déjame ver. Debajo de esto, vamos a tener otro div nombre de clase será flex. Fila Flex justifica centro, centro de artículos. Y aquí tendremos como estos libros, inacabados, mapa, así. Y aquí vamos a conseguir libros individuales. Y en estos libros individuales, llamaremos el componente del libro. Vamos, vamos a importar doble componente aquí. Importar componentes libro como este. Ahora esto aceptará algunas propiedades. Libro clave que ID, ID, parse int. Sólo diremos libro. Nos aseguramos de que sea una identificación. Es decir, es n tasa numérica. Digamos que el editor irá más tarde. El nombre del punto del libro es igual a las barras. Libro, la oreja. String, así así son terribles. Libro. No. Después terminó. Libro. Dot, terminado, punto dos. String. Entonces Haga clic en libro. Terminado será la función click, click Reservar amueblado. Tenemos que crear esta función. Digamos que tenemos este componente de libro. Está bien, aquí. Esto será esto. Veamos. ¿Hay algún editor? Simplemente llamaremos a este componente Este click libro terminado. Aquí. Click Ok, la ortografía, supongo, terminó C. Ok. Ahora, estos están funcionando correctamente. Se puede ver que tenemos que crear una función flip book terminado también. Y para estas líneas rojas y todo, si quieres, solo puedes ir al archivo ts config dot JS, eso es aquí. Y luego aquí, cambia el valor estricto a false. El distrito a falso, Eso es todo. Si haces esto, esas líneas rojas y esas cosas se resolverán. C, Esos ahora están resueltos. Entonces eso es todo para este video. En el siguiente video, trabajaremos bajo funcionalidad para cambiar la librería hace a terminado. Gracias. 15. Funcionalidad para cambiar el estado del libro: Así que bienvenidos de vuelta. Trabajemos en nuestra aplicación. V4. Bueno, para asignar esta función es decir, obtener libros. Ese botón. El botón aquí, que es cuál es este. Así que simplemente escribe onclick y eso es un buen libro. Y también de igual manera, esto mostrará todos los libros que están terminados. Entonces de igual manera, tendremos, tendremos que mostrar libros que son, que son, que están terminados en ello de esta manera. Se trata de libros que no están terminados y tenemos que mostrar libros que están terminados. Entonces lo que voy a hacer es simplemente copiar este trozo de líneas. Digamos que supongamos lo primero que copiaré esto y lo pegaré aquí. Será escribir libros. Libros, terminados. Libros, terminados. Dot longitud en lugar de lo mismo y realmente libro terminado, eso es todo. Y luego volveré a hacer el mapeo así. Así que sólo cópielo y pegarlo abajo aquí. Haré ese mapeo con libros, terminados, mapa de puntos. Y tendrá libros en estos días terminados. Y ahora vamos a trabajar en la función aquí y la nombraremos. Libro, terminado, copiado y pegado aquí también. Esta será la función que vamos a crear ahora. Libro del lago terminado. Sube aquí. Función creativa. Const así. Un fregadero. Aceptará identificación, así. ¿ De acuerdo? Por lo que ahora de nuevo, tendremos try-catch y todo. De igual manera como siempre, ya que tenemos que conectarnos al contrato inteligente, que ya está desplegado, simplemente escribe console.log y cambiando estado del libro. Simplemente imprima el encabezado también. Entonces en ese bloque try, simplemente tendremos, vamos a copiar de, copiar desde aquí. Sólo copia estas líneas. Pega aquí. Bien, tenemos al proveedor. Entonces la transición de la biblioteca será, simplemente se establecerá. Terminado id a través de esta manera, digamos consola dot log. Entonces esta es la función. Y la mayoría de las funciones son algo similares. Nada tan elegante. Sólo estamos llamando a este que está listo terminar esto aquí. Éste, se necesita un ID de libro y un booleano terminado. Entonces simplemente vamos y mandamos el ID y el booleano, eso es todo. Entonces, por último, hemos escrito todos esos códigos para la aplicación. Me alegra que hayas visto cosa ahora, en el siguiente módulo, probaremos nuestra aplicación si todo está funcionando correctamente o no. Y si obtenemos algún error, lo resolveremos lo antes posible. Gracias. 16. Prueba la aplicación completa: Hola. En este video, realmente hemos probado el funcionamiento de nuestra aplicación. Hemos estado citando de los últimos videos, pero en este momento, es hora de probar si todas las funcionalidades están funcionando o no. Entonces lo primero que voy a hacer son genes que red de mis tomates de Gormley para ser supongamos. Y luego haré clic en Connect wallet. Mira, no estás conectado para llamarla red, por lo que nos está incitando a cambiar nuestra red. Esto está funcionando bien. Vamos a la colina. Entonces cuando hago clic en Conectar violeta, MetaMask anexa, y luego a continuación y conecto. Ok. Ahora tenemos estos libros. Si te acuerdas, ya agregamos un libro azul antes. Entonces si hago click en Get Books, entonces tenemos dos libros inconclusos. Mira, este es uno, aprende árbol web y el otro es aprender sombrero duro. Entonces esto se ve muy bonito. Y además si escribo aprender, hay una fecha de comercio es la próxima. Js. Mark Zuckerberg y 2018. Supongamos que si simplemente escribo encendido, si lo cambio a sí, vamos a ver qué pasa. Se pueden formar alertas. Veamos si la transacción sigue pendiente. Tomará algún tiempo. Ya está hecho. Por lo que ahora, si hago click en Get Books, mira que tengo libros terminados. Pero estoy bien. Este error. Entendí por qué son dos porque aquí nos olvidamos de cambiar. Entonces los libros terminados serán de esta longitud. Digamos eso, ese es un error muy pequeño. Es, está corregido. Libros terminaron uno. Y si hago click en este libro terminado, aprende sombrero duro. Nuevamente. Mostrando esto, luego hago clic en confirmar. Ese motivo principal de este curso fue entender los fundamentos de la blockchain. La tecnología no es esa interfaz de usuario. Si lo desea, puede usar cualquier herramienta de interfaz de usuario front-end y hacerla muy hermosa. Porque podrías estar pensando que esto es muy simple, pero lo principal es esa funcionalidad. Ahora, es gasto conjunto función terminada. Este gasto. Ahora está hecho. Si hago click en Obtener Libros. Ver, esto también está en la sección terminada y ahora tenemos un libro inconcluso y al libro terminado. Para que la aplicación completa esté funcionando impresionante. Y creo que estamos orgullosos de nosotros mismos que tengamos construyendo una aplicación descentralizada desde cero. Por lo que espero que hayan disfrutado del curso. Asegúrate de ver otros cursos míos también. Gracias. Que tengas un buen día.