Wie überprüfen Sie, ob das Konto im aktuellen Zustand existiert?

Derzeit gibt es keine Möglichkeit, irgendwie zu überprüfen, ob ein Konto im Trie existiert. Ich suche sowas:

> web3.eth.accountExist("0x743623152a53b53be5f3463746726373")
true
>

Ist eine solche Funktion in der Konsole verfügbar?

Beachten Sie, dass ich den State Trie (die in LevelDB gespeicherte StateDB-Datenbank) einchecken möchte, nicht in der Liste der Brieftaschen der Benutzer.

Antworten (3)

Es gibt keine Standardschnittstelle für den Zugriff auf den Ethereum-Weltstaat jenseits von getBalance, getTransactionCount( getStorageAt, getCodefür Verträge).

Der State Trie ist ein Konzept auf niedriger Ebene und die Kunden können jede Implementierung wählen, die am besten zu ihnen passt. Sie müssen sich Ihren speziellen Client ansehen, um festzustellen, wie Sie darauf zugreifen können.

Dies ist ein etwas umständlicher Weg, um das zu erreichen, was Sie wollen, aber ich glaube nicht, dass es einen direkten gibt.

Ein Konto wird im State Trie existieren, wenn es einen Saldo ungleich Null hat (z. B. ein Konto in externem Besitz, das nur Ether erhalten hat, ohne Ether auszusenden) oder wenn es eine Nonce ungleich Null hat (z. B. ein Konto in externem Besitz). das alle empfangenen Ether verschickt hat, oder ein Vertragskonto, da Vertragskonten immer mit einer Nonce von 1) beginnen.

Sie sollten in der Lage sein, eine Kombination aus eth_getBalanceund zu verwenden eth_getTransactionCount, um zu prüfen, ob im aktuellen Trie ein Konto vorhanden ist.

Jedes mögliche Konto in einem Ethereum-Netzwerk existiert bereits. Es kann null oder mehreren Parteien gehören, aber es existiert unabhängig vom Eigentum.

Was Sie wissen möchten, sind die Nutzungsinformationen eines bestimmten Kontos. Zu diesem Zweck können Sie die Transaktionsanzahl überprüfen.

NEIN. Vielleicht war ich nicht klar genug, ich möchte wissen, ob die StateDB in der LevelDB-Datenbank den Kontodatensatz enthält. Mit anderen Worten, der Knoten auf dem Trie entspricht den Kontodaten.