Unidade 2 · Nível 1 · Lendo transações
Transferência ou chamada de contrato?
Toda transação pertence a uma de duas espécies. Uma transferência simples manda moeda para um endereço comum, com o campo input data vazio e nada para computar. Uma chamada de contrato manda instruções para um smart contract: o endereço To é um contrato e o input data carrega a ordem, tipo 'swap' ou 'approve'. Diferenciar as duas é a sua primeira habilidade de leitura.
Grátis. Sem anúncios, sem token e sem conta para começar.
O que você vai responder
Como você diferencia uma chamada de contrato de uma transferência simples num explorador?
Olhe o To e o input data. Endereço de uma pessoa mais data vazio = transferência; um contrato mais uma carga de instruções = uma chamada.
Uma transferência simples tem o campo ___ vazio. Uma chamada de contrato o preenche com instruções codificadas.
Aquele bloco de hexadecimal no input data é a mensagem para o contrato: qual função rodar e com quais argumentos.
Ligue o que você vê ao que a transação é
Os exploradores traduzem o input data numa etiqueta de Método sempre que conseguem, um atalho enorme. 'Approve' e 'swap' vão ser os protagonistas das próximas lições.
Os exploradores costumam decodificar o input data num nome de Método legível, tipo 'transfer' ou 'swap'. Por que isso é possível?
Quando o código-fonte de um contrato está verificado no explorador, a carga hexadecimal volta a virar funções legíveis por humanos. Contratos não verificados ficam como hex cru, o que já é um sinalzinho de alerta.
Por que uma chamada de contrato costuma custar mais gas que uma transferência simples?
Uma transferência é um único lançamento contábil; um swap pode rodar centenas de operações espalhadas por vários contratos. O gas é cobrado por unidade de trabalho, então mais trabalho, taxa maior. 🐜
O resto desta unidade
Transferências, aprovações, swaps, mints: aprenda como cada um realmente é.