 Hola, bienvenidos a todos. Mi nombre es Moritz Stelmacher y hoy vamos a hacer un taller de remix y es para principiantes de Web3 y van a aprender un poco de solidity con remix. Y sí, eso vamos a hacer hoy, pero antes que empezamos, tenemos algunos links que creo que es un poco más fácil que ustedes lo tienen si van por ese link acá. Bueno, ahí está como un QR code o también los links que lo pueden usar y así va a ser más fácil durante la presentación que ustedes lo pueden ver y lo pueden, solamente que tienen que click on it y no tienen que hacer el QR code otra vez. Así que sí, sería bueno si ustedes hacen eso ahora y después vamos a hacer como vamos a hacer un minting de NFTs y para eso necesitamos la dirección de ustedes y tienen que instalar el MetaMask y después cambiar al Network Optimism y después pueden compartir su dirección acá. Así que lo podemos whitelist a ustedes, así que ustedes pueden mintar el NFT y también lo pueden dar un poco de is para lo pueden hacer en Optimism. Así que si durante, durante estoy explorando y hacer la presentación, ustedes ya pueden ir acá y cuando tienen el MetaMask, tienen su dirección, solamente lo pueden poner acá. Y bueno, y eso está bien si ya lo hacen ahora, así que más tarde no tenemos que esperar para todo eso. Así que espero que todos están bien ahí con el link y entender todo. Ok, bueno, esperamos un poquito. Ok, perfecto, bueno. Ah, no funcionó. Ok. Ok, bueno, si que vamos a hacer hoy es, al principio vamos a hacer una introducción teorética y eso podemos hacer un poco más cortos y ustedes ya saben todo, hace que no hace sentido que eso haga más largo, pero si quieren preguntar preguntas o quieren saber un poco más, si empiezo con esa introducción para que saben qué hacemos y va a ser un poco alto nivel, así que muchas cosas pueden ser que ustedes ya saben. Pero vamos a ver cómo va y si veo que ustedes tienen interés, lo hago un poco más largo y si no lo hacemos un poco más rápido. Y después, y eso es que vamos a, si vamos a hacer lo más tiempo que tenemos, vamos a ver la introducción de Solidity que creo que para todos ustedes eso va a ser lo más importante, como aprender la lenguaje de Solidity para hacer smart contracts, los contractos inteligentes en Ethereum. Así que eso va a ser lo más importante y después vamos a acuñar a Mint, un NFT en Optimism y eso va a ser lo que vamos a hacer lo más tarde y para eso ustedes ahora tienen que entrar a su dirección y tienen que recibir un poco de ease o un Optimism, así que lo pueden acuñar. Bueno, si eso va a ser la agenda para hoy y empezamos con la introducción. Puede ser que es menos de 30 minutos, vamos a ver. Bueno, creo que ustedes todos saben por alto nivel por qué estamos acá, pero para mí y porque yo estoy acá y porque creo que eso es una cosa tan importante, me gusta ponerlo como solamente en algunas pocas palabras, como para condensar qué es la cosa que es tan importante y la cosa que es tan importante para mí es que la tecnología blockchain nos permite amanecer datos en una forma inmutable. Así que puede ser que tenemos datos en una forma que nadie lo puede cambiar, nadie lo puede sacar, nadie puede hacer nada con eso y eso es creo que lo importante que mucha gente no totalmente entiende qué significa porque eso significa creo que eso va a ser una cosa muy muy grande que va a cambiar todo. Casi como 30 años atrás si dijiste a gente que el internet es un sitio a donde gente se puede comunicar, también nadie sabía qué se hace con eso. Así que eso es creo una cosa que tenemos datos que nadie lo puede cambiar, eso es lo muy muy importante y ahí van a venir un montón de cosas que se pueden hacer que nadie se puede manejar al momento. Bueno, si las soluciones que tenemos ahora son todos muy centralizados, lo sabemos como Facebook, Google, Amazon con AWS, todo esto siempre si no se podría antes tener datos en una forma que nadie lo podría cambiar, siempre había una gente que en algún tiempo lo podría cambiar si querían y así eso es la revolución, eso es la cosa nueva si lo ponemos en muy muy alto nivel. Bueno, la blockchain como todos ustedes creo que saben consiste de bloques de datos y de transacciones que no se puede modificar y también son administradas por una red peer-to-peer que como cada uno tiene como una copia, un piso de la copia y así que es muy muy difícil para cambiar algo ahí, no se puede. Bueno, si queremos saber un poco más como la historia de eso o cómo cambió es que la tecnología blockchain si se inventó como un libro mayor, un ledger para registrar las transacciones de Bitcoin. La idea era Bitcoin es hacer una moneda digital que nadie puede controlar y para eso, para tener eso se tenía que tener una forma a donde se podría almanizar datos sin cambiar, que nadie podía cambiarlo y por eso la blockchain estaba inventado. Si, la blockchain de Bitcoin almaniza transacciones de valor, no transacciones de Bitcoin. Eso es que consiste la blockchain de Bitcoin y solamente existe por eso para hacer transacciones de Bitcoin y eso es que almaniza. Y la blockchain Ethereum ahora es como la revolución es que no solamente se usa para transacciones, no transacciones de una moneda, pero se usa para programas, para programas inteligentes y ahí se almaniza los datos y también los programas y eso es la cosa que ahora es la cosa importante, la cosa que cambió. Y con eso la Ethereum se permite la creación de un montón de aplicaciones que se podría hacer. Ahí ahora es como Vitalik lo llama la multi-purpose blockchain, ahora no es solamente para monedas, si que también había monedas como si como en 2017 como había todo el ICO y toda la gente suciera sus propias monedas y eso podría hacer, la gente lo puede hacer, lo la gente decía, pero también pueden hacer un montón de otras cosas como DeFi, como redes sociales y como tokens que en ese año los NFTs que ese año, un año pasado empezó que estaba muy muy grande y todas esas aplicaciones es que se puede hacer con Ethereum y que es mucho más difícil hacer por ejemplo con Bitcoin. Bueno y esas aplicaciones se llaman como, que se llaman DApp, como de aplicación descentralizada. Si no pueden conectar por Wi-Fi, creo que ahí hay la clave de Wi-Fi, así que si tienen problema, creo que eso funciona bien. Ok, bueno, sí, pero eso es la DApp, es la aplicación descentralizada y que se construyen sobre la blockchain. Y como mínimo, como tiene como un contrato inteligente, el smart contract y eso es que vamos a ver hoy como podemos escritir nuestro mismo el smart contract, como empezar con eso y después hay como un interface de usario, un user interface que la gente puede interactuar con ese smart contract. Y acá hay como una estructura o como saber si ustedes son del web2, del mundo viejo, de ahí como es la, un poco es como lo pueden, un poco más fácil para entender cómo funciona. Así que sí, el front end, o lo empezamos acá, como normalmente tienes como una database, entonces no tienes todos tus datos y normalmente tienes lo en AWS, Google Cloud, Osamble, o lo tienes en tu mismo database, pero en la estructura de DApp, lo tienes en la blockchain o por lo menos los datos que son muy sensibles y muy importantes, porque es muy costoso, por eso hay que pensar como qué datos pones adonde. Y por eso los datos más importantes se ponen en la blockchain. Después en la app normal tienes el server side code, tienes tu back end, adonde puedes executar los programas en el server. Y ahora la diferencia es acá tenemos los smart contracts, los contactos inteligentes que ahora son, esos son el back end. Solamente también para funciones que son importantes, por eso es como en programas que no se pueden cambiar y que son ejecutados en la blockchain. Y después también tienes el front end, el user interface que normalmente es casi lo mismo, pero hay algunas bibliotecas como user stress que vamos a usar hoy también un poco, con qué te puedes conectar con la blockchain y es como si tenías un API y lo puedes comunicar con los datos que tienes en el smart contract, en las funciones que tienes en el smart contract. Bueno, sí, eso es la estructura y nosotros vamos a mirar un poco en los contractos inteligentes, aquellos smart contracts hoy. Bueno, y ahora por fin de esa presentación vamos a ver qué son los atributos de los DApps, qué son como casos a donde sería bien crear un DApp o en qué casos sería mejor crear un app tradicional. Bueno, que se tiene que saber que normalmente son transparentes, así que la gente puede ver, no puede, también lo puedes, los datos pueden ser encodido y no se pueden ver todos los datos en claro, pero la gente puede ver cómo, cómo los contractos funcionan y qué transacciones, qué transacciones gente hacía, así que son muy, muy transparentes, que es diferente que los, que normalmente cuando gente solamente tiene su app y su server y nadie sabe qué pasa con los datos, nadie sabe cómo, cómo la gente interactúa con eso y nadie sabe si no, si no, no daban los datos a otras personas, así que por todas esas cosas eso podría ser un caso donde, donde sería bueno hacer un DApp porque es transparente. Y también, que también está interesante es que mucha gente como saca en código de otra gente y interactúa con, con contractos de otra gente, que lo eso se hace muy interoperable, no, así que mucha gente puede interactuar y eso es porque son transparentes y otra gente lo puede usar, no es que cada uno lo tiene en su propio server y nadie lo puede usar. Bueno, esos son transparentes y después y eso es capaz lo más importante, inmutable, no se puede cambiar. Bueno, si se puede cambiar si lo, si lo escribes que, que lo, que es upgradable, así que si ahí se puede cambiar, pero si no tenía la intención de cambiarlo, tampoco no se puede cambiar y eso es lo que, que es interesante, que ahora la gente tiene la seguridad que eso no se va a cambiar y es como, y es como se estaba escrito, o sea, si no es como una blockchain a donde alguien lo, lo comprometa, hay un hex, si no hay eso, va a ser inmutable y la gente no lo puede cambiar y eso es lo, la otra cosa que es interesante, capaz también en países como acá, si, si muchas veces la gente no sabe si cosas van a cambiar o alguien lo, lo va a pagar o algo así, ahí sí que puede ser interesante, si tienes algo que es inmutable y nadie puede cambiar, usarlo para, para esos casos y si hay que pensar en esos casos a donde sí que hace sentido, porque en otros casos no hace sentido, porque también es más o menos lento y caro, no, estamos todos trabajando en que ya no va a ser tan lento y tan caro, pero hasta ahora es mucho más lento y mucho más caro si tienes tu propio server, tienes AWS o algo así, así que hay que pensar cuando usarlo y cuando no. Bueno, si, eso es más o menos la, la introducción teorética y ahora vamos a ir a la introducción a Solidity o no sé si alguien tiene comentarios o preguntas por esa parte, si, no, yo creo que eso sería lo mejor que solamente partes que tienen, que tienen los datos sensibles, esos son los datos que hay que manejar por, por el blockchain, pero los otros datos que no sé como solamente son como no, que todo lo hace la experiencia mejor, por esos datos no hay que ponerlo, solamente los datos que sí que son muy sensibles como no sé si, que muy, que son muy sensibles como de, de el finanzo o no sé, si, o también otra cosa que se puede hacer es que solamente como se puede crear como un hash, se puede encodar, así que la gente sabe que no se cambió en los datos, pero también tampoco no tienen que poner todos los datos adentro, así que solamente es como que se puede saber si alguien cambió y no, pero no hay que poner a todo, así que si hay que ser un poco sensible con eso, pero también todos están trabajando a hacerlo un poco más rápido. Bueno, otras preguntas o comentarios? Sí, no sé si entendió la pregunta. Sí, bueno, creo que eso tendría que sea como algo como eso, no, que sí que tendría que sea algo que a la gente piensa que es tan, tan importante que los datos son, que los datos son seguros y no lo puede cambiar y tenía que ser una cosa tan importante que, que también la gente no, que también está bien si tienes que pagar claro el tiempo, si tienes que hacer una transacción y quieres que interactuar con eso y va a ser muy lento y así que bueno no creo que es una pregunta que se puede, que yo sé porque no sé si la gente va a usar, no, pero es como tiene esos trade-offs, tiene que ser por la manera que es transparente y mutable, pero por lo otro es caro y lento y sí que hay que saber cuándo, cuándo, cuándo va a ser la decisión y no, y sí, lo, lo, hasta ahora más que hay son los todos, todos los finance applications, no, que son que la gente le usa, porque ahí sí que hace mucho sentido que, que los datos son inmuntables y también transparentes, pero sí, como acá en la conferencia hay un montón de gente que habla sobre el, sobre las redes sociales, crear eso en una nueva forma, porque ahí también nadie quiere que, que, que gente como tiene control sobre eso y eso podría hacer otra, otra, hay un montón de ideas que se pueden hacer, pero sí, es un poco la, nadie lo sabe que va a funcionar o no. Bueno, ahora vamos a ir a la introducción a Solidity y por eso, y bueno, yo acá también estoy con el team de remix, que acá también hay muy buenas camisetas, que no sé adónde son, ahí puede ser, sí, y bueno, y nosotros vamos a usar remix también, que es como la, la forma creo para casi toda la gente que conozco que entró en ese space usaba remix al principio, porque es una IDE, así que ves todo lo que haces, si lo puedes llamar a los funciones de adentro, solamente con un button y es, todo es muy, muy fácil y nosotros vamos a usar remix ahora para aprender Solidity y también hay como un modulo que se llama Learnith y con eso hemos hicido algunos tutoriales y vamos, hoy vamos a ver esos tutoriales y por eso, bueno, pueden ir acá o si no, si ya fueron a ese HECMD, ahí hay que apretar ese link y eso espero que abre la página, así que si ustedes ya tienen el HECMD solamente van acá y si no, también lo pueden sacar de acá o por ese link, así que voy a esperar un poco y a ver si funciona y también si tienen problemas, pueden llamar y puedo venir, si no funciona, todo bien, alguien tiene un problema, bueno, ahí el wifi, se no sé si puede ser que es un poco más rápido, bueno, voy a esperar un poco más y lo voy a tratar también, así que yo voy a apretar acá y puedo hacer link también y de ahí, si tenían que ver eso, que se llama Solidity para principiantes y acá son los capítulos, bueno, si eso es la remix IDE y lo vamos a usar un poco más, un poco más tarde, pero para ahora, si, vamos a usar el plugin que se llama Learnith que ya dijo, que, a ver, donde es el home, si acá es como hay diferentes plugins y eso es el learnith y eso vamos a usar con ese deep link, ustedes espero que ya van directamente a ese learnith Solidity para principiantes tutoriales, así que funciona con todos, si, bueno, entonces capaz que me voy a sentar, vamos a ver al principio en la sintaxis básica, eso es que vamos a empezar y acá siempre hay como algunos misiones al fin del capítulo y eso es que ustedes espero lo pueden, no son tan difíciles para aprender, para ustedes vamos a, si, ok, si alguien tiene el problema, creo que el mismo problema como él tiene, es que solamente van a remix que se ve así y de ahí se puede ir acá el learnith y acá se puede importar y acá se importa ese, ok, no sé porque, a eso también estaba pasando, no? Ok, y el link directo no funcionó, tampoco? Ah, es porque tarda tanto, a ver, ok, hay otras personas que tienen ese problema, si, ok, algunas, ok, no sé porque eso no funcionó, ah, es la red, ok, bueno, ok, ok, así que no sé, ¿cómo es el Wi-Fi? ¿Qué Wi-Fi están usando? ¿ustedes? Ok, y el otro tampoco funciona? El defcon, el repósito, que el repósito también para ellos, no, para mí está bien, el problema para ellos, acá es el repósito de ese que también está acá, si no funciona, pero esperaba que funcionó así con el link directo, como, ok, funcionó con el otro Wi-Fi o alguna gente todavía tiene problema, si, ah, tarda un poco, capaz, ah, él está bien y ahí está todo bien, ok, así que espero que todos están bien, ok, bueno, y si no, si, también lo pueden ver, pueden ver a mi página acá y después, capaz, pueden ir acá o con otra gente y ver sus misiones juntos, ok, pero vamos a empezar, espero que lo pueden ver bien, ok, bueno, ahora vamos a ver al principio como eso es el Hello World Contract, ¿no? El contrato, el programa inicial, que es muy, muy simple, solamente para ustedes lo aprenden y empiezan a aprenderlo, ok, no sé, toda gente todavía tiene algunos problemas, ok, bueno, continúo o espero un poco, ah, ok, ¿acapás que puedo ver y también, si, eso no funciona, si vas ahí, si creo que es solamente, todo es un poco lento con el wifi, si, es, es, es, es, así, pero es el, es el otro repo, no, había en el, viste en el, en el HackMD que, que puso, acá, me voy a poner, es, es el repo, si tienen problema acá, ok, hay más gente con problemas, ah, ok, ya, si, lo HackMD acá es acá, Bitly Remix, DevConLinks o CodeQR para HackMD, si acá son todos los links y si acá también pueden poner su, su dirección para, para lo podemos mandar a algún is para después, para hacer el NFT, para NFT minting, ah, si, lo puedes editar acá, si, ¿capás una última vez? Porque alguna gente viene un poco tarde, si van al HackMD acá, pueden apretar y lo pueden cambiar y lo pueden poner a su, su dirección, ya, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, ah, ok, so, acá está el, el link por, por, por el HackMD, ¿no? Otra vez, la última vez, y si no, capaz que otra gente acá lo pueda preguntar y lo pueden dar, el link, y si tienen ese, van acá, se va a ver así y pueden poner su dirección acá, solamente con editar el HackMD acá, acá lo pueden poner y ahí están, están bien para ahora y eso lo vamos a usar más tarde. Ok, y si tienen problemas acá, también pueden preguntar a alguna otra gente que ya lo hizo, pero espero que eso todo funcione para todos. Ok, y ahora, ahora el tema de, de Learnys, también van a encontrar en ese HackMD, tenía que funcionar solamente ese link, si no funciona, la alternativa es que solamente va a remix, andan a remix, issyrium.org, y de ahí se pueden activar el, el, el plugin acá, el Learnys y de ahí pueden importar ese repo, y bueno, depende del wifi, tenía que funcionar y ahí se llama Solidity para principiantes, y eso es que, que miramos ahora. Ok, si tienen problemas, capaz que otra gente acá lo pueda ayudar, o también puedo hacer como una pausa cuando, cuando terminamos eso, así que ahí, después de cuando voy, cuando finalizamos ese contrato, después de eso va a ser una moción pequeña y ustedes pueden trabajar en eso y gente que, que, que tienen problemas me puede avisar. Ok, bueno, empezamos con ese, como el Hello World Contract, así que es el, el contrato muy, muy simple para ustedes para, para que ya entienden la síntax básica, ¿no? Al principio acá vemos la licencia, ¿no? ¿Qué licencia ese contrato tiene? Y eso no es tan importante por ahora, pero acá también tienen como licencias que pueden, que pueden ver, ¿cuál, cuál es buena para ustedes? Pero si empiezan ahora no, eso no va a ser muy importante. MIT, licencia MIT es uno que mucha gente lo usa. Bueno, pero si, si no la, no la tienen tampoco es tan malo, pero van a tener como un warning acá. No, no es un error, pero dice que sería bueno tener como una licencia acá. Bueno, esa es la, la línea primera acá y después vamos a, tenemos la palabra clave pragma y solidity y ahí tenemos que, ahora tenemos que, que, que decidir qué versión de solidity vamos a usar a escribir el contrato. Y ahora acá tenemos en el techito, no sé, en, en, en inglés el carrot operator que nos dice que nosotros vamos a usar una versión en 8, 8.3 o 0, 8.3 o, o más alto, pero no más de 9. Y por eso tenemos ese, el, el techito acá. Porque con las, con, con los cambios grandes como 9, 7, 7, 6, ahí sí se cambian como cosas que se pueden romper y que se puede romper el contrato y que ya no va a funcionar si usas con una versión más vieja. Pero con las, con, con, como si hay como cambios pequeños, si tienes el 4 y 5 ahí y nada, nada va a se va a romper. Así que, sí, ahí vamos a decir ahora, pero para el compiler y si otra gente quiera usar el, el programa y solidity se cambia muy rápido. Así que para saber como qué es la versión con qué estaba escribida, tenemos que definir, definir, tenemos que decidir cuál versión estamos usando ahora. Bueno, después tenemos acá la palabra clave contract, no es como lo, el contrato inteligente, el smart contract como el nombre del, del programa que vamos a escribir y si con eso lo, lo inicializamos y después lo, lo damos un nombre y normalmente no, no hay que capitalizarlo, pero es como una buena práctica y nosotros lo llamamos hello world porque es el principio del programa y el programa principiante para ustedes y si ese, ese es el nombre y ya está y después acá tenemos el programa que el smart contract que es muy, muy simple y ahí vemos acá tenemos una variable y la variable que vamos a ver un poco más tarde que significa es una state variable, una variable del estado y eso significa que esa variable o el valor de esa variable vamos a poner en la blockchain. Eso va a ser algo que vas a estar en la blockchain y tenemos esa variable y después asignamos un valor a esa variable y el valor es hello world que es un string, que se ven acá, muy, muy fácil y también tenemos que que decir como qué tipo es esa variable y porque sabemos que es un string, ponemos acá el tipo que es string y después hay una cosa nueva acá que es la visibilidad y en, en este caso es público que significa que lo podemos accesar de, de afuera del contrato pero después hay también más por, por la visibilidad y qué significa pero para ahora solamente hay que saber que eso es como la cosa más, más sencilla, más fácil que, que se pueden crear. Bueno eso es el contrato y también lo podemos interactuar con ese, ok bueno acá es capaz que antes que, que vamos a ver la misión que ustedes tienen solamente para ustedes también lo pueden como usar un poco es que es la cosa buena de remix es que lo voy a enseñar un poquito así que acá hay el file explorer y ahora estamos todos en el tutorial así que ahora eso no, no es tan importante pero después vamos a ver cómo a con ese lo pueden, que pueden crear nuevas, nuevas programas, nuevas files, Solidity o también lo pueden, pueden abrir y pueden, todas esas cosas pueden hacer acá en el file explorer después acá es el compiler, ahora no lo podemos compilar pero también se puede hacer con control y es si quieren compilar el contrato como el Solidity es el high level, una, una lenguaje high level y después que, que está en la blockchain es el bytecode acá que, que hace el, el compiler y con eso también sabemos si tenemos algunas problemas pero no es tan importante por ahora y después acá tenemos el, el tab por deploy y run transacciones y eso vamos a usar más tarde pero ahora tengo como una, una virtual machine como una versión de blockchain que está en mi browser que yo puedo usar y eso lo hizo acá y ahora yo voy, voy a deploy a poner el contrato en la blockchain de mi, de mi browser con solamente apretar ese botón deploy y acá está el contrato en mi blockchain y acá ahora pueden ver que nosotros no tenemos una función para retornar el valor de grid pero tienen, pero tenemos un botón acá no demás y eso es porque si tenemos el visibilidad público con state variables también automáticamente tenemos esa función pero eso no es tan importante para ahora para solamente para ustedes pueden ver que podemos interactuar con ese contrato muy, muy simple bueno eso para ahora no es tan importante para ahora pero para ustedes pero a saber y después vamos a venir otra vez por eso así que para ahora está todo bien solamente a continuar con el, con el tutorial ok es un poco pequeño acá así que mejor empiezo de nuevo acá estamos bueno ahora que ustedes espero que entendieron todo eso acá hay una misión que es ustedes que borren el contrato eso y creer su mismo nuevo contrato que se llama ahora ya no se llama hello world pero se llama my contract y también la variable ya no se llama grid pero se llama name y eso es importante no es nombre pero es y también todavía este tipo string y vamos a señaló un valor que es el es en de nuevo y bueno eso es el eso es la misión para ahora para que ustedes lo lo aprenden y es muy muy fácil lo sé pero está bueno para todos ustedes capas lo lo pueden y ven cómo va bueno lo voy a dar como cinco minutos o diez minutos si se pueden ir a la solidity documentation y ahí siempre está bueno ahí a latest para saber cómo qué versión está lo lo lo mejor y ahí so you recently released 0.8 version eso es la que ahora está la la estable pero eso es y es importante si si si lo si lo ven en google que no solamente van a a la alguna versión porque siempre va a ser una versión vieja así que está importante que van a la latest acá ok bueno así que si lo voy a dar como cinco diez minutos vamos a empezar con cinco y si tienen problemas o algo y también creo que ahí ese tabler ahí remix también lo pueden ayudar si tienen problemas ok creo que el timer ya se apagó a me pueden poner en el ok si bueno funcionó para todos lo pueden y bueno se tenía que ver bueno muy fácil se llama solamente para la primera vez para ver cómo se usa eso muy fácil no ahí estamos y well done no errors así que estamos bien si así tenía que que funcionar si no debía tener un problema bueno espero están todos bien así que vamos a la próxima el próximo capítulo tipos de data primitivos así que ahora sabemos cómo crear un contrato muy muy fácil y ahora vamos a ver a datas primitivos ahora muy muy primitivos solamente a bul y un ind y la dirección adres la adres capaz que ustedes no lo conocen todavía los otros capas que si que la conocen si acá también una cosa que dijo a otra gente acá es que usamos acá los contractos que usamos en es en esa clase en esos tutoriales son de solíciti by example que es un muy buen proyecto también con la comunidad a donde hay un montón de de best practices de de contractos acá pueden ver como un montón de contractos que defa y todos esos contractos y nosotros que hacemos ahora es nosotros vamos por estos contractos pero con un poco más de explicación pero acá si quieren saber más también acá un montón de diferentes contractos y acá nosotros por ejemplo ahora estamos a primitive data types no datos primitivos pero si eso también el link también está adentro del del tutorial pero solamente para ustedes para saber porque usamos esos contractos es algo de la que la comunidad está creando y los contractos que estaban con todo el tiempo que están que gente ayudaba mucho así que ahora vamos a ver los datos primitivos lo primero acá es bul bulion que puede ser verdadero o falso y que en nuestro caso acá lo llamamos bu también es público se puede acces lo que se puede accesora acces accesora de afuera y el tipo es bu que está acá y acá lo ponemos tru que es verdadero también por decir falso falso bueno eso ya para el bu no no hay mucho para decir ahí y después tenemos algo acá que se llama un y un que es el ansiant integer y eso se puede capaz para aprenderlo es que es un poco más fácil para para saber qué significa es que el sign el signo es como algo como así el como negativo acá no el minus que tenemos así ese es un signo pero nosotros el ansiant es que no tiene así que solamente puede ser como positivo o 0 porque esos no tienen algo un signo adelante de eso así que por eso se llama ansiant integer y eso sí significa que son que no son negativos integers sí y eso tenemos el y un y después con ese ansiant integer y un podemos podemos seleccionar acá como declarar como como qué grande es que va que vamos que tenemos en ese en esa variable así que acá lo podemos especificar tenemos 8 bit y así que lo podemos llamar y un 8 así y ahí ponemos como número que ponemos poner adentro acá también son como los los ranges que como que con qué lo pueden poner ahí adentro aquí en los y si no tenemos nada es como un y un es lo mismo como 256 así que eso es lo mismo si poníamos eso acá bueno y eso es el yunt son son números positivos y después si podemos especificar si sabemos como qué grande van a ser podemos especificar como qué grande que son cuántos bits y lo mismo casi lo mismo tenemos acá con con integers la diferencia es que también pueden ser negativos y al último tenemos la dirección la adres que se usa mucho en en en isirium que es la si la dirección que ustedes tienen como si si como un un un account external account como un un account que ustedes tienen con con una adresa acá lo que lo pueden manejar que pueden hacer cosas en el universo isirium con eso pero también los contractos tienen alguna dirección así que si ustedes quieren interactuar con un contrato tan también usan esa adres y si la dirección la adres acá tiene 20 bytes y si eso es la el tamaño de la adres y después hay también otras versiones como la una una versión especial adres payable donde pueden mandar recibir iser pero eso para ahora no es tan importante acá lo último acá también capaz ese capítulo tampoco es tan importante pero solamente que ustedes conocen algunos datos primitivos y van a usar muchos esos datos y acá los el el valor que van a tener si no está definido así que acá el bullion va a ser false human va a ser 0 y la dirección va a ser esa dirección bueno si eso muy fácil ahora vamos a ver acá es la misión otra vez si crear una nueva variable new adres que tiene que es pública que es una adres y tiene y ahora eso es un poco complicado así que ahí tiene que pensar un poco porque no no tenemos la solución fácil acá pero sí que van a poder hacerlo no tampoco es tan difícil y si tienen que poner como un valor acá que funciona no pueden poner cualquier valor pero tiene que ser un valor que podría ser una una una dirección de sirio así que eso es la la misión la primera crear esa variable y después una variable otra vez negativa y que es pública y ahí tienen que saber cuál es el tipo pero creo que a press después que vivimos eso también van a saber cuál debe ser y después la última nueva variable va a ser new in y eso también es un poco difícil puede ser ahí también tienen que pensar cuál es el tamaño más pequeño y también el valor más pequeño así aquí así son si eso es la la misión tercera y si y la primera y la tercera capaz que un poco difícil y bueno pero vamos a poner otra vez cinco minutos no capaz un poco más siete minutos múritz múritz múritz acá múritz si es alemán así que si ok how's it going one more time also good I mean I think let's move forward also if you don't have the solution you can also just do it later and maybe I will not even look into it I mean you can also just show the answer as you see here and then then you will get it sorry disculpa cambio en inglés también también pueden ver como si si si ustedes todavía no saben la la pregunta acá también pueden ir acá a show answer un sino también pueden como tener más tiempo después y lo pueden probar y por eso también no lo voy a no lo no vamos a ver la solución o si quieren también podemos ver la solución pero capaz que usted si ustedes quieren que continúa más tarde no la vemos vamos a ver la solución y continuamos bueno then vamos acá check answer acá la bueno la la dirección acá lo lo más fácil sería solo solamente poner la dirección acá que es la default adress acá pero lo mejor sería que si ustedes ya us estaban usando meta más también lo podrían copiar en la adresa suya y lo ponen a lo acá adentro que también podría funcionar después acá eso es era fácil solamente un un integer negativo no podría ser cual cual cual cualquier y después acá la más si la más pequeña es que es el con el 8 bit y después el valor más pequeño es el 0 así que si eso serían las las soluciones para esa para esa misión y bueno continuamos no la si pero tenía que sea una que que funciona que es una una valid y sirio dirección pero si lo más fácil sería solamente tomarlo de acá uno más fácil todavía sea solamente la default que está esa ok ahora vamos a ver si un poco rápido a los variables acá tampoco es algo muy muy interesante algo muy difícil y si hoy vamos a ver las cosas más fáciles y después ustedes pueden continuar un poco así que tenemos tres tipos diferentes de variables que tenemos los variables del estado que esos ya hemos visto nosotros no los state variable que son esos que que están que vamos a poner en la blockchain y si cambia algo el valor de ese de esa variable también eso se cambia en la blockchain y también por cambiarlo tenemos que hacer una transacción por eso por porque que queremos cambiar algo en la blockchain y si esos también cuestan plata así que y sirio no plata y así que si así que esos son los del estado porque cambia el estado el state variables el state of the blockchain o el contrato y si eso acá tenemos acá son afuera de una función después tenemos acá variables locales local variables que tenemos acá adentro de una función y después vamos a ver otros también a funciones eso va a ser el próximo capítulo y ahí tenemos como una función de us something vamos a ver en más detalle en el próximo próximo capítulo en funciones pero también pueden ver que eso es como una variable que solamente existe en entre esa función así que es una local variable capaz que la mayoría de ustedes también lo sabe ya y eso sería en los global pero no son globales eso son state variables y eso son los globales pero si esos son los locales que no vamos a poner en la blockchain eso no van a cambiar la blockchain solamente existen cuando ejecutamos la y llamamos la función en ese caso la do something y después tenemos los variables globales que eso también que alguien dijo que sería bueno si podíamos tener la ns adres de una la ns dirección de una dirección y si con con ese eso sería un poco diferente pero esos variables globales también se llaman en special variables o variables especiales como son variables que podemos usar para para saber algo de la blockchain como el estado de la blockchain o cosas de de la blockchain es más que que solamente una función para una una una variable que nos da más informaciones por ejemplo tenemos acá dos uno es el block timestamp que mucha gente como usa que no hay una manera fácil para saber como cuánto tiempo es pero el block timestamp como es una manera de saber eso así que ahí podemos saber cuál es el el timestamp del del current block que algún miner puso como un nuevo block y eso tiene el timestamp y eso podemos saber después acá tenemos esa es una muy importante que van a usar mucho que con el message punto sender y eso es que lo llamamos el valor de esa global variable va a tener el valor de la persona o de la entidad que llama esa función así que con eso no la persona o la entidad no tiene que poner su dirección acá adentro pero por qué podemos usar esa variable global en message punto sender con eso podemos saber cuál es la cuál es la dirección de esa persona sí la adress of the caller y sí y hay un montón de diferentes variables globales que lo pueden ver acá también en la documentación de soledad y si acá pueden ver algunas y eso también va a ser bueno para la próxima misión porque ahí la misión es tú para crear una nueva variable en estado publica llamada block namba que es un juvent creo que capaz que eso no se dice acá pero es un juvent y que queremos hacer es que asignar el valor del actual número de bloques de la variable del estado block namba eso va a ser un poco capaz suena un poco raro pero si ustedes ven a la la documentación capaz que van a encontrar algo que va a funcionar por eso así que sí así que acá vivíamos en esa en ese capítulo a diferentes variables no el state variable local y después a esas variables globales y eso está bueno a jugar un poco con esos variables globales y si con con la con el link que hay acá pueden ver la documentación y después capaz que pueden encontrar la solución por ese para esa misión con eso ok así que lo doy otros cinco minutos y creo que después tenemos una misión más y después de eso vamos a vamos a ver a como como como como usar el script para minting un nft así que una más una misión más y estamos listo con eso ok so I hope this was sorry espero que eso el tiempo estaba suficiente para para verlo y si ya ya la había alguna gente que lo que tenía la la solución que acá tenemos un new público que se llama block number que tenemos acá y después acá usamos esa si lo variable global o global variable especial que usamos block punto number y ahí lo y ahí le tenemos ok tenemos un poquito poco tiempo así que vamos al próximo capítulo el último capítulo para acá ok vamos a ver ahora a funciones así que acá tenemos ese contrato que se llama simple storage también otra vez es parte de acá del solícito y por ejemplo no sé dónde está ahora pero si debía estar acá al principio y eso va a ser muy fácil tenemos como un número un new end así que es como un la variable se llama si num es un new end es público si lo mismo que que hicimos antes también es un state variable variable del estado y ahora tenemos la cosa nueva que que si solamente lo declaramos pero no no no no no lo no lo vamos a señalar un valor ahora así que ahora tenemos las funciones para hacer un poco más dinámico a donde que lo queremos o da un nuevo valor y también que queremos leer el valor de esa de esa variable así que por eso creamos una función y la palabra clave muy fácil también se llama función y después lo podemos dar un nombre en nuestro caso usamos el nombre set porque lo que queremos a poner un nuevo valor después acá tenemos los en los paréntesis acá tenemos los parámetros para esa función que en nuestro caso lo llamamos también num pero para saber la diferencia tenemos un guión bajo acá así que si eso es como la sí para saber que esa es diferencia de esa pero también va a tener lo vamos a usar para eso y después tenemos que decir también que tipo es y en nuestro caso es un new end también porque lo vamos a usar para entrar un nuevo valor en el en el num así que en el es en las variables del estado que tenemos acá así que eso tiene que ser lo mismo y después tenemos que decir otra vez acá tenemos la visibilidad así que quién puede usar esa en función y si lo ponemos público en cada todo lo puede llamar así que nosotros y toda la gente en todo el mundo puedo hablar puedo llamarlo de afuera del contracto así que eso lo queremos a queremos queremos hacer para también usarlo y al final acá adentro de la función lo asoñamos el valor del del parámetro guión bajo num al state variable solamente el num y ahí ya estamos muy fácil así podríamos poner un nuevo valor a nuestra variable y ahora tenemos acá como leer un un una variable del estado y por eso creamos una nueva función que se llama get y ahora en los paréntesis acá no tenemos nada adentro porque solamente hay una no tenemos que especificar qué queremos solamente hay una cosa que podemos a devolver y eso es el num y así que no hay que poner algo acá especial otra vez va a ser público y acá hay una cosa nueva que es ahora una palabra clave que se llama y con eso lo lo lo podemos diferenciar esa función y eso es una cosa nueva de soledad y blockchain que ustedes no van a ver creo en otras lenguajes de de programación y eso es que con el vio ahora decidimos que no vamos a cambiar el estado del del blockchain no vamos a cambiar acá nada solamente queremos leer algo de la blockchain pero no queremos cambiar algo así que no hay que hacer una transacción con eso porque cambiamos algo así que el valor que es que tenemos acá adentro de esa variable en la blockchain eso va a cambiar y porque lo cambiamos tenemos que hacer una transacción así que hay que pagar para eso y eso va a ser una nueva parte de la blockchain y si esa transacción va a ser parte de un blog que va a ser en la blockchain y eso es porque queremos cambiar algo y eso va a cambiar en todo si en toda la blockchain y toda la gente que tiene una copia de eso así que hay que pagar para eso pero acá como solamente queremos leerlo no hay que hacer una transacción bueno y eso se puede decir con la palabra vio y también hay una otra palabra que se llama pure que no vamos a usar hoy pero también van a encontrar acá en ese tutorial si quieren seguir con eso y eso el pure es que ni un vamos a leer algo solamente hacemos una computación pero eso no vamos a usar ahora y después acá tenemos que definir como que son los tipos que vamos a retornar y en nuestro caso vamos a retornar solamente el yuant porque vamos a retornar el num que tenemos acá el de la state variable y ese num es un yuant así que va a ser el tipo yuant y después solamente vamos a retornar el num con el return palabra clave return y bueno eso ya está y con eso la pueden compilar y también acá lo podemos saber cómo funciona vamos a apretar acá deploy y acá con set vamos a poner 2 y acá tenemos el 2 3 3 el negativo eso no funciona porque es un yuant y acá también tenemos porque es público acá tenemos el también tenemos la otra función que tenemos automática que ya dijo para para devolver el valor bueno eso es el bueno eso es era la la final capítulo acá y creo que acá en omisión que es muy fácil si la quieren hacer crea una variable del estado público llamada b cual es del tipo bul y se inicia con tru y después crea una función pública llamada get b que devuelva el valor de b si eso debe ser creo que eso va a ser fácil no no nos ha tenido muchos problemas con eso así que voy a poner capas tres minutos y también había una pregunta creo no ok si la última media o a que tenemos así que si vamos a ver la la solución para eso ok como dijimos crea una variable del estado público llamada b si y se inicia y inicia con con verdadero tru que tenemos acá y después creamos otra función que llamamos get guion bajo b y eso la eso si devuelva el valor de b si tenía que ver como así y si espero que que que ustedes eso creo que no no era tan difícil que hay muchas problemas lo vi es con el que que si vas a cheque answer si dara un tiempo y no la página dice que time out o algo así así que normalmente tendría que funcionar un poco mejor si el internet si el wifi está rápido pero si si van a tener como problemas también en la casa o haga así no nos pueden avisar o normalmente también se pueden como solamente apretar reload en y de ahí tendría que funcionar pero si avisanos si hay problemas con eso pero bueno vamos a ver que acá como nosotros vivimos a la sin sin taxis básica tipos de datos primitivos variables y funciones después hay funciones vista vista y puro eso ya hablé que también como ese es el puro el pure y la view que ya viemos acá después hay modificadores y constructores que eso también está interesante input y outputs es un poco más complicado visibilidad control flow si estructuras de datos un poco más complejas loops hay un montón de otras cosas que ustedes si si quieren pueden que que que pueden continuar a ver en todo eso después tenemos como transacciones acá y eso es si para principantes no es algo que es más o menos fácil y todos esos contractos vienen de los contractos de solícipa ejemplo acá que si que creo que son son muy buenos y es algo que que mucha gente usa y después también si tienen como más interéses también pueden ver acá esos en en contractos como verifying y signature cosas muy interesantes son acá y creo que eso van a ser también si va a ser muy bueno para aprenderlo también tenemos acá como los irsi 721 el nft contrato y eso es algo que vamos a ver ahora porque eso que es el tercero parte del del workshop es a ver como si como podemos emit un nft y capaz un poco podemos ver que es un nft no tenemos tanto tanto tiempo pero espero que lo podemos hacer si bueno vamos a acá eso era el curso solícipa para principantes pero también hay otros cursos cursos de solícipa nft de irsi 20 token y el contrato de su pastas acá es como un poco más complicado y es como un contrato como o sea si una un contrato de su pasta eso de un nft eso es ya un poco más complejo pero eso eso ahora vamos a ver un poco en el contrato de nft solamente un poquito porque no tenemos tanto tiempo pero bueno no voy a no voy a ir a la introducción pero también ustedes lo pueden leer espero que lo voy a entender a explicar un poquito so hay hay dos dos diferentes tokens y como el también el token con ustedes ahora han vido a cómo crear en contractos inteligentes y con esos contractos inteligentes también se pueden manejar tokens y los tokens que espero que cada de uno de ustedes los lo conoce es que es escuchado de nft es y esos tokens tienen que ser manejado de algo y esos tokens se manejan por también contractos como los contractos que ustedes lo vieron no y esos contractos la gente lo lo escribe y después tienen un token y después pueden hacer cosas con el token si lo ya lo expliqué en el principio que hay esos los monedas los tokens ir si vente que era muy muy popular en en 2017 que ahí la gente hizo un montón de icos initial coin offerings a donde gente puso sus monedas afuera como escribió un contrato de tokens de monedas y después si después dijo que van a hacer algo con eso bueno eso era muy muy famoso en cinco cinco años atrás y ahora que es muy famoso en los lo último año es son los non fungible tokens los nft la diferencia es con el fungible tokens que todos los tokens son lo mismo es como una moneda y el non fungible token todos los tokens son diferente así que por ejemplo si quieres crear una moneda o votes o algo así podría ser que todos son los mismos y lo puedes intercambiar pero si por ejemplo quieres por poner un no sé un una obra de arte o algo que es especial es diferente lo usas con un nft si y con esos contractos que también para que son interoperable y la gente lo puede usar como en sus en sus wallets o también pueden que pueden interactuar con estos contractos para para que todos esos tokens se pueden usar se pueden usar sobre el ecosistema por eso hay un estándar de tokens y eso es lo estándar que se llama como ir si 20 o 20 hace 721 para los para los nfts y nosotros vamos a ver vamos a ver un poco a el 720 y creo que está acá bueno eso tienen el interface así que tienen funciones que todos que tienen el que usan ese ese estándar van a tener sus funciones y eso está bueno porque así si si si si crees edad algo lo puede ser por ejemplo si quieres interactuar con con un wallet o si quieres interactuar con otro contrato sabes que va a tener sus funciones y lo puedes usar bueno vamos a ver los acá también hay eventos pero no vamos a mandar en eso hay como funciones por ejemplo balance off a donde con esa función se sabe la la la dirección de alguien cuántos de esos tokens esa esa gente tiene esa es esa función balance off tiene la función una off así que cada token en el nfts estándar tiene una token id así que el contrato puedes mint un nuevo nft y siempre va a tener otro id y así que puedes saber de cuál de esa id cuál es el dueño de eso cuál es la la dirección de eso y después también lo puedes transferir a otra persona que es una función muy importante no acá tenemos si otra forma de de transformar y también a prove que significa que otra gente le puede manejar los tokens para para esa gente y acá se puede ver si está aproved y si esos bueno no voy a no vamos a ver todo todo todo es en total pero que es que es importante que ya se ven no hay tantas funciones hay algunas que son importantes y esos que es las funciones que ustedes si quieren usar el o que si quieren hacer su mismo mc721 su mismo token contrato lo pueden usar a esos van a van a usar esa esa ese estándar para otra gente lo puede usar y una implementación de ese estándar lo tenemos a tenemos acá de open zeppelin que es una componía muy famoso para para hacer contractos que que ya un montón de gente tiene muchos audits mucha gente lo ve lo ve y ve si todo todo todo funcionó y esa es una implementación de eso por ejemplo donde que va a tener todas esas funciones que que vimos como el prove pero nos que vimos nosotros era el interface y que vemos ahora es que como como algo implementó todos los funciones y todavía más que ellos tienen acá adentro bueno eso es como el un un contrato de nft y que se puede hacer también en remix que está muy bueno es que por ejemplo acá usamos un contrato de open zeppelin de ese irsi 721 acá y solamente lo importamos de el kitap de ellos y acá creamos nuestro mismo irsi o al mismo nft en contrato y se ve así nomás no tiene mucho más que eso porque usamos todo que de implementación de ellos lo damos un nombre tenemos un símbolo y acá ponemos donde donde le ponemos la meta data de ellos bueno eso solamente una introducción muy muy rápida por los nfts y si quieren ver más lo pueden pueden ver en ese curso también tiene la función acá mint así crea un nuevo token un nuevo token con una id un nuevo nft de ese contrato pero yo quería explicar eso porque que vamos a hacer ahora es que vamos a mint un nft de remix que es como un reward y eso es también otra cosa que se pueden hacer con remix es a interactuar con con con con executar un script y un script así que que podemos usar una biblioteca como isas jazz y con eso podemos escribir javascript también o type script en este caso y podemos que podemos mint en este caso el nft y eso eso es que vamos a ver ahora que que no va a durar mucho pero capaz que vamos a tener algunas complicaciones con el con el wifi y por eso puedes quitar un poco más pero sí pero eso solamente quería dar una introducción por los nft y también pueden preguntar después como si quieren saber más sobre eso pero para saber que no es tan complicado y se pueden se pueden usar contratos que ya existen y nosotros usamos un contrato así para dar los remix rewards ok bueno que hay que hacer es más o menos seguir que nos escritamos acá espero que cada de ustedes ya pusieron la la dirección suya acá y ya veo que hay un montón así que espero que sí y nosotros que vamos a hacer primero es clonar ese ese repo así que voy a ir acá vamos a a ver ok acá estamos en el file explorer y acá hay un botón acá para clonar un git repository acá tenemos que poner la la url y eso es el repository que queremos usar así que eso es que voy a clonar eso es que ustedes van a encontrar acá ok eso es que es el que dijo que puede ser quitada un poquito el repito repósito es un kitap y donno lo guarda si está acá ya tenemos lo lo van a encontrar acá los son los contractos si tienes si si lo clonarán lo van a encontrar acá y acá lo ven nosotros tenemos ahora funcionó acá tenemos con contracts y acá tenemos ese contrato remix reward upgradable y eso es un contrato y acá también van a ver que acá también usamos un montón de los open zeppelin contractos también y eso también es como un contrato de nft un poco más complicado puede ser pero acá lo pueden ver pero no hay que nosotros no vamos a andar sobre eso y ahora hay que cumplir compilar eso lo pueden hacer así y eso puede ser que va a tardar un poco también ok eso se ve bien así que hicimos eso clonar completar y ahora vamos a ver el script que queremos usar vamos a andar el file explorer otra vez acá tenemos scripts y acá tenemos el remix a mint y eso es el script y acá ven que eso es type script acá también type script y tenemos acá importamos isers que si una biblioteca muy famosa para conectar y acá ahora tenemos la dirección del del contrato que ese contrato que ustedes ven acá ya lo deployamos eso es live on un blockchain de de iserium en optimism y después que hay que hacer es conectamos con ese contrato y nosotros queremos que llama la función safe mint acá y para eso queremos a mint un un nft a una nueva dirección así que ustedes la dirección que ustedes puso en la acá dentro yo por ejemplo puso esa ahora lo pueden poner acá adentro y ahora el script debería ser listo ahora la última cosa que tenemos que hacer es conectar tu optimismo así que espero que ustedes vieron acá los instrucciones acá que se pueden hasta instalar meta mas se pueden ir acá nomás apretar a conect y después deberían ser conectado acá a optimismo debería ser optimismo acá y ahora acá se puede conectar a optimismo también y acá nosotros vamos a usar ese injected provider meta mas que significa que ya no usamos la virtual machine del browser pero usamos el la conexión que tenemos con meta mas que nuestro caso es la conexión a optimismo y ahora si es esa dirección que tiene un poco de iser acá también vemos que tenemos un poco de optimismo y eso así que eso debería sea suficiente y ahora podemos ejecutir el script así ahora ven que meta mas me dice que tengo que firmar esa transacción pero acá y ahora vemos si todo funcionó public mint se ve bien y acá tenemos también ese remix rewards acá abajo es como una página para ver los rewards y yo a ver si yo ya estoy acá capaz de tengo que conectar si capaz que tara un poquito pero pero se ve que acá funcionó interactuado con el contrato y tengo ese ese token bueno eso era la como si como de ese particular script y no sé ahora creo que ya estamos casi listo con el tiempo ya estamos un poco más del tiempo así que si eso no funciona para ustedes también yo pensó que si alguna gente lo quiere continuar con eso y porque sé que la red acá es un poco lento también podemos ir al hacker space abajo y lo pueden tratar ahí y yo puede ir para algunos minutos si si lo quieren probar y la también lo podemos probar pero ya no sé si tienen algunas preguntas lo están tratando y tienen problemas en algún lado me avisan o que se vea que todos están haciendo algo así que espero que funciona o que la pregunta era bueno después de conectar con metamask en remix solamente ejecuté el script así que solamente me fue acá y apretó a ese botón pero si tenemos que tener ser conectado con metamask que se ve acá y si tenemos que estar en optimism que está acá que creo que es el custom 10 network y hay que tener un poco de de ahí así que hay que ver si tienen un poco de ahí porque si no no va a funcionar si no no tiene suficiente is vas a tener un error acá que se dice insuficiente is creo que el contrato es que usted que ustedes no saben pero que es que tenemos como un whitelist adentro posíamos los los los direcciones que ustedes ponían acá así que de ustedes creo que pueden con esa dirección pueden mint un nft dos nfts pueden mint pero no más de eso así que lo pueden ejecutar dos veces pero no más así que también para otra persona si quieren lo pueden ejecutar de que a creo que es una ipfs pero no sé la verdad que no sé creo que acá tenemos el flyer explorer acá lo puedo abrir los contractos eso es el contrato que compilé eso es el contrato que se puede que se hay que compilar y después acá hay el script que es un type script que se que hay que ejecutar después de eso está compilado y hay que ser conectado con metamask y eso es todo aparte fue también también conectado a la imagen no se puede cambiar porque la meta data está está está en el contrato no se puede si está en el contrato a veces pero bueno creo que no sé cuál es lo lo próximo no no hay nada después ok bueno entonces también creo que pueden estar un poco más acá pero el workshop oficial terminó pero voy a estar un poco más acá si tienen problemas lo pueden ver pero si hay como las camisetas ahí y si quieren si solamente continúan con el con el workshop y gracias por todos que están acá muy bueno hasta la próxima