Curso Solidity básico: clase final
Aprende a Programar en Solidity 2023 · 25 Nov 2023 · 2:06:33
The closing class of Ethereum Bogotá's basic Solidity course, led by Gilbert Ahumada with guest Javier Salomón, both of Chainlink en Español. It covers tools for interacting with blockchain data and the role of oracles, with a live demonstration of Chainlink functions so students see theory applied. The class ends the November 2023 course cycle.
Speakers
Topics
From Aprende a Programar en Solidity 2023, hosted by Ethereum Bogotá.
Transcript
Eh Buenas tardes a todos cómo están Espero que se encuentren bien ha sido s bien Ah listo Perfecto perfecto ha sido una larga y pesada sesiones de desarrollo son de 3 horas los jueves nos estamos viendo para hacer los los retos del speedrun y ya no estamos aquí en la r en la recta final ya nos queda esta nuestra última clase sobre oráculos en blockchain en la blockchain de etherium slayer 2 y nos queda el último Speed Run que la vamos a ver el próximo jueves en el aula oal sobre stable channels entonces dentro del currículum teníamos que yo iba a estar partiendo la Ah bueno graci Julio estaría yo partiendo la la clase de oráculos pero pues quién mejor
que los mismos developers expert de Ching para para dar esa clase entonces con Javi con gilber ya en el pasado hemos hecho algunos trabajos hemos hecho unas colaboraciones unas alianzas entonces pues discutiéndose y encontrando para para generar mayor impacto respecto al al conocimiento que se está partiendo pues mejor que ellos lo presenten acá acá en vivo y en directo Entonces qué nos queda última clase el Speed Run y una hacat para hacer prueba práctica Dale sí respecto a lacaton eh Muchas gracias a todos por haber participado durante todo este proceso
durante la siete clases Qué bueno que estuvieron viniendo con constancia a a todo este proceso y y para extenderles nuevamente la invitación a la hacat Para quienes no se han registrado esta semana tuvimos ahí varias negociaciones con sponsors Y tenemos una bolsa bien bien interesante de premios ya tenemos más de $5,000 en Premios Así que ese es como un otro otro motivo además de del venir compartir aprender en una hacat de verdad se aprende de un montón Eh Así que compartí el registro nuevamente en el pat de hoy quienes lo estén pensando decídanse ya varios se han registrado varios de acá delo se han registrado a
la Ja catón Y es una muy muy buena oportunidad para compartir conocer gente vamos a tener gente chévere del ecosistema aquí en Colombia eh apoyándonos en mentorías y con juzgamiento así que de nuevo la invitación y Bueno yo creo que ya podemos empezar sí listo Javi Entonces le voy a dar la palabra a Javier Salomón él es el Community manager de chining latam que nos va a contar Qué es chin link que es chin link latam y cuál tod es proceso de adopción y presentación de la tecnología de oráculos como es chin link aquí en Latinoamérica y todo el tema de contenidos en español entonces Javi porf cuéntanos te doy la palabra Mejor dicho para que nos nos sabras un poco de lo
que es chin link latam Dale perfecto Gracias Santiago se me escucha bien solamente para chequear sí bu Perfecto Bueno eh Antes que nada Gracias eh Santiago y Julio por organizar y y invitarnos a participar acá los saludo a todos ahí los estoy viendo acá por una pequeña pantalla a todos Qué tal cómo les va Bueno un gusto saludarlos eh les voy a compartir una primero Bueno vamos a hacer una introducción les voy a contar un poco sobre lo que hacemos como esfuerzos de de unid dentro de Chain link globalmente y bueno algunas cosas
que estamos haciendo en Latinoamérica y después lo interesante va a ser después cuando aparezca Gilbert y pasemos a meter las manos en el barro digamos Pero bueno brevemente les voy a contar un poco las cosas que estamos haciendo esfuerzos de comunidad voy a compartir pantas me dicen si se ve segundo ya estamos Ok Perfecto Bueno como decía Nosotros somos contar un poco sobre la comunidad de chink bueno soyo
Javier comunity maner para latinam la pestaña de las pantallas es que nos está cubriendo una parte de la presentación Ese soy yo Ah no perdón Ese soy yo no perdón continúa Ahí está bien Sí está perfecto Ok Perfecto Bueno nada eso les decía soy Javier Salomón Soy argentino y soy el Community manager ch para latinoamérica hace un tiempo ahí tien mis contactos si alguno quiere escribirme conectar con con todos ustedes ahí en en Bogotá y bueno estas mis redes sociales
Ja Salomon en Twitter y en linkedin Javier Salomón si alguno sacó una foto aproveche para para etiquetarme así le veo e bueno eh les cuento un poco Eh bueno Somos la comunidad tecnológica web3 que digamos más comprometido que por lo menos eh más engage tiene digamos en el ecosistema y y bueno ayudamos muchísimo a impulsar a creadores y e builders como ustedes que están apasionados por nfa Gaming y blockchain y todo el desarrollo de web 3 de desde
desde todo tipo de actividades bueno algunos ahí ya nos conocen Santiago Bueno también bueno silber que es parte de la comunidad como developer expert tambén puede eh decir que que esto es cierto Digamos como Cómo ayudamos a ser visible muchos proyectos y muchos creadores que están dentro del ecosistema e tenemos una comunidad con más de un millón y medio eh de miembros alrededor de todo el mundo estamos en Twitter en Telegram en casi todos los canales en discord YouTube redit y y mucho más y bueno nuestro foco es eh mucho crear ya van a ver que nuestro
foco de comunidad es crear eventos donde podamos conectar así como este evento de acá y poder conectar no y y sacar cosas provecho de esas de esos vínculos que generamos eh Como les decía bueno nuestra comunidad es global y a su vez también a mí me gusta decir que somos locales porque bueno tenemos más de 90 grupos en con más de 25,000 miembros en en meetup y hacemos Eh meetups y workshops alrededor de todo el mundo y digo local porque a mí me gusta decir local porque a mí me gusta tomar como que cada uno de estos capítulos que que están viendo acá por ejemplo acá en Argentina que en su
momento yo fui el el el líder de ese capítulo y bueno También tenemos en Colombia e y y bueno como verán en todas partes del mundo que cada uno de que que toma el liderazgo de estas comunidades locales se hace dueño no de su comunidad y empieza a ayudar a construir dentro dentro de su comunidad no y bueno como ven estamos ahí estamos en casi todos lugares Hoy estamos participando hoy tenemos el hackaton Y tenemos gente inscrita desde desde la antártida Una Cosa increíble no lo puedo creer pero pero es real y es buenísimo ver como como toda la gente se conecta desde toda
parte del mundo en algunos eventos que hacemos globales Es realmente impresionante Así que super invitados a sumarse per como les decía somos una comunidad en línea y muy comprometida llegamos a audiencias de todo el mundo con hackaton Y bootcamps tenemos más de 110.000 miembros en discord activos un millón de Seguidores más de un millón de seguidores en Twitter eso es globalmente no habla inglesa después 80.000 suscriptos en reddit 100.000 seguidores en linkedin y Y tenemos canales en más de 15 idiomas
y bueno una de las cosas por los cuales yo me siento orgulloso por la comunidad que construimos junto a a varios advocat y developer expert que que están en la comunidad que la comunidad de hispana es la segunda más importante y que tiene mayor tracción y bueno nada se me infle el pecho cuando cuando digo eso pero bueno es algo que lo venimos haciendo hace mucho tiempo y le ponemos mucho mucho cariño Y mucho afecto e Bueno hacemos eventos alrededor del mundo y tenemos un evento anual como bueno algunos de ustedes quizás conocerá a depcon que la etherium foundation tiene nosotros tenemos nuestra smartcon
nuestra smartcon ya va por su cuarta edición la del 2022 se hizo en en Nueva York eh este año se hizo en Barcelona y y bueno y reunimos eso a los artífices del cambio y a los principales creadores de tecnología que están impulsando la próxima ola de innovación de web 3 Algunos números bueno acá pueden ver algunas fotos de la de la última smartcon en Barcelona y algunas también de de la de que hicimos en Nueva York en el 2023 Algunos números hubo más de 1000 personas asistieron a ese evento con más de 20.000 e personas conectadas en vivo que
también hicimos transmisión eh tuvimos más Dee números t mal no son 150 Perdón son más de 200 tuvimos speakers eh en todo el evento teníamos cuatro escenarios e y hubo tuvimos 20 Side events y eventos de networking y también este año hicimos A diferencia de la vez anterior hicimos una hacker House y un un pregame un pregame Fue como un evento enfocado solamente a Gaming y que fueron los días los días anteriores a la yo yo no fui a Barcelona pero Gilbert s después me puedes decir Gilbert Sí si fue el día
anterior no me acuerdo si PR mi hacker House el mismo día Ah okay hacker House y pregame fue el mismo día sábado hacker House todo el día domingo hacker House terminó y empezo pregame Okay perfecto y el lunes y [Música] martes Bueno eso es el año que viene seguramente lo haremos 20 24 estamos muy ansiosos por y muy emocionados por por por ya saber dónde la vamos a hacer No sé Yo estoy super bullish con que sea en Latinoamérica Pero bueno todavía no no no se sabe así que me
encantaría que sea no s en Bogotá o en Buenos Aires que acá tenemos un ecosistema super fuerte pero bueno ya ya veremos qué pasa bueno iniciativas de la comunidad cosas que hacemos bueno como les decía somos super comprometidos en en todo el ecosistema de blockchain y web 3 hacemos infinidades de actividades eh tanto en discord Twitter YouTube hacemos Twitter spaces eh Live streams en en YouTube hacemos workshops virtuales am hackaton bootcamp de hecho Bueno con Gilbert Santiago hemos
participado hemos hecho los el último botc participamos lo hicimos juntos e en español no y bueno También tenemos una red de de contactos bastante importante así que bueno todos la mayoría de las personas que que se vinculan con la comunidad tienen eso acceso a eh Javi necesito contactarme con no sé un BC un BC o algún proyecto porque estoy interesado quiero No sé presentar mi currículum quiero Entonces eso es como tenemos super vínculos para para los que son miembros de la comunidad e Bueno hacemos eventos de de networking exclusivos para la comunidad y webinars
y bueno como les decía hay oportunidades de trabajo si bien Nosotros internamente tenemos muchísimas oportunidades de trabajo si pueden ver después en chl labs.com bar Jobs haí seguramente en este momento no Macro Cuántos pero siempre hay como 50 entre 50 100 posiciones abiertas y y también oportunidades con con muchos proyectos que utilizan nuestro nuestro protocolo no un segundo Bueno también hacemos traducciones tenemos el blogs tenemos contenido contenido web un canal de YouTube con muchísimo contenido si después lo quieren visitar
es el canal ch link Y no van a ver mucha información en español por ahora hay poco pero cada vez estamos metiendo un poco más em Bueno ahí pueden ver eso caso de estudios contenido para de de r tenemos unas guías de quick Start también bastante buenas que están en la web y Eh bueno dense una vuelta después les paso bien los links para que para que nos visiten y bueno como les decía también hacemos muchísimos eventos para poder conectar con nosotros y también bueno oportunidades para para dar
charlas Santiago por ejemplo lo invitamos hace no sé si fue este año o el año anterior el de una charla Santiago vos ganaste un hackaton creo nuestro sí ganamos el constellation del año pasado pues des las mismas fechas y y bueno después los invitamos a a un evento virtual para que Bueno mostraran un poco su su proyecto Y darles visibilidad eh hacemos Bueno fires chats hacemos meetup globales y hacemos muchos eventos en universidades bueno como ahora como estamos acá eh les cuento un poco de oportunidades para eh Para sumarse a la comunidad y
poder aportar y contribuir tenemos dos programas de voluntariados e uno es el programa de Community advocates Eh Esto es como le decía es para para ser líder de su comunidad local y y que las personas pueden acudir a ustedes y y les puedan ayudar a a lo que necesiten en temas relacionados a a chink así bueno Y eso ayuda mucho a a crear conexiones para conocer mucha gente que está dentro del ecosistema web 3 y y nuestro foco en este programa Es como eso estar super enfocado en en
crear contenido educativo para todas las personas que están dentro de la comunidad y no solamente de chainlink sino de todo de todo lo que sea web 3 o blockchain desde lo más básico por ejemplo nosotros tenemos bueno eso tenemos una iniciativa que se llama deploy your Bueno despliega tu primer contrato inteligente con chainlink y y bueno invitamos a las personas a y los educamos en eso solamente ven sabemos que hay eh 20 millones de desarrolladores web2 alrededor del mundo y solo 30.000 hay en en web 3 entonces sabemos que hay mucha gente de web2 que tiene que aprender o
que en algún modo que le gustaría aprender a a meterse en web 3 y bueno tenemos este estos workshops que les enseñamos a los web2 a a desarrollar su primer control inteligente y lo vamos haciendo en distintas blockchain hace poco con Gilbert si no me acuerdo mal lo hicimos en en mumbai bueno no me acuerdo pero la idea es como eso aar a los a los desarrolladores a que ingresen al mundo de web 3 de una manera fácil y sencilla y que ya empiecen a interactuar con sus billeteras y hacer cosas encillas no así que bueno si alguno está interesado de sumarse como advocate ahí en en en Colombia eh ahí está el el link el QR
para que puedan acceder si no después les comparto el link y también tenemos el programa de developer expert Eh bueno AC estamos con Gilbert que es parte del programa esto es más orientado de desarrolladores eh de smart contracts y y blockchain eh enfocado principalmente que que tienes que conocer eh mucho los los servicios nuestros para ayudar a a otros desarrolladores a a aprender eh el programa tiene distintas certificaciones que va siguiendo pasos y cada vez más y bueno te ayuda tener muchos contactos y mucha visibilidad no y después a la hora de de conseguir algún trabajo Bueno también tiene suos beneficios y tenemos
alrededor de tenemos más de 50 developer expert alrededor de del mundo si alguno está interesado también ahí puede puede aplicar en ese QR y Estos son algunos de los beneficios que que tiene el programa es bueno formar parte de una comunidad de desarrolladores muy unida y activa tienes acceso directo al equipo de rel de de Ching labs y bueno se puede es una Yo creo que es una buena forma de de meterse en web 3 porque Sigo creyendo que todavía estamos muy temprano Yo creo que es 15 años desde bitcoin hoy todavía podemos decir que estamos super temprano
ni hablar si pensamos des Cuándo empezó etherium así que nada si si si si si hay ganas de empezar con con una carrera como desarrollador we3 yo creo que es una buena entrada haciendo algunos trabajos de voluntario con nosotros eh yo fui advocate Community advocate durante 2 años un poco más y bueno Después me sumé al equipo como Community maner hace ya un poco más de 2s años no un poco más de un año y bueno eso es todo ya no los voy a aburrir más ahora lo interesante viene ahora con Gilbert Así que gracias y bueno Los invito a seguirnos en nuestras redes a en español al Twitter y al
discord y estamos ahí me escriben cualquier cosa que los puedo ayudar Así que eso es todo de mi parte dale Javier muchas gracias ahora yo creo que jil yo creo que no te presentas Nos dices a qué te dedicas Cuál es tu rol dentro del equipo de Ching latam y nos comentas qué qué nos traes para hoy por supuesto Déjenme estás escuchando atento Javier y se me olvid abrirla eh en las slides pero acá las tengo ya voy a compartir mi pantalla un segundo y si se ve sc es [Música]
est se ve sí creo que sí Sí sí sí ahí bueno vamos a ocupar otro si no ya bueno muchachos Muchas gracias por la invitación a Santiago tuvimos el placer de conocernos en persona y hablamos acerca de de hacer esto yce Dios así que muy agradecido por por la invitación y antes de partir por ya con los conocimientos técnicos y con meter las mano Como me gusta decir me presento mi nombre es gilada soy de chile participo del programa que estaba hablando Javier que es developer expert de chiling e más que nada nos enfocamos en esto en el en
educar a la comunidad yo personalmente me enfoco en la comunidad habla hispana porque hablo español pero somos muchos di expert alrededor del mundo y hablamos distintos idiomas as que la gracia es eso poder educar a las personas el no solo en blockchain en Sí en chink y los servicios que tiene disponibles Cómo podrían utilizarlo en sus casos de uso más que nada responder esas dudas y ayudarlos en con pregun con preguntas técnicas y viendo de manera técnica Cómo cómo funcionan estos servicios y es lo que vamos a ver hoy día así que les dejo mi si alguno quisiera contactar está mi correo me quiere escribir algún correo está mi linkedin y está mi mi Twitter
bueno que ya no es Twitter es ex pero es lo mismo también tengo estoy Armando a poco un canal de YouTube con alto contenido en español estoy haciendo un curso de fund si alguno le interesa aprender también me puede seguir en Twitter y ahí va a ver el link de los videos y eso vamos a ir a Vamos allá a aprender un poquito me avisan en un momento si hace mucho ruido porque aquí hace mucho calor y abrí todo entonces si se escuchan mucho ruido me avisan y cieron las ventanas no se escucha nada está perfecto te aviso ya buena El pad bueno Ustedes ya tienen un link Así que no lo vamos a utilizar y les voy a explicar un Puedes puedes devolverte un slide por favor sí Ese era el p pero vamos a ocupar el pad que me diste tú así que no
se prup list perfecto de una sí los voy a a poner en contexto porque quizás han escuchado quizás ya conocen el concepto de oráculo pero no conocen lo que es chink así que los voy a introducir e en todo esto la blockchain es maravillosa eh nos sirve mucho para algunos casos de uso sobre todo para temas de trazabilidad quizá algunos ya han programado antes o han visto de manera teórica qué es lo que pueden hacer con la blockchain y anda bastante bien para resolver muchas problemáticas que teníamos anteriormente que con otras tecnologías no se podían resolver pero como todo en esta vida no todo no todo lo que brilla es oro
también tiene algunas limitantes pero lo Lo bueno aquí es que en el día a día cada vez que se da una limitante o algún problema puede surgir con una idea de resolver esa problemática y volver este esta problemática en vez de una desventaja quizás una convertirlo en una virtud y tener en este caso la blockchain una blockchain más robusta y darle solución a casos de uso aún más complejos entonces la blockchain tiene una limitante Y es que de manera nativa se encuentra completamente aislada del mundo real no existe una manera la blockchain no tiene una manera en sí misma de poder disponibilizar esa información del mundo real dentro de la blockchain y nosotros poder utilizarlas
en nuestros contratos inteligentes entonces aquí es cuando nace el concepto de oráculo que vendría siendo ese puente ese nexo entre el mundo real y la blockchain podría ser todao una infraestructura que nos permita consumir información del mundo real y disponibilizar la blockchain de nuevo es el concepto de oráculo aquí tenemos una una pequeña imagen que cont todas muchas de las blockchain que tenemos disponibles y señala Esa esa limitante que tiene que está completamente aislada del mundo real hay casos de uso bastante interesantes que se podrían abordar que
si quisiéramos por ejemplo obtener los valores de A cuánto están cotizando en el mercado de valores algunos activos o los commodities como el oro no existe una manera una manera nativa de hacerlo si quisiéramos obtener información de eventos como el internet de las cosas un GPS temperatura eh No existe una manera nativa de hacerlo si quisieramos Ob tener eh implementar o integrar pagos del retail como es visa PayPal tampoco existe una manera nativa de hacerlo o pagos con los bancos no existe una manera nativa de hacerlo se encuentra completamente aislada como les deía y el el oráculo eh nace a raíz de esta de esta limitante
pero como todo este ecosistema si estamos construyendo sobre blockchain y la blockchain es descentralizada en sí deberíamos seguir o utilizar opciones si vamos a utilizar servicios adicionales debieran ser descentralizados aquí tenemos un ejemplo de un nodo de un nodo que representa un oráculo que nos está brindando información del mundo real ese que les contaba que está bailada de la blockchain si solo tenemos un nodo que se está conectando con miles cientos de nodos que componen la blockchain en sí tenemos un único punto de falla lo que es demasiado riesgoso para nuestro caso de uso sobre
todo si maneja dinero Si Ed si si yo me pongo analizar de manera técnica un proyecto y ese proyecto implementa un oráculo tiene integrado un oráculo y ese oráculo Está compuesto por un nodo o aquí la en realidad el concepto de un nodo quiere decir que es centralizado existe un único punto de falla Entonces se podría ha Alterado y Alguien podría hackeado y alguien se podría sacar beneficios de estos no recuerdo ahora los números pero son números la verdad estratosféricos de la cantidad de millones de dólares que se han hackeado por por este tema de que existe un oráculo centralizado que involucra un único punto de falla entonces Si eso falla falla todo a raíz de esto Esta problemática nace nace chiling
que siempre va a ser se va digamos el Core de chiling se trata de que es una red de oráculo descentralizada o aquí de nuevo volvemos al concepto de oráculo pero ya no es centralizado sino que descentralizado es una red de oráculos descentralizada Entonces el día de mañana le preguntan Qué es chiling usted responde que es una red de oráculos descentralizada pero con el pasar de los años se ha convertido en algo mucho más allá el Core de nuevo sigue siendo que es una red de oráculos descentralizada pero hoy en día Ya apunta a una plataforma de servicios web 3 y apunta ya con el tiempo y lo ha demostrado a ser una eh Como el estándar de la industria onces hay una una variedad de servicios que se los voy a contar vamos a utilizar dos de ellos en específico
hemos hecho varios workshops sobre otros pero cada día son más entonces ya toda esa problemática que teníamos en un principio o esa limitante de toda esa información que no podíamos utilizar en nuestros contratos inteligentes ahora está disponible entonces toda esa toda esa Data externa eh Api datos sobre empresas o plataformas de pagos tradicionales Ahora pueden ser integrados en la blockchain Y de nuevo resolver casos de uso mucho más complejo dar solución a problemáticas más complejas tener casos de uso mucho más robustos mucho más seguros Y de nuevo mucho más descentralizados cuando combinamos esto eh computación o información of Chain
que se conoce como fuera de la cadena of Chain con Data onchain o con contratos inteligentes más que nada Nosotros le llamamos contratos inteligentes híbridos vamos a hacer los primeros contratos inteligentes híbridos utilizando eh chink Y a modo de resumen de esta pequeña parte que nos quede que ojalá se vayan con estos conceptos Sí o sí integrados Y es que chiling es una red de oráculos descentralizada Ching no es una blockchain si les pregunta el día de mañana no es una blockchain lo otro es que es blockchain agnóstico blockchain agnóstico quiere decir que no es propio o no se casa con ninguna
blockchain no es propio de ninguna blockchain por por más que el año 2019 si no me equivoco los primeros días de junio con los últimos pero fue en junio se desplegó en eum la primera red de oráculos de chink partió en etherium pero hoy en día está disponible en otra má bl sean IBM o no IBM compatibles porque una vez se integra chink y empiezan a funcionar ya sea uno algunos o todos sus servicios funcionan de manera nativa lo que les mencionaba anteriormente en la diapositiva anterior de que les llamamos contratos inteligentes híbridos que de manera nativa dentro de nuestros propios contratos podemos consumir esta información o solicitar computación of
Chain y es bastante la verdad eh sencillo y bastante interesante ent con eso se con eso me interesaría que se vayan Sí o sí hoy día lo otro ya pueden estudiarlo pero de que es una red de urculo descentralizada de que block agnóstico de que no es una blockchain y que ya apunta ya es una plataforma de servicios web 3 el concepto principal o el corden antes le hablaba de que es es una red de oráculos descentralizada si van a la documentación van a ver que se llama laad o bueno de Don en inglés pero le llamo la Don que es decentralized Oracle Network que es la red de oráculo descentralizada se fue la diapositiva un poco no la
ven sí s la estamos viendo Ah que a a mí se me fue pero la veo acá la Don la red de oráculos descentralizada Entonces cuando lean la documentación van a ver mucho esto y apunta eso la red de oráculos descentralizada que en realidad son muchas redes de oráculos Si evaluamos vemos la documentación a fondo en realidad son muchas redes de que se utilizan para los distintos servicios algunas características que tienen la las redes de oráculos Y es que lo principal es que son descentralizadas están basadas en la criptografía Entonces se vuelven casi de manera digamos intrínseca e de confianza y esa esa confianza es verificable O sea
no ya no es una confianza basada en la marca sino que es una confianza basada en en matemáticas simplemente o sea en números ya no es como un arreglo amigos sino que son hechos son altamente escalables eso les menciono que Ya son varias redes de oráculos son muchas y son bastante eh eficientes y costo efectivas que básicamente quiere decir que son baratas para hacerle una una pequeña gráfica de cómo cómo funciona y otro componente principal hay un un protocolo de comunicación que tiene esta esta red de oráculos que se llama off Chain reporting ocr si no me equivoco ya va en su versión 3 y y lo que hace Este ocr es un protocolo de comunicación p2p en el que se comunican estos nodos
que componen la red y quizás escuchan muchos nodos no sé si lo tendrán Claro pero cuando yo le hable de nodos o cualquier persona le hable de nodos el ecosistema web 3 Es simplemente una máquina que ejecuta un cliente y ese cliente es simplemente un software que le permite ser parte de una red y ya está cuando le hablan nod de sirium están ejecutando un cliente de sirium que es o hay varios otros clientes ya está es un software que le permite ser parte de la red por si acaso por si quizás alguien no no lo sabía Y bueno estos nodos de la que componen la red de de chiling se comunican a través de este protocolo que se llama Chain reporting y básicamente lo que hace es lo siguiente digamos aquí en la en la parte izquierda de la pantalla lo que existe fuera de la
cadena que son los nodos están cada uno simulando compartir un precio en específico digamos que es un activo que está cotizando entre 400 300 eh 401 399 398 cada uno de estos nodos consume Data de distintas fuentes de información ellos promedian esa Data o hacen una una media bien digo mejor digo de esa Data y la comparten entonces cada uno de ellos está compartiendo un precio a la hora de escribir disponibilizar ese ese dato ese de nuevo se hace una media de todo lo que comparten esos nodos a la hora de disponibil ese dato entra en juego este protocolo de comunicación y básicamente
funciona se lo voy a explicar con una analogía de la siguiente manera digamos que yo pido algo en mercado libre que entiendo que Mercado libre también funciona allá o cualquier empresa que me que me envíe una encomienda o un artículo que yo compré por internet digamos que yo hago 10 compras Entonces ellos no me envían 10 paquetes distintos y viene un camión 10 veces a mi casa sino que ello lo ideal es que empaquen un una caja ech los 10 paquetes dentro y me lo envían hacen un solo viaje bueno Esto es lo que hace ocr en vez de enviar la información de todos los nodos lo que se hace Es que el protocolo elige un nodo del líder ese nodo líder le consulta todos los nodos Cuál es su precio cada
uno de ellos lo firma se firma un reporte por todo ese por toda esa media de los nodos por por eso se llama Chain reporting y después ese ese valor o ese reporte se comunica la blockchain y sería el valor que nosotros consultamos en nuestro contrato inteligente Entonces se abstrae hay varias capas de datos de abstracción para que todo esto funcione pero es más que nada así para explicarlo de manera sencilla también que si uno si este nodo que es el nodo líder llegase a fallar cualquiera de los otros nodos puedes tomar su lugar hay un tiempo ahí de de parametrizado que digamos que son 30 segundos y durante 30 segundos no transmite viene el otro y así viene el otro entonces tiene un grado de
resiliencia igual para asegurar la disponibilidad de los datos en la blockchain Entonces ya hablemos conocimos como el Core Por así decirlo por debajo conozcamos las posibilidades con los distintos servicios uno de los que vamos a utilizar hoy día es jink datafit y vamos a ir específicamente a lo que es prit porque en un principio algunos dicen datafit price Entonces prit es solo de los precios a lo que cotizan algunos pares de criptomonedas o activos y datafit ya hay un poquito eh más amplio porque hay otro tipo de datafit que no se lo voy a explicar hoy día pero solo para que lo tengan en claro se lo que se está haciendo con datafit O prit es que si vamos a a lo que es las
finanzas descentralizadas se están reconstruyendo las finanzas tradicionales pero construidas sobre una infraestructura descentralizada que más que nada traer esos productos financieros con un poquito quizás de innovación pero son casi lo mismo pero construidos en la blockchain entonces volvemos a la limitante que teníamos en un principio Si queremos imitar o construir sobre la blockchain esos servicios financieros que existen hoy en día necesitamos información del mundo real Ah Es cuando les daba el ejemplo del si yo quisiera tokenizar por ejemplo el oro Quiero tokenizar el oro Hay un proyecto que se llama synthetics que tokenización el oro Necesito el precio A cuánto está cotizando el oro Entonces
aquí es cuando entra chiling y disponibiliza esos precios dentro de la cadena a través de datafit y volviendo al ejemplo de dos diapositivas atrás para profundizar un poco más en la capas de agregación de datos podemos ver en el caso de las criptomonedas que en el lado izquierdo tenemos los exchanges y a cuá están cotizando los distintos activos en cada uno de estos exchanges Porque así es como sabemos A cuánto está cotizando algún activo Si vemos por ejemplo coing geeko Coin Coin Market cap ellos consumen de distintas fuentes de información a veces de solo una digamos binance pero un activo puede estar utilizando en binance a un precio y un poquito menos o un poquito más en otro exchange Entonces todos todos estos distintos exchanges esta variedad transmiten
información y existen los Data providers estos Data providers consumen de todos est o de tod de algunos de estos distintos exchanges de proveedores de información y a la vez estos Data providers les proveen información a los distintos nodos de esa manera Está descentralizada las fuentes de información o las fuentes de la verdad Y estos mismos nodos Solo que les explicaba con ocr son los que luego la información un segundito es que hay una pregunta hay una pregunta dime o bueno voy a pasar el micrófono para que hagas la pregunta Mejor dale en el caso de la información que tú dices que el Data Provider le da la información a los
exchange digamos en este caso pues yo trabajo en un exchange al revés al revés al revés pero digamos en este caso qui nos pasa el precio de la activo o sea liquidity Provider un ejemplo apg global es el que pone la liquidez y nos da el precio de cotización a como nosotros podemos poner ese instrumento financiero entre la plataforma O sea que el liquidity Provider dentro del exchange se comunica con este oráculo para que para conectar la información o cómo funciona no son los Data providers es que el proceso es al revés o sea los oráculos obtienen la información del mundo real o sea cuánto están cotizando los distintos exchanges si es que tu exchange en este caso consume la
información desde otro lugar probablemente sea un proveedor de datos para estos Data providers Entonces estos Data providers consumen esta información no solo de una fuente sino de que varias y ellos a su vez le transmiten a los nodos se entiende Sí eso eso es lo que pasa entonces una vez los nodos ya obtiene esa información de distintas Fuentes cada uno tiene un precio que le mostraba en estas de acá en este caso sería 400 398 401 cada uno de ellos tiene un precio y después lo transmiten y se transmite la media a un contrato de referencia que que le llaman aquí en el diagrama Y en este caso
vendría siendo 1.05 Entonces ese es el precio que vamos a leer nosotros pero si vamos hacia atrás digamos el punto de inicio sería hac vendrían a ser estas plataformas en este caso los exchanges que tradean estos estos pares de activos pero hay unas capas de agregación que permiten que tenga ese valor final y el que vamos a consumir que después vamos a ver el ejemplo que es un un precio real de una de un par de criptomonedas y ya luego los usuarios de los contratos inteligentes o los protocolos desarrollan los contratos consumer o consumidores que se llaman y y consumimos este precio básicamente lo vamos a hacer lo vamos a hacer si vamos a a la página web de Data chainlink es una hay una página bastante bastante
bonita que mucho mucho más descriptiva para ver Esto entonces voy a ver si se lo voy a explicar mejor desde acá que ya que está actualizado eh ven ven la pantalla o ven La Di estamos viendo estamos viendo la pantalla ya Bueno aquí está Data chainlink pueden buscar distintos precios o distintos pares de criptomonedas por distintas blockchain pero vamos al de bitcoin usd por ejemplo en la en la blockchain de e sirium está disponible en otr distintas otras blockchain aquí están todas Pero se ve más o menos así gamos todo aquí están los nodos los oráculos transmitiendo
cada uno un precio en este momento tienen todo una Barrita verde arriba si esolo un poquito hacia abajo eh esto ya respondieron está esperando la respuesta y está transmitiendo y esto en base a las rondas de agregación que si me vengo acá aquí cuando cuando se escribe un nuevo precio en el contrato inteligente empieza todo este proceso de gener el promedio que entra Chain reporting que le dice Oye envíame el precio Bla bl Bla hasta que se escribe el precio final vendría ese vendría siendo todo ese proceso se llama Ronda de agregación Cuando vean estos colores en los nodos acá arriba Eh son relativos o corresponden En qué etapa están en el
proceso de agregación Entonces el proceso de agregación este caso todos han respondido el proceso de agregación concluye en una respuesta final aquí se ve el answer que dice y Aquí más o menos le dice dice que está este está calculado por un algoritmo en base a una respuesta mínima de 21 oráculos porque aquí tenemos el or responses que es un mínimo de 21 sea que 21 oráculos tienes que estar transmitiendo información para que este prit este saludable y podemos consumir la información como corresponde o sea hace una información verídica y actualizada y lo lo interesante aquí es
que tienen dos triggers o parámetros de que gatillan una nueva Ronda de agregación en este caso bueno son siempre dos pero en este caso estos dos parámetros pueden variar según la blockchain y según el el activo de que estemos hablando el harbit es que si aquí debiera ser la blockchain deum son casi todos 60 minutos o sea y el divion TR son 0.5 Por qué quiere decir qué quiere decir estos dos parámetros si el precio la última el último precio escrito la última respuesta Lo comparamos con el la media que están transmitiendo todos estos noos
acá es el precio ha bajado o ha subido un 0.5 empieza una nueva Ronda de agregación está completa constantemente comparando bien digo en la última respuesta con la media de los oráculos que vemos acá en la parte derecha si ese precio de nuevo la media es superior en un 0. 5% o mener un 0.5 por a la última respuesta empieza una nueva Ronda de agregación Si eso no llegas a ocurrir el tal harbit y el harbit como les decía aquí en este caso son 60 minutos y Bueno aquí sí son 60 porque
dice la última respuesta fue hace 59 entonces el precio no se ha desviado un 0. 5% hacia arriba o hacia abajo y se va a gatillar el harbit y va a escribir una nueva un nuevo precio una nueva respuesta Entonces de esa manera de manera algorítmica se comprueba o se uno siempre estamos 100% seguros de que se está transmitiendo el último precio actualizado entonces a lo menos debemos tener una actualización del precio cada 60 minutos está 37 832 vamos a correr para acá mientras y vamos a ver en cu actualiz eso eso por parte de PR más que nada son los pares están cotizando algunos activos y los puedemos utilizar dentro
de losos contratos otra la otra el otro servicio que vamos a utilizar hoy en día que es automation que es lo que hace automation podemos bueno todos estos servicios nacen de una de una Oh aquí está nacen de una limitante como cualquier solución y es que los contratos inteligentes de nuevo son maravillosos pero tiene una limitante es que no son autoejecutables o sea un contrato no puede de manera nativa Llamar una función que contenga el mismo contrato requiere una interacción humana o de un oráculo un external un account pero casi siempre alguien que viene y aprieta el botón pausa pero aquí terminó la ronda de agregación eh Por si acaso estábamos el
precio está es distinto ya no recuerdo igual que vimos recién pero se vi que se actualizó aquí en la pantalla solo es para mostrárselo en vivo que que más que nada que es lo que ocurre y elado hace 48 eraa 3783 Ah hubo una leve diferencia pero así funciona desp después pueden verificarlo por ustedes mismos eh les decía que autom tiene esa limitante y que siempre tiene que venir a alguien y más que nada eh darle click al a un botón noces si hay al algunas ejecuciones que requieran su caso de uso de que sean automáticas Cómo podemos hacerlo no existe una manera o aquí nace automation que nos permite automatizar
la ejecución de ciertas funciones en base a tres categorías hoy en día hasta hace algunas semanas eran dos o Hace algunos veces bien digo eran dos creo que esto se estrenó en en la smartcon es eso es lo bueno de smartcon igual que mencionó Javier que siempre dan una actualización de los servicios mejora debiera ser y ha sido hasta hoy en día una Mejora y en este caso es una tercera categoría para lo que es automation porque hasta antes solo existían dos que era una que nosotros podemos calendarizar la ejecución de estas funciones si digamos que mi yo requiero que mi función se ejecute todos los días a la 1 de la tarde o los domingos o una vez a la una vez todos los días a cierta hora usted puede calendarizar la
ejecución de esa función en base a unos parámetros establecidos y lo otro es custom logic una una lógica customizada usted podría definir alguna lógica dentro de su cont inteligente que diera Mira e si esta si esta condición se cumple Ejecutan esto y ya está y el otro es el lock events que los logs aquí hace referencia a los eventos cuando ustedes emiten un evento si es que han utilizado eventos de sus contrato inteligentes pero es una es una manera un poquito más menos costosa de almacenar información en la blockchain que usted puede consultar pero no en el estado del contrato eso es lo que se conoce como
log si es que lo han ocupado pero se utiliza cuando emiten eventos es que más que nada cómo funciona automation y es que bueno está apalancado de la red de oráculos descentralizadas de chiling es computación se se solicita como computación fuera de la cadena más que nada o ejecución fuera la desde fuera de la cadena yo funciona esto es que usted establece unas condiciones y esto siempre está volviendo tiene dos funciones una que se llama check app Keep y otra perform up Keep Entonces los no de chink la red está consultando si esa condición se cumple con el check up Keep Esa condición devuelve un buano true o false nada más true o false true false dice false false false false no
hace nada y cuando le devuelve true pum se gatilla es ejecución de nuevo no tiene que ir a darle clic a nada sino que es la red oráculos que ejecuta esa función por usted entonces puede hacerlo con el log puede hacerlo con la calendarización o puede hacerlo con una lógica customizada Hoy les voy a mostrar un ejemplo hoy día de dos que es el log y es el del custom logic que están son ejemplos bastante sencillos que están en la documentación y después usted lo puede modificar a gusto y ver qué es lo que puede hacer o se Aquí está de manera visual lo que le esta explicando de que siempre está simulando el el checkup K que es un e un call si es que alguna ha hecho una llamada por el Front end o ha interactuado con un rpc en node a través
de código es más que nada es uncir un call preguntando es verdadero falso verdadero falso devel devuelve verdadero entra el perform upip y así funciona otro servicio que es bastante interesante y casi todos creo que todos nacen a través de una limitante Y es que la blockchain es determinista quiere decir que podemos determinar los resultados de algunas ejecuciones que es blockchain es lo que es gracias a que es determinista de igual manera pero de nuevo tiene unas limitantes Entonces por esa característica intrínseca no podemos desarrollar números salvatori de manera nativa no no se puede o sea los desarrolladores se la ingeniaron de todas maneras y uno podría hacer algo
para generar un número aleatorio Pero ese número se podría ha alterado Alguien podría sacar beneficio y podría drenar algunos fondos bla bla bla etcétera etcétera entonces es un riesgo es un riesgo que se ocurre que que usted podría tener si es que decide desarrollar números alatorio de esta manera shink ofrece esto tiene uno de estos servicios que se llama brf que la generación de números aleatorios verificables a través de computación fuera de la cadena entonces lo que usted hace es que solicita a través de la ejecución de una función un número la generación de un número aleatorio
hacia fuera la cadena la red de oráculos de Chasing le genera un número aleatorio genera una Sit que le permite comprobar de que ese número no ha sido modificado y le disponibiliza a través de un callback ese número en la blockchain y ahí se lo escribe en la blockchain Y usted puede hacer y deshacer ahí lo que quiera con ese número un caso de uso que se utilizan para esto es Gaming o apuestas en cualquier caso de que usted necesite aleatoriedad que es bastante interesante otro servicio el último o uno de los últimos rao ya como el servicio estrellas que es Cross Chain interoperability protocol es un protocolo de
interoperabilidad y es preciso entender lo que es la interoperabilidad antes de hablarle de un protocolo de interoperabilidad y creo que tuvieron algo ya como si mal no recuerdo Santiago si no me corriges pero igual de todas maneras se lo voy a decir interoperabilidad es la capacidad que tienen dos o más sistemas de interactuar o intercambiar información entre sí por más de que sean incompatibles o que sean distintos eso es lo que nos permite la interoperabilidad y esto este concepto o porque nace ccip a través de de nuevo una limitante Y es que cada día tenemos má blockchain está eum o las layer 1 todas esas layer 1 que existen hoy en día sale layer 2 quizás ya hablan de layer 3 quizás después hablen de ler cuatro está la
Side chains para chains y no sé cuántos chains cada día salen más ecosistemas y algunos son bastante interesantes son bastante buenos pero están aislados entre sí son como pequeñas Islas que y aquí personalmente creo que el hecho de garantizar una interoperabilidad y es la capacidad que todas esas blockchain puedan interactuar entre sí a través de un protocolo es algo Bastante interesante porque eso le va dar más robustez al ecosistema como como web 3 no al ecosistema como solo etherium o no al ecosistema como cualquiera blockchain sino que como como un uno unificado entre todas estas blockchain podemos generar un soluciones mucho más interesantes que a mí desde el punto de vista tecnológico es lo que me
interesa Y bueno a raíz de esta limitante de que no se pueden comunicar entre sí de manera nativa hacon los preaches los prach que conocen por ahí yo he utilizado varios y no vamos a entrar en profundidad pero muchos han sido hackeados algunos puede ser descentralizados y ahí hay un tema de confiabilidad que el foco de chiling es como no No aquí no hay no confiamos como en la marca ni nada sino que de nuevo en matemáticas Esa es la base en números en hechos y aquí es cuando nace ccp que pretende generar ese protocolo de comunicación entre cadenas y apunta lo hacer como tcp el protocolo de comunicación de
Internet Pero para la blockchain sea que puedan comunicarse de manera nativa lo que lo que propone es una una única interfaz de comunicación para satisfacer esas necesidades Cross Chain de los desarrollador de los distintos protocolos en web 3 una algunas solo algunas características que tiene es que tiene unos unos carriles unas Lines que son unos caminos unidireccionales O sea que cumplen solo una función Si queremos ir de la blockchain A a la blockchain B existe un camino y si queremos hacer la inversa de la blockchain A a la blockchain a de la blockchain B bien digo a la blockchain existe otro otra Lan otro carril son carriles unidireccionales solo en una en una dirección tiene varios componentes of
Chain y Chain que le brinda una gran seguridad y descentralización la verdad es una arquitectura bastante compleja que yo les Confieso que hasta el día de hoy Sigo estudiando me pongo a escribir de repente porque pero es bastante interesante También tienen Eh bueno ya lo de los Lin ya se lo expliqué alguna de las cosas que pueden hacer con ccip que también hemos hecho algunos workshops no sé si Javier lo invitó pero después podemos compartir el link del canal de YouTube chink Community que hemos hecho varios eh workshop Y ya un par de de ccip que pueden hacer eh Ya sea una o todas estas cosas que es pueden enviar transferir información o Data desde una blockchain a otra pueden transferir tokens desde una blockchain a
otra tokens que sean soportados y al mismo tiempo pueden enviar tokens e información o sea opción uno y la opción dos al mismo tiempo y ccip funciona más que nada como esta gráfica que se ve aquí otra característica que tiene es que tiene un contrato en rotador o router que es cada uno por cada blockchain y vendría siendo El mensajero de cada una de las blockchain que se comunica con el Core del protocolo de ccip y permite esa comunicación eh de cadena Cruzada Y eso hasta ahora vamos a hacer vamos ya a tocar un poquito de código no sé si tiene alguna duda antes de de seguir creo que bueno fue harto lo que hablamos pero traté de resumirlo lo
mayor posible preguntas alguien tiene alguna pregunta eh parece que no último llamado para preguntas no no no pasa nada si no por último escribes y yo tengo el chat abierto aquí Ah vale perfecto ya vamos a ir a a tocar un poquito de código les voy copiando los códigos en el p y creo que lo tienen ahí as que no se preocupen por ello pero si me quieren seguir pueden ir a doink que es la Biblia deing vamos a dejar acá Todos los
links encar inform ación a voy a actualizar Esto está Y en este caso aquí pueden ver todos los servicios que hay no le hablé de dat dat Stream porque ahora hasta ahora soportado e solo en arbitro gerly vamos a ver no hablo de él todavía pero pueden si quisieran saber un poquito más pueden leer en la documentación oficial tampoco le mencionó functions porque nos vamos a ocupar y un poquito más complejo y lo que vamos a utilizar hoy día es Data fits y aquí pueden encontrar un poquito lo que les hablé o sea están price feits pero también tenemos proof of reserve
feits están los L2 sequencer uptime feits que es después cuando quizás vean L2 si es que lo ven eh esta L2 tiene algo se conoce como un componente tecnológico que se conoce como sequencer que es más que nada el que envía las transacciones o las transacciones agrupadas desde la L2 l1 Pero bueno también podemos a través de datafit revisar ese el estado de ese sequencer ya no es solo como les dije en un principio no solo prit sino que datata fit y prit es uno de los fits que tenemos disponibles Bueno si vamos a Getting started les voy a dejar acá
prit ahí está el link de PR dice consuming Data fits vamos a desplegar nuestro primer contrato capaz de consumir la cuá está cotizando algún activo entonces lo que vamos a hacer es que en este vayan a link escos un poquito ha abajo y aquí dice opening remix y nos va a abrir este código listo en remix Y eso lo voy a explicar es un código bastante sencillo Perdón podías repetir ese paso Sí mira está este link acá Aquí esen un poco hacia
abajo y aquí dice examina de sample un poquito más y dice opening remix hay un botoncito aquí azul una vez le damos click nos va a abrir el el contrato esto lo voy a hacer un poquito más chico aquí más que nada dice que es un contrato de de prueba que los valores están harcode ados y ya está pero yo más que nada le voy a explicar este código lo voy a esto para acá para que se vea [Música] bien Esto lo voy a lo voy a chicar para que se vea
mejor han escuchado lo que es una una interface quizás antes han utilizado una interfaz sí no puedes dar una un resumen chiquitico de lo que es una interfaz en solidity Sí claro una interfaz eh aquí en este caso Les voy a hablar acerca de vamos importar una interfaz entonces aquí esta se llama agregator v3 interface y yo abro este contrato y tengo Esto entonces Qué es una interfaz es un contrato que contiene la definición de las funciones de un contrato pero no tiene la lógica sin lógica como pueden ver acá que dice function decimals external views un yint 8 o sea lo único que me está haciendo aquí es dando la
definición de una función y ya está qué nos permite esto nos permite una interfaz nos permite interactuar con un contrato que ya esté desplegado que cumpla o que que tenga estas funciones en sí y que tiene que tener exactamente la misma definición O sea si yo tengo una función que se llama decimals en mi contrato y me devuelve un un jint eh 256 no concuerda con este entonces más que nada el el cuando ustedes por ejemplo interactúan con un token rc20 ese token rc20 es un estándar entonces ustedes pueden utilizar la interfaz del token rc20 interactuar con cualquier token rc20 siempre Y cuánto tengan ese contrato y van a poder
interactuar con él a través de esta interfaz entonces lo que tiene la interfaz es la definición del token rc20 si es que fuera el del token rc20 pero la lógica la tiene el contrato desplegado así más que nada funciona entonces acá tenemos el agregator B3 interface que me va a permitir interactuar con cualquier contrato agregador Cuáles son los contratos agregadores son los que contienen el resultado del precio que yo necesito consultar Entonces cuando nosotros fuimos a dog Chain doc chainlink ah eh Perdón Data chainlink Y vinimos aquí a bitcoin
usd yo sco hacia un poquito hacia abajo y aquí tengo un Contract address Este es el contrato agregador entonces si yo voy aquí a Contract me dice el aggregator Proxy entonces Bueno aquí tiene varios contratos pero al final no al final debiera ser al final acá Bueno Este es el contrato y debiera contener las mismas funciones por ejemplo aquí yo tengo latest answer Perdón podras aplicar un poquito es Ah ya verdad que est se ve muy chico Bueno
aquí viene el contrato que está en el Data chainlink y aquí pueden ver todo el la lógica del contrato toda toda la lógica y si si ven acá por ejemplo se llama latest round Y si yo vengo aquí a la interfaz esper un momentico una pregunta dime cuando cuando tú estas en la parte que traían los precios donde estan todos los nodos y actualizar el precio en el instrumento que tú estabas dice que por lo menos se tiene que actualizar el precio cada hora o sea Ese es el tiempo máximo Cuál es el tiempo mínimo el tiempo mínimo no tiene tiempo mínimo o sea es es vendría siendo hay
dos gatillantes el deviation threshold o el harbit el deviation threshold es que si el precio se desvía un cer en este caso es un 0.5 por hacia arriba o hacia abajo empieza una nueva Ronda de agregación una nueva Ronda de agregación es cuando terminamos con un precio un nuevo precio escrito aquí en el contrato que lo vistamos visualizando acá Entonces si nunca pasa que el precio se desvía un 0.5 hacia arriba o hacia abajo Acá empieza el hardit ent si esto nunca ocurre el harbit entra a juego que vendría siendo los 60 minutos que fue cuando cuando le estaba explicando fue justamente que est estábamos a 30 segundos le dije les voy a explicar esto y de ahí vengo y se actualizó eso Si no si no te queda claro
dime y vamos de nuevo pero no hay como un tiempo mínimo o sea el tiempo mínimo y Máximo a lo menos sería una H ahora en este caso porque cambia pero digamos en este caso y si el instrumento trae el precio yo estoy haciendo operaciones en corto donde a minuto está actualizando el precio en la cotización si este tiene una variación superior del 0.5 automática él empieza a hacer de nuevo la actualización y vota el precio en el instrumento para yo saber cuánto fue esa variación y cuál es el precio que está cotizando es que en ese caso tú dices como porque digamos me quedan duda Yo estoy trayendo la información entonces yo digo listo btc frente a usd está cotizando en ese valor Okay si no tiene
una variación del 0.5 por está estimado entre ese hbit de que está contando Pues en en retroceso pero si hay una variación y yo no voy a esperar los 40 sino que en mi gráfico de velas a minuto hay un cambio de precio entonces ahí el tema no no entiendo cómo trae actualizado en una temporalidad más corta si hay un cambio significativo del precio si tú me dices que se actualiza en determinado tiempo claro este este caso en específico eh lo que la pregunta que hace es una pregunta muy buena porque es una necesidad que salió y bueno yo no les expliqué porque tampoco lo manejo tan a fondo que es eh Data streams que es para
esos casos de uso que quieren les voy a compartir Igual acá dat streams que es para esos casos de uso o sea si tú quieres simular recuerda que aquí estamos consumiendo esta información la estamos utilizando en la en la blockchain Entonces si tú quieres simular una plataforma de trading en la blockchain eso es son transacción transacción transacción transacción si tú quieres tener el precio muy muy actualizado entonces para ese caso de uso que nació si no me equivoco no sé si conocen gmx que es un es un protocolo pero nació por una por una solicitud de gmx de que Oye
yo necesito actualizar muy muy rápido los precios y esto no me sirve sea pric no me sirve para eso esto utiliza para los swaps entonces para eso eh est dat streams que es distinto el dat Stream funciona no recuerdo ahora la palabra técnica pero aquí es el mismo precio digamos que hay como un Cómo decirlo como un gatillante desde fuera de la cadena para que se actualice un precio dentro de la cadena Porque si el precio que que está considerando en el mundo real cambia mucho pum se gatilla un nuevo una nueva solicitud pero en este caso datastream funciona distinto es alguien dentro de la cadena el que solicita el último precio
actualizado Entonces si tú estás viendo como tú dices las velas las velas dice ya ejecútela ahora e la transacción pum ahí tú solicitas y te devuelve el precio pero así como vamos decirlo como al clavo o sea el precio exactamente actualizado pero aquí hay un margen O sea si tú revisas Acá hay un pequeño margen de diferencia o sea probablemente si yo voy a Coin geek a Coin Market cap no sé está 37800 hay 30 de diferencia Entonces eso pasa por por esto mismo porque es bajo estas condiciones pero para el caso que tú especificas Data Stream es lo que se utiliza vale muchas gracias vale claro Bueno lo que le estaba explicando
es que vamos a utilizar la interfaz de agitor B3 interface y vamos a digamos a instanciar algunas de las ades que ya puede ser bitcoin usd tenemos varias opciones para ocupar en testnet Pero algún precio o algún contrato que contenga la cotización de uno de estos activos Entonces si nosotros vamos la interfaz la definición de un contrato la lógica solo las funciones Yo pued acá puedo buscar latest round Data Y si yo vengo aquí al contrato eh voy a encontrar Bueno aquí dice en este caso voy a encontrar esa función y aquí me dice s porque esto es un tema de
herencia o sea está trayendo la lógica desde el contrato padre eso es lo que está haciendo y no sé si Acá está importado y parece que no eh aquí no está la interfaz Pero bueno eso es lo que hace Está importante un contrato padre eh pero la la lógica en sí está definida Dentro de este contrato después si quieren pueden revisarlo lo único que tienen que hacer es que van a e data.to chainlink y agarran cualquiera de estos precios de estos pares de activos y el código es el mismo pero después lo ven en el explorador Entonces vamos a interactuar a través de esta interfaz que se llama
agregator B3 interface con alguno de esos contratos entonces aquí más que nada estamos importando esa interfaz después tenemos un contrato que se llama Data consumer B3 un contrato de ejemplo y luego definimos una variable interna que se llama datafit que es de tipo agregator B3 interface acá nos dice que este es de la red de sepolia agregator ptc usd y nos Define el address y aquí la está codeando lo que está diciendo aquí es que si nosotros venimos y desplegamos este contrato solo va a funcionar en cepia pero vamos a hacer vamos a Modificar un poco Este ejemplo y lo que voy a hacer Es que esto lo voy a
comentar voy a desarrollar una pequeña función después Le copio el código así que no se preocupe voy a desarrollar una pequeña función que me devuelva eh voy a pedir por parámetro cualquier adrees y voy a devolver por parámetro esa par agator interface vamos hacer así agator interface se va llamar la función yo voy a pedir un address por parámetro que se tipo public vi cre puede ser voy a devolver agator interf que voy
aver volver siempre el address parcial agregator v3 interface entonces así aquí hice una pequeña modificación Entonces esto lo voy a comentar esto también lo voy a comentar para que no solo tener acceso a una interfaz que esté J cada sino que después pueden hacer la prueba con la que ustedes quieran y acá abajito buen ahora tenemos un error porque algunas cosas pero ya lo vamos a solucionar eh se llama get una función que se llama get ch link datafit latest answer es de tipo público y retorna un int un integer
unint Y qué está haciendo aquí pueden ver que aquí yo tengo un paréntesis que se abre y se cierra y dentro tengo unas líneas comentadas tengo una coma después tengo un int answer que es una variable estoy declarando y después tengo coma coma y tengo un código comentado entonces aquí me dice igual a datafit latest round Data Esto es lo que está haciendo es que del datafit que era la variable que teníamos declarada anteriormente o sea de ese contrato Proxy o aggregator Ejecutan la función latest round Data si yo vengo aquí a la interfaz y Busco la función latest round Data me dice que
devuelve un u in 80 un in 56 que es el answer o sea tiene 1 2 3 4 5 parámetros que está devolviendo Y si yo vengo acá tengo 1 2 3 4 5 o sea solidity nos permite declarar en la misma línea una variable y asignarle el valor a esa variable según el retorno que tengo una función Entonces esta función lest round Data me está devolviendo todos estos datos acá Todos estos datos pero yo solo voy a utilizar el int que en este caso le puse answer que es tal cual se llama aquí se llama answer pero podría ponerle el nombre que yo quisiera Entonces lo otr
las otras variables Yo solo le pongo lo comento y está la coma y eso representa de que no las voy a utilizar o sea Solamente le voy a declarar el el valor a la variable answer y después Data latest round Data pero aquí esto tenemos que modificarlo un poco porque lo que quiero es que ingresemos cualquier address de un contrato Proxy y nos devuelva la información sin importar El par que sea entonces aquí lo que voy a hacer exactamente lo mismo voy a pedir un address una variable address que se llama address de tipo address y acá como tengo esta función get aggregator v3
interface la voy a llamar le voy a enviar por parámetro ad y ya como ahí me contiene todas le digo que me ejecute la función gat latest round Data y aquí me devuelve al ler entonces si yo vengo aquí a Data Chain antes de que despleguemos el contrato voy a volver a bitcoin usd aquí pueden ver que tengo 37831 y si yo vengo aquí al contrato acá y lo abro aquí en la parte de contracts Contract tengo las funciones read Contract las funciones de lectura y
las funciones de escritura en este caso la de read Contract y esta se llama get se llama latest round Data si no me equivoco latest round Data latest round Data que es esta le round Data Entonces yo puedo darle a query y me devuelve el valor y aquí ve que dice 37313 7831 33 bueno se ve un número gigante que ya le voy a explicar por qué se ve así cómo es que interpretas que esto es 37831 quizás se pudieran preguntar ya Se los voy a decir pero esto es básicamente el resultado que da bitcoin
usd y en el contrato solo Vamos a utilizar aner ya me dijeron que ya habían utilizado un seepia Así que esto lo vamos a hacer decum sepolia cómo hacemos el despliegue Pero antes de hacer el despliegue le voy a copiar todo el código para que usted solo copie y pegue entonces este es el price consumer c ahí le copié y le pegué Déjenme actualizar esto que me sale un error a ver si se actualizó el código Bueno ahí está pueden agarrar este código y
pegarlo en remix y lo lo que vamos a hacer ahora es el despliegue cómo hacemos el despliegue vamos un 2 3 4 5 a parte de deploy and r transactions que es la El quinto botoncito lo primero es en environment nos aseguramos est darle click a injected Provider y nos conecta con metamask o el proveedor que tengamos en nuestro navegador voy a verificar la red porque ahora estoy conectado en abx así que me voy a cambiar a eum seepia Tengo suficiente cum seepia y con eso ya está 100% seguro es que aquí en Contract
hemos seleccionado Data consumer B3 que es el contrato que tenemos aquí y le voy a dar a deploy y me levanta metamask y ahí me confirmó la transacción lo siguiente Es que yo les mostré Aquí esta interfaz Pero estos son los valores que representan a a mainet si nosotros quisiéramos saber el address porque aquí tenemos el Contract address de mainet y nosotros estamos desplegando el zum seepia Cómo podemos acceder a esa información voy a volver a la
documentación y aquí dice fit addresses en el el menú de izquierda igual se lo voy a copiar pero dice price feit addresses Entonces le voy a copiar el link acá alguien cortó aquí eh price feed Ah ah sí ahí les dejé las el link para que puedan revisar pero vamos a escolar un poquito hacia abajo aquí explica más que nada la eh un poquito la documentación y tenemos las distintas redes si yo voy a darle clic etherium y tengo aquí lo primero es cum mainet Así que voy a bajar voy a bajar y
aquí tengo seep testnet y Aquí tengo las distintas los distintos precios que están disponibles entonces demos con bitcoin usd le voy a dar aquí en el botoncito de copiar y voy a volver a remix voy aquí a la parte de deployed contracts bajo un poquito y tengo la la función get get chink datafit latest answer Aquí voy aquí puedo venir y copiar cualquiera de estas ad la que usted quiera que quiera revisar Entonces vamos a ver primero esta vamos a dar a call y aquí me dice 37 87
37876 bueno puede ver que hay una pequeña diferencia con este que está acá porque igual es testnet Y eso es lo que lo que la diferencia que hay una pequeña diferencia entre ellos pero usted Se preguntará que aquí se ve un número enorme Bueno este número como pueden ver aquí edes dirán Bueno cómo sabes que este número representa 37000 876 660 solidity no nos permite generar números decimales de manera de nuevo dobles o decimals de manera nativa lo que
hicieron los desarrolladores fue representar esos decimales de la siguiente manera la el token de los estándar y de los de los toques nativos es 18 decimales Qué quiere decir esto que si usted cuenta 18 números de derecha a izquierda recién el el el número 19 o claro el número 19 representa una unidad entonces si yo vengo acá bitcoin etherium está representado con 18 si yo vongo acá bitcoin usd que es el que nosotros consultamos está representado con ocho decimales si yo voy a contar de derecha a izquierda 1 2 3 4 5 6 7 8 Qué quiere decir esto
después en recién en noveno número empieza a representar eh una unidad Entonces es 37000 876 com 66 bla bla bla bla bl bl entonces si usted quiere verificar porque usted va a obtener este número si usted va a ocupar prit para un caso de uso en mainet o en producción tiene que corroborar bien la documentación Porque aquí se ve Por cuántos decimales está representado eso ejemplo las stable coins usdt ocupa se si va ser hay algunas transacciones unos swaps siempre tiene que trabajar con con la misma cantidad de decimales o
trabajar bien el código este es uno de los casos eso y podemos probar pueden agarrar el quean por ejemplo Die usd lo voy a copiar aquí la pego lo llamo y está utilizando a 1,01 puedo agarrar cualquier otro cuánto está coando l usd la voy a llamar y está cotizando 14 73 y así pueden hacerlo con cualquiera eso eso Si tien alguna duda de de prit por ahora pero tampoco es alta información pero tampoco utilizarlo
es bastante sencillo lo que bueno si no tienen duda le voy a dar un bueno si tienen t Med Santiago pero eh un consejo que ya si quieren ir un poquito más a fondo en la documentación van a encontrar lo que les voy a contar pero aquí le quiero contar sobre estas dos estas dos valores que retornan uno es started ad y otro es el Time stamp el started ad es cuando empezó La Ronda de agregación o sea delante cuando nosotros estábamos viendo esto en vivo esto llegó a cero y empezó una nueva Ronda de agregación pero el precio no no actualizó inmediatamente porque sucede todo un proceso fuera de la cadena se calcula se calcula y se escribe de nuevo
Entonces estos valores por ejemplo empezó eh a las 10 por decirte algo y terminó las 11 o sea hay una puede terminar en el mismo bloque Pero puede terminar en un bloque distinto entonces si usted llegase el día de mañana a trabajar con prits en mainnet tiene que validar utilizar este Time stamp este valor de Time stamp y validar siempre que sea mayor que cero este valor Siempre será mayor que cero Porque si usted revisa puede tener un valor en answerer pero Time stamp puede ser igual a cero Time stamp quiere decir que la ronda
terminó y es realmente el último precio actualizado solo como como dato eso tien alguna duda me dices si no seguimos Perdón pregunto alguien tiene dudas preguntas no no hay preguntas vamos bien pudieron ejecutarlos pudieron dat una vuelta y hayan podido desplegar el contrato lev la mano quién tiene que ha podido desplegar el contrato tú pudiste cierto si han podido ya buenísima vamos a hacer un segundo bajar latina está entrando el sol
ahora vamos a utilizar automation por automatizar la ejecución de los contratos c vamos a hacer un ejemplo ya aquí estoo un poquito más complejo no sé qué tanto manejan solidity pero les voy a tratando de explicar eh más menos qué es lo que hace línea por línea para que quede bien claro Así que vamos a ir a so. chainlink y voy a ir a automation aquí va a tener un poquito aquí un pequeño deama que le explica más o menos muestra de manera gráfica lo que le decía antes o sea está preguntando si el momento que devuelve un no vuelve a
preguntar y cuando vuelve Yes o un true ahí se ve está chequeando las condiciones dice que no pregunta de nuevo pregunta Nuevamente da yes y empieza pum pum pum y ejecuta la función en la block eso es lo que hace simplemente Entonces voy ating started y necesito este custom logic acá siempre que desarrollo un contrato que va a utilizar automation tiene que ser automation comp y le voy a dejar este
[Música] código Este es el ejemplo de c logic que tiene que ser voy a cerrar abrir AC que poquito scen hacia abajo y exactamente lo que hicimos anteriormente dele in remix y le va a abrir el código y se lo voy a explicar lo que le venía diciendo es que tiene que ser automation compatible o compatible con automation porque de otra manera los nodos no tienen como comunicarse con el
contrato voy a hacer esto más chiquitito voy a borrar la documentación voy a borrar esto voy a explicar y vamos a hacer lo siguiente el código se ve algo así definimos la versión de solidity Y en este caso estamos importando un contrato que se llama automation compati después definimos un contrato que se llama Counter y hereda esto que diga sea hereda de automation compatible interface eso es lo que estamos
haciendo después vamos a definir tres variables de Estados con el propósito de que este contrato de automation que vamos a utilizar automation qué es lo que va a hacer vamos a tener un contador que va a partir en cero o en uno y va a ir cada 60 Segundos aumentando del uno en uno uno en uno uno en uno ent autom lo que va a validar es han pasado 60 Segundos sí no si han pasado 60 Segundos p empieza de nuevo o ejecuta automa entonces actualiza el valor suma uno y empieza el contador de tiempo de nuevo y así sucesivamente entonces la red de no va a estar preguntando han pasado 60 Segundos
han pasado 60 Segundos sí o no el momento decí parte eso es lo que vamos a hacer en este contrato y para eso necesitamos la siguiente configuración o el siguiente código uno es un un una variable 56 que se llama Counter que es básicamente el contador donde vamos a ir almacenando como va ese contador un segundo que van hacer una pregunta dime eh Hola unas preguntas es buenas la el que va a validar es contra last time stamp claro o sea por fuera pregunta cuál es la stam stamp con el tiempo que tenga por fuera Cuando pasa 60
actúa Sí o sea pero va a preguntar desde afuera pero va a validar con el tiempo de la blockchain eso lo viene eso lo validamos aquí eso le voy a explicar ya en unos minutos pero esa línea está valid se valida aquí le el último last time stamp claro el block pun Time stamp o sea el momento actual menos el last time stamp Y eso básicamente es la diferencia de de ahora al último que es esta variable que tenemos acá pasado ha pasado más tiempo del intervalo que hemos definido el inter el intervalo lo vamos a definir
por 60 Segundos podrían ser 30 lo que nosotros queramos pero en este caso lo vamos a hacer con 60 Segundos claro y lo va a comprobar con last time stamp Esas son las variables que tenemos el contador va actualizando valo que van a ser 60 Segundos pueden hacerlo ustedes con 30 Si quieren háganlo háganlo hgan la prueba y el last time stamp que es lo que decía ahí el compañero que es la variable con la que vamos a ir comprobando el momento actual versus last time stamp que se va a ir actualizando para saber si si devuelve un true o devuelve un false Entonces lo primero que tenemos que hacer lo primero que vamos a hacer es el constructor el
constructor es una función que se ejecuta solo una vez en el contrato y es cuando se despliega vamos a definir el intervalo que pedimos por parámetro y el last time stamp o sea esa variable que tenemos acá arriba va a ser igual a block Time stamp o sea last time stamp va a ser igual a pum en el momento que se se m se se genere el bloque eso básicamente y el contador va a partir en cero Eso es lo que vamos a hacer aquí en el constructor o sea ahí parte como todo el juego toda la lógica y aquí en check up Keep es la función que yo les contaba ad anes cuando como la parte teórica que es la que devuelve el buano devuelve si en la red de nodos está llamando siempre ejecutando esta función y esta función
de true false vemos qué pasa entonces no se preocupe por por esto si si le parece medio raro pero más que nada pide un by que un c Data es de tipo externa una vista y retorna un bullano que se llama upip O sea que si es necesario el upip y devuelve esto Esto no se preocupe Déjelo así el upip need o sea el valor que está retornando va a ser igual a lo a lo que preguntaba el compañero la diferencia entre ahora menos last time stamp es mayor a 60 Segundos al intervalo sí o no y ya está eso es lo que está haciendo y luego
en perform up como si usted revisa la documentación como buena práctica se le recomienda que vuelva a hac exactamente la misma validación vuelva a serc exactamente la misma validación entonces hace exactamente la misma validación estamos viendo acá eso pasa en last time St va a ser de nuevo es como que reinicio el tiempo bl vuelve a ser el momento actual y el contador le sumo uno ya si usted quiere cambiar esto y quizás esto quiere sumarle no sé más 20 segundo haga lo que haga Ah haga el juego que quiera y vea cómo se comporta Pero esto funciona
así entonces ya ya entendemos un poquito el código cómo funciona es bastante sencillo es como la parte introductoria para vean cómo funciona y ahora a diferencia de prit que en testing no se requiere porque hay los servicios de ch se requieren pagar con el token link entonces para este caso de automation si necesitamos en testing pagar con el token link Entonces cómo obtenemos el token link esto lo vamos a hacer igual en eum sepolia Así que voy a ir a fets chainlink voy a dejar acá el link que lo
[Música] tengan chink les pego el link y la interfaz es algo como esta debiera reconocer aquí unia igual compruébelo de todas maneras pero se conecta con la wallet si que nunca se ha conectado debiera darle conall y ya está Y aquí tiene un pequeño capcha an con cu patas [Música] cuas ahí está una vez pasado el capcha le dan
a Envíame 20 testnet link y se muer un poquito y le va a enviar 20 links de prueba lo que vamos a hacer es también agregar el token link a metamask para que visualicemos cuánto tenemos creo que ya lo tengo agregado yo Pero igual les voy a mostrar cómo hacerlo un poquito por la confirmación y ahí se transfirieron los tokens perfecto voy a abrir el transaction Hash ust pudiera sacar el ad de la documentación Yo la voy a sacar aquí explorador voy a pegar aquí en shink
token Aquí tengo una vez que cargue Aquí está el se la voy a copiar en este es sepolia por si acaso sepolia esto ya lo puedo cerrar le puedo dar Close voy a venir aquí a metamask aquí en la sección de tokens ya tengo link pero usted puede darle click a importar token pega del contrato dice que ya lo tengo agregado pero si usted no lo tiene agregado lo copia le va a cargar todo le da siguiente y una vez le de siguiente
se le va a ver como esto yo tengo 97.1 para que vea Cuántos links tiene y compruebe de que le hayan llegado de manera satisfactoria Entonces qué es lo siguiente una vez ya tenemos aquí el contrato lo vamos a desplegar entonces voy a darle de nuevo al botón deploy and r transactions al environment le voy a dar injected Provider y aquí me dice update interval cuánto va a ser el intervalo lo voy a definir en 60 Segundos porque entre lo que desp el contrato y hag una configuración me va a actualizar inmediatamente El precio ya lo van el precio el valor de Counter ya lo van a ver entonces comprobemos que estamos en
cepola antes de cualquier cosa y debiera as decir Cia perfecto le doy click en transact clic en confirmar ch Chan Chan Esperamos que se despliegue listo ahí desplegó ahora podemos validar por ejemplo que el counter vale cero el intervalo 60 Segundos stamp eso es lo que tiene
guardado perfecto vendr siendo el siguiente paso ya desplegamos nuestro contrato siguiente paso es ir a automation link es una interfaz bastante bonita que nos permite administrar nuestros kit voy a copiar voy a pegar [Música] aquí automation link voy a copiar lo vo a cerrar perfecto qué hacemos acá primero yo no tengo Apps acá Pero quizás he tenido algunos si tengo algunos que he utilizado antes caso de prueba y pueden revisar historial la
interfaz es bastante bonita y le dan a register New app aquí tien las tres categorías que le había mencionado anteriormente Time based custom logic log Trigger cuál vamos a ocupar nosotros en este caso es custom logic next me dice Target Contract address qué vendrá siendo este Target Contract address el address del contrato que desplegamos ent vengo a remix y aquí en la parte que tengo desplegado el contrato le voy a dar copiar le voy dar pegar a mí aquí dice que es imposible o que no puede verificar que es automation
compatible Nosotros sabemos que es automation compatible Así que le d vamos a next el up Keep name le vamos a dar a prueba automation el admin address agarra el address por defecto el gas limit puede modificarlo pero déjelo como está porque es una ejecución bastante sencilla ya si tiene caso de uso más complejo puede ir modificando este parámetro starting link balance le voy a dar uno o sea le voy a depositar un link porque voy a pagar con link y lo demás déjelo como está no se preocupen esto es por si queremos chequear más Data es como tema un poquito más avanzado pero no es necesario para
nosotros luego bajamos le damos a register upkeep estamos solicitando la registración o el registro d a confirmar recibiendo la confirmación esperamos un poquito está demorando y ahí está y voy
darle A View upk y aquí tenemos el prueba automation si quieren pueden Volver al Home y ahora en myips tengo uno en active le doy click y aquí está toda la configuración y bueno Esto es lo que les decía de que Ah Se me fue Ah cuando ustedes recién despegan el contrato solo tien un registro que se llama F app Keep vend siendo el depósito que hicimos de link 1.09 luego se ejecutó el perform appk porque ya habían pasado los 60 Segundos y me
utilizó menos de aquí dice - 0.08 ta link que utilizó para ejecutar la función perform app Keep Entonces ahora si vuelvo a remix Recuerda que teníamos el contador era cero Ahora tiene que ser uno y el last time stamp tiene que ser otro número distinto Entonces el contador ahora es uno last time St se ha modificado un poco y esto tienen que pasar los 60 Segundos y se va volver a actualizar pero así es como funciona de esa manera hemos a través de automation con custom logic automatizado la actualización de un
contador en un contrato sencillo pero la gracia es que se queden con estas dos funciones perform check devuelve un buano y más que nada ejecuta lo que nosotros necesitemos y que sea automation compatible Esos son los requisitos y ya está bueno Y obviamente que venga la interfaz Déjame preguntar aquí si alguien de pronto tiene alguna pregunta duda respecto a automation Dale todo muy claro si quieren aquí en check app Keep pueden mandar un arreglo vacío esos corchetes abren y en corchetes y podemos validar que nos devuelva false o as estoy preguntando aquí diendo false en el momento que devuelva true vamos a
esperar un poquito en la interfaz actualizamos y ya el contador debiera costar dos vale perfecto No aquí no tenemos más preguntas listo veamos que lo haga la última vez y vamos con Quiz ya lo hizo mientras estaba hablando para que vean ya lo hizo por segunda vez y voy a ir al contador va el contador y ya es dos y así Eso de esa manera funciona otra manera que otra característica de automation o otra de las opciones que tiene automation es ocupar el lock Trigger y ya con esto sig la última y y y nos vamos pero es es muy
parecido Solo que vamos a desplegar dos contratos y va a tener eh un poquito más de configuración y y ya está pero son contratos bastante la gracias que se vayan con el concepto ver cómo funciona voy a hacer a remix y aquí tengo register custom Aquí está Creo que este es el ejemplo Sí ya qué es lo que vamos a hacer ahora les voy a copiar este porque recién vimos bueno el código no lo modifiqué y no se lo copié acá así que el mismo de la documentación y aquí le voy a pegar el de automation lock
Trigger está ahí tien el link y pueden venir aquí a la página y aquí hay que desplegar dos contratos Entonces vamos siamos un poquito tengo el emit alog es un contrato muy sencillo lo voy a abir ya está la única diferencia que hay aquí es que esto Solo está disponible en lock Trigger en arbitrium gerly Así que no podemos utilizarlo en otra blockchain pero lo vamos a hacer en arbitrum gerly o sea vamos a ver Bueno yo tengo fondo ya lo tengo agregado pero igual les voy a enseñar cómo hacerlo y pero el fet funciona Porque así pueden hacerlo
ustedes también lo vamos a probar en vivo y en directo pero este contrato es muy sencillo es un contrato bueno la versión de solidity elato se llama account emit log Y tenemos un evento si que no han desarrollado antes eventos eh lucen Como esto O sea la palabra reserva evento después defino el evento el nombre del evento y puedo enviar agregar aquí eh Hasta si no me equivoco son ocho parámetros son 87 son Sí o sí 87 pero solo tres indexados Ya solo pueden ir TR indexado Entonces yo aquí podría decir eh un String o se puedo poner un uint que sea indexes y SD ya y después acá tengo que enviar otro
ser algo como así tengo un evento el nombre del evento y después entre paréntesis defino la cantidad de parámetros que yo quiero guardar en los logs en este caso vamos a utilizar uno pero de esta manera separado por coma puedo agregar otro y recuerde que eso pueden tres indexados y luego tenemos una función que lo único que hace es emitir el evento nada más que eso y como emite un evento bueno utilizando la palabra reservada meit con el nombre del evento y ya envío por parámetro correspond los parámetros entre paréntesis y que tienen que tener correspondencia con la definición del evento Claro está ent no me interesa enviar este uint porque no lo vamos a
utilizar Pero esto es lo que hace ya entonces voy a venir aquí a la parte de archivos eh samples este es automation y luego pueden venir aquí a la parte doain automation log díganme si les aparece ahí porque no sé si me aparece porque yo ya lo trabajé antes o porque no aparece ya entonces lo que vamos a hacer es que van lo voy a borrar para que como yo ya hice el ejercicio anteriormente para ver queo funcionara lo voy a borrar voy a venir a la documentación y aquí
más que nada Explica lo que les voy a decir y cómo funciona y bla bl Bla pero aquí vamos a bajar un poquito la siguiente sección del código y vamos a copiar aquí el código todo el código y este se llama with log yo vena aquí a la misma parte automation voy a darle clic derecho a la carpeta New file with log voy a pegar todo el código y se ve algo como esto lo a hacer un poquito más
chiquitito y qué tenemos aquí tenemos Bueno aquí está todo el código junto usted pudiera separarlo para que sea como más fácil comprensión Espero que no se le haga más complicado pero se lo voy a explicar de todas maneras definimos la palabra o sea la versión de solidity lo mismo de siempre y aquí un stru un strut es como un objeto en otro lenguaje de programación y básicamente están aquí definidas las propiedades y aquí habla de qué se trata el Index el del log en el bloque Bla bl bla bla bla qué es lo que hace después tiene la interfaz que se llama interfaz eh el log automation que
necesitamos implementarla Sí o sí en nuestro contrato que va a utilizar el log Trigger porque de otra manera es como el automation compatible pero en este caso es el interface eh o la interface log automation o e log automation entonces dentro del mismo archivo está definido el stru está definido la interfaces Ay usted podría traer este stru dentro eh del contrato hay otros desarrolladores que tienen unos contratos solo como eh librería y tienen la stru o hay como ustedes quieran pero aquí para hacerlo un poquito más simple está todo en el mismo archivo lo mismo con la interfaz podría declarar otro archivo con la interfaz y importarla y hacer el proceso como usted
quisiere pero eso es un stru y el contrato que hereda de log automation aquí tenemos o la definición de otro evento que dice counted by que más que nada es para emitir un evento de Quién hizo el último conteo aquí estamos definiendo una variable que se llama counted con valor cero inicializa con valor cero básicamente lo que se hizo y aquí tenemos una función que se llama check log Y esto es el simil del checkup Keep que tuviéramos con custom logic pero en
este caso con el log Trigger que se llama check log Y aquí tiene el log Data log este log que es es el str que teníamos anteriormente ent va a enviar ese log y va a devolver juliano si es que eso es true va ejecutar la función perform y qué va a hacer Esto va a contar Es que es la misma lógica que el contrato anterior le va a sumar uno y después alre Aquí defiende tiene un define un address que se llama log
sender y aquí lo que está está decodificando del perform Data el address A quién la envió y después emite un evento que se llama counted by lock sender eso es lo que está haciendo esto es un poquito más complejo si es que nunca han trabajado con eh quizás con bytes pero básicamente usted puede en codear y de codear bytes y aquí en este caso lo que se está diciendo es que este perform up Keep está Viene como bytes en codiado como bytes aquí está y lo estoy yo sé que es un address Y si yo sé cuál es el tipo de dato que me viene puedo de codificarlo eso es lo
que estoy haciendo es como que lo estuviera eh No mejor no lo enredo tema pero es eso Yo sé que esto es un address porque aquí dice loog sender el log sender y lo estoy encode a bites esto es lo que hace estei encode podame esto a bytes Y eso después me va a llegar al perform up Keep lo que me va a venir por por parámetro y es lo que va a hacer ya está lo va a de codear y lo voy a emitir un evento es es lo que está haciendo y lo que me interesa bueno Esto que arriba es es el check loock Como le decía pero lo que lo que me interesa a mí mostrarles es este topic esto como un
poquito tampoco es tan avanzado no quiero decir que está tan avanzado pero si estudian los logs un poquito más a profundidad se escapa un poco del como el scope de este digamos de este workshop pero si profundizan un poquito más en solidity los logs tiene algo que se llaman topics y los topics el topic un siempre va a ser la definición de la función y ya el topic 1 dos y 3 porque esto es un arreglo entonces que está en la posición cero que vendría siendo el primero es la definición del evento en sí y el topic 1 dos y TR son los tres parámetros que pueden ir indexados que que es lo que definimos acá en este caso solo Tenemos
uno es el message sender pero si usted tuviera tres usted podrías hacer acá jugar con ese topic log topic eh Ay perdón log punto punto topics eh dos y con el tres pueden ser hasta tres porque hasta tres parámetros se pueden indexar cuando están indexados se llaman topics o tópicos ya como dato pero por si tienen la duda se escapa un poco del scope ahora lo que vamos a hacer es que a desplegar los contratos en arbitrium gly y vamos a ver qué es lo que pasa entonces voy a ir al necesitamos paet
Perdón le dice gerly es arbitrum gerly arbitrum girly veamos que esperemos que funcione s que hay uno que funciona que tiene que ser este este Sí ya voy a abrir metamask ya Mira vamos de nuo por si alguien nunca ha agregado arbit a metamask de esta manera podríamos [Música] hacerlo podrías ir pegando los links de Chain list el en el por favor ya al tiro le voy a dejar acá lo de link lo
Trigger entonces este es el faet Este es el ch list list voy tenemos dos maneras de hacerlo la que más acomode pero se voyar los dos bueno es solo este rist es este link le voy a hac lo siguiente pued hacerlo en y creo que el de también lo tiene disponible ahora voy hacer las dos maneras hag que usted má la acomode si venemos a venimos a chainlist.org podemos escribir arbitrum y denle click en include testnet Entonces le va la va a incluir
las testnet yo ya tengo conectado metamas o ya lo he hecho antes si tiene el botón aquí de conectar con la wallet hágalo si no arbitrum si bajamos un poquito aquí está arbitrum gerly y dele add to metamask y le debiera levantar el popup yo ya lo tengo agregado Así que no hace nada pero debiera agregarle arly si no le hace nada no le funciona la página y si ya quiero utilizar la otra manera vay achain link del aquí al bitly si es que no tiene agregada la red
se le debiera dar la opción de agregar inmediatamente en mi caso yo ya la tengo agregada Así que le voy a dar a cambiar Tiene la opción de o tiene la opción de venir al ambas debieran funcionar ambas debieran funcionar ya con esto Ahora yo puedo venir acá yo tengo dos que no tengo problemas y no necesitamos mucho tampoco copie su venga al arbitrum girly faet y nos van a dar 0.0001 que debiera ser suficiente bueno dice que tiene bueno Esto es lo que pasa que a veces no
funciona díganme si alguien puede sacar confirmen si no tenemos que probar después Bueno yo tengo para poder hacer el ejemplo pero lo pueden hacer después y lo que necesito es solicitar link de prueba díganme igual si pueden entrar pero a mí no no me funcionó dice hga tengo que resolver este capcha para pedir un poquito de link eh No este no sí Ese sí resolver el capcha porque también necesitamos link para arbitrum gerly porque solicitamos denante para sirum seia pero est es una red distinta nos dice que tengo problemas con mi rpc puede ser que por lo mismo A
ver está voy a hacer chist está medio mareado ahí si creo que ahí funciona buen Soy humano voy a resolver el capcha nuevamente animal con cu el gato el gato el gato está que me me envíe 20 link de prueba ahí está a ver si probamos nuevamente bueno Esto es la página web el faet de libro veamos si es que no creo que sea por el
rpc de nuevo request no tengo díganme si alguien puede pedir de repente puede ser porque tengo muchos pero si no no intenté si no pude no ya y no miren alguien que miren pongan acá si alguien está haciendo el ejemplo y quiere hacerlo inmediatamente tú tienes para enviar algo Javier igual tengo podemos enviar algo aquí tengo un poco Bueno si alguien quiere hacerlo Ponga su nombre y su adre acá y yo le envío para que hagamos para que puedan
hacer el ejemplo si nad lo está haciendo No importa solo vean lado si quieres Envíame ahí silbert mándame Y si alguno quiere yo me encargo de de mandar porque tengo 0.009 no le voy a decir cómo hice para conseguir tanto pero tengo harto dos es es bastante bueno igual esta red la van a deprecar muy luego Así que tampoco me sirve
mucho Listo Ya está es lo siguiente sí no sé si Bueno si alguno si alguno quiere poner su adre y quiere tokens de prueba en arbitrum pongo la dirección ahí en el en el pad no Sí para que puedan hacer ejercicio si no lo hacen después con calma tranquilo voy a ahora desplegar el count emit log lo voy a desplegar rayos lo voy a sacar un poco porque se me fue aquí ir environment eh injected Provider estoy conectado y ahora sí le puedo dar a deploy Ya mira este si le llega a salir este error fue porque bueno esta red la van a deprecar se actualizó la eum
virtual Machine hay algunas redes de prueba que la han actualizado otras no y lo que me está diciendo aquí es que el op code se p 0 no coincide con la versión de la IBM Entonces yo lo que voy a hacer vo a ir aquí a solidity compiler Advanced configurations compiler configuration y voy a seleccionar París que llegasen a tener este error que París la versión actual de la IBM es Shangai y con París no debieran tener problemas Incluso le puede pasar esto si utilizan algunos program algunos contratos antiguos de open y bla bla bl Listo ya una vez que lo tengo le voy a dar deploy puede que bueno va que aquí
no va a arrancar nunca la transacción porque remix tiene un bug hace algún tiempo que si una transacción No anda después hay que recargar todo así que voy a darle refresh a la página volver a cargar en los archivos Necesito el count el log y voy a environment inject Provider en Contract 100% seguro que tengo seleccionado count log y lo voy a desplegar y ahora sí ahí
anda le voy a dar a confirmar y se desplegó el contrato ahora me Necesito desplegar el count with log lo mismo tengo seleccionado with log ya puedo desplegarlo y le voy a dar a confirmar voy a cerrar esto voy a cerrar esto voy a volver a ir a automation chainlink tengo los dos contratos desplegados detectando la [Música]
wallet estoy en arbit detecting wallet refres yit y tengo el de mi contrato se ahora le voy a dar register New up Keep muy similar al proceso que hicimos anteriormente pero en este caso es el log Trigger le voy a dar a next le voy a dar a lock Trigger que ya está el Contract automate es el pum pum pum el count emit
log count with log no el count with log este este que está AC with log lo voy a copiar voy a pegar elar dice Contract emsl el contrato que estamos ocupando parair los log el count emit log aquí en deploy Contract emit log es este y lo voy a pegar voy a dar me dice que no puede obtener el Abi que necesita Eli as que lo que vamos a hacer es ir acá a remix en la parte de
solidity compiler le voy a dar click tengo que tener seleccionado el contrato count emit log y acá abajito me dice el Abi Eli es el application binary interface que es básicamente la definición toda la definición del contrato en un archivo j next y como pueden ver se llama AC este caso ú tenemos
yer lo mismo que hicimos anteriormente el admin address No pasa nada Es lo cons automático gas limit como es algo muy básico necesario modificarlo starting balance Le vamos aar un link check Data esto es opcional no se preocupen por ello email o lo otro ya está y podemos darle a register app Keep le voy a dar a confirmar y Chan Chan Chan esperamos a que termine de manera satisfactoria Perfecto
viip aquí tenemos toda la configuración todo el detalle la primera línea que les explicaba anteriormente font upip Y esto funciona de la siguiente manera voy a venir acá acá al deploy Run transactions donde tenemos los contr contratos desplegados Y tenemos mire el counted cero y le voy a dar emit count log Aquí voy a emitir el evento entonces una vez se emite un evento entra checking automation a hacer su su trabajo usted podría por ejemplo eh Cuando un token rs20 si estar escuchando la transmisión de un token
s20 digamos no sé darle un premio a alguien que transaccion más de un millón de tokens no s su caso de uso Por así decirlo pum le doy un regalo de lo que sea le transfiero un Us cosas así puede hacer acá ocupar la emisión de logs para distintos con distintos fines aquí la imaginación es el límite le puede ocurrir lo que quiera Chan Chan Chan y aquí como pueden ver ya tenemos la siguiente línea de perform Up Keep o ahora voy a ir a remix al otro contrato que tenemos desplegado y el count ahora es uno entonces hicimos muy similar al ejemplo anterior pero era con la lógica customizada pero ahora ese
contador va aumentando según se emite un evento en otro contrato pu ahí aquí puede hacer la imaginación el límite puede hacer muchas cosas y que eso no sé si tiene alguna duda Pero eso ha sido el taller de hoy creo que fue mucha información Quizás es bastante pero si tienen alguna duda me pueden decir dale muchas gracias Sí fue bastante información igual de todos modos tenemos el pad y Tenemos también la grabación del workshop entonces segura seguramente con si tenemos alguna d alguna inquietud Pues nos vamos a ir al a la grabación y vamos a ver nuevamente para salir de las dudas eh Julio alguna algo más algo quieras decir respecto al workshop hacia
el evento darle las gracias eh sí alguna opinión respecto a lo de Chain link algo respecto de lo que es un oráculo les gustó o no les gustó excelente di por allá muy bueno recibido porque es bastante información igual sí bastante información para dentro casi dos horas dos horas y media pero se entendió Yo lo entendí completamente no los demás tambi No pues lo ú que le queríamos pedir Javi Gil es una fotico que creo que con el como con ustedes cerramos ya el curso de solity básico Entonces nos gustaría
hacer una foto grupal tal vez