¿Cómo se verifica si la cuenta existe en el estado actual?

Actualmente no hay forma de verificar de alguna manera que existe una cuenta en el trie. Estoy buscando algo como esto:

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

¿Está disponible una función como esta en la consola?

Tenga en cuenta que quiero verificar en el estado trie (la base de datos StateDB almacenada en LevelDB), no en la lista de billeteras de los usuarios.

Respuestas (3)

No hay una interfaz estándar para acceder al estado mundial de Ethereum más allá de getBalance, getTransactionCount( getStorageAt, getCodepara contratos).

El estado de prueba es un concepto de bajo nivel y los clientes son libres de elegir cualquier implementación que se adapte mejor a ellos. Tienes que mirar a tu cliente en particular para determinar cómo acceder a él.

Esta es una forma algo indirecta de lograr lo que quieres, pero no creo que haya una forma directa.

Existirá una cuenta en el estado trie si tiene un saldo distinto de cero (como una cuenta de propiedad externa que solo ha recibido ether, sin enviar nada) o si tiene un nonce distinto de cero (como una cuenta de propiedad externa que ha enviado todo el ether que ha recibido, o una cuenta de contrato, ya que las cuentas de contrato siempre comienzan con un nonce de 1).

Debería poder usar una combinación de eth_getBalancey eth_getTransactionCountpara verificar si existe una cuenta en el trie actual.

Ya existen todas las cuentas posibles en una red Ethereum. Puede ser propiedad de cero o más partes, pero existe independientemente de la propiedad.

Lo que desea saber sería la información de uso de una cuenta específica. Y puede verificar el recuento de transacciones para este propósito.

No. tal vez no fui lo suficientemente claro, quiero saber si StateDB en la base de datos LevelDB existe el registro de la cuenta. En otras palabras, el nodo en el trie correspondiente a los datos de la cuenta.