Skip to main content

EVM

A continuación, encontrará una lista de métodos JSON-RPC compatibles con CrossFi, ordenados por espacios de nombres.

Ejemplos de Curl Explicados​

Las opciones de curl a continuación podrían devolver una respuesta donde el nodo se queja del tipo de contenido, esto se debe a que la opción --data establece el tipo de contenido en application/x-www-form-urlencoded. Si su nodo se queja, configure manualmente el encabezado colocando -H "Content-Type: application/json" al inicio de la llamada.

Los ejemplos tampoco incluyen la combinación de URL/IP y el puerto que debe ser el último argumento dado a curl, por ejemplo, 127.0.0.1:8545

Puntos finales​

MétodoEspacio de nombresImplementadoPúblicoNotas
web3_clientVersionWeb3✔✔
web3_sha3Web3✔✔
net_versionRed✔✔
net_peerCountRed✔✔
net_listeningRed✔✔
eth_protocolVersionEth✔✔
eth_syncingEth✔✔
eth_gasPriceEth✔✔
eth_accountsEth✔✔
eth_blockNumberEth✔✔
eth_getBalanceEth✔✔
eth_getStorageAtEth✔✔
eth_getTransactionCountEth✔✔
eth_getBlockTransactionCountByNumberEth✔✔
eth_getBlockTransactionCountByHashEth✔✔
eth_getCodeEth✔✔
eth_signEth✔✔
eth_sendTransactionEth✔✔
eth_sendRawTransactionEth✔✔
eth_callEth✔✔
eth_estimateGasEth✔✔
eth_getBlockByNumberEth✔✔
eth_getBlockByHashEth✔✔
eth_getTransactionByHashEth✔✔
eth_getTransactionByBlockHashAndIndexEth✔✔
eth_getTransactionReceiptEth✔✔
eth_newFilterEth✔✔
eth_newBlockFilterEth✔✔
eth_newPendingTransactionFilterEth✔✔
eth_uninstallFilterEth✔✔
eth_getFilterChangesEth✔✔
eth_getFilterLogsEth✔✔
eth_getLogsEth✔✔
eth_getTransactionbyBlockNumberAndIndexEth✔
eth_getWorkEthN/A✔Solo PoW
eth_submitWorkEthN/A✔Solo PoW
eth_submitHashrateEth
eth_getCompilersEth
eth_compileLLLEth
eth_compileSolidityEth
eth_compileSerpentEth
eth_signTransactionEth
eth_miningEth❌
eth_coinbaseEth✔
eth_hashrateEthN/A❌Solo PoW
eth_getUncleCountByBlockHashEthN/ASolo PoW
eth_getUncleCountByBlockNumberEthN/ASolo PoW
eth_getUncleByBlockHashAndIndexEthN/ASolo PoW
eth_getUncleByBlockNumberAndIndexEthN/ASolo PoW
eth_getProofEth✔
eth_subscribeWebsocket✔
eth_unsubscribeWebsocket✔
personal_importRawKeyPersonal✔❌
personal_listAccountsPersonal✔❌
personal_lockAccountPersonal✔❌
personal_newAccountPersonal✔❌
personal_unlockAccountPersonal✔❌
personal_sendTransactionPersonal✔❌
personal_signPersonal✔❌
personal_ecRecoverPersonal✔❌
personal_initializeWalletPersonal✔❌
personal_unpairPersonal✔❌
db_putStringBase de Datos
db_getStringBase de Datos
db_putHexBase de Datos
db_getHexBase de Datos
shh_postSSH
shh_versionSSH
shh_newIdentitySSH
shh_hasIdentitySSH
shh_newGroupSSH
shh_addToGroupSSH
shh_newFilterSSH
shh_uninstallFilterSSH
shh_getFilterChangesSSH
shh_getMessagesSSH
admin_addPeerAdmin❌
admin_datadirAdmin❌
admin_nodeInfoAdmin❌
admin_peersAdmin❌
admin_startRPCAdmin❌
admin_startWSAdmin❌
admin_stopRPCAdmin❌
admin_stopWSAdmin❌
clique_getSnapshotClique
clique_getSnapshotAtHashClique
clique_getSignersClique
clique_proposalsClique
clique_proposeClique
clique_discardClique
clique_statusClique
debug_backtraceAtDebug
debug_blockProfileDebug✔
debug_cpuProfileDebug✔
debug_dumpBlockDebug
debug_gcStatsDebug✔
debug_getBlockRlpDebug
debug_goTraceDebug✔
debug_freeOSMemoryDebug✔
debug_memStatsDebug✔
debug_mutexProfileDepuración✔
debug_seedHashDepuración
debug_setHeadDepuración
debug_setBlockProfileRateDepuración✔
debug_setGCPercentDepuración✔
debug_setMutexProfileFractionDepuración✔
debug_stacksDepuración✔
debug_startCPUProfileDepuración✔
debug_startGoTraceDepuración✔
debug_stopCPUProfileDepuración✔
debug_stopGoTraceDepuración✔
debug_traceBlockDepuración✔
debug_traceBlockByNumberDepuración✔
debug_traceBlockByHashDepuración✔
debug_traceBlockFromFileDepuración
debug_standardTraceBlockToFileDepuración
debug_standardTraceBadBlockToFileDepuración
debug_traceTransactionDepuración✔
debug_verbosityDepuración
debug_vmoduleDepuración
debug_writeBlockProfileDepuración✔
debug_writeMemProfileDepuración✔
debug_writeMutexProfileDepuración✔
les_serverInfoLes
les_clientInfoLes
les_priorityClientInfoLes
les_addBalanceLes
les_setClientParamsLes
les_setDefaultParamsLes
les_latestCheckpointLes
les_getCheckpointLes
les_getCheckpointContractAddressLes
miner_getHashrateMiner✔❌Sin efecto
miner_setExtraMiner✔❌Sin efecto
miner_setGasPriceMiner✔❌Se requiere reiniciar el nodo
miner_startMiner✔❌Sin efecto
miner_stopMiner✔❌Sin efecto
miner_setGasLimitMiner✔❌Sin efecto
miner_setEtherbaseMiner✔❌
txpool_contentTxPool✔
txpool_inspectTxPool✔
txpool_statusTxPool✔
El número de bloque se puede ingresar como una cadena Hex, "earliest", "latest" o "pending".

