Web3, Blockchain, Ethereum, estes são alguns dos tópicos mais quentes da tecnologia no momento. Portanto, não é de se admirar que tantas pessoas, inclusive eu, estejam tentando explorar esse campo. O fato de você estar lendo este artigo, significa que você também está neste campo.
Amador ou veterano, você vai ou já está codificando em Solidity, que pelo que entendo é uma linguagem de programação para criar contratos inteligentes.
Agora, o foco deste artigo não é ensinar nada a ninguém, básico ou complicado, sobre Solidity. Para isso, você já tem vários recursos por aí. Este artigo (ou, assim se espera, uma série de artigos) se concentrará nos hacks rápidos para brincar com contratos inteligentes. A ideia é compartilhar com você como fazer um trabalho de codificação mais inteligente, rápido e eficiente.
Hack Inteligente #01: Interagindo com contratos inteligentes usando o Remix
Presumo que você tenha ouvido e brincado com o Remix. Se ainda não, não tenha medo; de qualquer forma, eu o levarei através de algumas das coisas básicas. Se já teve contato com o Remix, então você já sabe que é um dos IDEs (Ambientes de Desenvolvimento Integrado) on-line de contratos inteligentes mais poderosos que lhe permitem codificar seus contratos inteligentes, compilá-los e implantá-los também.
Problema: Como interagir com um contrato inteligente não verificado
Vou demonstrar como você poderia usar o Remix para interagir com um Contrato Inteligente que é implantado em uma blockchain EVM, que não é verificada. A questão aqui é a seguinte: 👇
Como você notará, é um contrato inteligente na blockchain, mas não temos as funções padrão de leitura e escrita disponíveis no explorador, para que possamos interagir com o contrato.
Para o propósito desta demonstração, eu implantei um contrato para a rede de teste Ropsten 👉 aqui.
Como você pode ver, o explorador de blocos nos fornece algumas informações relevantes sobre nosso contrato implantado, mas como a ABI (Interface Binária de Aplicação) do contrato não foi submetida ao explorador de blocos (embora de propósito), não há como interagirmos com o contrato por meio do explorador. Portanto, de qualquer forma, mesmo que tenhamos o código fonte do contrato implantado, não podemos chamar suas funções ou interagir com ele ... .... ou podemos?
Solução: Remix, para o auxílio
Sim, isso pode ser feito usando o Remix. O Remix oferece uma grande variedade de recursos e pode até nos permitir interagir com contratos implantados.
Vamos ver como este hack funciona.
Passo 1: Obtendo acesso ao código fonte do contrato
Primeiro precisaríamos do código fonte do nosso contrato; para meu exemplo de contrato inteligente, ele pode ser encontrado: aqui.
Se você passar pelo código fonte, pode ver que é um contrato simples que mantém o controle dos pontos das casas de Hogwarts e também há alguma função para adicionar pontos às casas.
Passo 2: Importando no Remix
Agora abra o Remix em uma nova aba. Crie um novo arquivo dentro da pasta de contratos da interface Remix e a única coisa que você tem que fazer é importar o contrato desta forma:
import “https://github.com/UV-Labs/Tutorials/blob/main/ContractInteraction/Hogwarts.sol”;
Após a importação, seu arquivo deve ter este aspecto:
Como alternativa ao mencionado acima, você pode usar este link: 👉 🔗 para abrir diretamente o arquivo acima no IDE Remix.
Passo 3: Conectando-se ao contrato
- Agora precisamos nos conectar ao contrato inteligente implantado. Para fazer isso, clique no ícone "Deploy and Run Transactions" no lado esquerdo da interface Remix. O último ícone no snapshot abaixo.
- Em seguida, escolha o "environment" (ambiente) como "injected web3". Isto basicamente selecionará a rede à qual sua Metamask está conectada. Portanto, escolha a rede Ropsten em sua Metamask.
- Agora tudo o que temos que fazer é copiar o endereço do contrato:
0xe33b254e1d91e9f2b8c0Bb04F555308E925C3Ce9
e colá-lo na seção “At Address” e depois clicar no botão “At Address”
- Isto deve gerar uma nova entrada na seção de contratos implantados na parte inferior esquerda. Ao expandi-la devemos ser capazes de ver algo assim:
Voila 🎉🎊
Você observará as funções do nosso contrato. Como você pode ver, há quatro métodos de leitura para obter os pontos de cada casa de Hogwarts e também há quatro métodos de mudança de estado (um para cada casa) para adicionar 10 pontos à casa.
Agora você está pronto para brincar chamando esses métodos e talvez possa tentar adicionar mais pontos à sua casa favorita de Hogwarts 😉
Conclusão
Seguindo estas etapas, você pode interagir com qualquer contrato inteligente, se tiver seu endereço e código fonte. Uma coisa a ser observada é que você não pode acessar o contrato sem compilá-lo e depois mudá-lo para seu ambiente de implantação. Se você tentar colar diretamente o endereço do contrato, você encontrará o botão "At Address" desativado.
Solicitações
Todo o código acima está situado aqui: Link to GitHub. ☁️ 💻 🔗. Você é mais do que bem-vindo a usar a base de códigos existente. Dê-nos uma estrela 🙏 se você gostar do que estamos fazendo.
Este é meu primeiro artigo 🥇 no Medium. Se você gostou do meu trabalho, por favor aplauda e me siga como um sinal de incentivo.
Além disso, por favor, siga @uv_labs no Twitter e a publicação: https://medium.com/uv-labs, para manter a mim e a muitos dos meus colegas iniciantes encorajados.
Autores (aberto a comentários): 👇
Jagannatheshahi, sob alguma orientação de Amateur-Dev
Este artigo foi traduzido por Fátima Lima e seu original pode ser lido aqui.
Oldest comments (0)