Ich habe einen Paritätsknoten. Darauf habe ich eine web3.js- Schnittstelle entwickelt.
Ich habe APIs, deren Aufgabe es ist, die Salden und Transaktionen von Adressen abzurufen.
Beispielantwort der Transaktions-API:
{ tx_hash: '0xc4a2db4211686f740885ad72ef5d424f5ba6d953d583ef39382e7c1c594ecab7',
nonce: 0,
block_hash: '0xf2b173625cf874387302295f408ef0876c04e5778e6ccacec63fe28ff268f9a3',
block_number: 5955478,
transaction_index: 184,
from: '0xAcc7662daDfCE9dA2C0d8ef7867C15A262c762D7',
to: '0x3495Ffcee09012AB7D827abF3E3b3ae428a38443',
value: '0',
time: '1531467099 Fri, 13 Jul 2018 07:31:39 GMT',
gas_price: '5000000000',
gas: 37351,
input: '0xa9059cbb000000000000000000000000c5c813994f9142d11d73b47e1437c81e27b4dae3000000000000000000000000000000000000000000000000b469471f80140000' }
Wertschlüssel ist nur für Ether/Wei-Transfers.
Für ERC20-Token:
to
Adresse und vergleiche sie mit einer Liste unterstützter erc20-Vertragsadressen.contract.send()
)Vielen Dank für das Lesen meiner Anfrage. Jede Hilfe wäre wirklich toll. Sie können das verlinkte Git-Projekt frei verwenden.
AKTUALISIEREN
Wenn wir getPastEvents
die Funktion von web3.js verwenden und alle Ereignisse abrufen, kann ein Abgleich aller Transaktionen durchgeführt werden, und ich kann irgendwie herausfinden, wie viele Token wann geliefert wurden.
Dies wird jedoch ein komplizierter Ablauf sein und auf Vertragsbasis erfolgen. Irgendetwas, das das Aufrufen von Ereignissen vermeiden und die Details der erc20-Transaktionen herausfinden kann? Was wäre, wenn der Vertrag kein Ereignis vorsähe?
mit ethersjs. Dadurch werden alle Übertragungsprotokolle für alle Token im Netzwerk zurückgegeben.
Unter der Haube nimmt es die Signatur des Ereignisses aus dem ABI , das das erste Element ist, das im Themen-Array benötigt wird (die verbleibenden optionalen Argumente sind die indizierten Argumente des Ereignisses).
Anschließend führt er einen RPC-Aufruf für diese Ereignisse an den Knoten durch, den Sie beim Erstellen des Anbieters angegeben haben.
Bei erfolgreicher Antwort parst es die empfangenen Hex-codierten Daten zurück in menschenlesbare Daten, indem es die Typen von der ABI liest.
const provider = new providers.JsonRpcProvider('http...')
const event = (new Interface(StandardToken.abi)).events.Transfer
const topics = [event.topics[0]]
let logs = await provider.getLogs({
fromBlock: 1,
toBlock: 'latest',
topics: topics
})
logs = logs.map(log => event.parse(log.topics, log.data))
natewelch_