Excelente vÃdeo como siempre Alberto. Como sugerencia te hago, tratar los eventos como modo de almacenamiento economico registrando la informacion en el blockchain. Es algo que citas en uno de tus articulos de Medium pero no he encontrado nada en los videos. Un saludo y muchas gracias.
Hola Alberto, muchÃsimas gracias por el curso, te querÃa hacer una recomendaciÃģn. ReciÃĐn arranco el curso no se como lo vas llevando mas adelante, pero quizÃĄs estarÃa bueno que antes de comenzar el video muestres el ejercicio q tienes planteado hacer (para los que nos gustan los desafÃos es genial intentarlo realizar antes de que expliques y luego agregar los cambios y nuevos conocimientos). Solo eso quizÃĄs si te parece bueno podÃĐs implementarlo. Nuevamente muchÃsimas gracias y saludos desde Argentina :)
Muchas veces lo hago por primera vez o sin probar el cÃģdigo para que sea mÃĄs autentico e ir resolviendo errores en directo, pero lo tendrÃĐ en cuanta. Saludos.
Primero de todo agradecerte el esfuerzo y la dedicaciÃģn en los videos! Te gusta enseÃąar y se nota!!!^^ Llevo un par de videos arrastrando una duda: Cuando desde una wallet indicas el Value = 15, Âŋquiere decir que el propietario de esa wallet estarÃa poniendo un precio al coche que aÃąade ÃĐl mismo? ÂŋO es un dinero que ÃĐl aÃąade al contrato (y que por lo tanto, el usuario estarÃa comprando)? Gracias de nuevo! Un saludo!!
esta mal la logica de programacion que Alberto usa aqui! en realidad esta mal porque no tiene sentido logico pero esta bien para explicar el punto de como funciona un modifier. en este contrato alberto crea un modifier para el seteo del precio que le vas a poner al coche que tu quieres poner en venta y para eso alberto exige que ese valor salga de tu address y que sea de tipo payable de modo que aunque alberto pretende que vos fijes el precio del coche a vender en verdad estas enviando saldo al auto y su tu eres vendedor eso no tiene sentido por que tu estas entregando es el auto y no el dinero con el que el auto esta valuado. en en contrato no existe ninguna funcion de transferencia de dinero por autos ni autos por dinero asique en verdad en ninguna parte del contrato tu puedes comprar el auto. solo puedes poner autos en venta y el contrato sin sentido exige que para cada auto que ventas pongas el dinero que el auto vale en la direccion del contrato. lo que alberto quiere decir con eso es que cuando tu hagas la funcion de comprar el auto apliques el conocimiento para crear modifiers como middleware con la funcion de compra del auto para que la transaccion se revierta si la persona no inicia el proceso entregando el dinero exacto al contrato del auto. no se si me hago entender?
Excelente video, empecÃĐ en el mundo de solidity, muy bien explicado. en este vÃdeo en particular el Único error que me dio fue que a la funciÃģn constructora tenÃa que ponerle payable y asà fue como Único me funcionÃģ, pero en este vÃdeo que pones te funciona sin el payable en la funciÃģn constructora, porquÃĐ puede pasar esto?, gracias.
Estoy teniendo problemas para desarrollar un storage. Necesito guardar la identidad de cada usuario, indexada a una serie de objetos de caracterÃsticas determinadas. ÂŋCÃģmo lo soluciono? Hago un mapping con clave msg.sender y que entregue como valor un array. ÂŋComo puedo hacer para que dicho array contenga objetos de tipo struct en vez de datos simples? ÂŋComo puedo visualizar y modificar de alguna manera las variables que se encuentran en el objeto Struct dentro del array? SI LEES ESTO AYUDA PORFAVOR ALBERTO... ESTOY MUY ATASCADO Y RETRASO AL EQUIPO.
En realidad si probas vas a ver que podes aÃąadir mas de un coche por owner. Pero no hay una funcion que te devuelve todos los coches o el que pidas con id. Solo una que te muestra el ultimo que aÃąadio tal owner, seria cuestion de agregar la logica para esto.
Una pregunta: ÂŋTenes algun medio por donde podamos comunicarnos directamente? (Discord, Telegram, etc). Cuando agrego otro coche con la misma address no hay problemas. Pero cuando utilizamos la funcion getCoche solo arroja la informacion del ultimo coche subido. ÂŋComo podria hacer para que me traiga todos los coches o para que me de a elegir la informacion de que coche quiero ver? Muchas gracias por toda la informacion.
Hola Alberto, excelente explicaciÃģn. Porque en gerCoches() retornas las porpuedades de la estructura Coche en vez de devolver la estructura en si? De esta forma function gerCoches() .....returns(Coche coche); Solidity no soporta devolver estructuras?
Muchas gracias por los videos :-). Tengo una duda, si llamo a la funciÃģn getCoche con la cuenta de un usuario que no tiene registrado ningÚn coche, ÂŋquÃĐ me devuelve?. Entiendo que tendrÃa que devolver "nada"
Todas las variables de solidity tienen un valor por defecto aunque no le des ninguno. Estos valores pueden ser false, el nÚmero 0, una cadena de texto vacÃa, etc.. Depende directamente del tipo de valor que guarde la variable.
Hola Alberto: Primero agradecer tu trabajo, muchas gracias. Mi duda. Una adress no puede crear y guardar varios coches en este contrato. Es decir, cada vez que se crea un coche actualiza al anterior,.. no? En caso que de que se pudiese crear varios coches para cada adress habrÃa que hacer un bucle para mostrarlos a todos? Gracias!!
Hola. Mira bien como tienes programado el modifier y como lo usas en la funciÃģn. Si lo haces bien es imposible saltarte ese filtro. Te aconsejo que pares el vÃdeo donde se pueda ver todo el cÃģdigo y repases. TambiÃĐn has podido cometer un error en la inicializaciÃģn del precio dentro de la funciÃģn constructora. Saludos
ÂŋPor quÃĐ dentro del Struct le asignas 256 bits a identificador y 32 a caballos y kilÃģmetros? ÂŋCuÃĄl es el criterio para asignar el tamaÃąo en bits a las distintas variables? Felicitaciones, excelentes vÃdeos.
Es un tema de almacenamiento en la blockchain (lo mÃĄs caro en tÃĐrminos de Gas). Lo explico en este artÃculo: medium.com/@AlbertoLasa/optimizando-variables-struct-en-solidity-f3bc1449e6e6
Tienes que ver cuanto va ha ocupar como mÃĄximo el valor de tu variable, y en funciÃģn de eso reservar un nÚmero de bits (256, 32. ...) para esa variable.
Gracias por tus vÃdeos, mejores que muchos de pago
buenisimo este cursito. OjalÃĄ sigas creciendo que enseÃąas muy bien alberto. Saludos desde argentina papaaa
Muy bueno mi estimadoo!!
Gran aportaciÃģn, saludos desde Mexico
yo de nuevo. Gracias loco, de verdad gracias
Muchas gracias!!!
muy buen ejemplo para Array, Mapping y Struct
muy bueno. directo a lo que se necesita para un aprendizaje rÃĄpido.
Muy bueno
Muy bueno!
ðððð
Este curso es fantÃĄstico, muchas gracias!
Muchas gracias Alberto por un video mÃĄs buenÃsimo. SeguirÃĐ con el resto. Se aprende muchÃsimo con esta exclente lista de reproducciÃģn.
Muchas gracias Alberto, ya voy pillando poco a poco de quÃĐ va el asunto. Un saludo
ðĶ
Que claridad para explicar y hacernos entender
Excelente informaciÃģn, mil gracias por compartirla.
No me pierdo ninguno de tus vÃdeos, son muy buenos!! Gracias.
hola amigo queria saber si tu me puedes ayudar con la logica de un pequeÃąo smart contract
Muchas Gracias por el conocimiento, esta de maravilla el curso.
estan increibles tus videos felicidades!!
Genial amigo, estuvo bueno!
Excelente vÃdeo como siempre Alberto.
Como sugerencia te hago, tratar los eventos como modo de almacenamiento economico registrando la informacion en el blockchain.
Es algo que citas en uno de tus articulos de Medium pero no he encontrado nada en los videos.
Un saludo y muchas gracias.
Hola Alberto, muchÃsimas gracias por el curso, te querÃa hacer una recomendaciÃģn. ReciÃĐn arranco el curso no se como lo vas llevando mas adelante, pero quizÃĄs estarÃa bueno que antes de comenzar el video muestres el ejercicio q tienes planteado hacer (para los que nos gustan los desafÃos es genial intentarlo realizar antes de que expliques y luego agregar los cambios y nuevos conocimientos). Solo eso quizÃĄs si te parece bueno podÃĐs implementarlo. Nuevamente muchÃsimas gracias y saludos desde Argentina :)
Muchas veces lo hago por primera vez o sin probar el cÃģdigo para que sea mÃĄs autentico e ir resolviendo errores en directo, pero lo tendrÃĐ en cuanta. Saludos.
Hola ALberto, en external deberÃa usar calldata, porque usas memory?
Primero de todo agradecerte el esfuerzo y la dedicaciÃģn en los videos! Te gusta enseÃąar y se nota!!!^^
Llevo un par de videos arrastrando una duda: Cuando desde una wallet indicas el Value = 15, Âŋquiere decir que el propietario de esa wallet estarÃa poniendo un precio al coche que aÃąade ÃĐl mismo? ÂŋO es un dinero que ÃĐl aÃąade al contrato (y que por lo tanto, el usuario estarÃa comprando)?
Gracias de nuevo!
Un saludo!!
ME QUEDO PARA LLER LA RESPUESTA
esta mal la logica de programacion que Alberto usa aqui! en realidad esta mal porque no tiene sentido logico pero esta bien para explicar el punto de como funciona un modifier.
en este contrato alberto crea un modifier para el seteo del precio que le vas a poner al coche que tu quieres poner en venta y para eso alberto exige que ese valor salga de tu address y que sea de tipo payable de modo que aunque alberto pretende que vos fijes el precio del coche a vender en verdad estas enviando saldo al auto y su tu eres vendedor eso no tiene sentido por que tu estas entregando es el auto y no el dinero con el que el auto esta valuado.
en en contrato no existe ninguna funcion de transferencia de dinero por autos ni autos por dinero asique en verdad en ninguna parte del contrato tu puedes comprar el auto. solo puedes poner autos en venta y el contrato sin sentido exige que para cada auto que ventas pongas el dinero que el auto vale en la direccion del contrato.
lo que alberto quiere decir con eso es que cuando tu hagas la funcion de comprar el auto apliques el conocimiento para crear modifiers como middleware con la funcion de compra del auto para que la transaccion se revierta si la persona no inicia el proceso entregando el dinero exacto al contrato del auto. no se si me hago entender?
ð
Excelente video, empecÃĐ en el mundo de solidity, muy bien explicado. en este vÃdeo en particular el Único error que me dio fue que a la funciÃģn constructora tenÃa que ponerle payable y asà fue como Único me funcionÃģ, pero en este vÃdeo que pones te funciona sin el payable en la funciÃģn constructora, porquÃĐ puede pasar esto?, gracias.
Versiones de compilaciÃģn
@@AlbertoLasa Gracias.
Estoy teniendo problemas para desarrollar un storage.
Necesito guardar la identidad de cada usuario, indexada a una serie de objetos de caracterÃsticas determinadas.
ÂŋCÃģmo lo soluciono?
Hago un mapping con clave msg.sender y que entregue como valor un array.
ÂŋComo puedo hacer para que dicho array contenga objetos de tipo struct en vez de datos simples?
ÂŋComo puedo visualizar y modificar de alguna manera las variables que se encuentran en el objeto Struct dentro del array?
SI LEES ESTO AYUDA PORFAVOR ALBERTO... ESTOY MUY ATASCADO Y RETRASO AL EQUIPO.
ðð
Excelente.
En el ejercicio entonces aplicarÃa para 1 Único coche por owner, verdad?
En realidad si probas vas a ver que podes aÃąadir mas de un coche por owner. Pero no hay una funcion que te devuelve todos los coches o el que pidas con id. Solo una que te muestra el ultimo que aÃąadio tal owner, seria cuestion de agregar la logica para esto.
Una pregunta: ÂŋTenes algun medio por donde podamos comunicarnos directamente? (Discord, Telegram, etc). Cuando agrego otro coche con la misma address no hay problemas. Pero cuando utilizamos la funcion getCoche solo arroja la informacion del ultimo coche subido. ÂŋComo podria hacer para que me traiga todos los coches o para que me de a elegir la informacion de que coche quiero ver? Muchas gracias por toda la informacion.
solucionaste este problema?
Hola Alberto, excelente explicaciÃģn. Porque en gerCoches() retornas las porpuedades de la estructura Coche en vez de devolver la estructura en si?
De esta forma
function gerCoches() .....returns(Coche coche);
Solidity no soporta devolver estructuras?
SÃ, si puedes.
Muchas gracias por los videos :-). Tengo una duda, si llamo a la funciÃģn getCoche con la cuenta de un usuario que no tiene registrado ningÚn coche, ÂŋquÃĐ me devuelve?. Entiendo que tendrÃa que devolver "nada"
Todas las variables de solidity tienen un valor por defecto aunque no le des ninguno. Estos valores pueden ser false, el nÚmero 0, una cadena de texto vacÃa, etc.. Depende directamente del tipo de valor que guarde la variable.
Hola Alberto:
Primero agradecer tu trabajo, muchas gracias.
Mi duda.
Una adress no puede crear y guardar varios coches en este contrato.
Es decir, cada vez que se crea
un coche actualiza al anterior,.. no?
En caso que de que se pudiese crear varios coches para cada adress
habrÃa que hacer un bucle para mostrarlos a todos?
Gracias!!
Se podrÃa modificar el contrato para lo que dices, pero es posible, sin problema. Seguramente usarÃa otro array.
Hola Alberto, gracias por tus videos,
Replicanco el codigo del video, a mi me ha permitido addCoche sin ingresar ningun value
Hola. Mira bien como tienes programado el modifier y como lo usas en la funciÃģn. Si lo haces bien es imposible saltarte ese filtro. Te aconsejo que pares el vÃdeo donde se pueda ver todo el cÃģdigo y repases. TambiÃĐn has podido cometer un error en la inicializaciÃģn del precio dentro de la funciÃģn constructora. Saludos
ÂŋPor quÃĐ dentro del Struct le asignas 256 bits a identificador y 32 a caballos y kilÃģmetros? ÂŋCuÃĄl es el criterio para asignar el tamaÃąo en bits a las distintas variables? Felicitaciones, excelentes vÃdeos.
Es un tema de almacenamiento en la blockchain (lo mÃĄs caro en tÃĐrminos de Gas). Lo explico en este artÃculo: medium.com/@AlbertoLasa/optimizando-variables-struct-en-solidity-f3bc1449e6e6
Tienes que ver cuanto va ha ocupar como mÃĄximo el valor de tu variable, y en funciÃģn de eso reservar un nÚmero de bits (256, 32. ...) para esa variable.
en solidity 0.8.4 me da este error TypeError: Type is not callable --> en la funcion donde se retornan los valores del struct
Depende de las versiones del compilador. Voy subiendo nuevos vÃdeos en los que uso nuevas versiones de compilador segÚn van apareciendo. Saludos.
En esta parte me perdà :(
No te rindas
@@AlbertoLasa gracias :D
Nuuu fondo blanco
Tutoriales sin compartir el cÃģdigo