A continuación se encuentra una lista de los métodos RPC, los parámetros y un ejemplo de respuesta de los espacios de nombres.

Métodos Web3​

web3_clientVersion​

Obtiene la versión del cliente web3.

Parámetros (0)​

Ejemplos de clientes​

curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''

wscat -c ws://localhost:8546 -x ''
web3.clientVersion();

web3_sha3​

Devuelve Keccak-256 (no el SHA3-256 estandarizado) de los datos proporcionados.

Parámetros (1)​

1: entrada hexutil.Bytes

  • Requerido: ✓ Sí

Resultado​

Ejemplos de clientes​

curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''

wscat -c ws://localhost:8546 -x ''
web3.sha3(input);

Métodos de Red​

net_version​

Devuelve el Id. de red actual.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

net_peerCount​

Devuelve el número de pares conectados actualmente al cliente.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

net_listening​

Indica si el cliente está escuchando activamente las conexiones de red.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

Métodos de Eth​

eth_protocolVersion​

Devuelve la versión actual del protocolo ethereum.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_syncing​

El objeto de estado de sincronización puede necesitar ser diferente dependiendo de los detalles del protocolo de sincronización de Tendermint. Sin embargo, el resultado 'sincronizado' es simplemente un valor booleano, y puede derivarse fácilmente del estado de sincronización interno de Tendermint.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_gasPrice​

Devuelve el precio actual del gas en el parámetro de denominación EVM predeterminado.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_accounts​

Devuelve una matriz de todas las cuentas de ethereum.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_blockNumber​

