De la teoría al despliegue: Cómo crear en Arbitrum y Optimism por Mateo Emilio | LABitconf 2023

LABITCONF 2023 · 2023 · 21:22

Mateo introduces Solidity syntax, state and local variables, constants, data locations, modifiers, and reusable contracts. He demonstrates using Remix, MetaMask, test networks, and faucets to deploy a contract, explaining how the same workflow applies to Arbitrum and Optimism.

Speakers

Topics

From LABITCONF 2023.

Transcript

del del nodo estuvieron ahí chuando un poquito de Hardware Bueno ahora toca en la otra parte eh vamos a tocar un poco de software por ahí lo que estuvieron hoy en la charla de la itela que estuvo muy buena eh vamos a estar haciendo algo parecido eh Por ahí que nunca dearon un contrato básicamente vamos a hacer lo mismo que hoy se hizo en ethereum pero lo vamos a hacer dentro de eh cómo hacerlo en optimis t como en arbitrum eso ya vamos a ver un poquito que es más o menos lo mismo y Solamente vamos a estar un par de cositas de de datos cuando queremos cambiar la la Pero bueno para no me conoce soyate Emilio soy Rosario y soy FR y hago cositas dentro de y vamos a estar viendo un

poquito de solidity ya desde cero y bueno están ahí con la yo quería quean todo Lau loco pero bueno a ver que está allá con la compu alg alg sm Contract no Bueno hoy se van a acá el primer Bueno vamos a pasar un poco la sxis tampoco quiero est muy pesado porque Bueno creo que Ho estuvieron por ahí la mayoría todos de acá Así que eso quiero acompañarlos a ir est al lado de ustedes verlo que realmente entiendan que lo prueben ustedes el Wii ahí bueno est con los datos Y no me cargaba la ppt pero conect al Wii perfecto Así que wifi no problema así que bueno vamos arrancando un poquito con eso y y Bueno cualquier

pregunta que tenga levant la mano y vamos lo más Dinámico lo más interactivo posible Como si fuese justamente una clase entre nosotros bueno primero el plan solidity poito Qué es bueno un lenguaje orientado objetos para justamente contratos inteligentes qué son estos contratos inteligentes bueno vanc los programas que vamos a estar utilizando para poder interactuar con con la blockchain cuá nace solity nace en 2014 por ahí hay un par de peleas por ahí Quién fue de Los Pioneros eh por ahí los que eson los queon el libro de de Camila ruso de Machine que cuenta un poquito la historia de deum est muy bueno y bueno con este propósito de

empezar a crear todo este nuevo mundo de de contratos que está en computadoras alrededor de todo el mundo para decir Che bueno eh vamos a empezar a construir un poco de todo este código que tenemos hoy en día en ese tiempo por ahí no sé alun ahí de deor es mundo Eh bueno mucho mucho por ahí vaa biología Bueno eso es lo que venía comentando un poquito Smart Contract bueno básicamente la sintaxis es esta con la palabra clave Contract después el nombre del contrato Pascal Case usamos básicamente la la forma de escribir los contratos y después todos los statements o los

códigos que nosotros qu poner adentro bueno estos contratos Eh así como tenemos e e bueno en los servidores comunes de toda la vida d guardamos información esta información va a estar guardada la bloche básicamente son un montón de servidores un montón de computadoras a lo largo de todo el mundo que están todo al mismo tiempo sincronizadas entre sí porose de acuerdo para decir Che bueno Mirá la información que tengo en este momento es esta y estar todo el tiempo verificando y comunicándose entre sí para que no haya ningún Li eh bien bueno siendo un poquito eh V diciendo bueno que el Case para la anotación de contracts después Bueno también

importante que en cuanto a las licencias eh siempre se tiene que poner en los contr contratos Porque si no el compilador va a empezar A chillar Así que siempre eh tenemos que poner la la licencia y bueno y pragma que básicamente es la palabra clave que vamos a tener que estar viendo poniendo para indicarle al compilador de solidity Qué versión va a tener que estar mirando el código para poder eh justamente compilarlo cuando estos es y Bueno siempre esta directiva es importante que siempre es local y y no es global deí que vamos a tener que estar poniéndolo por cada por cada archivo que estemos por cada contad que nosotros vamos a estar escribiendo bien eh Bueno es ser los

ejemplos podos poner que sea de por ejemplo 0.8.7 para arriba o que esté entre dos versiones o que sea una versión en específica un poquito la formas que tenemos para para indicar la versión a a solito el compilador bueno es todo ahí a groso modo las tres variables por ahí lo más importante a la hora de un está arrancando es saber diferenciar bien Esto los tres tipos de variables son locales las variables de estado y las globales bueno las locales son las que están dentro de la función de toda la vida que estas no se van a estar almacenando la blockchain pero que después cuando nosotros queramos declararlo fuera de una función estas Sí van a estar almacen en la bl justamente Esta es la que más lo representa el

