Comment détecter les dépôts ETH dans une adresse Ether? [dupliquer]

Tiago Bértolo

Comment détecter les dépôts ETH dans une adresse Ether? [dupliquer]


Cette question a déjà une réponse ici:

Je veux pouvoir détecter par programme un dépôt ETH afin de le traiter comme un paiement dans mon application.

J’ai étudié une API etherscan.io et le seul moyen que j’ai trouvé pour détecter les transactions entrantes était de faire un travail cron et de surveiller constamment la liste des transactions.

Y a-t-il une meilleure façon?

Labos de validité – Sebastian

veuillez décrire votre cas d’utilisation plus en détail. que veux-tu faire alors? Si, par exemple, vous souhaitez déclencher un contrat intelligent, vous pouvez payer immédiatement un contrat intelligent. Si vous souhaitez déclencher un processus d’arrière-plan, vous souhaiterez peut-être travailler avec web3.js.

Tiago Bértolo

Je veux pouvoir détecter les dépôts d’éther à une certaine adresse afin de traiter les paiements dans mon application.

Tiago Bértolo

Veuillez ne pas le signaler. Cette question que vous avez citée ne répond pas spécifiquement à ma question.

Réponses


 hakusaro

Il ne semble pas que vous vous en approchiez sous le meilleur angle. Etherscan n’est qu’un service Web qui surveille l’ensemble du réseau – s’appuyer sur lui pour quelque chose comme le traitement des transactions est loin d’être le moyen le plus idéal d’interagir avec la blockchain.

Ethereum est un réseau distribué, ce qui signifie que n’importe qui peut exécuter un nœud qui voit les données qu’Etherscan obtient. En pratique, cela signifie que vous devez exécuter Geth ou Parity (ou un autre nœud) pour voir la chaîne entière. Qu’obtenez-vous du geth ou de la parité? L’API JSON-RPC .

La plupart du temps, lorsque les gens mettent en œuvre des systèmes de paiement à l’aide d’une blockchain, ils génèrent une adresse unique et une clé privée pour chaque transaction client. Cela vous donne l’assurance qu’un seul client paie pour un seul compte client et vous simplifie considérablement la vie. Le point de terminaison eth_getbalance JSON-RPC peut vous indiquer qu’une adresse a un équilibre. Si vous avez généré une adresse unique pour chaque client, vous pouvez simplement interroger votre API JSON-RPC locale à plusieurs reprises pour le solde de l’adresse que vous leur avez émise. Lorsque le solde à cette adresse correspond à votre prix fixe, vous savez que la transaction est terminée. La plupart des entreprises attendent un certain nombre de «confirmations», c’est-à-dire de nouveaux blocs sur le réseau une fois que la transaction contenant la vôtre est là. Cela garantit qu’aucune attaque de rejeu n’a été effectuée contre vous.

C’est l’approche la plus naïve, mais elle vous montre la technologie dont vous avez besoin pour aller de l’avant. En bref:

  1. Exécutez votre propre nœud.
  2. Recherchez votre propre nœud pour la transaction par rapport à une adresse unique pour un client, à l’aide de l’API JSON-RPC.
  3. Vérifiez que l’adresse contient le montant que vous attendez d’elle (votre transaction est terminée à ce stade) après un nombre donné de nouveaux blocs.

Vous pouvez améliorer cela en écoutant les nouveaux blocs, en regardant d’autres événements, etc. L’interface JSON-RPC est également grossière, mais certaines API existent en plus qui vous permettent de l’interroger plus facilement. Par exemple, consultez web3.js.

Tiago Bértolo

N’est-ce pas beaucoup de travail de gérer en permanence de nombreux portefeuilles? Comment retirer tous les fonds dans un seul portefeuille? Cela va avoir des coûts.

Pavel Niedoba

puis-je interroger les transactions directement au lieu des soldes?

hakusaro

@PavelNiedoba, vous feriez mieux de poser d’autres questions dans une nouvelle question.

 

«détecter, [dupliquer], #(une, adresse, comment, dans, dépôts?, ETH?, Ether, Les

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *