Pular para o conteúdo
0%

Transações internas: notifique seus usuários sobre todas as suas transações de cripto

Última atualização: 30 de março de 20214 min de leitura

A suite Alchemy Notify agora inclui notificações para todas as transferências de ETH e Token, incluindo nossa adição mais recente: transações internas (smart contract) — dando aos usuários total transparência sobre suas transações, em cada etapa.

Para uma visão geral das notificações de Ethereum Address Activity, confira este blog post.

O que são transações internas?

Ilustração de usuário recebendo notificações push no mobile para o DApp My Ether Wallet.
Com o Alchemy Notify, usuários podem receber notificações push para transações internas da aplicação.

Internal Transaction Notification

Para entender o que são transações internas, é útil dar um passo atrás e observar os tipos de transações que temos na Ethereum. Transações são mudanças de estado na chain da Ethereum, ou seja, elas não estão lendo dados, elas estão escrevendo dados na chain.

Existem várias mudanças de estado que podem ocorrer na Ethereum, no entanto, transações costumam ser o que mais importa aos usuários. Para notificar os usuários sobre suas transações, desenvolvedores podem se conectar às notificações de Address Activity, que monitoram transfers (troca de valor entre duas contas Ethereum).

Existem três tipos de transfers na Ethereum:

Transfers de ETH

Transfers de ETH são o tipo mais básico de transação, usando a moeda nativa da Ethereum.

Exemplo de transfer: Rishub enviou 0.5 ETH para Paul.

A forma de obtê-los é escaneando cada novo bloco em busca de objetos de transação.

Transfers de Token (ERC-20 e ERC-721)

Transfers de token incluem qualquer transfer associado a um token ERC-20 ou a um token não fungível ERC-721 (NFT).

Exemplo de transfer: Omar compra 10 AAVE de uma exchange (smart contract) ou de outro usuário.

A forma normal de obter esses transfers é olhando os event logs do contrato do token que interessa.

Transfers internos

Transfers internos são transfers de Eth em que o remetente (fromAddress) é um endereço interno (smart contract). Isso inclui um smart contract enviando Eth para outro smart contract, ou um smart contract enviando Eth para um endereço externo.

Exemplo de transfer: Transfers internos são bem complicados, mas desenvolvedores e usuários se importam com onde seu dinheiro começa e onde termina, e é por isso que eles são importantes. Aqui está um exemplo que mostra duas transações internas:

Elan quer trocar alguns de seus tokens Sushi por ETH usando o Sushiswap. Este é um processo de várias etapas que envolve uma variedade de transfers.

  1. Primeiro, ela interage com o smart contract do Sushi, enviando ao smart contract seus tokens Sushi, por meio de um token transfer.
  2. Em seguida, o smart contract pega o Sushi dela e o deposita no pool SUSHI/WETH, que é outro smart contract, tornando isso um token transfer. Em troca, o contrato recebe de volta um valor equivalente em WETH.
  3. Como Elan quer ETH e não WETH, o smart contract do Sushi então interage com o smart contract do WETH e troca o WETH por ETH (desembrulhando-o), criando uma transação interna, já que o smart contract do WETH enviou ETH para o smart contract do Sushi.
  4. Em seguida, o contrato do Sushi envia esse ETH de volta para Elan, como outra transação interna (o smart contract do Sushi enviou ETH para um endereço externo, Elan).

(3) e (4) são transações internas e não token transfers porque ETH (não um token ERC-20) está sendo trocado, e não são transfers externos porque são smart contracts enviando o ETH (não endereços de conta).

Agora que você tem uma ideia de como é complexo apenas explicar o que é um transfer interno, imagine tentar obtê-los, em tempo real. Não parece nada simples.

Apesar de terem implicações significativas, quando se trata de obter transações internas, as coisas podem ficar bem complicadas. Smart contracts podem disparar várias camadas de chamadas internas de contrato por baixo dos panos, algumas que nem sequer têm valor associado a elas.

Além disso, transações internas não são armazenadas on-chain da mesma forma que transações de ETH e token, exigindo que os usuários rastreiem cada chamada, da transação pai até cada filho, para obtê-las. Pior ainda, para executar esse tipo de trace, desenvolvedores precisam de acesso a um tipo específico de software caro e propenso a erros chamado Parity Trace node, que leva semanas para sincronizar.

Dê aos usuários insights em tempo real sobre suas transações, em cada etapa

Com notificações para transações externas, de token e internas, os usuários podem ter o quadro completo de onde seu dinheiro está, o tempo todo. Wallets agora têm o poder de notificar seus usuários cada vez que ocorre um transfer relacionado à sua conta, mesmo para transações internas complexas. Essas notificações também dão aos desenvolvedores mais informações sobre os smart contracts que estão construindo e com os quais estão interagindo.

Configurar notificações para os três tipos de transações é fácil quando você usa a Alchemy. Desbloqueie o acesso ao Alchemy Notify em minutos criando uma conta gratuita aqui.

Leve 3 minutos para começar a receber notificações de transações (em vez de 3 semanas)

Em vez de sincronizar seus próprios Parity Trace nodes e esperar semanas para poder usá-los, basta integrar com a Alchemy em 3 minutos.

  1. Cadastre-se na Alchemy
  2. Crie um webhook com uma URL e os endereços relevantes (também temos uma API para criar novos webhooks)
  3. A Alchemy envia notificações para você
  4. Seus usuários param de se preocupar com o estado de suas negociações de cripto

Newsletter da Alchemy

Seja o primeiro a saber sobre lançamentos

Assine nossa newsletter

Receba as últimas atualizações de produtos e recursos da Alchemy

A
O
D
+
Mais de 80.000 inscritos

Ao inserir seu endereço de e-mail, você concorda em receber nossas comunicações de marketing e atualizações de produtos. Você reconhece que a Alchemy processa as informações que recebemos de acordo com nosso Aviso de Privacidade. Você pode cancelar a inscrição a qualquer momento.