Pular para o conteúdo
0%

Como chamar outro smart contract na Ethereum

Alchemy team headshot

Escrito por Alchemy

Publicado em 4 de outubro de 20222 min de leitura

É possível, em Solidity, criar smart contracts que tomam emprestadas funções de outros contratos. Chamamos o smart contract que toma emprestado de caller smart contract, e o smart contract cuja função é emprestada de called smart contract.

Este artigo vai explicar quando desenvolvedores devem chamar outro contrato, com um tutorial e um exemplo de código.

Por que chamar outro contrato

Um dos maiores avanços que Ethereum trouxe para blockchains foi a capacidade de fazer upload e computar código on-chain. Depois que esses programas, conhecidos como smart contracts, são enviados para a blockchain, eles não podem ser editados. Qualquer um pode visualizá-los e, se codificados corretamente, podem ser interagidos por smart contracts, mesmo que seus donos não se conheçam, o que efetivamente transforma smart contracts em bibliotecas reutilizáveis. Um smart contract cujo dono pretendia usar seu código para um propósito pode ser reutilizado por milhares de outras pessoas para seus próprios casos de uso por meio de chamadas.

Outro motivo pelo qual as pessoas chamam outros smart contracts é que, durante a programação, seu smart contract original atingiu o limite de tamanho de 24.577 bytes antes de ser concluído. Para contornar isso, desenvolvedores movem funções suficientes para um novo smart contract de modo que fiquem abaixo do limite de bytes.

Exemplo de chamada de outro smart contract

Criamos dois exemplos de smart contracts abaixo para ensinar como um contrato pode chamar outro smart contract.

Chamar contrato e atualizar valores

Neste primeiro contrato, o valor contido em CalledContract é atualizado pelo CallerContract.

Enviando ETH com uma chamada

Neste segundo contrato, não apenas o valor de x em CalledContractReceivesEther é atualizado por CallerContractAndSendEther, como ETH também será enviado junto com a chamada.

Como aprender mais sobre Solidity

Quer aprender mais Solidity? Com a recente aquisição da ChainShot, uma plataforma de educação em Solidity, a Alchemy University está oferecendo um curso intensivo de 7 semanas para desenvolvedor Ethereum, originalmente um bootcamp de certificação de $3.000, gratuitamente ao público. Garanta sua vaga hoje!

Se você é novo no desenvolvimento em geral, o curso intensivo de JavaScript de 3 semanas da Alchemy é um ótimo pré-requisito antes de começar um bootcamp de Ethereum.

Background gradient

Construa magia blockchain

A Alchemy combina os produtos e ferramentas de desenvolvimento Web3 mais poderosos com recursos, comunidade e suporte lendário.