nombre justamente que decimos de que cuando nosotros vamos escribos un contrato lo modificamos le mandamos algo por parámetro estamos modificando el estado de una función de smart Contract por medio de una variable y por eso justamente el nombre representativo las variables de est y bueno las variables globales van a dar información sobre la bl así por ejemplo ahora por decir No sé el de en ese momento o otras cositas que m ver directamente eh los métodos que nos proporciona eh la documentación de bueno acá pueden Verito bueno acá vemos las distintas variables las variables de estado que se

almacenan en la bl podemos ver el Tex y el n Bueno buenas sin número y después bueno las variables locales que no se van a estar dentro de la dentro de la función y después tenemos un poco de ejemplo de variabl globales acá como diciendo el y bueno la que llama función Alo y y un poquito loses tipos de Bueno después las constantes Qué son las constantes de toda la vida son las variables que no se pueden modificar este valor sieme va a estar Jado y bueno y usar constante muchísimos gas va ser que el compilador de solidity a la hora

de estar viendo Che dice Bueno estoy ejecutando tu código estoy compilando puso con una constante Bueno ya con esto a la próxima vez que va a tener que jarlo va va a tener memoria y va a ser mucho más eficiente a la hora de de poder obtener este valor decir que por ahí conviene por ahí ver adaptar nuestos códigos y podemos usar bien de una forma eficiente las contantes va a ser mucho mejor buen AC vamos por ejemplo el estar asignando una variable una constante lamos así eh directamente el String de una address o Eh bueno la [Música]

constante Bueno después tenemos las imputables por ahí se dan un poco conclusión pero son como las constantes pero una poca diferencia que su valor se va a poder establecer dentro del constructor cuando se inicia el Smart Contract pero después no vamos a poder modificarlas Qué sería Esto bueno acá que por convención nos dice que las variables va mayúscula vos por acá a que están dentro del constructor a a la inmutable en cambio como vamos ver la comparación con laada está fens que está dentro del contrato y está ahí dentro del constructor

bueno Cómo puedo asignar valor o leer a estas variables de estado bueno como vimos se declaran fuera de una función y se van a estar alando la blockchain o para ha un valor o actualizarlas Se realizaron la transacción que esto que les comentaba que cada vez nosotros queremos cambiar el estado de una variable vamos a estar modificando la blockchain Seguramente se lo se lo reper un millón de veces hoy eh Y bueno y por eso justamente teníamos que pagar este gas pero para leer est esta variable este estado de la blockchain no vamos a tener la necesidad de pagar de pagar Que bueno ahora vamos a ver un par de cositas des con para para que pued los datos bueno acá

tambito de código no quiero aburrir mucho sino que vamos directo a la forma práctica bueno eh unidades no sé si esto lo habrán visto por ahí pero es muy importante por ahí tenerlo a la hora de estar manejando precios eh tener en cuenta que sol nos proporciona es una calculadora voy a volver esto pero solit nos proporciona esta esta anotación de acá a la hora de nosotros tener que interactuar con con eter por ejemplo que nos da que poner que un un we es igual a justamente a uno eh un gig Bueno un a la 9 uner uno a la 18 y así pero siempre Siendo la unidad de de de medida del bien bueno acá como veíamos eh one

way bueno Estos son solamente los nombres de esto pueden tener Cualquier nombre pero por ejemplo uner se puede poner así poner directamente con el nombre uner no es que tenemos que poner eh No sé un 18 no es necesario ponerlo así como abajo sino como que es es lo mismo y es mucho la vista para no volver bueno Esto tambén un poquito las unidades bu bastante copado de poder ponerlo en segundos minutos horas días y semanas y así no tenemos estar haciendo cálculos medos raros y no estar gastando gas de gusto no porque hay que siempre tener en

cuenta esto cada cosa que nosotros estamos haciendo dentro de un contrato en sol es poder deero vamos estar utizando y no hay que desar tenemos que saber a la hora de utilizar las herramientas que nos proporciona el el lenguaje para poder explotar al máximo amos el compilador Bueno un poquito de las ubicaciones de los datos que están almacen la blockchain en memoria o el c Data bueno por ahí un poquito pero bueno el storage storage son las variables estado en bl lo que están en memoria que van a existir mientras solamente se llama la función que lo que veamos hoy no en la block y bueno los que son un dato medio

especial que va a contener justamente los los argumentos de de cada [Música] función un poquito ejemplos y bueno los modifiers que son un poquito de código que se pueden ejecutar antes y o después de una llamada a la función que nos va a ayudar en varias cosas un poquito por ahí para definir los el scope de qué queremos que que haga ese ese contrato o de qué no haga la valendo paretec cont serc

vi básicamente Qué bueno es una librería que nos proporciona contratos vamos a poder estar importando la todos los contratos de que nos proporcionan opening que básicamente que nunca escuchó qué es lo que hacen es dan contratos prestablecidos para decir Mirá un rc20 tiene esta forma eh copiate el contrato no hagas tu propio rc20 no rente la rueda Venite y usa lo que ya te estamos proporcionando no gastes buenoo básicamente la función de las