Devuelve la altura del bloque actual.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_getBalance​

Devuelve el saldo de la cuenta para una dirección de cuenta y número de bloque dados.

Parámetros​

  • Dirección de la cuenta
  • Número de bloque o hash de bloque (EIP-1898)
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_getStorageAt​

Devuelve la dirección de almacenamiento para una dirección de cuenta dada.

Parámetros​

  • Dirección de la cuenta
  • Número entero de la posición en el almacenamiento
  • Número de bloque o hash de bloque (EIP-1898)
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_getTransactionCount​

Devuelve la cantidad total de transacciones para una dirección de cuenta y número de bloque dados.

Parámetros​

  • Dirección de la cuenta
  • Número de bloque o hash de bloque (EIP-1898)
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_getBlockTransactionCountByNumber​

Devuelve la cantidad total de transacciones para un número de bloque dado.

Parámetros​

  • Número de bloque
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado
}

eth_getBlockTransactionCountByHash​

Devuelve la cantidad total de transacciones para un hash de bloque dado.

Parámetros​

  • Hash de bloque
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_getCode​

Devuelve el código para una dirección de cuenta y número de bloque dados.

Parámetros​

  • Dirección de la cuenta
  • Número de bloque o hash de bloque (EIP-1898)
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_sign​

El método sign calcula una firma específica de Ethereum con: sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))).

Al agregar un prefijo al mensaje, la firma calculada es reconocible como una firma específica de Ethereum. Esto previene el uso indebido en el que una DApp maliciosa puede firmar datos arbitrarios (por ejemplo, transacciones) y usar la firma para hacerse pasar por la víctima.

advertencia

La dirección para firmar debe estar desbloqueada.

Parámetros​

  • Dirección de la cuenta
  • Datos a firmar
// Solicitud
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sign","params":["0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "0xdeadbeaf"],"id":1}' -H "Content-Type: application/json" http://localhost:8545

// Resultado

Métodos WebSocket​

Lee sobre websockets en Tendermint Events

eth_subscribe​

Suscribirse usando notificaciones JSON-RPC. Esto permite que los clientes esperen por eventos en lugar de sondearlos.

Funciona suscribiéndose a eventos particulares. El nodo devolverá un id de suscripción. Por cada evento que coincida con la suscripción se envía una notificación con datos relevantes junto con el id de suscripción.

Parámetros​

  • Nombre de la Suscripción
  • Argumentos Opcionales
// Solicitud

// Resultado

eth_unsubscribe​

Darse de baja de un evento usando el id de suscripción.

Parámetros​

  • ID de suscripción
// Solicitud

// Resultado

eth_coinbase​

Devuelve la cuenta a la cual se enviarán las recompensas de minería.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

eth_getProof​

Devuelve los valores de cuenta y almacenamiento de la cuenta especificada, incluyendo la prueba Merkle.

Parámetros​

  • Dirección de cuenta o contrato
  • Entero de la posición en el almacenamiento
  • Número de Bloque o Hash del Bloque (EIP-1898)
// Solicitud
curl -X POST --data '' -H "Content-type:application/json" http://localhost:8545

// Resultado

Métodos Personales​

personal_importRawKey​

consejo

Privado: Requiere autenticación.

Importa la clave privada dada no cifrada (cadena codificada en hex) en el almacén de claves, cifrándola con la frase de paso.

Devuelve la dirección de la nueva cuenta.

Parámetros (2)​

1: claveprivada cadena

  • Requerido: ✓ Sí

2: contraseña cadena

  • Requerido: ✓ Sí
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

personal_listAccounts​

Privado: Requiere autenticación.

Devuelve una lista de direcciones para las cuentas que gestiona este nodo.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

personal_lockAccount​

Privado: Requiere autenticación.

Elimina la clave privada con la dirección dada de la memoria. La cuenta ya no se puede usar para enviar transacciones.

Parámetros​

  • Dirección de Cuenta
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

