¿Cuál es el valor predeterminado para el segundo parámetro de eth_getBalance() si no se proporciona?

No está claro en la documentación , pero esta función funciona si no se pasa el segundo parámetro. ¿Cuál es el valor predeterminado si no se pasa?

Respuestas (2)

Comportamiento que podría no ser compatible con los clientes

El valor predeterminado es usar el latestbloque, lo que significa que eth_getBalancedevolverá el saldo de la cuenta de acuerdo con el bloque extraído más recientemente que tiene el cliente/nodo. El latestbloque es equivalente a eth_blocknumber.

Comportamiento según la especificación JSON-RPC

Tiene razón en que, según la especificación JSON-RPC , se requiere el segundo parámetro. Técnicamente, todos los clientes deberían implementar la especificación, pero algunos clientes no cumplen al 100 % con la especificación (y los errores deben archivarse). Al usarlo eth_getBalance, es recomendable llamarlo de acuerdo con la especificación JSON-RPC, ya que no hay garantías de que todos los clientes puedan manejar el parámetro único. La solicitud de parámetro único puede funcionar con EthereumJ, pero podría no funcionar con Geth o cpp-ethereum.

Compare esto con web3.eth.getBalance, donde el segundo parámetro es opcional.

Al menos para la implementación de EthereumJ (es decir, Java) hay 2 versiones de la función: una que toma los dos argumentos mencionados en la documentación y otra que toma solo el primero de los dos argumentos (es decir, la cadena de dirección).

Si pasa solo la cadena de dirección, se invoca la versión de un solo argumento.

La implementación de Java está a continuación. Muestra que el segundo argumento está predeterminado en "más reciente".

Consulte JsonRpcImpl.javapor el código.

   public String eth_getBalance(String address) throws Exception {
        String s = null;
        try {
            return s = eth_getBalance(address, "latest");
        } finally {
            if (logger.isDebugEnabled()) logger.debug("eth_getBalance(" + address + "): " + s);
        }
    }

Editar: consulte la respuesta de Eth para obtener consejos sobre otros clientes.