Crie seu primeiro Smart Contract
Nesta parte final deste primeiro módulo, vamos criar um contrato inteligente e implantá-lo em uma rede de teste (testnet) da Ethereum, como Sepolia.
O contrato que implantaremos é o Register01.sol:
Vamos analisar o que faz o Register01.sol:
Este contrato simples permite armazenar e recuperar informações de texto. A função setInfo é utilizada para modificar a informação armazenada, enquanto a função getInfo é utilizada para consultar a informação atual sem realizar mudanças no estado do contrato.
Versão do Compilador Solidity Utilizada: 0.8.26. Em Solidity, utiliza-se a keyword pragma para declarar a versão de compilador que deve ser utilizada para executar o contrato.
Licença: GPL-3.0
Variáveis de Estado:
storedInfo: Variável privada que armazena informações do tipo string (texto).
Funções:
setInfo (Função de Transação Externa): Atualiza o valor de storedInfo com a informação fornecida como argumento.
Parâmetros: myInfo, o texto a ser carregado em storedInfo.
getInfo (Função de Consulta Externa): Retorna o valor atual de storedInfo sem modificar o estado do contrato.
Parâmetros: Nenhum.
Levemos o código do contrato ao Remix.
O check verde ao lado do ícone do compilador indica que ele foi compilado corretamente. Podemos proceder à implantação.
Devemos nos certificar de:
Ter nossa wallet conectada à Sepolia,
Ter selecionado em Environment a opção Injected Provider-Metamask,
Ter ETH suficiente em Sepolia, e
Verificar que o contrato a ser implantado é o correto.
Agora sim, prossigamos com a implantação.
Aprovemos a transação em nossa wallet.
O contrato foi implantado e uma conta de contrato (contract account) foi atribuída a ele em Sepolia.
Clicando no ícone de copiar no gráfico anterior, podemos obter essa conta.
No exemplo, a conta é: 0x94A6985da19A3eA8A1182FA24791069365CAB79f
Insira a conta no campo de busca do explorador de Sepolia.
Podemos confirmar que uma conta de contrato foi criada a partir da nossa EOA em Sepolia.
Se acessarmos a aba Contract, podemos visualizar o bytecode que foi implantado nessa conta de contrato.
Como podemos verificar que corresponde ao código de Register01.sol?
Devemos Verificar e Publicar. Para isso, clicamos na frase em azul "Verify and Publish".
Será exibida a tela seguinte, onde devemos preencher a endereço do contrato, o tipo de compilador utilizado, a versão do compilador e o tipo de licença Open Source. Em seguida, clicamos em Continuar.
Na próxima tela, devemos copiar o código Solidity do Register01.sol.
Completamos o captcha e clicamos em Verify and Publish.
Se a correspondência estiver correta, será exibida uma tela como a seguinte, onde também poderemos visualizar a ABI.
Se retornarmos à conta do contrato no Etherscan, veremos que agora há informações adicionais.
Ao lado do botão azul do contrato, agora há um check verde, indicando que o contrato foi verificado. O código do contrato agora também aparece junto ao bytecode e à ABI.
Além disso, surgem botões para interagir com o contrato: Read Contract (para funções de leitura) e Write Contract (para escrita/modificação).
Podemos, então, interagir com nosso contrato inteligente diretamente do explorador de blocos.
Por exemplo, se quisermos gravar na variável storedInfo a frase “Hello World”, devemos clicar no botão Write Contract.
Vemos que setInfo é a única função de escrita. Para utilizá-la, primeiro precisamos conectar nossa wallet ao Etherscan. Para isso, clique em Connect to Web3.
Uma vez conectada a wallet, aparece o campo para inserir o texto a ser gravado. Inserimos o texto e clicamos em Write.
Por se tratar de uma transação de escrita, é necessário aprovar a transação e pagar o gás correspondente.
Para verificar se a transação foi bem-sucedida, podemos acessar Read Contract e visualizar o conteúdo da variável storedInfo utilizando a função de leitura getInfo.
getInfo mostra que o conteúdo é "Hello World".
Recapitulando, você seguiu os seguintes passos:
Criou um contrato.
Compilou o contrato.
Implantou o contrato em uma blockchain pública, neste caso, Sepolia.
Validou e publicou o contrato usando um explorador de blocos, permitindo que outras pessoas interessadas possam entender o que ele faz.
Interagiu com o contrato utilizando o explorador de blocos.
Parabéns! Você concluiu a introdução aos Smart Contracts! 🎉
Last updated