personal_newAccount​

Privado: Requiere autenticación.

Genera una nueva clave privada y la almacena en el directorio de almacén de claves. El archivo de clave se cifra con la frase de paso proporcionada. Devuelve la dirección de la nueva cuenta.

Parámetros​

  • Frase de paso
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

personal_unlockAccount​

Privado: Requiere autenticación.

Desencripta la clave con la dirección dada desde el almacén de claves.

Ambos, la frase de paso y la duración de desbloqueo son opcionales cuando se usa la consola de JavaScript. La clave no cifrada se mantendrá en memoria hasta que expire la duración de desbloqueo. Si la duración de desbloqueo predeterminada es de 300 segundos. Una duración explícita de cero segundos desbloquea la clave hasta que geth finalice.

La cuenta puede usarse con eth_sign y eth_sendTransaction mientras está desbloqueada.

Parámetros​

  • Dirección de Cuenta
  • Frase de paso
  • Duración
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

personal_sendTransaction​

Privado: Requiere autenticación.

Valida la frase de paso dada y envía la transacción.

La transacción es el mismo argumento que para eth_sendTransaction y contiene la dirección from. Si la frase de paso puede usarse para desencriptar la clave privada perteneciente a tx.from, la transacción se verifica, firma y envía a la red.

advertencia

La cuenta no está desbloqueada globalmente en el nodo y no se puede usar en otras llamadas RPC.

Parámetros​

  • Objeto que contiene:

    from: DATOS, 20 Bytes - La dirección desde donde se envía la transacción.

    to: DATOS, 20 Bytes - (opcional al crear un nuevo contrato) La dirección a la que se dirige la transacción.

    valor: CANTIDAD - valor enviado con esta transacción

  • Frase de paso

// Solicitud
curl -X POST --data ', "frasedepaso"],"id":1}' -H "Content-Type: application/json" http://localhost:8545

// Resultado

personal_sign​

Privado: Requiere autenticación.

El método de firma calcula una firma específica de Ethereum con: sign(keccack256("\x19Ethereum Signed Message:\n" + len(mensaje) + mensaje))),

Parámetros​

  • Mensaje
  • Dirección de la Cuenta
  • Contraseña
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

personal_ecRecover​

Privado: Requiere autenticación.

ecRecover devuelve la dirección asociada con la clave privada que se usó para calcular la firma en personal_sign.

Parámetros​

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

personal_initializeWallet​

Privado: Requiere autenticación.

Inicializa una nueva billetera en la URL proporcionada, generando y devolviendo una nueva clave privada.

Parámetros (1)​

Los parámetros deben darse por posición.

1: url cadena

  • Requerido: ✓ Sí

Ejemplos de Cliente​

curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''

wscat -c ws://localhost:8546 -x ''
personal.initializeWallet(url);

personal_unpair​

Privado: Requiere autenticación.

Inicializa una nueva billetera en la URL proporcionada, generando y devolviendo una nueva clave privada.

Parámetros (1)​

Los parámetros deben darse por posición.

1: url cadena

  • Requerido: ✓ Sí

Ejemplos de Cliente​

curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''

wscat -c ws://localhost:8546 -x ''
javascript
personal.initializeWallet(url);

personal_unpair​

Privado: Requiere autenticación.

Unpair elimina un emparejamiento entre la billetera y el nodo.

Parámetros (2)​

  • URL
  • Contraseña de emparejamiento

Ejemplos de Cliente​

curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''

wscat -c ws://localhost:8546 -x ''
javascript
personal.unpair(url,pin);

Métodos de Depuración​

debug_traceTransaction​

El método de depuración traceTransaction intentará ejecutar la transacción de la misma manera exacta en que fue ejecutada en la red. Reproducirá cualquier transacción que pueda haberse ejecutado antes de esta antes de intentar finalmente ejecutar la transacción que corresponde al hash dado.

Parámetros​

  • Configuración de Rastro
