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étodo | Espacio de nombres | Implementado | Público | Notas |
---|---|---|---|---|
web3_clientVersion | Web3 | ✔ | ✔ | |
web3_sha3 | Web3 | ✔ | ✔ | |
net_version | Red | ✔ | ✔ | |
net_peerCount | Red | ✔ | ✔ | |
net_listening | Red | ✔ | ✔ | |
eth_protocolVersion | Eth | ✔ | ✔ | |
eth_syncing | Eth | ✔ | ✔ | |
eth_gasPrice | Eth | ✔ | ✔ | |
eth_accounts | Eth | ✔ | ✔ | |
eth_blockNumber | Eth | ✔ | ✔ | |
eth_getBalance | Eth | ✔ | ✔ | |
eth_getStorageAt | Eth | ✔ | ✔ | |
eth_getTransactionCount | Eth | ✔ | ✔ | |
eth_getBlockTransactionCountByNumber | Eth | ✔ | ✔ | |
eth_getBlockTransactionCountByHash | Eth | ✔ | ✔ | |
eth_getCode | Eth | ✔ | ✔ | |
eth_sign | Eth | ✔ | ✔ | |
eth_sendTransaction | Eth | ✔ | ✔ | |
eth_sendRawTransaction | Eth | ✔ | ✔ | |
eth_call | Eth | ✔ | ✔ | |
eth_estimateGas | Eth | ✔ | ✔ | |
eth_getBlockByNumber | Eth | ✔ | ✔ | |
eth_getBlockByHash | Eth | ✔ | ✔ | |
eth_getTransactionByHash | Eth | ✔ | ✔ | |
eth_getTransactionByBlockHashAndIndex | Eth | ✔ | ✔ | |
eth_getTransactionReceipt | Eth | ✔ | ✔ | |
eth_newFilter | Eth | ✔ | ✔ | |
eth_newBlockFilter | Eth | ✔ | ✔ | |
eth_newPendingTransactionFilter | Eth | ✔ | ✔ | |
eth_uninstallFilter | Eth | ✔ | ✔ | |
eth_getFilterChanges | Eth | ✔ | ✔ | |
eth_getFilterLogs | Eth | ✔ | ✔ | |
eth_getLogs | Eth | ✔ | ✔ | |
eth_getTransactionbyBlockNumberAndIndex | Eth | ✔ | ||
eth_getWork | Eth | N/A | ✔ | Solo PoW |
eth_submitWork | Eth | N/A | ✔ | Solo PoW |
eth_submitHashrate | Eth | |||
eth_getCompilers | Eth | |||
eth_compileLLL | Eth | |||
eth_compileSolidity | Eth | |||
eth_compileSerpent | Eth | |||
eth_signTransaction | Eth | |||
eth_mining | Eth | ❌ | ||
eth_coinbase | Eth | ✔ | ||
eth_hashrate | Eth | N/A | ❌ | Solo PoW |
eth_getUncleCountByBlockHash | Eth | N/A | Solo PoW | |
eth_getUncleCountByBlockNumber | Eth | N/A | Solo PoW | |
eth_getUncleByBlockHashAndIndex | Eth | N/A | Solo PoW | |
eth_getUncleByBlockNumberAndIndex | Eth | N/A | Solo PoW | |
eth_getProof | Eth | ✔ | ||
eth_subscribe | Websocket | ✔ | ||
eth_unsubscribe | Websocket | ✔ | ||
personal_importRawKey | Personal | ✔ | ❌ | |
personal_listAccounts | Personal | ✔ | ❌ | |
personal_lockAccount | Personal | ✔ | ❌ | |
personal_newAccount | Personal | ✔ | ❌ | |
personal_unlockAccount | Personal | ✔ | ❌ | |
personal_sendTransaction | Personal | ✔ | ❌ | |
personal_sign | Personal | ✔ | ❌ | |
personal_ecRecover | Personal | ✔ | ❌ | |
personal_initializeWallet | Personal | ✔ | ❌ | |
personal_unpair | Personal | ✔ | ❌ | |
db_putString | Base de Datos | |||
db_getString | Base de Datos | |||
db_putHex | Base de Datos | |||
db_getHex | Base de Datos | |||
shh_post | SSH | |||
shh_version | SSH | |||
shh_newIdentity | SSH | |||
shh_hasIdentity | SSH | |||
shh_newGroup | SSH | |||
shh_addToGroup | SSH | |||
shh_newFilter | SSH | |||
shh_uninstallFilter | SSH | |||
shh_getFilterChanges | SSH | |||
shh_getMessages | SSH | |||
admin_addPeer | Admin | ❌ | ||
admin_datadir | Admin | ❌ | ||
admin_nodeInfo | Admin | ❌ | ||
admin_peers | Admin | ❌ | ||
admin_startRPC | Admin | ❌ | ||
admin_startWS | Admin | ❌ | ||
admin_stopRPC | Admin | ❌ | ||
admin_stopWS | Admin | ❌ | ||
clique_getSnapshot | Clique | |||
clique_getSnapshotAtHash | Clique | |||
clique_getSigners | Clique | |||
clique_proposals | Clique | |||
clique_propose | Clique | |||
clique_discard | Clique | |||
clique_status | Clique | |||
debug_backtraceAt | Debug | |||
debug_blockProfile | Debug | ✔ | ||
debug_cpuProfile | Debug | ✔ | ||
debug_dumpBlock | Debug | |||
debug_gcStats | Debug | ✔ | ||
debug_getBlockRlp | Debug | |||
debug_goTrace | Debug | ✔ | ||
debug_freeOSMemory | Debug | ✔ | ||
debug_memStats | Debug | ✔ | ||
debug_mutexProfile | Depuración | ✔ | ||
debug_seedHash | Depuración | |||
debug_setHead | Depuración | |||
debug_setBlockProfileRate | Depuración | ✔ | ||
debug_setGCPercent | Depuración | ✔ | ||
debug_setMutexProfileFraction | Depuración | ✔ | ||
debug_stacks | Depuración | ✔ | ||
debug_startCPUProfile | Depuración | ✔ | ||
debug_startGoTrace | Depuración | ✔ | ||
debug_stopCPUProfile | Depuración | ✔ | ||
debug_stopGoTrace | Depuración | ✔ | ||
debug_traceBlock | Depuración | ✔ | ||
debug_traceBlockByNumber | Depuración | ✔ | ||
debug_traceBlockByHash | Depuración | ✔ | ||
debug_traceBlockFromFile | Depuración | |||
debug_standardTraceBlockToFile | Depuración | |||
debug_standardTraceBadBlockToFile | Depuración | |||
debug_traceTransaction | Depuración | ✔ | ||
debug_verbosity | Depuración | |||
debug_vmodule | Depuración | |||
debug_writeBlockProfile | Depuración | ✔ | ||
debug_writeMemProfile | Depuración | ✔ | ||
debug_writeMutexProfile | Depuración | ✔ | ||
les_serverInfo | Les | |||
les_clientInfo | Les | |||
les_priorityClientInfo | Les | |||
les_addBalance | Les | |||
les_setClientParams | Les | |||
les_setDefaultParams | Les | |||
les_latestCheckpoint | Les | |||
les_getCheckpoint | Les | |||
les_getCheckpointContractAddress | Les | |||
miner_getHashrate | Miner | ✔ | ❌ | Sin efecto |
miner_setExtra | Miner | ✔ | ❌ | Sin efecto |
miner_setGasPrice | Miner | ✔ | ❌ | Se requiere reiniciar el nodo |
miner_start | Miner | ✔ | ❌ | Sin efecto |
miner_stop | Miner | ✔ | ❌ | Sin efecto |
miner_setGasLimit | Miner | ✔ | ❌ | Sin efecto |
miner_setEtherbase | Miner | ✔ | ❌ | |
txpool_content | TxPool | ✔ | ||
txpool_inspect | TxPool | ✔ | ||
txpool_status | TxPool | ✔ |
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.
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
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