Neste post, veremos como usar algumas ferramentas gratuitas de blockchain para descobrir como um contrato foi criado. Estaremos analisando um contrato de pool de liquidez Uniswap V2. Aqui estão algumas ferramentas gratuitas que usaremos ao longo do caminho.
O objetivo é mostrar algumas ferramentas e técnicas que você pode usar para investigar as origens de um contrato e aprender sobre a Ethereum.
Muitas coisas podem acontecer sempre que você interage com um pool de liquidez. Por exemplo, ficando robusto.
https://dexscreener.com/ethereum/0x9b1ac0ef72e4a35a9d8c631f4c0017be49f5a697
Outra coisa a fazer com pools de liquidez é comprar na alta e vender na baixa. Esse é provavelmente o mais comum, honestamente... pelo menos para mim.
Uma boa pergunta que podemos nos fazer antes de ocultar nosso dinheiro é “como posso saber se esse pool faz parte da Uniswap?”
O que quero dizer? Considere o seguinte. Alguém poderia teoricamente:
- Copiar e reimplantar o código no repositório oficial da v2 (mesmo pair.sol deve ser suficiente)
- Crie um novo pool entre $$$SCAMDOGTOKEN e WETH
- Implante e observe como exploradores de blockchain confusos detectam seus eventos PairCreated e Sync, pois as assinaturas dos eventos parecerão idênticas às oficiais
Esse último ponto dependerá do explorador de blockchain. Por exemplo, o Dexscreener não parece indexar pools não oficiais. A Uniswap V2 também não o mostrará em seu pool explorer. Por quê?
Vamos ver como poderíamos encontrar o pool oficial para um token como LINK.
Etapa 1: Encontre o endereço do LINK e, em seguida, encontre o endereço do pool (usarei o dexscreener para isso)
Agora que os tenho, quero saber quando e como o contrato de pool foi criado. Na V2, o pool será criado com o Contrato de fábrica Uniswap V2. Isso significa que o endereço desta fábrica deve aparecer em algum lugar da transação usada para criar o pool — provavelmente como uma transação interna.
https://docs.uniswap.org/contracts/v2/reference/smart-contracts/factory
Procuramos este endereço: \
0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
Se olharmos para a página etherscan para o pool LINK/WETH, vemos uma área chamada “criador de contrato”. Isso nos indicará a transação que criou o pool.
https://etherscan.io/address/0xa2107fa5b38d9bbd2c461d6edf11b11a50f6b974
Clicar na tx (transação) nos leva à seguinte página de transação.
https://etherscan.io/tx/0x23af5f011ffd934e25f3714673081911364940e41d5da74f0d46e2b63a4c89ba
Vemos interações com o V2 Router e o Migrador, mas não com a Factory. A chamada da fábrica deve fazer parte de um tx interno, então vá para a aba de transações internas:
https://etherscan.io/tx/0x23af5f011ffd934e25f3714673081911364940e41d5da74f0d46e2b63a4c89ba#internal
Vemos o que procuramos - há uma chamada CREATE (opcode evm para criação de um contrato) do endereço de fábrica para o novo endereço do pool de liquidez. Isso é o que estávamos procurando.
Vá para a guia de logs, também vemos um evento PairCreated emitido pelo endereço da fábrica – conforme esperado.
https://etherscan.io/tx/0x23af5f011ffd934e25f3714673081911364940e41d5da74f0d46e2b63a4c89ba#eventlog
Mais uma verificação; Uma das minhas ferramentas favoritas, Phalcon, nos mostra uma bela visualização dos fluxos de fundos, bem como as mudanças de estado no mapeamento do pool da fábrica que mencionei anteriormente:
E isso basta. Você pode seguir esse processo para qualquer pool com o qual deseja interagir. Lembre-se de que você ainda pode:
- ter seu tapete puxado (rugged) no pool
- ser vítima de contratos de tokens maliciosos, como honeypots, altos impostos de compra/venda, whitelists (lista de permissões), listas negras, etc., etc.
Mas pelo menos você saberá que o pool foi criado por meio do contrato oficial de fábrica do Uniswap.
Até a próxima, obrigado pela leitura!
Este artigo foi escrito por Nate Lapinski e traduzido por Diogo Jorge. O artigo original pode ser encontrado aqui.
Latest comments (0)