// Solicitud
curl -X POST --data ', step: function(log) , result: function() }"}],"id":1}' -H "Content-Type: application/json" http://localhost:8545

//Resultado
["68410", "51470"]

debug_traceBlockByNumber​

El punto final traceBlockByNumber acepta un número de bloque y reproducirá el bloque que ya está presente en la base de datos.

Parámetros​

  • Configuración de Rastreo
// Pedido\ncurl -X POST --data ', step: function(log) , result: function() }"}],"id":1}' -H "Content-Type: application/json" http://localhost:8545\n\n//Resultado\n]}

Métodos de Minería​

miner_getHashrate​

Privado: Requiere autenticación.

Obtiene la tasa de hash en H/s (operaciones de hash por segundo).

consejo

Específico de Prueba de Trabajo. Este endpoint siempre devuelve 0.

// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

miner_setExtra​

Privado: Requiere autenticación.

Configura los datos extra que un validador puede incluir al proponer bloques. Esto está limitado a 32 bytes.

consejo

No compatible. Este endpoint siempre devuelve un error

Parámetros​

  • Datos
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

miner_setGasPrice​

Privado: Requiere autenticación.

Establece el precio mínimo de gas utilizado para aceptar transacciones. Cualquier transacción por debajo de este límite queda excluida del proceso de propuesta de bloque del validador.

Este método requiere un reinicio del nodo después de ser llamado porque cambia el archivo de configuración.

Asegúrese de que su llamada crossfid start no esté utilizando la bandera minimum-gas-prices porque este valor se utilizará en lugar del configurado en el archivo de configuración.

Parámetros​

  • Precio de Gas en Hex
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

miner_start​

Privado: Requiere autenticación.

Iniciar el proceso de validación de CPU con el número dado de hilos.

advertencia

No compatible. Este endpoint siempre devuelve un error

Parámetros​

  • Número de hilos Hex
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

miner_stop​

Privado: Requiere autenticación.

Detener la operación de validación.

consejo

No compatible. Este endpoint siempre realiza una operación sin efecto.

// Pedido\ncurl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

miner_setGasLimit​

Privado: Requiere autenticación.

Establece el límite de gas al que el minero apuntará mientras mina.

consejo

En redes donde EIP-1559 está activado, esto debe configurarse al doble de lo que desea que sea el objetivo de gas (es decir, el gas efectivo utilizado en promedio por bloque).

consejo

No compatible. Este endpoint siempre devuelve false

Parámetros​

  • Límite de gas Hex
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

miner_setEtherbase​

consejo

Privado: Requiere autenticación.

Establece la etherbase. Cambia la billetera donde se depositarán las recompensas del validador.

Parámetros​

  • Dirección de Cuenta
// Solicitud
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545

// Resultado

Métodos de TxPool​

txpool_content​

Devuelve una lista de los detalles exactos de todas las transacciones que actualmente están en espera para ser incluidas en el próximo bloque(s), así como aquellas que están programadas para ejecución futura solamente.

Parámetros (0)​

Ejemplos de Cliente​

curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
wscat -c ws://localhost:8546 -x ''
txpool.content();

Resultado​

,"queued":{}

txpool_inspect​

Devuelve una lista en formato de texto para resumir todas las transacciones que actualmente están en espera para ser incluidas en el próximo bloque(s), así como aquellas que están programadas para ejecución futura solamente. Este es un método diseñado específicamente para desarrolladores para ver rápidamente las transacciones en el pool y detectar cualquier problema potencial.

Parámetros (0)​

Ejemplos de Cliente​

curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
wscat -c ws://localhost:8546 -x ''
txpool.inspect();

Resultado​

,"queued":{}

txpool_status​

Devuelve el número de transacciones que actualmente están en espera para ser incluidas en el próximo bloque(s), así como aquellas que están programadas para ejecución futura solamente.

Parámetros (0)​

Ejemplos de Cliente​

curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
wscat -c ws://localhost:8546 -x ''
txpool.status();

Resultado​