Formiga.

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.

Começar esta lição →

Grátis. Sem anúncios, sem token e sem conta para começar.

O que você vai responder

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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 é.