Workshop ETHArauca | Dominando la sintaxis de Solidity
ETHArauca Workshops 2023 · 23 May 2023 · 1:39:25
A hands-on Spanish-language workshop teaches Solidity syntax through one contract written in Remix, covering numeric, address, string, boolean, mapping and array variables. Participants read the contract line by line, see that a mapping links each address to a balance, and learn that events tell a front end a state change happened while a constructor sets initial values at deployment. The instructor then deploys it on a public test network from MetaMask, has attendees import the deployed contract by address, and has them send small test deposits through a payable function. The closing discussion says security depends on the developer's code, and the homework is a contract only its creator can withdraw from.
Speakers
Topics
From ETHArauca Workshops 2023, hosted by Ethereum Arauca.
Transcript
en el año 2023 tenemos Inteligencia artificial entonces me puse como Bueno vamos a preguntarle a chaypiti sobre ese tipo de contratos y vamos a construirlo contra jipi para que luego no tengan excusas como que haga no puedo aprender o no sean de conseguir información No hay excusa se puede usar Inteligencia artificial para este tipo de cosas igual forma acá les compartí esta parte o esa página en la que se habla un poco sobre la diferencia en eso los tipos de variables Y también vamos a preguntarle a ese chiquiti cómo va a ser ese tipo de contratos y de hecho yo le pregunté Ya le pregunté como Dame un contrato que use gran parte de la sintaxis de Para qué para demostrar el punto de que efectivamente él nos puede arrojar toda la información necesaria para poder
participar este tipo de contratos Entonces ya que sabemos dónde podemos considerar herramientas y sabemos que no solamente tiene una página sino que tengo una página que llamaba el cual puedo preguntar lo que yo quiera y que es completamente gratuito solamente con conectar mi correo ya que tengo la versión gratuita me dice que actualiza la versión de pago y no lo he hecho entonces empecemos con la siguiente parte por favor Tito que todos entren al revés al remix para poder empezar a con la interacción en la sesión de hoy vamos a ver nuevos tipos de variable vamos a ver como nuevos conceptos vamos a desplegar contratos y vamos a empezar a
interactuar con contratos entonces para hacer un poco más Dinámico La idea es poder entender suficientes conceptos para dentro de otra sesión hacer una integración con un apartado y poder empezar a conectar esto que estamos viendo acá como tan abstracto de inteligente que sería como el equivalente al Barrio con un Front para poder tener algo llamado o aplicación descentralizada entonces porfa lo que todos abran el explorador de remix para poder bueno la idea de remix para poder empezar a trabajar esta Va a ser la ruta que vamos a tomar yo por ejemplo tengo mi espacio de trabajo Bueno lo que nos dio una sesión pasada el remix tiene un apartado que se
llama explorador de archivos así como visual Studio y en el explorador de archivos definimos un espacio de trabajo si notamoslo si no se da la oportunidad podemos en un futuro empezar a probar esos nuevos este como conectar con localhost ya que Existen algunas herramientas y framework como hard que posiblemente las veamos más adelante que nos van a permitir crear nuestro código local desde visual Studio y decirle que lo genere o que lo suba a un nuevo local por decirlo así aquí me conectaría con una billetera que tendría solamente corriendo mi computador y tendría en esta cpu no tendría ninguna máquina virtual por allá sino un espacio virtual en el cual controlo con mi computador entonces son como un poquito temas más
avanzados pero por ahora para simplificarlo trabajemos con un espacio de trabajo personalizado o el que ustedes quieran Yo acá dentro del espacio de trabajo personalizado definí una carpeta llamada it arauca Y definir un archivo llamado sintax arauca punto sol Entonces les voy a compartir Ah Bueno les voy a compartir esta página esta página Me parece muy interesante porque ahí podemos compartir código en línea y las personas que están interactuando pueden copiar información y se va viendo como quien fue el piso Qué cosa para que nos sirva como una mezcla de todo sino yo pego algo y se ve con un color otra persona pega algo y según otro color entonces podemos hacer
esta sesión un poco más interactiva Ahora les voy a compartir por ahí esta ruta que tenemos o la ruta que yo estoy usando Yuca hacer la carpeta y dentro de taraka voy a tener un archivo llamado sintax arauca.com esta Va a ser la carpeta para el proyecto de audio que vamos a mirar hoy y este va a ser nuestro archivo sintax arauca.com la sesión pasada empezamos a mirar un tema de cómo empezar a construir los proyectos Aquí les traje ya uno construido para no ponernos línea línea sino para comprender los conceptos
recuerdo que la vez pasada miramos un tema de público aquí alguno de los que siguieron la sesión pasada quiere complementar o quiere de pronto recordarnos que es el tema del público Qué significa esto o por ejemplo Qué significa esta primera línea de código que estoy viendo acá alguno del público por ahí Quisiera decir Uy yo me acuerdo Yo la semana pasada ahora no la sesión pasada vi eso qué es lo que significa eso Esa primera línea les voy a compartir este código acá para que todos lo tengan y necesito una variable estaba la Stream la son variables públicas y variables locales y que de acuerdo a la variable
de acuerdo a los bits de almacenamiento se definiría si era entero streaming juliano para poder almacenar dentro del código sólido la clase del taller anterior la segunda segunda parte listo entonces según lo la vez pasada si yo quiero traducir la línea 7 a algo por decirlo así un lenguaje natural que las personas entiendan porque yo aquí estoy leyendo Uy 256 public my number que significa eso en cristiano por decirlo así O sea
como en el público yo le digo a alguien eso significa que cosa Qué significa eso se acuerdan la palabra public indica que la función bueno esa variable va a ser pública y cualquier persona que tenga acceso al contrato va a poder tener acceso a la variable my number es el nombre de la variable y al decir Windows 56 estoy diciendo que voy a reservar un espacio de memoria que ocupe 256 bits es decir en Cristiano eso qué número significa Cómo hace una un número que ocupe 256 bits eso qué significa eso significa lo
siguiente yo voy a tener un número que va a ser dos elevado a la 256 y lo que me den el resto 1 es decir este espacio de memoria llamado my number va a poder guardar cualquier número que esté entre 0 y 1.15 por 10 a la 77 eso es lo que estoy diciendo en esta línea cualquier número que esté en ese Rango lo voy a poder almacenar en esta variable y va a poder ser pública cualquier persona la va a poder ver la siguiente línea address público halladeros estoy diciendo que voy a guardar una variable de tipo address ahora que es una variable Y cuádres recuerda una dirección esa como esa que tengo acá
va con uno copiar que tiene particular una variable de tipo address vamos a copiarlo acá tipo padres guardar la dirección del contrato puede ser una dirección de una persona que lo llama si quieren cómeme las direcciones de acá y ahorita les paso algo de un poco de cripto que acá tengo un poquito de prueba de la red de para que interactuemos con un contrato les parece yo explico uno acá y me comparten la dirección y yo les comparto
cripto de prueba para que empecemos a interactuar con contratos entonces hagamos acercamiento cómeme una variable de tipo address que va a ser suaders que va a ser su dirección la que tenemos acá cuando abren la billetera de meta más te va a aparecer aquí en copiar y la pegamos acá entonces me la pueden ir pegando acá abajo y En un momento le comparto toques para que interactuemos todos con este contrato te parece listo Entonces vamos a la siguiente parte ya sabemos que son que este tipo de variable Ya vimos que son las direcciones Ya vimos que son este tipo de variables de tipo String que es un String un texto ya hablamos también sobre el tipo booleano son bastantes
conocidas en todos los lenguajes de programación y ahora sigue este tipo de variable mapping qué creen que va a ser que hace este tipo de variable mapping algunas alguna idea Vamos a darle aquí unos 10 segundos alguien quiere opinar sobre mapping qué creen que es mapping si aquí vengo y defino esta variable y copio esta línea así mapping abro paréntesis padres una flecha Windows 56 qué creen que está haciendo o que 30 este tipo de variable o que creen que almacenan alguna idea colocar aquí
ese tipo de variables lo que para poderlo leer en cristiano Por decirlo así como ahorita es primero que esto me están diciendo que es una variable privada Qué quiere decir privada que la variable balance una vez que haga despliegue del contrato no lo voy a ver o sea las personas nos van a tener una función ahí como estoy leyendo el contrato y aquí se balance no no lo van a encontrar por qué Porque es privado es decir solamente se puede acceder a esta variable haciendo uso de los métodos o funciones que tiene el contrato pero no va a ser público para un lector segundo me está diciendo que ya sé que es privada Ya sé cómo se llama y lo otro que me está diciendo esta línea es qué
voy a hacer un mapa Qué es un mapping aquí algunos lo conocerán según el lenguaje que hayan escuchado trabajado se usaron por ejemplo python lo reconocerán como un diccionario y los que han usado otro lenguaje como javascript dirán No eso es un Jason o un objeto esto es un pero recuerden lo que trabajo en lenguaje de programación que los más finos los objetos o los vienen dos cosas algo llamado un kit y algo llamado un válido cierto la llave que es el nombre es como accedo al atributo dentro del objeto dentro de El mapping dentro de la como quieran Llamar el diccionario y el
valor que tiene es como si yo tomara mi documento identidad Yo vengo acá vamos a buscar aquí un ejemplo cédulas cédula colombiana sacamos el cine de una célula colombiana tiene por ejemplo hagamos esta primera que apareció el King sería apellidos y el paño sería o alteros el ki sería nombres y el baño sería Laura el ki sería la nacionalidad y el palio sería col Entonces esto es un Jason pero pintado de manera bonita por decirlo así entonces si quiero tener aquí un kit pintado de manera fea o normal o como lo entiende un computador
un computador lo va a entender una llave que va a ser por ejemplo nacionalidad y un valor que va a ser el computador me va a leer esto a nivel humano nosotros Generalmente lo pintamos de esta manera para que se vea entendible para que sea como Uy tiene una secuencia tiene una lógica pero los computadores Generalmente entienden ese nombre pero yo quiero copiar un texto todos los lenguajes de programación la mayoría sabemos que usamos las comillas cierto y aquí coles lo mismo tengo que usar comillas entonces tengo una aquí y un válido Entonces al decir que voy a usar un mapping estoy diciéndole Qué
tipo de objeto voy a tener pero en particular solita y me dice los objetos que yo quería crear color mapping que yo quiera crear tienen que seguir una estructura de aquí y la estructura de válido en este caso address quiere decir que todas las key tienen que ser address por ejemplo esta Va a ser una aquí y esta Va a ser otra aquí y me está diciendo que valium va a ser un entero de 256 bits por lo tanto esto no puede ser una válvula el contrato si yo trato de guardar esta información dentro del contrato él me va a decir usted que está haciendo ahí Eso no se puede el tipo de variable balance no permite que el valor sea un estricto Por qué Porque el valor
es un entero de 156 bits entonces tengo que concordar con la aquí que va a ser de tipo address y con el valle por lo tanto y aquí en el baño puedo colocar 12.000 y él lo reconocería estaría bien puedo colocar cualquier otro número por ejemplo 15 que va a decir que está bien pero si este 15 le agrego un texto por ejemplo una r y lo pongo en String le voy a decir eso no me funciona eso no está bien en una entrada o si ven aquí copió por ejemplo el truco tampoco me va a funcionar estrictamente el tipo variable que me está diciendo un entero de 56 por lo tanto esta línea que definimos acá
mapping address y 256 Driver balance lo que está diciendo es voy a tener un mapping un objeto llamado balances el cual va a ser privado es decir solamente lo podemos acceder mediante las funciones del contrato y adicional a eso va a ser un objeto y el objeto tiene que comportarse con esta estructura el que iba a ser una área y el barrio va a ser un número ahora se preguntarán eso para qué sirve o qué utilidad tiene definir una address con un número imaginemos lo siguiente si yo tengo una cuenta bancaria cierto yo tengo una cuenta bancaria entonces tengo que preguntar yo
Alejandro cuánto cripto tengo esa cuenta bancaria Cuántos pesos colombianos tengo entonces Tienes que buscarme como información dentro de la base de datos pero no van a colocar Alejandro Por qué Porque Alejandra Hay un montón de personas que se llaman Alejandra Qué información van a colocar el número de cédula de ciudadanía y cuál es la cédula ciudadanía o ese valor único dentro del bloque la dirección estader que tenemos acá es padre me identifica como un usuario único dentro de toda la blockchain de por lo tanto si yo vengo y tengo un objeto que me relacione una address es como si estuviera diciendo yo Alejandro en ese libro de contabilidad de la
blockchain tengo 12.000 de alguna de algún toque de alguna criptomoneda de alguna Entonces cuando yo quiera retirar yo voy a poder consultar dentro de la blockchain que mi dirección es decir Alejandro tiene asociado 12.000 tokens y a poder mover 12.000 token y va a poder tener a disposición 12.000 y si alguna otra persona quiere consultar y no está en la lista qué le va a decir cuánto tiene No tiene nada no tiene toques entonces una manera de poder decir cómo relacionar un usuario con un balance en brocha ya lo puedo decir un usuario con un mensaje un usuario con una información de un permiso en ese caso si fueron permisos ya cambiaría aquí de un Bull Bull Por qué Porque necesito decir
que mi dirección tiene permiso o no tiene permiso sí o no puedo acceder sí puede ser no entonces ya guardamos un atributo para hacer ese tipo de referencias Entonces ya con eso sabemos Te puedo guardar aquí una variable de tipo numérica una variable tipo dirección como mi dirección de ladres un área eléctrico Stream una área de tipo booleano una variable que me relacione una dirección con un número entero y esto que está acá que no lo hemos visto es una variable de tipo arreglo esa otra particular también particularidad también de sólido solita y nos dice real usted quiere guardar información sino que cuando guardamos
información Generalmente de pronto en algún objeto como en javascript o en python que podemos colocarle de la manera que nosotros queramos porque es muy alto nivel muy al lenguaje al usuario nosotros podríamos decir lo siguiente no yo aquí vengo y tengo name y le pongo 12 y por acá vengo y tengo las name y le pongo bueno acá que pongo Alejandro Hola muy buenas tardes por acá vengo y pongo y pongo 12 y aquí por acá pongo otra cosa completamente diferente Como por ejemplo no sé símbolo Cordero acá Ven por ejemplo o cualquier cosa Entonces qué estaría
haciendo acá estaría colocando un montón de información con un espacio y memorias entonces si yo hago esto en algún lenguaje de programación yo la llamo control sobre el espacio de memoria que me parece por qué porque acá tengo información que va a ser String que según la longitud del ocupar un espacio memoria determinado según el número que tengo acá tengo que definir el espacio y memoria del número para saber cuánto espacio memoria me va a ocupar 256 bits 128 bits 64 bits 32 un tipo booleano entonces este mapping personalizado va a ocupar un espacio de memoria muy diferente y va a ser mucho más difícil de controlar pero Nosotros sabemos que
dentro de la blockchain entre más espacio entreme un espacio ocupemos y más control tengamos sobre el código va a ser mucho más económico porque se va a procesarmente información y cuando estemos trabajando en diferentes tipos de bloques en este caso en solita Tenemos que tener muy en claro que entre menos memoria y menos recursos consumamos es mucho mejor por lo tanto Este lenguaje de programación se enfoca en que esto sea lo más homogéneo posible lo más homogéneo es que si aquí puse Stream Aquí también voy a colocar Aquí voy a colocarlo siempre va a ser String si aquí coloque número siempre va a ser número es por eso que acá que me está diciendo que voy a cambiar un valor de
String me dice que va a consumir un gas infinito Por qué Porque no sabe exactamente cuánto van a consumir porque estoy metiendo variables de tipo String y el estribo un espacio de memoria de cero al infinito porque lo puedo mandar un párrafo le puedo mandar aquí la Biblia la constitución política obviamente no me los va a leer porque se va a tostar porque es Demasiada información pero el punto es que yo puedo mandar desde una letra para mandar un párrafo muy grande en el cual me consuma una gran cantidad de procesamiento de memoria por estar leyendo toda la información y todo el archivo para tratar de guardarlo en bloque por lo tanto él no sabe exactamente Cuánto gas va a requerir esa transacción pero aquí cuando Solamente voy a guardar y emitir un número Yo sé exactamente
cuánto procesamiento me va a consumir Por qué Porque es exactamente Cuánto es el espacio de memoria que me va a ocupar Entonces cómo sé A cuánto espacio memoria me va a ocupar hacer algo ese espanto gas cuánto procesamiento Me va a costar hacer esta transacción por lo tanto tengamos siempre presente que solita siempre pensar en optimizar espacios optimizar recursos tratemos de que todos seamos en esa orden de ideas sabiendo que él quiere que todo sea homogéneo cuya casa se metió esto vamos a subirlo está por acá tratemos Bueno vamos a entender eso Gracias a esa línea me está diciendo Yo
quiero crear un arreglo Bueno un arreglo es una lista o quieran Llamar una lista o arreglo o vector según el lenguaje en el que se desee acá tienen una pregunta [Música] adelante aquí estamos bueno programando todo lo que es el contrato Si fuéramos de pronto a consumir un servicio con Escuchar sí se escucha Aló Me escuchas sí lo escucho escucha bien bueno sí bueno aquí tema de
contrato bueno el tema del contrato Bueno si fueran a consumir un servicio o sea vamos a consumir otros servicios a través de una Api obviamente en temas de blockchain dentro de la red pues no no se tiene como un backen como tal No porque todo se hace se hace el de Floyd y todo circula dentro de la infraestructura que está distribuida por eso hace que la que la web tres pues sea como algo más descentralizado si se fuera a trabajar un backen Por ejemplo si fuera a integrar varios servicios a través de una IP y una Api Qué lenguaje de programación se trabajaría estamos
hablando si es un reactor donde pensemos el contrato nos expresemos un contrato donde se coloca un staking qué infraestructura Qué tecnologías son las más usadas actualmente pero que requieren o sea requiero consumir que el contrato consume una IP hay o que leip hay construya el contrato cualquiera de las dos vamos podemos consumir otro servicio vamos con a través del contrato o consumir también una una
que en el tema de de programación como el tema del fraden Qué lenguaje de programación son los más utilizados con el tema de la web tres PlayStation lenguaje de programación para drones tenemos lo que más he escuchado en el medio sonría y angular la s en otras cosas que también ayudan dentro de Real otras variantes de riesgo como son excelentes que también es muy utilizado entonces uno con riesgo con ella y es puede construir un froning y conectar con un Smart Contract qué tiene que hacer adicional a tener este tipo de
aplicaciones construidas de este tipo de páginas web agregarle algo que le va a permitir leer la billetera poder conectarme con mi wallet el librerías como lo son permiten esa interacción y otra también como Rain tengo que me permiten agregarle a mis rones este botoncito que vemos acá que si le doy clic y le digo que me Quiero conectar con meta más me va a habilitar la billetera y aquí Me conecto y me tomo mi dominio ni en eso Entonces yo quiero consumirlas de criptomonedas incluso algunos
intercambios de ejemplo pero no la hemos trabajado directamente con un toque no propio esto no podemos cuadrar una próxima sesión en la que hablemos específicamente de eso de una conexión con un apartado electrónico podemos hablar un poco sobre el Rain para crear un fronting que conecte la billetera y luego usar librerías como lo son que me permiten leer información de un contrato Entonces cuando le plieguen lo que tengo que hacer es conectarle la dirección de mi contrato y algo llamado una app se consigue cuando yo Cumplí mi contrato cuando cumplílo mi código cinta arauca punto sol pregunta que lo quiero compilar y acá me parece algo llamado
clic y ya me copia de enviar se lo voy a compartir por acá esto es mi idea y creo que un poco feo a ver si de pronto aquí porque es un objeto una lista de objetos que van a tener la información de lo que quiero hacer por ejemplo Acá tengo un input que es el tipo de constructor va a ser el constructor de todo el contrato que va a ser de tipo por qué porque no va a recibir fondos entonces aquí tiene
esto es algo llamado Bueno una idea y una interfaz una interfaz binaria para la aplicación como el nombre lo dice es una interfaz por lo tanto va a tener definido los métodos o funciones de la aplicación junto con todos los parámetros de entrada solo Entonces esto lo va a pedir warmi para poder saber exactamente qué tipo de parámetro va a tener el contrato Qué tipo de funciones para que terminemos acá como explicar la primera parte vamos a empezar a hablar de las funciones y vamos a empezar A correrlas haciendo uso de ese explorador que nos permite remix y en una próxima de lo que podemos hacer es tomar este contrato o alguno que usted se hayan construido y conectarlo con un Front Para yo poder decir desde el apartado voy a hacer una donación para un proyecto por ejemplo
firmar la transacción y hago el envío del ítem a una billetera son cosas que podemos hacer eso cómo se hace haciendo uso de por empresas para leer también es llamada write contra que es para escribir el contrato el país vamos a ver Esta no es menos que son como interfaces Necesito una que sea la función No no quiero aparecer Aquí está dentro
de la documentación en samples control con aparecer alguna documentación Entonces vamos a la primera entonces que firewald yo esto le puedo pasar argumentos argumentos porque la función puede recibir argumentos como el texto o también le puedo pasar una información acá abajo donde está escribiendo ya momento Les comparto aquí le puedo
pasar también valor valores por si quiero mandarle fondos a la al contrato o a la función que son funciones de tipo callao pero para poder entender todas estas cosas que nos está pidiendo acá Warning vamos entonces aquí a avanzar un poco con esto para mirar todas las posibles variantes que tenemos con el contrato Y ya en una próxima hacemos la integración con el te parece súper de uno listo entonces continuamos acá entonces aquí les avisaba que tenemos una variable de tipo arreglo
pero que como todo solito Trata de ser muy homogéneo entonces va a ser un arreglo única y exclusivamente de qué de números de números que tienen un espacio de memoria de 256 bits es decir que va de 0 a 1.15 Porque esa era 77 Ya sé qué tipo de información puedo guardar aquí desde que tiene información para guardar aquí y acá una cosa muy bacana que parece un serio muy bacana es el tema de eventos un evento lo que me permite es poder informarle a algo que algo está ocurriendo acá se definió por ejemplo number sets es decir que estoy seteando un número si yo tuviera un apartado de Front conectado con ese evento y yo aquí
le pongo llamo el evento en esta línea en la línea 23 cada vez que este que esa función se llame y se actualice el valor del número el fronten va a estar como como ciudad hibernando como si fueran estuviera así como como está hibernando y Bernardo y le dicen como que ella llegó algo llegó algo entonces el flor se pone pilas y revisa y tú puedes decirle cada vez que emitan el evento nomber set vas a preguntarle al contrato Cuál es el valor del número por qué porque yo sé que se dio el número y yo sé que hay una variable pública que cambió su estado cambió su valor por lo tanto el evento es una manera de poder decirle a un apartado de Front que ocurrió un cambio
en el Back y que vaya a preguntar qué pasó Por qué Porque Generalmente uno está acostumbrado a que el cliente o el computador o el apartado del frontnite simplemente va a consultar servicios pero es un servicio que consultan están ligados a un usuario Yo quiero saber cuánto vale algo Yo quiero saber el precio de esto Yo quiero saber en qué lugar está eso yo quiero saber x Yo quiero saber Y entonces quién es el que hace la consulta al cliente al servidor el cliente el cliente debe ir al servidor a preguntar qué está pasando y si algo ocurrió se actualizó algo y lo que permite un evento es decirle a eso que está por allá a ese servidor que le diga al cliente que algo ocurrió y el
cliente de manera automática cuando reciba ese evento pudiera preguntarle al servidor por lo tanto yo puedo tener en mi computadora aquí y mi computadora aparece ahí como Uy tengo un apartado por una página de donaciones en el que quiero que cuando diga el millón de dólares me llega una alerta me avise me notifique pero si lo tengo un evento tendría que estar todo el tiempo y recargando la página Con qué voy a recargar o por ejemplo el tema de correo electrónico hice como recargando recargando que tiene el cliente renderice todo el tiempo buscando información lo que esto permite es no tener que hacer eso no tener que estar recargando Ni volviendo a preguntar como ese meme
de burro como que ya llegamos Ya llegamos Ya llegamos Ya llegamos no aburro se le va a avisar cuando se llegue cuando llegue le avisamos no tiene que estar preguntando Entonces es una funcionaría muy bacana que tiene los eventos porque te vas a ahorrar estar haciendo consultas y preguntando Ella llegó la información No no ha llegado y ya llegó la información no me ha llegado Ya llegó la información No simplemente cuando la información llegue me avisan y pregunto porque ya va a estar Entonces es una manera en la que hemos trabajado con los eventos entonces para que lo tengan presente porque son muy importantes y pueden dar un Plus muy interesante en una página en una guía descentralizada ahora el tema de constructor el constructor lo que hace la sesión pasada no lo vimos pero lo que
nos permite es poder inicializar ciertas variables inicializarlas desde el punto de vista del usuario Yo quiero inicializar algo una vez que tengo mi contrato ya lo compilé ya me dijo que estaba bien Ahora lo quiero desplegar pero yo no quiero que la información quede estática por qué yo Porque yo sé contrato lo va a desplegar aquí y lo tengo que entregar varias veces y como comentó ahorita el profesor que estaba por allá en el estaba por allá cierto el profesor reportó el nombre en esto esto nos comentaba Qué pasa si yo quiero conectar un web dos un dos con un contrato o un contrato con un huertos yo Quiero conectar mi contrato con dos algo llamado oráculos por ahora la empresa
más grande del mundo se llama para hacer el tema de oráculos que es poder acceder desde mi contrato inteligente a un servicio webdock Como una Api bancaria una pie el precio de x y el precio de y el precio del dólar el precio del líder cualquier cosa como el Smart Counter no tienes información porque eso está en una en internet no está en la blockchain la blockchain es como si tuviera como un mundito por acá aparte me gusta hacer mucho esa parte [Música] imaginemos que internet esto es internet que lo que hemos estado alimentando donde tenemos le tenemos a Google
no por aquí a Facebook tenemos todos los que conocemos normalmente tenemos museo Pero qué pasa acá Acá está y por acá están otros tipos de bloques incluso aquí afuera está overly que a pesar de ser una que tenga la misma arquitectura de igual manera que tiene al ser una capa de prueba no compartes información por lo tanto Qué pasa los ojos de werly solamente estará aquí si le digo busque mi información dónde va a buscar él solamente dentro de sí
mismo sí le digo que titirium Búsqueme información solamente dentro de sí misma por lo tanto gobernley no sabe cuánto es mi balance de inter dentro del título y De igual forma y no sabe cuál fue el último correo que me llegó y tyrion tampoco tiene manera de saber cuántos amigos tengo en Facebook y tampoco tiene manera de conectarse con algo que escriba por lo tanto si yo quiero tener información de internet que internet actualmente es conocido como el mundo real que me toca hacer toca que alguien una empresa una entidad se encargue de pasar información del mundo real y alimentar a
la blogsen a la blockchain que yo quiero usar en este caso tengo que alimentarla con esa información del mundo real actualmente Cuál es la empresa más grande que hace eso es la empresa que se encarga de alimentar la blockchain con el mundo real tanto como que dato financiero datos de un montón de temas un montón de de páginas Incluso le puedo pedir información de apis que consuma entonces si yo quiero tener información del mundo real e internet en blockchain alguien tiene que alimentar esa blockchain Por qué Porque son como burbujas aisladas esta burbuja está por acá solita por acá solita entonces están por allá separadas y no
tienen forma de conectarse tiene que haber algún cable que integre la información de un lado al otro en este caso y ahora volviendo a ese apartado si yo quiero tener una automáticamente Smart contracts tengo que hacer lo mismo tengo que alimentar con ese pie información dentro del bloque por lo tanto si yo tengo dentro de mi Api información para crear un contrato y esa información tiene mismas variables tiene la misma interfase pero qué pasa al momento de desplegar va a cambiar por ejemplo el propietario va a cambiar el tipo de vehículo el tipo de
casa lo que sea que esté construyendo el bloque esa información inicial va a ser dinámica y como esa información inicial va a ser dinámica Pero se tiene que setear al momento de su creación al momento en el que yo creo un nuevo contrato tengo que asignarle un valor de mayores Yo casi no era un valor de mys un valor de tengo que asignar la información justo cuando se crea pero no la puedo quemar aquí no puedo decir una vez por qué Porque depende de cada caso depende de información que vas a estar en un servicio o en dos por ejemplo te pedí información que está aquí y que existe acá y que la blockchain no conoce debo definir algo llamado un constructor
Por qué Porque al momento de desplegar miren que acá lo va a decirle pero si leondo diploy mire que aparece acá un montón de información una inicial number inicial Stream iniciar Google necesito definirle unos valores iniciales antes de siquiera alimentar la blockcha tengo que crear todos los parámetros que esa block sino que ese contrato requiere Entonces si funciona un consultor le defino por ejemplo un número inicial voy a definirle 20 inicial Hola comunidad de arauca y un gobierno inicial voy a definir aquí ya desplegué el contrato entonces
en contratos desplegados Acabo de crear my contacts y si me creo un contrato con toda la información o con todas las funciones del contrato Pero antes de siquiera tratar de crearlo tengo que pasar información porque esa información la requiere el contrato para poder crearse o para poder nacer para poder crear algo aquí y alimentar a ethereum tengo que setearlo y construirlo tengo que construirlo entonces tengo que hacer uso de constructor en el que construye la información mínima para poder alimentar a la blockcha y ahora ya la septiembre entonces aquí va a tener más funciones set number creo que va a hacer es actualizarme mi
variable de estado y va a emitir un evento también voy a tener más para obtener información y recuerdan que por acá arriba definir esta variable como privado aquí la define como privada para que las personas cuando llamen la función pueden hacer uso una función pública que va a ser una función de lectura y que va a retornar un entero de 256 bits por lo tanto que balance lo que va a hacer es una función que va a validar Cuánto es el balance del usuario que está consultando si consulto yo me da un valor si consulta la persona x y a otro valor si consulte la persona y le da otro valor diferente Y qué balance o en qué momento alimentó
esta variable acá tengo una variable una función llamada agregar al balance que va a ser una función pública y va a ser una función de tipo falla ese concepto de una varia una función que va a recibir fondos una función que va a recibir dinero por lo tanto se va a ver así en rojo hay tres colores azul Leo información es completamente gratis anaranjado escribo información es decir actualizo variables de estado estas son variables de estado variables que va a tener el contrato entonces con las naranjadas las actualizo y la roja que implica en voy a mandar dinero voy a mandar cripto voy a mandar cripto activo sobre Smart Entonces esta función lo que va a hacer
es recibo los criptoctivos que están llegando y le voy a agregar los balances al usuario en otros lenguajes de programación lo conoce es tengo el objeto y entre corchetes meto la aquí el objeto cierto por ejemplo tengo un objeto que lo voy a llamar y user de tipo G usa el equipo objeto luego le digo vea hay user colocele el nombre y se lo asigna como Alejandro te pongo el nombre de la variable y
entre corchetes coloco el nombre del atributo Y eso cómo se va a comportarse luego se va a comportar que si yo le digo muéstreme hágame un print user él me va a retornar es [Música] colocarlo entre comillas y aquí lo va a arrojar esto es decir que lo que yo pongo aquí va a ser los cretácimos como aquí y lo que ponga después del igual va a ser lo
mismo como válido entonces aquí pongo la aquí aquí pongo la value y hayamos dicho que la aquí tiene que ser de tipo address Y cómo accedo a la dirección de las personas que está llamando el contrato con el atributo con la variable message punto sender mesas para tener información referida a la transacción sender es la persona o la address que está llamando el contrato y value es la cantidad de crédito que está mandando la transacción por lo tanto si yo le digo el balance va a ser igual a meses punto sender bueno perdón el balance en la posición mesas punto Center va a sumarle la cantidad de balance que acabo de mandar la cantidad de fondos que mandó
estoy diciendo que el usuario con la address Esta es decir address que llamó el contrato como lo estoy llamando va a ser estadios va a tener este balance aquí en este caso estoy haciendo uso de una máquina virtual que me proporciona varias direcciones entonces voy a trabajar con la primera cero cinco B tres y voy a agregarle balance le voy a mandar al contrato 30 unidad mínima con la que funcionan los contratos es el güey Por lo tanto si yo mando por ejemplo un que voy a mandar un gigaway kilo mega giga sería por 10 a la 9 cierto entonces estoy aquí le digo que
voy a llamar la función agregar balance lo que estoy haciendo es va a dentro de la variable de balance get balance Cuánto es mi balance mesa celda Cuánto es el balance de la dirección 0x5 cero porque no ha aportado absolutamente nada pero si yo le voy a mandar un gigaway a la función agregar balance él va a tomar esta posición de memoria es decir la porción de memoria donde aparece mi dirección 0x5 y le va a sumar lo quiero mandar le voy a mandar cuánto un gigaway kilo mega giga es decir por 10 a las 9 uno con nueve ceros
entonces voy a agregar el balance aquí se agrego el balance ya el contrato tiene fondos esto que aparece como balance son el balance del contrato y si los doget balance va a aparecer que yo el usuario 0x5 B3 que termina en c4 tiene Dentro de este contrato uno por diez al nueve welles de balance si yo cambio de dirección a esta otra dirección que está acá cuando haga la consulta de balance yo cuánto va a tener nada porque esta dirección no ha aportado nada al contrato te aparece cero Ah pero esa persona quiere donar Pero va a donar ya no tan gigabyte 1 2 3 10 Llamar la función agregar
balance ahí la llamó entonces vean que el contrato ya tiene hasta aquí un gigaway y luego Le agregué Esto entonces mira que tengo como como cuando tengo un millón mil un millón y mil O tengo mil uno uno cero cero uno Entonces miren como empieza como a cambiar la distribución Esta es la cantidad de fondos que tiene el contrato y cuando leondó get balance que aparece usted usuario 0 x Isabel tiene ahora ya Podemos agregar fondos a un contrato inteligente y yo también puedo saber por ejemplo aquí mi rey a la rey Entonces la variable en el reino de Sam el rey la
tengo aquí miren que mi rey no lo inició por lo tanto si yo le digo que quiero saber la información de mi rey qué creen que va a pasar Qué pasó ahí lo que están por ahí en línea Qué pasó por ahí qué cree que ocurrió de pronto la gente ya Néstor Qué dice que dice la gente del sena que creen que pasa cuando León no volver a repetir por compartir la pantalla listo tengo la variable de tipo mía Rey cierto que es una variable un arreglo o una lista de números
porque como es pública yo puedo acceder a ella en cualquier momento y lo que me dicen es páseme la posición del arreglo yo le digo la posición cero y la llamo qué pasó Por qué no me mostró nada porque cuando le digo Deme la información de la policía puede iniciar desde la posición uno el arreglo vamos a ver la posición uno tampoco Mostrar nada qué pasó pensemos como el computador pensemos con la máquina virtual de tyrion que empiezo
a correr el código Qué dice definir variables aquí que dice definir cierto y le dije que iba a ser así un arreglo vacío yo le dije que aquí sí o sí va a tener esperas del derecho 56 bits pero le dije que va a contener pero nunca la nada por lo tanto si yo quiero que me diga ah no no Exacto ese es el problema no hay nada Cómo hacer que el acero ni nada Por qué Porque yo lo tengo por acá
agregar a mi arreglo ningún valor exacto no han hecho no le he agregado información vean que se parece a javascript creo que sí le punto aquí no tengo ningún aquí no existe el undefining y el nulo ni nada de eso por defecto lo inicializa como cero lo inicializa como cero x cero cero o no lo inició ni siquiera error en este caso cuando cuando se hace el puig Y no y no se ha cargado la radio no será asignado que retorna cero acá miren que no tengo nada no me retorno nada me está diciendo que se revirtió la transacción ha sido revertida el estado inicial nota al llamar la función Debería ser falla con
sus envías valor acá se está componiendo bueno Y eso en términos de gas o algo así se está trabajando y qué sería No aquí no tiene ningún consumo porque queda apenas leyendo Hey Entonces falta falta asignar la función add Exacto falta y ahí baja esta instanciado por la variable y después hace el puig de la variable que está instancia hay 256 y listo Exacto aquí en agregar a mi arreglo copiar un número qué número no sé 20 lo agregó ya lo agregué ahora si yo
quiero calcular el valor de la posición cero como ya existe algo me va a decir 20 en la posición 1 ahora sí me va a decir cómo así eso no existe ya que se revistió no existe esa información era la posición cero si lo encuentro hay similar retorno voy a agregarle otro voy a agregarle 50 yo agregó entonces la posición cero tengo el 20 en la posición uno tengo el 50 y en la posición 2 me va a tirar error porque la red no tiene dos
porciones tiene apenas cero y uno Entonces cómo agrego información un arreglo simplemente llamo el nombre del arreglo que se llama como mayor raíz punto así agrego atributos a una Cómo agrego información un mapi simplemente entre comillas bueno entre corchetes agrego el kit el kit tiene que ser del tipo que le Define lo define como tipo cuadros Bueno entonces qué tiene que ser de tipo address y el barrio va a ser de tipo entero entonces la defino como tipo entero ahora a esto vamos a agregar una función para poder obtener el balance de las direcciones
voy a amarla get balance donde tiene que recibir como parámetro de entrada una variable de tipo aves voy a llamar padres al sillón bajo Ares él me está diciendo vea el peligro no está usando el parámetro remuévalo o coméntelo bueno por qué porque estoy diciendole que voy a recibir información Pero en ningún momento sepa que va a consumir espacio y memoria si no lo va a usar Pero porque nombrado tenían de escribir muy rápido que si le he calmado ya casi la voy a usar
es casi esta función esta función le introduzco la dirección y me va a decir cuántos fondos ha aportado esa dirección de tipo address que va a ser address y a buscar dentro de mí de address contra balances contra enteros cuánto fondo ha aportado esa dirección por qué porque hay una función llamada agregar balance entonces si yo le agrego fondos a una al contrato yo con esta función que es balance Cuántos fondos agregué yo Por qué Porque si el mes ascender y con Bed balanced vallares voy a saber cuántos fondos agregó cada dirección para que voy a hacer esto porque voy a desplegar esto
en QR voy a cambiar mi red y los que están acá y quieran interactuar vamos a empezar a interactuar con un contrato Así que porfa todos vayan dejando la dirección acá en esta página que les pedimos por ahora apenas veo una entonces vayan dejándola para darle en casa Y que ahora que interactemos con ese contrato aquí a cambiar Ya estoy en coverly Entonces le digo que me Quiero conectar con mi billetera de meta más inyecte bueno inyectar quiere decir me voy a conectar con un proveedor en este caso acá me dice estoy conectado con la red
de Berlín que la cadena del cinco luego vamos a entender que eso de allí la cadena que la cadena sería ese numerito que representa cada bloque 5 eco verde por ejemplo público ni es como 100 algo así como uno cero uno Esta es la temática en la red de prueba de polígono y cada una red tiene un número en este caso cinco es el id que representa Mi dirección 01820 Esa es mi dirección
Voy a desplegar el contrato voy a decirle también 20 o la comunidad de arauca y voy a pasarle el truco miren que no tengo ningún contacto billetera pague hágale Pues voy a pagar por la transacción está despegando el contrato está creando creando un poco lenta y más porque la red pero el término hay quedó listo miren que acá encontramos [Música] y ahora voy a hacer la primera donación al contrato voy a donar gigaway un gigaway
la dirección de la billetera y aquí voy a confirmar la transacción la confirmo y ahí quedó el balance Esto es lo que yo doné Entonces a qué dirección el espacio Uy Ivana Qué pasó algo
esto lo guardé pero no lo compilé entonces contrato que desplegué no tiene la función que no la tiene entonces voy a compilarlo otra vez y aquí me compiló y ahora sí lo voy a desplegar así que me equivoqué con este lo voy a borrar y lo voy a volver a desplegar tengo early esa dirección número 20 iniciar String vamos a colocarle Hola comunidad arauca te es muy alto despliego confirmar y listo voy a
pasarla aquí 0.1 las áreas que están acá para que interactuemos con el contrato para ver cuánto balance le manda y aquí voy a darle enviar pongo esta dirección 0.1 y lo va a confirmar tiene 0.1 para que interactuemos esa dirección es de alguno de los que saca conectado sí no O sea bueno La idea es que interactemos entonces con esto aquí apareció tener el balance por
address y le voy a mandar otra vez un gigabyte cuanto voy a mandar Y le doy agregar balance y confirmar ahí se fue listo ahora cómo hacemos uso de este contrato van a conectarse en la dirección de metamask van a abrir meta más se van a parar en la red de Google o hacer en la red de wearle van a darle acá y ya Provider meta más va a aparecer aquí y aquí no aparece
van a copiar la dirección del contrato listo aquí se me borró el contrato como la letra de conectar acá se me borró vamos a ver si aquí de pronto me queda un explorador de bloques mi contra get balance vamos a ver posiblemente me quedo acá en el explorador de 820 my Contract vamos a ver aquí la transacción Hash vamos a ver les voy a enseñar Cómo rastrear el contrato que acá desplegar que se me borró y lo voy a importar Cuál es la dirección no tengo ni idea solamente ese Solamente tengo la el Hash la transacción como no tengo ni idea y
se me acabó de perder le voy a enseñar algo me copio el Hash de la transacción y escribo en Google espacio y tiene que aparecerme esta página poderle punto y terescan aquí está toda la información de todas las transacciones que se han hecho sobre la red aquí me dice vea voy a buscar por dirección borjarse la transacción por bloque o por toque en este caso yo tengo el Hash de la transacción Entonces lo pego aquí me va a decir vea este elefante la transacción lo aviso esta dirección que es mi dirección y se hizo a esto se creó esto qué es esto Ah bueno Esto es un contrato
que se creó contracto esto es un Smart Contract Entonces esto que tengo aquí es la dirección del contrato que se me perdió leondo copiar Y ahora cómo me importo ese contrato sin tener que volverlo a despegar como ya lo desplegué ya está en blockchain lo que le digo eso le doy clic acá lo pego y le digo al padre y ya recuperé mi contrato eso es lo que ustedes van a hacer porque se van a conectar con su dirección le van a dar en Provider y aquí van a pegar la dirección del contrato [Música] esto lo voy a mandar bueno la idea que lo tengamos por aquí para que tengan luego este material lo voy a pegar acá padres con voy a volver a enviar esta
dirección ahí lo entiendo vamos a pegar estas acá para tenerlas como toda la mano mirar que no se repitan y están Espero que les voy a mandar Uy aquí esa dirección no sé cuál sea miren que este no hay una dirección de un address Perdón creen que tiene una longitud mucho mayor por ejemplo rectifíquele me lo ibas a mandar otra vez mientras le vamos a mandar fondos a esta dirección
a esta que terminan de once control C Romos meta más cero punto eso es enviando Migue por favor me pasas nuevamente la dirección listo Ese fue entonces porfa quiero que todos interactúen para por ahora Solamente he interactuado vean que el balance no ha subido ese buen balance que yo agregué si no tienes mi balance que aparece esto
Entonces cómo me doy cuenta que están haciendo la tarea porque acá me aparece acá me parece que más nadie ha hecho la tarea entonces porfa vayan agregando ahí la información listo te quedó perfecto nada más que agregaré vamos a hablar de cero punto uno listo está enviando vamos a hacer empieza otro Jordi
0.1 es confirmar Ah no no no no no eso es la muy bien Jesús Jesús listo Entonces vamos a ver qué más ha hecho la tarea bueno gana tarea ahí les pasé la dirección del contrato Acá está en la página vea address contra para que se importen el contrato y le dan acá le recuerdo aquí en la parte de válido güey gigaway Infinity ya le
acompañan lo que quieran pueden colocar por ejemplo wave y colocan uno y colocan varios ceros como quieran hacer le dan enviar hay que agregar a balance entonces vayan agregando lo voy a tomar un poquito de agua estoy pendiente los veo los veo hagan trampa en un momento ya hacemos la tarea de acá cómo yo hice una tarea Necesito que no haya hecho la tarea pero eso fue mi caso que no sabía la
dirección del contrato pero yo ya la sé como ya lo sé yo se la mandé la mandé y se las dejé acá en esta página en la que les compartiré igual Les comparto por acá con esto le importanen y perezca lo que importan acá en Aires y ya pueden importar el contrato ya luego Solamente le colocan cuánto le quieren mandar y le dan agregar a balance y cuando lo hagan esto iba a cambiar el número y me voy a dar cuenta que lo hicieron por ahora nadie lo ha hecho entonces hagan la tarea hagan la tarea o algunos tan real alguna parte de la
tarea sin tener dinero que hay que hacer con la tarea o alguno No entendió no vuelvo a explicar listo los que estamos acá en la en la sala de sistemas ya están haciendo varias preguntas listo de uno primero que todo Acá tengo la dirección la selecciono y le hundo control ya la tengo en memoria voy a borrar esto yo vengo y abro la página paso uno abrir
remix paso 2 dentro de remix o de la cargar dentro de remix vengo y y abro mi billetera meta y me conecto a la red si no le aparece la red de Google y aquí la opción que dice Mostrar ocultar red de prueba le damos clic y nos va a decir vea Mostrar red de prueba aparecer inicialmente apagado le damos en encender y cuando lo encendamos nos va a aparecer ya coerly y se pone nos paramos en la red que tiene que aparecerle 0.1 yo creo que le mandé 0.1
una vez que ya tengan una billetera en la red de Google se van a ir acá a la parte de desplegar de aparecer el iconito y le van a adaptarla acá en el ambiente en el ambiente le van a decir Provider meta más si no se han conectado nunca que les va a aparecer una ventana meta más y le va a decir del permiso Acepto que se conecte bla bla bla bla bla bla bla bla y aquí aparecerley 5 Network y aquí va a aparecer su dirección una vez que ya tenga conectado aquí que me diga Gogh y tenga mi billetera y tenga abierto remix voy a darle acá donde aparece address Contract y me voy a copiar la dirección del
contrato para que termina en 6663 acá en el apartado de transacción en la parte que aparece el contrato no compilados pegar Ah bueno yo decirles algo hay que compilar el contrato y como es el cumpleaños de un contrato y también se los pasé por acá vengarse los papás autorizados Qué espera con ustedes que no haya pasado los contratos actualizado control c Necesito que abran esta página y lo voy a pasar aquí abajo va a colocar aquí con
eso que saca en contra qué es lo que van a pegar van a abrirse la carpeta con el indicador a su espacio de trabajo que era un archivo por ejemplo en este caso sin arauca punto sol y van a pegar el código cuando pegan el código le van a dar en compilar una vez que está compilado se viene acá Y ahora sí que te va a aparecer para poder importar el contrato de arauca allá en el cargo y aquí van a ver el contrato
él apareció el fondo en la red de Google eso pero acá aparece mi fondo lo que aporte Entonces qué tenemos que hacer o qué tienen que hacer ustedes aquí vienen y colocan algún número por ejemplo 12 20 30 lo que quieran y lo dejan igual para que tengan suficientes Y lean agregar a balance tienes que agregar a balance le va a aparecer aquí la billetera van por ejemplo la billetera y León Ni que quieren confirmar la transacción y
y cuando lo hagan aquí va a cambiar el número entonces recuerden abrir la billetera pararse en Google abrir la carpeta abrir un archivo y el archivo quedar el archivo punto sol pegar el código que les deja acá que está en contra pegar ese código y darle acá en la parte de compilar luego van a darle acá en address y van a pegar la dirección del contrato Entonces primero abrir la billetera segundo pegar el código tercero compilar el código y cuarto decirles que Quiero obtener un código de una dirección que
ya está desplegada y cuando ya tenga eso le va a aparecer eso y ya luego quinto sería hacer La donación al contrato En qué parte va algunos que esté avanzando En qué parte va Bueno yo la verdad llegué tarde a la clase pero veo que estamos aquí en el compilador de remix recién lo abrí No estuve cuando lo hicieron manejando ni es que la clase pasada listo estar aquí en el cholito y confíes cierto que hay que hacer si quieren que
comparte pantalla Le vamos haciendo parece vamos a ver cómo un compañero vamos a hacerlo con un compañero entre todos a los que quieran participar pero vamos a ver qué es simple es su computador no tiene nada mío listo que tengas abierto ya tienes abierto el patio la página hacia esta listo párate arriba a la izquierda aparecen como dos documentos a la izquierda para verlo listo
[Música] una carpeta ese para crear un archivo a la derecha es la carpeta llámanos como quieras en este caso le llame y carauta para hacer referencia a que las clases de listo ahora quédate un archivo dentro de la carpeta yo lo llamé sintax hay que agregarle alguna extensión el que finalice en punto solo punto sos perfecto y ahí vas a pegar el código que
les compartí mira que aparece dentro de contra no no el código dentro alineada 15 Exacto hasta la línea de afuera que esté seguro de que tú lo hayas hecho o que conoce la procedencia para que la información Listo ya tienes el código que sigue Exacto hay que marcar desmarcar alguna vez
hemos avanzado lo miramos luego por ahora todo bien Que siga ahora vamos a desplegar vamos a desplegar pero como está desplegado vamos a importar el contrato estamos a la sección de la que está abajo de compilar esa listo abre la billetera y meta más porfa la tengo en el celular en el celular evitamos tenerla ahí en el computador para poder hacerlo
pues acepto ser parte de un experimento eso listo listo principal y Cámbiate a la red de prueba como aparece le mostraron listo cierra eso avanzado y paras otra vez arriba le aparece red principal y ya
te aparece Listo ya quedó lovery ahora sí vamos otra vez al remix Y qué vamos a hacer cuando aparece el ambiente environment arriba aparece remix virtual machine chancay Dale click y vamos a darle pero aparece aparece
de pronto como acabaste de instalar la recargala extensión entonces de pronto esa pestaña no la reconoce recarga la página Ah Bueno dale ya Dale en el pinchito para que te quede fino afuera Cuando el hombre es el puzzle tiene como unos como el rompecabezas Dale rompecabezas Bueno ya quedó la otra vez no importa ya tienes hija Ya apareció ahora qué vamos
a hacer vuelvo a desplegar ya lo tienes lista sino que ahorita no la tenía porque la había dejado de agregar vete otra vez al apartado de despegar como si fuera despegar remix ese compilar abajo ahí y mira que entre mis virtuales y te va a decir ahora siguiente conectar
listo ahí conectó Qué vas a hacer ahora ya estamos conectados con metamask como un mundo aparte como un circulito ya estamos parados ahí tiene ese contrato entonces Vete a la página que le compartí el pack un copete la dirección del contrato esa dirección la siguiente la otra pestaña el código del contrato ahí en esa pestaña esa Súbete
Y mira que aparece esa dirección del contrato que es control c vamos al remix y en address la vamos a pegar bueno no hemos compilado el contrato porque volvemos a recargar la página gente Vamos a darle en explorar archivos primero en el explorador porque ningún archivo seleccionado vamos a abrir arauca vamos a abrir sin tax arauca doble clic ya tenemos el archivo ahora vamos al compilador y vamos a decirle Quiero comprar sin arauca Ya compiló ahora vamos al desple
al que despliega y vamos a decirle yo no quiero desplegar yo quiero leer ese contrato mira que aparece ya te aparece ya aparece uno Dale la flechita listo Mira nadie más ha donado Entonces qué vas a hacer sube un poco Y en donde aparece güey y colocan valor que tú quieras por
ejemplo 20 5 10 y baja Ya definiste Cuánto valor lo vas a mandarle a la función llama a la función Qué función vas a llamar agregar a balance a tu balance la roja la que se ve roja que es la que recibe fondos Entonces ya definimos cuánto vamos a mandar ya leímos click al botón que llama la red es meramente de prueba sí correcto de hecho la red de prueba tiene un tiempo de viaje estipulada por ejemplo a red de Google se va a explicar este año y la que sigue es la red de
testigo el nombre no tienes que hacer uso de verdad que sigue ese polia dale a confirmar O sea si te cobran Pero qué pasa que tú la plata con la que pagas la puedes conseguir gratis en internet vamos a ver cuando quede tiene que aparecer 0.001 y un veinte por ahí al fondo al fondo por allá por ejemplo coloca Mi dirección para saber cuánto doné yo Cómo saber cuánto dure yo Vete a través
donde está el código la dirección del contrato ahí y la primera que aparece 0x820 Esa es la mía seleccionala y hay una función que por ahí abajo que se llama get balance vay address la segunda la segunda solita No get balance te pido la dirección seleccionamos
vale Ahí aparece Y si yo pego tu dirección en el contrato me aparece la Cuánto cuesta una donación aquí estamos viendo el ejercicio en la pantalla completa Bueno listo no otra persona hágale Mateo ayúdales de personas Jordi que a que lo haga y ahorita está compartiendo Si quieren Mateo porfa deje de compartir y vamos a ayudarle a Jordi arsero comparta pantalla ya está compartiendo
y entra y porfa deje de compartir la suya para que todos veamos la de Jordi listo vamos a llevarla a Jordi hágale Mateo usted va a ser la primera persona que va a decirle haga eso haga esto Yo le ayudo a hacer una cosa Mateo lo vi lo [Música] puede Mateo se desconectó o qué si me estás hablando está silenciado está con el micrófono apagado parece es que el Mar no tiene micrófono
entonces listo listo Entonces hágale dígale que tiene que hacer ahí el celular y le hablo por ejemplo Vete a remix mira que en remix pegaste todo en breves vas a pegar solamente la parte del código mira que tienes todo pero todo eso no lo vamos a usar vamos a usar párate en el pad Vete a la siguiente página perdón no no vete a otra pestaña Vete a la pestaña del patio
pestaña pestaña Dale control la otra la de la derecha esa metamazo la pestaña derecha Dale control la pestaña la pestaña a la derecha pestañas son las que tienes arriba WhatsApp Meet remix son pestañas Dale en la pestaña a la derecha esa ahora sube un poquito y mira que entre en la línea 16 empieza el código en contra dentro de contra el te va a copiar eso eso solamente eso
ahora sí perfecto que siga ahora la sección de despegue ya tienes meta más en ese navegador Dale la extensión Ah bueno Sí ya lo tienes listo Dale en la parte de despliegue abajito abajito con Pilar aparece desplegar y dale todo perfecto ahora entonces pégate la dirección Vete al vete otra vez al patio de convertirte en el código desde el código vete y a mirar acá
arriba el código aparece contra cabes arriba arriba arriba A ver es contra esa lo vas a copiar y no vamos a remix y en abajo ahí la vamos a pegar y ya se colocó solito y contra y apareció Exacto ahora Vámonos entonces arriba si le dan una vez no te va a dejar por qué porque no has donado nada parece y tienes que mandarle fondos ahí Ahí vas a colocar lo que tú quieras
enviar si no te deja escribir del borra y vuelvo a escribir la ley agregar a balance y confirma la transacción [Música] como Mateo mandó 20 y tú me mandaste uno va a aparecer al final 21 o sea dos y como el cero coma no se cuenta entonces no lo muestra no aparece dos cero pero como agregaste uno va a decir dos uno ustedes cuando la transacción se complete en aparece balance mira que aparece arriba el botón rojo aparece
balance balance un número Cuando se termine va a aparecer un uno al final terminan dos ahí terminó automáticamente 21 Qué significa que ya quedó ya excelente quién más quién más quiere agregar quién más quiere continuar [Música] listo Yo creo que entonces ya por hoy
así ya pueden ver la grabación pueden ver lo que hicimos y ya entendieron pueden volver a repetir con el caso de Mateo y con el caso de hito compañero para mirar nuevamente en el caso de Jordi Cómo se solucionó qué fue lo que se hizo listo Yo creo que ya con esos recursos pueden interactuar con el contrato y interactuar en fondos con funciones de lectura con funciones de escritura y en una próxima sesión vamos a conectar esto con un me parece listo súper
de una entonces listo Dale por acá el año pasado esa hora recuerdo y pues ya tenemos más experiencia antes estaba bastante nuevo y era difícil no
asimilar pues ese ecosistema tan grande usted manejando un lenguaje meramente técnico No entiendo lo mínimo Pero entonces pues hemos estado en ese proceso de crecimiento estamos netamente impuestos desarrollando desarrollo web aplicaciones móviles y la pregunta Pues que quería hacerle referencia a la tres es como se maneja la red tres el sistema de seguridad de protección es roles porque tengo entendido que es una red una red mucho más segura Más estable en cuanto al control de los
datos Entonces cómo sería la diferencia de cuentos fue tres en el manejo de la seguridad de la administración de los roles de los datos etcétera que han trabajado al respecto la web tres como tal No es que sea 100% segura siempre tiene el tema de vacíos que pueden dejar los humanos Al momento de construir el código el tema de seguridad se llama que tú Al momento de adquirir la información que podemos tener una certeza matemática una cerveza matemática porque obviamente todo probabilístico la probabilidad muy muy baja de cañas a que es tan baja que decimos que certeza pero el tema es que como tal la cervezas de entrega es a la aguardar la
información asegurar de que la información no va a ser modificada puedo modificar pero no puedo alterar el pasado que tenemos ahora el tema de los roles y los permisos eso ya queda ligado a la experiencia humana y al desarrollo humano por lo tanto hay empresas que se han encargado en perfeccionar contratos y estándares de programación de tal manera que el código cumpla con los roles voy a pasar aquí en la plataforma para que vayan cacharreando solo como temas más avanzados pero si quieres meter con eso esta página Me parece muy bacana se llama y les permite crear Smart contras para irse con criptomonedas y es siete
veintiuno que son nft establecer públicas de gobernanza y entre algunos atributos por allá en algún lado aparece algo llamado rones que les comparto pantalla este es como un Lego en el que empiezo a construir acá vengan que dice Bueno quiero construir una moneda o quiero construir un aquí aquí quiero construir una moneda que se llame arauca yo quiero que tenga errores
que Access control acá pueden ver el código cómo funciona ya me entrega el tema de roles Qué tipo de permiso le doy un tema de un administrador o sea como tal la tecnología No es que sea prueba de balas o a prueba de cualquier cosa la tecnología la arquitectura la tecnología si es a prueba de balas es a prueba de tontos Por decirlo así es muy difícil casi imposible que se pueda alterar el pasado la matemática que está detrás de eso asegurado para una gran certeza de eso pero si el desarrollador dejó en cualquier persona pueda cambiar el balance una función pueda retirar fondos ya es culpa del desarrollador O sea la arquitectura funciona Pero el código es la puerta con la que cualquier
persona puede entrar desde el código cualquier persona puede entrar y hacer lo que quieran digamos la seguridad del proyecto del contrato también quería quedaría anclada Sí a la viabilidad de los desarrolladores de la empresa que está lesionando el proyecto etcétera según Tengo entendido también hay proyecto de smart contras que se realizan de hecho ayer muy famosa se acuerdan de pronto escucharon el juego del calamar Sí claro Hay una criptomoneda que se hizo
que se hizo con el eslogan del juego del calamar en inglés y entró el código se colocó las personas pueden comprar el toque Entonces cuando compraron el toque le dan valor cada persona compre en oferta pero no pueden vender Qué pasa cuando tú compras que no puedes venderlo pues para que lo compré la gente lo compro y qué pasa esa gente empezó a recibir fondos a recibir fondos recibir fondos retiro los fondos y se abrió Entonces se crearon un Smart que recibe fondos de los usuarios y que no lo suelta lo recibo y ya sí O sea pensaron la fama de la película y
aprovecharon listo la sesión de hoy eso ya creo que queda de parte del equipo conoce quién maneja eso de pronto Néstor obvio entonces Muchas gracias por prestar
atención por estar acá atentos tanto rato sé que puede ser un poquito complejo tanto tanta información puede ser algo abrumador pero la idea es empezar a tocar los conceptos empezar a probar a interactuar muy probablemente todas no hayan entendido al 100% ni el 80% ni el 70 Pero la idea es tener ese primer acercamiento y tener bases para poder empezar a interactuar para poder decir No pero quiero ser como empezar Ya le entregamos las bases ya saben cómo ya tienen un ejemplo una función que recibe fondos si un ejemplo de cómo que un compañero haga algo y se lo comparta los demás compañeros Ah que quiere ser el código que tiene una plataforma de poder recibir puede ser ese puede ser coche Hay un montón de plataformas para compartir código en línea así uno lo
hace le comparte los demás vienen hacen el proceso que hicimos con Mateo y el esfuerzo que hicimos con otro compañero y lo van a poder ver ya saben cómo compartir proyectos y saber cómo mandarle fotos a un contrato ya sabe que existen reglas ya saben que la seguridad la han desarrollador entonces Por ejemplo ese contacto que hicimos recién fondos pero no sueltan yo pude haber colocado una función en el que solamente yo es peor el contrato retire los fondos hagan eso para la próxima me queda como tarea modifiquen un contrato y coloquen algo bien bacano para que cualquier persona pueda ingresar fondos y solamente que creó el contrato pueda retirar los fondos y le hacemos una interfaz gráfica que les queda como tarea hacer eso tomen ese contrato lo mejoran y le colocan para que como un
contrato hacker hagamos eso un contrato de una persona que va a robar un contrato estafador aprendamos estafadores para que no nos pase entonces Esperamos estafador que recibe los fondos y solamente que creo que y lo conectamos con un Front y vamos a aprender cómo las personas caen las estafas las personas Crea una plataforma bonita enviar plata y luego lo estafa le va a retirar y llevarme la plata entonces hagamos eso aprendemos cómo funciona todo eso por debajo para que no lo tengamos en eso entonces feliz día para todos que pasen muy bien y estamos hablando o alguno perfecto parcero Muchas gracias y de hecho con personal hablábamos ya ahorita
finalizamos el técnico y el objetivo es meterle a su hijo ya ya tenemos base de algunas programación php no eterno a saco y aprovechar digamos esta comunidad no sabes qué emocionado y al parcero precisamente para eso traicionar el código incendiar el código y el desarrollo en la región Y la verdad parcero Muchas gracias por la colaboración bendiciones y los mayores deseos Y ustedes vean que los recursos no hay o
sea es la y con la versión gratuita verdad entonces a cacharrearle y a darle para una próxima sesión hacer algo bien bacano y aprender a evitar ese tipo de proyectos No está hasta luego que estén bien