Saltar al contenido
0%

Cómo llamar a otro smart contract en Ethereum

Alchemy team headshot

Escrito por Alchemy

Publicado el 4 de octubre de 20222 min de lectura

Es posible en Solidity crear contratos inteligentes que toman prestadas funciones de otros contratos. Al contrato inteligente que toma prestada la función lo llamamos el contrato inteligente llamador, y al contrato inteligente cuya función es tomada prestada lo llamamos el contrato inteligente llamado.

Este artículo explicará cuándo los desarrolladores deberían llamar a otro contrato, con un tutorial mediante código de ejemplo.

Por qué llamar a otro contrato

Uno de los mayores avances que Ethereum trajo a las blockchains fue la capacidad de subir y ejecutar código on-chain. Una vez que estos programas, conocidos como contratos inteligentes, se suben a la blockchain, no se pueden editar. Cualquiera puede verlos y, si están codificados correctamente, otros contratos inteligentes pueden interactuar con ellos, incluso si sus dueños no se conocen entre sí, lo que convierte efectivamente a los contratos inteligentes en librerías reutilizables. Un contrato inteligente cuyo dueño diseñó su código para un propósito puede ser reutilizado por miles de otros para sus propios casos de uso mediante llamadas.

Otra razón por la que la gente llama a otros contratos inteligentes es porque, durante la programación, su contrato inteligente original alcanzó el límite de tamaño de 24,577 bytes antes de completarse. Para resolver esto, los desarrolladores mueven suficientes funciones a un nuevo contrato inteligente hasta quedar por debajo del límite de bytes.

Ejemplo de llamada a otro contrato inteligente

Creamos dos contratos inteligentes de ejemplo a continuación para enseñarte cómo un contrato puede llamar a otro contrato inteligente.

Llamar a un contrato y actualizar valores

En este primer contrato, el valor contenido en CalledContract es actualizado por el CallerContract.

Enviar ETH con una llamada

En este segundo contrato, no solo se actualiza el valor x en CalledContractReceivesEther mediante CallerContractAndSendEther, sino que además se envía ETH junto con la llamada.

Cómo aprender más sobre Solidity

¿Quieres aprender más Solidity? Con la reciente adquisición de ChainShot, una plataforma de educación en Solidity, Alchemy University ofrece de forma gratuita al público un curso intensivo de 7 semanas para desarrolladores de Ethereum, que originalmente era un bootcamp de certificación de $3,000. ¡Asegura tu lugar hoy!

Si eres nuevo en el desarrollo en general, el curso intensivo de JavaScript de 3 semanas de Alchemy es un excelente requisito previo antes de comenzar un bootcamp de Ethereum.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.