librerías toda la vida tenemos implementar algo nuestro código ya está hecho Bueno directamente source así que ahora creo que est para queada su computadora y bueno est sería la forma Dear bueno Contract así como de esta forma vamos poder eh importar cualquier tipo de librería y bueno acá ya vemos todas las cosas no lo que veíamos hoy la licencia el pragma el import la declaración del contrato el nombre el tipo lo que es el constructor loamos por parámetro básicamente esto como loo el cuerpo de sol Bueno un poquito de ejemplos vamos a

ir directo a a remix que bueno para el que no conoce eh una paginita que es una página que lo que hace que nos conecta directamente con la blockchain sin necesidad de estar importando un montón de cosas y y tener muchos tener muchos contratos no hace mucho más fácil la conexión de no estar teniendo que montar un frontend a la hora de tener que comunicarnos y estar creando esto de Back pero sino todas las cosas que necesitamos para poder comunicarnos directamente con con bueno bien Vamos a mostrar un poquito Qué sería y después eh voy a ir eh por cada uno para ver PR contrato Bueno Este

es el link remix voir por acá y y la diferencia quiero que que vean [Música] [Música] [Música] bien Esto vamos a como cualquier

contrato nos vamos a tener loemos hacer para poderar vamos estar en remix tenemos el [Música] contrato bueno no sean que ahora tenemos una charla muy [Música]

interesante bueno Bien acá estamos dentro de bueno que lo que quera Mostrar Al principio para ver Bueno cómo vamos a agregar nuestra red directamente para entrar a la red de bueno Qué es es una rednet que está dentro deum tambén como está dentro deum está dentro de op dentro deit y eh están siempre estas estas redes de de prueba son nos salvan las papas a la hora de decir Bueno mir quiero empezar a probar cosas y no tengo no tengo ganas de gastar plata eh Porque me voy a mandar cagadas entonces Bueno te vas directamente a una te que todo lo que hagas no va a dar ningún problema porque todo el dinero entonces Bueno qué

tenemos que hacer para agregar esta Chain a nuestra metabasa Bueno a mí me encanta usar eh ch que básicamente te muestra todas las que hay o su mayoría podemos poner ejemplo le damos al acá de y acá vos que ya nos salta de optimis bu y acá le damos directamente a ad y ahí nos va a salar el celito para que para que bueno Y acá podemos ver todos los rpc todos los nodos justamente eh a la hora de nosotros comunicarnos que bueno para los que tuvieron hoy la charla de nodos eh básicamente lo que podemos hacer después con ese nodo es

hacerle público asignar un dominio y que la gente se pueda comunicar que justamente por ahí es lo que la funcionalidad de decir Che bueno para para algo quiero estar compartiendo esto al Así que buenoos ahí eh Y lo importante también es solamente tener token si no tenemos token no tener eh dinero para poder transferir o pod ejecutar los contratos y la forma de de tener estos tokens es con vamos a ir un fet que básicamente lo que hace el F estos están bastante buenos que hacen que te pren los toques

para que puedas justamente Dear o hacer lo que vos quieras pero solamente en t bueno por ahí un poquito eh el bón que tiene quicke que te pide 0,001 para poder ehar la f que te manden tokens pero igual si ahora si quieren se muen en el grupo de Telegram pasan sus ades y les mando tokens No hay problema Así pueden y bueno acá bamos la W seleccionamos la la Chain y y pedimos a estar mandando

directamente lo Pero bueno eso sería el hasta ahora alguna preguntita y bueno la diferencia de de nosotros a la hora de decir Bueno mir quiero Dear en optim arbit es básicamente agarrar como agregamos nosotros nuestra ch acá vamos a tener que cambiar dónde estamos parados

en solamente con esto a la hora de nosotros interactuar con remix remix va va a darse cuenta con vamos a estar haciendo y la verdad que nunca probé con alguna red que no sea compatible pero por todas las que probé que son compatibles con la nunca tuve problemas a la hora de plar la verdad que funciona bastante bien bueno acá no deja seleccionar la cuenta es para inventar la idea intentar Bueno podemos ver el contrato

deado y así como sepl recién Ah se puede hacer con cualquier red con cualquier red compatible con IBM y y no problema AC tien todos los datos justamente bloque de la transacción el del contrato que acabamos Dear y y bueno desde dónde se fue la dirección dónde desamos el costo de la transacción en gas y Bueno un poquito más dat estendo pero bueno básicamente sería esta la historia y la idea Esta es de que ahora que nos queda bastante tiempo es que edos mismos sacan la compu eh haan remix

y empiecen a probarlo eh métanse a quicke directamente si quieren y ahora lado de cada uno para ver si si pueden achar a usted dos ya lo tengo fichado Así que tien que Dear el contrato aar