😎 Solidity Tutorial - Transacciones - Smart Contracts en Ethereum

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ธ.ค. 2024

ความคิดเห็น • 51

  • @isaiascobogalindo
    @isaiascobogalindo 2 ปีที่แล้ว +1

    Genial. Voy siguiendo.

  • @danielalejandronavarroluna8374
    @danielalejandronavarroluna8374 3 ปีที่แล้ว +1

    Aqui iniciando para empezar a orientarme en este maravilloso mundo

  • @carlosguerra2853
    @carlosguerra2853 2 ปีที่แล้ว +1

    Muy bien el video en general. Solo veo algun detalle que tuve que cacharrear para entenderlo y que creo que hay alguna duda más en los comments. Creo, alomejor me equivoco, que habría que puntualizar lo siguiente
    1- Los contratos se pueden crear sin saldo. Cuando haces el despliegue del contrato le estas metiendo fracciones de Ether para que el contrato parta de base con un "saldo". Entiendo que el contrato lo puedes crear con o sin saldo. Si no le pones nada este se crea por defecto con 0 de balance.
    2- Después de desplegar el contrato invocas el método incrementBalance y creo que aqui diferenciaría en dos partes
    - Lugar donde pones el "saldo" que tomará del "Account" y sale del Account "personal" aunque en este caso es un Account de ejemplo.
    - Lugar donde indicas la cantidad que se mandará a través de la función del increment (que es indicativo para comprobar que es lo que debería llegar).
    Es por eso que hay que indicar dos veces el valor y deben ser iguales, uno es lo que vas a mandar del Account y lo otro es lo que indica que es lo que realmente debería llegar.
    A mí me quedó la duda de ¿Qué pasa si no se comprueba lo que se envía con lo que se fija en el Account? Respecto a esto estuve cacharreando y siempre predomina lo que se fija en en Account y no lo que llega por parámetro. Si no se incluye la comprobación puede ocasionar que al contrato se mande menos "ethers" que los que realmente se manden por parámetro
    Disculpa por la chapa.

  • @Velastroll
    @Velastroll 3 ปีที่แล้ว +2

    Eres un crack Alberto, tu contenido es oro. Muchas gracias por tus videos.

  • @victorgruszeczka9182
    @victorgruszeczka9182 3 ปีที่แล้ว

    ¡Muchas gracias!

  • @ArielRobottiMdP
    @ArielRobottiMdP 3 ปีที่แล้ว +6

    Genio!!! Gracias, estuve buscando algo así desde hace varias semanas, y llegué hoy de casualidad. 😁 Ahora a estudiar. Saludos desde Argentina

    • @seba23571
      @seba23571 3 ปีที่แล้ว +1

      una consulta a mi por ahora no me funciona he cambiado a la version pragma solidity ^0.4.0; y no hay caso como lo lograste ?

  • @pabloforlani6023
    @pabloforlani6023 2 ปีที่แล้ว

    muchas gracias por la info

  • @joseluispelaez1902
    @joseluispelaez1902 2 ปีที่แล้ว

    Gran aportación, saludos desde Mexico

  • @zabalasaintpaul
    @zabalasaintpaul 3 ปีที่แล้ว +1

    espectacular, tan simple para los pasos iniciales

  • @manuonda
    @manuonda 3 ปีที่แล้ว

    muchas gracias!

  • @Javier_Banquez04
    @Javier_Banquez04 4 ปีที่แล้ว +1

    amigo eres un crack, espero poder aprender bastante con tus videos

  • @aarondv
    @aarondv 3 ปีที่แล้ว +1

    muchas gracias por el contenido...se agradecería si se pueden realizar un par de vídeos realizando estos ejemplos sencillo pero utilizando la librería Hardhat.

  • @miguelangel8514
    @miguelangel8514 3 ปีที่แล้ว +2

    Genio sube un videito haciendo el set up que tienes de Remix, muy bueno el contenido.. Gracias Crack

  • @sebastianandressanchezherr2432
    @sebastianandressanchezherr2432 4 ปีที่แล้ว +1

    Mi estimado que buena enserio ;)

  • @mendezfloresmiguelangel8483
    @mendezfloresmiguelangel8483 3 ปีที่แล้ว +1

    Eres un crack

  • @gonrivas
    @gonrivas 3 ปีที่แล้ว +14

    desde solidity 0.6.0 la solución al problema para poner la address a payable address es así:
    payable(msg.sender).transfer (address(this).balance);
    a mi así me funciona bien, no se si Alberto puede decir s es correcto o no...

    • @AlbertoLasa
      @AlbertoLasa  3 ปีที่แล้ว +2

      Correcto. Saludos

    • @oscarvallerivera72
      @oscarvallerivera72 3 ปีที่แล้ว +1

      Gracias Gonzalo después de tres horas buscando te leo y me dejo compilar, Gracias.

    • @omarrm8764
      @omarrm8764 3 ปีที่แล้ว +1

      gracias caballero!

  • @arepa-bitcoin
    @arepa-bitcoin ปีที่แล้ว

    Buenas tardes hermano, tienes buen contenido en tu canal. Te estoy siguiendo desde ya. Hermano una pregunta quiero que mi Samart Contract pueda enviar y recibir BUSD que me recomiendas ver para hacer que mi contrato aplique esa función?

  • @diegoperez6575
    @diegoperez6575 3 ปีที่แล้ว +2

    Compilando en solidity 7 u 8 se necesita convertir el address del contrato a payable address. Esto se puede hacer así: address payable wallet = payable(address(this)); Y luego ya con esa variable wallet, se puede realizar la transferencia. No obstante el uso de send o transfer, parece que no es el recomendado y se recomienda usar call, quedando así: (bool sent, bytes memory data) = _to.call{value: wallet.balance}("");

    • @TheLantani
      @TheLantani 3 ปีที่แล้ว

      Con la primera opcion que comentas al ejecutar el contrato y querer incrementar el eth que tiene una cuenta no me lo suma.. Nose que puede ser el error

  • @aarondv
    @aarondv 3 ปีที่แล้ว

    Gracias por el material, Alberto. Consulta, en el min 14.20 donde ingresas in valor para el campo "value" como funciona esto si estuviera en un entorno más real (usando Metamask) porque no entiendo porque dentro del REMIX existe este campo adicional al que genera el IDE para usar la función "incrementBalance". Ya que por lo que entiendo al final la función se puede manipular por estas dos partes (y es por eso que haces la validación dentro de la función). Gracias por la respuesta de ante mano. Saludos.

  • @DaltonMaximo29
    @DaltonMaximo29 ปีที่แล้ว

    Como creo una instancia de un contrato ya creado? resulta que hay contratos que pueden estar en uso antes del lanzamiento oficial, mediante paginas web

  • @pachuchebreli754
    @pachuchebreli754 2 ปีที่แล้ว

    Hola alberto. Me podrias comentar de donde sale la variable balance? porque no veo donde esta definida y me confunde un poco

  • @christianosorio7473
    @christianosorio7473 3 ปีที่แล้ว +1

    A partir de la versión 0.5 de Solidity hay dos tipos de address:
    address: permite almacenar un valor de 20bytes que corresponde al largo de una dirección de Ethereum.
    address payable: es lo mismo que adress pero permite usar los métodos send() y transfer()
    Según la doc de Solidity está distinción se hace para que con una se pueda enviar ether (adress payable) mientras que con la otra no (adress). Entonces para que la función withdrawBalance() no genere un error y compile el código debemos hacer lo siguiente:
    payable(msg.sender).transfer(address(this).balance);
    De esta manera transformamos el tipo de dato address a address payable

  • @hackeloff7800
    @hackeloff7800 3 ปีที่แล้ว

    Tengo una duda, la funcion "IncrementBalance", al setearle la prop "PAYABLE", esta hace que el input amount se le reste luego de la wallet del que ejecute esa funcion? Porque no veo la logica de restarle el monto al emisor, supongo que estará todo incorporado en PAYABLE.

  • @diegoesquiviarodriguez5902
    @diegoesquiviarodriguez5902 2 ปีที่แล้ว

    Hola, es posible contactarte de alguna forma?

  • @manuelabreu6428
    @manuelabreu6428 9 หลายเดือนก่อน

    Hola, hice uno y el deposito del contrato no se vio reflejado, que puedo hacer? ayuda

  • @tradingcrypthor5683
    @tradingcrypthor5683 2 ปีที่แล้ว

    cuando en incrementBalance pongo 9000000 y en value 0, anda bien aunque no sale que tranfiere nada

  • @WizardMoDz
    @WizardMoDz 4 ปีที่แล้ว

    👍

  • @tradingcrypthor5683
    @tradingcrypthor5683 2 ปีที่แล้ว

    me compila perfecto pero cuando quiero transferir me sale ese error y pongo todo tal cual, pero en compilacion va perfecto.

  • @enriquesanchez5562
    @enriquesanchez5562 3 ปีที่แล้ว +2

    Coloca las letras mucho mas grandes.

  • @martinpratto1475
    @martinpratto1475 5 ปีที่แล้ว

    Queria felicitarte por el video aunque hay algo conceptual que no logro comprender: de donde sacas el monto de dinero para transferir a otra cuenta? o sea la cuenta de origen cual es? porque veo el incremento en la adress transfer pero no logro ver de donde sale el monto. Gracias por todo y felicitaciones por la excelente explicacion!

    • @AlbertoLasa
      @AlbertoLasa  5 ปีที่แล้ว +1

      Gracias por tus ánimos. El monto sale del contrato, cada Smart Contract puede guardar un saldo en ethers al igual que una cuenta de una persona. El creador del contrato puede transferir (depositar) ethers al contrato, o si el código del contrato lo permite podrían hacerlo otros usuarios. "address(this).balance" hace referencia al saldo del contrato y este siempre debe ser como mínimo igual o superior al monto a transferir hacia un usuario externo.

    • @martinpratto1475
      @martinpratto1475 5 ปีที่แล้ว

      @@AlbertoLasa muchisimas gracias Alberto y nuevamente felicitaciones por tu ayuda en la capacitacion. Un abrazo

  • @akiraannaisha5667
    @akiraannaisha5667 5 ปีที่แล้ว

    Alberto, si quisiera añadir a este contrato la funcionalidad de ver el balance del contrato actualizado, es decir, el dinero que contiene en cada momento de forma automática, cómo lo haría?

    • @AlbertoLasa
      @AlbertoLasa  5 ปีที่แล้ว +1

      Tendrías que hacer una función de tipo getter con un return de address(this).balance.

    • @denianf
      @denianf 3 ปีที่แล้ว

      @@AlbertoLasa Hola Alberto primero felicitarte y dar las gracias por estas clases, me imagino que ya Akira resolvió como hacer la función pero la dejo acá por si alguien más tiene esta duda en el futuro
      function showBalance() public view returns(uint256){
      uint256 currentBalance = address(this).balance;
      return currentBalance;
      }

  • @ReyJesus2008
    @ReyJesus2008 4 ปีที่แล้ว

    Gracias por tus aportes. Viendo el video muy educativo. Me gustaría contactarte acerca de unos proyectos de blockchain. Dejame algun correo o algo así

  • @artistasamerica3948
    @artistasamerica3948 5 ปีที่แล้ว

    Se podria generar contratos documentales con blockchain? solidity?

    • @AlbertoLasa
      @AlbertoLasa  5 ปีที่แล้ว +1

      No sé que es exactamente un contrato documental, pero con un Smart Contract en principio puedes plasmar cualquier contrato. Un contrato no es mas que un conjunto cláusulas que se activan en base eventos. En ciertas ocasiones también podemos usar oraculos para inyectar información del exterior a la blockchain.

  • @vicente258
    @vicente258 4 ปีที่แล้ว

    Hola Alberto estoy siguiendo tus tutoriales soy programador pero estoy teniendo problemas con la version ya que no encuentro las opciones para hacer Deployed

    • @eduardo6573
      @eduardo6573 4 ปีที่แล้ว +3

      Hola Vicente. Acabo de ver tu duda y aunque me imagino que ya la habrás resuelto la voy a dejar respondida por si alguien más tiene el mismo problema. Actualmente la nueva versión de remix tiene una interfaz ligeramente distinta a la que aquí maneja Alberto. Todas las opciones para hacer el deployed las tienes en la parte izquierda de la pantalla en una barra verical desplegable.
      Un saludo.

  • @davidgarciahz
    @davidgarciahz 3 ปีที่แล้ว

    Este video te ha quedado pelín confuso

    • @AlbertoLasa
      @AlbertoLasa  3 ปีที่แล้ว +1

      Ok, se tendrá en cuenta :)