EVM
Encontre abaixo uma lista de métodos JSON-RPC suportados no CrossFi, ordenados por namespaces.
Exemplos de Curl Explicados
As opções curl abaixo podem retornar uma resposta onde o nó reclama sobre o tipo de conteúdo. Isso ocorre porque a opção --data
define o tipo de conteúdo como application/x-www-form-urlencoded
. Se o seu nó reclamar, defina manualmente o cabeçalho colocando -H \"Content-Type: application/json\"
no início da chamada.
Os exemplos também não incluem a combinação de URL/IP & porta que deve ser o último argumento dado ao curl, por exemplo, 127.0.0.1:8545
Endpoints
Método | Namespace | Implementado | Público | Notas |
---|---|---|---|---|
web3_clientVersion | Web3 | ✔ | ✔ | |
web3_sha3 | Web3 | ✔ | ✔ | |
net_version | Net | ✔ | ✔ | |
net_peerCount | Net | ✔ | ✔ | |
net_listening | Net | ✔ | ✔ | |
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 | ✔ | Apenas PoW |
eth_submitWork | Eth | N/A | ✔ | Apenas 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 | ❌ | Somente PoW |
eth_getUncleCountByBlockHash | Eth | N/A | Somente PoW | |
eth_getUncleCountByBlockNumber | Eth | N/A | Somente PoW | |
eth_getUncleByBlockHashAndIndex | Eth | N/A | Somente PoW | |
eth_getUncleByBlockNumberAndIndex | Eth | N/A | Somente PoW | |
eth_getProof | Eth | ✔ | ||
eth_subscribe | Websocket | ✔ | ||
eth_unsubscribe | Websocket | ✔ | ||
personal_importRawKey | Pessoal | ✔ | ❌ | |
personal_listAccounts | Pessoal | ✔ | ❌ | |
personal_lockAccount | Pessoal | ✔ | ❌ | |
personal_newAccount | Pessoal | ✔ | ❌ | |
personal_unlockAccount | Pessoal | ✔ | ❌ | |
personal_sendTransaction | Pessoal | ✔ | ❌ | |
personal_sign | Pessoal | ✔ | ❌ | |
personal_ecRecover | Pessoal | ✔ | ❌ | |
personal_initializeWallet | Pessoal | ✔ | ❌ | |
personal_unpair | Pessoal | ✔ | ❌ | |
db_putString | DB | |||
db_getString | DB | |||
db_putHex | DB | |||
db_getHex | DB | |||
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 | Depurar | |||
debug_blockProfile | Depurar | ✔ | ||
debug_cpuProfile | Depurar | ✔ | ||
debug_dumpBlock | Depurar | |||
debug_gcStats | Depurar | ✔ | ||
debug_getBlockRlp | Depurar | |||
debug_goTrace | Depurar | ✔ | ||
debug_freeOSMemory | Depurar | ✔ | ||
debug_memStats | Depurar | ✔ | ||
debug_mutexProfile | Depurar | ✔ | ||
debug_seedHash | Depurar | |||
debug_setHead | Depurar | |||
debug_setBlockProfileRate | Depurar | ✔ | ||
debug_setGCPercent | Depurar | ✔ | ||
debug_setMutexProfileFraction | Depurar | ✔ | ||
debug_stacks | Depurar | ✔ | ||
debug_startCPUProfile | Depurar | ✔ | ||
debug_startGoTrace | Depurar | ✔ | ||
debug_stopCPUProfile | Depurar | ✔ | ||
debug_stopGoTrace | Depurar | ✔ | ||
debug_traceBlock | Depurar | ✔ | ||
debug_traceBlockByNumber | Depurar | ✔ | ||
debug_traceBlockByHash | Depurar | ✔ | ||
debug_traceBlockFromFile | Depurar | |||
debug_standardTraceBlockToFile | Depurar | |||
debug_standardTraceBadBlockToFile | Depurar | |||
debug_traceTransaction | Depurar | ✔ | ||
debug_verbosity | Depurar | |||
debug_vmodule | Depurar | |||
debug_writeBlockProfile | Depurar | ✔ | ||
debug_writeMemProfile | Depurar | ✔ | ||
debug_writeMutexProfile | Depurar | ✔ | ||
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 | ✔ | ❌ | No-op |
miner_setExtra | Miner | ✔ | ❌ | No-op |
miner_setGasPrice | Miner | ✔ | ❌ | Requer reinício do nó |
miner_start | Miner | ✔ | ❌ | No-op |
miner_stop | Miner | ✔ | ❌ | No-op |
miner_setGasLimit | Miner | ✔ | ❌ | No-op |
miner_setEtherbase | Miner | ✔ | ❌ | |
txpool_content | TxPool | ✔ | ||
txpool_inspect | TxPool | ✔ | ||
txpool_status | TxPool | ✔ |
"earliest"
, "latest"
ou "pending"
.:::Abaixo está uma lista dos métodos RPC, os parâmetros e um exemplo de resposta dos namespaces.## Métodos Web3### web3_clientVersion
Obtenha a versão cliente web3.#### Parâmetros (0)#### Exemplos de Cliente```shell
curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''
wscat -c ws://localhost:8546 -x ''
javascript
web3.clientVersion();
### `web3_sha3`Retorna Keccak-256 (não o padronizado SHA3-256) dos dados fornecidos.#### Parâmetros (1)1: entrada `hexutil.Bytes`- Necessário: ✓ Sim#### Resultado
json
#### Exemplos de Cliente
shell
curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''
wscat -c ws://localhost:8546 -x ''
javascript
web3.sha3(input);
## Métodos Net### `net_version`Retorna o id de rede atual.
json
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
### `net_peerCount`Retorna o número de peers atualmente conectados ao cliente.
json
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
### `net_listening`Retorna se o cliente está ativamente ouvindo conexões de rede.
json
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
## Métodos Eth### `eth_protocolVersion`Retorna a versão atual do protocolo ethereum.
json
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
### `eth_syncing`O objeto de status de sincronização pode precisar ser diferente dependendo dos detalhes do protocolo de sincronização do Tendermint. No entanto, o resultado 'sincronizado' é simplesmente um booleano e pode ser facilmente derivado do estado de sincronização interno do Tendermint.
json
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
### `eth_gasPrice`Retorna o preço do gas atual na denominação padrão do EVM.
json
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
### `eth_accounts`Retorna uma array de todas as contas eth.
json
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
### `eth_blockNumber`Retorna a altura do bloco atual.
json
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
```### eth_getBalance
Retorna o saldo da conta para um endereço de conta dado e Número do Bloco.#### Parâmetros- Endereço da Conta
- Número do Bloco ou Hash do Bloco (EIP-1898)```json // Solicitação curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
```### eth_getStorageAt
Retorna o endereço de armazenamento para um endereço de conta dado.#### Parâmetros- Endereço da Conta
- Inteiro da posição no armazenamento
- Número do Bloco ou Hash do Bloco (EIP-1898)```json // Solicitação curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
```### eth_getTransactionCount
Retorna a transação total para um endereço de conta dado e Número do Bloco.#### Parâmetros- Endereço da Conta
- Número do Bloco ou Hash do Bloco (EIP-1898)```json // Solicitação curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
### `eth_getBlockTransactionCountByNumber`Retorna a contagem total de transações para um número de bloco dado.#### Parâmetros- Número do Bloco
json
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
}
### `eth_getBlockTransactionCountByHash`Retorna a contagem total de transações para um hash de bloco dado.#### Parâmetros- Hash do Bloco
json
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
```### eth_getCode
Retorna o código para um endereço de conta dado e Número do Bloco.#### Parâmetros- Endereço da Conta
- Número do Bloco ou Hash do Bloco (EIP-1898)```json // Solicitação curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
```### eth_sign
O método sign
calcula uma assinatura específica da Ethereum com: sign(keccak256("\x19Ethereum Signed Message:\n" + len(mensagem) + mensagem)))
.Adicionando um prefixo à mensagem torna a assinatura calculada reconhecível como uma assinatura específica da Ethereum. Isso previne o uso indevido onde um DApp malicioso pode assinar dados arbitrários (e.g. transação) e usar a assinatura para se passar pela vítima.
Abaixo está uma lista dos métodos RPC, os parâmetros e um exemplo de resposta dos namespaces.
Métodos Web3
web3_clientVersion
Obtenha a versão cliente web3.
Parâmetros (0)
Exemplos de Cliente
curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''
wscat -c ws://localhost:8546 -x ''
javascript
web3.clientVersion();
web3_sha3
Retorna Keccak-256 (não o padronizado SHA3-256) dos dados fornecidos.
Parâmetros (1)
1: entrada hexutil.Bytes
- Necessário: ✓ Sim
Resultado
Exemplos de Cliente
curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''
wscat -c ws://localhost:8546 -x ''
javascript
web3.sha3(input);
Métodos de Rede
net_version
Retorna o ID da rede atual.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
net_peerCount
Retorna o número de pares atualmente conectados ao cliente.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
net_listening
Retorna se o cliente está ativamente ouvindo por conexões de rede.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
Métodos Eth
eth_protocolVersion
Retorna a versão do protocolo Ethereum atual.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_syncing
O objeto de status de sincronização pode precisar ser diferente dependendo dos detalhes do protocolo de sincronização do Tendermint. Contudo, o resultado 'sincronizado' é simplesmente um booleano e pode ser derivado facilmente do estado de sincronização interna do Tendermint.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_gasPrice
Retorna o preço atual do gás na denominação padrão do EVM.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_accounts
Retorna uma matriz de todas as contas eth.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_blockNumber
Retorna a altura atual do bloco.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getBalance
Retorna o saldo da conta para um determinado endereço de conta e número de bloco.
Parâmetros
- Endereço da Conta
- Número do Bloco ou Hash do Bloco (EIP-1898)
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getStorageAt
Retorna o endereço de armazenamento para um determinado endereço de conta.
Parâmetros
- Endereço da Conta
- Integer da posição no armazenamento
- Número do Bloco ou Hash do Bloco (EIP-1898)
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getTransactionCount
Retorna o total de transações para um determinado endereço de conta e número de bloco.
Parâmetros
- Endereço da Conta
- Número do Bloco ou Hash do Bloco (EIP-1898)
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getBlockTransactionCountByNumber
Retorna o total de transações para um determinado número de bloco.
Parâmetros
- Número do bloco
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getBlockTransactionCountByHash
Retorna o total de transações para um determinado hash de bloco.
Parâmetros
- Hash do Bloco
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getCode
Retorna o código para um dado endereço de conta e número de bloco.
Parâmetros
- Endereço da Conta
- Número do Bloco ou Hash do Bloco (EIP-1898)
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_sign
O método sign
calcula uma assinatura específica do Ethereum com: sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)))
.
Ao adicionar um prefixo à mensagem, a assinatura calculada torna-se reconhecível como uma assinatura específica do Ethereum. Isso evita o mau uso, onde um DApp mal-intencionado pode assinar dados arbitrários (por exemplo, transação) e usar a assinatura para se passar pela vítima.
O endereço para assinar deve estar desbloqueado.
Parâmetros
- Endereço da Conta
- Mensagem para assinar
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_sendTransaction
Envia transação de uma conta fornecida para uma conta fornecida.
Parâmetros
-
Objeto contendo:
from
:DATA
, 20 Bytes - O endereço do qual a transação é enviada.to
:DATA
, 20 Bytes - (opcional ao criar novo contrato) O endereço ao qual a transação é direcionada.gas
: QUANTIDADE - (opcional, padrão: 90000) Integer do gás fornecido para a execução da transação. Será retornado o gás não usado.gasPrice
: QUANTIDADE - (opcional, padrão: A Ser Determinado) Integer do preço do gás usado para cada gás pagovalue
: QUANTIDADE - valor enviado com esta transaçãodata
:DATA
- O código compilado de um contrato OU o hash da assinatura do método invocado e parâmetros codificados. Para detalhes veja Ethereum Contract ABInonce
: QUANTIDADE - (opcional) Integer de um nonce. Isso permite sobrescrever suas próprias transações pendentes que usam o mesmo nonce.
// Solicitação
curl -X POST --data '],"id":1}' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_sendRawTransaction
Cria uma nova transação de chamada de mensagem ou uma criação de contrato para transações assinadas. Você pode obter dados de transação assinados usando o método personal_sign
.
Parâmetros
- Os dados da transação assinada
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_call
Executa uma nova chamada de mensagem imediatamente sem criar uma transação no blockchain.
Parâmetros
-
Objeto contendo:
from
:DATA
, 20 Bytes - (opcional) O endereço do qual a transação é enviada.to
:DATA
, 20 Bytes - O endereço ao qual a transação é direcionada.gas
: QUANTIDADE - gás fornecido para a execução da transação. eth_call consome zero gás, mas esse parâmetro pode ser necessário em algumas execuções.gasPrice
: QUANTIDADE - preço do gás usado para cada gás pagovalue
: QUANTIDADE - valor enviado com esta transaçãodata
:DATA
- (opcional) Hash da assinatura do método e parâmetros codificados. Para detalhes veja Ethereum Contract ABI na documentação de Solidity -
Número do bloco ou Hash do Bloco (EIP-1898)
// Solicitação
curl -X POST --data ', "0x0"],"id":1}' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_estimateGas
Retorna um valor estimado do gás necessário para enviar a transação.
Parâmetros
-
Objeto contendo:
from
:DATA
, 20 Bytes - O endereço do qual a transação é enviada.to
:DATA
, 20 Bytes - (opcional ao criar novo contrato) O endereço ao qual a transação é direcionada.value
:QUANTIDADE
- valor enviado com esta transação
// Solicitação
curl -X POST --data '],"id":1}' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getBlockByNumber
Retorna informações sobre um bloco pelo número do bloco.
Parâmetros
- Número do Bloco
- Se verdadeiro, retorna os objetos de transação completos, caso contrário apenas os hashes das transações.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getBlockByHash
Retorna as informações do bloco dado o hash encontrado no comando acima e um bool.
Parâmetros
- Hash de um bloco.
- Se verdadeiro, retorna os objetos de transação completos, caso contrário apenas os hashes das transações.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getTransactionByHash
Retorna detalhes da transação dado o tx algo do Ethereum.
Parâmetros
- hash de uma transação
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getTransactionByBlockHashAndIndex
Retorna detalhes da transação dado o hash do bloco e o índice da transação.
Parâmetros
- Hash de um bloco.
- Posição do índice da transação.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getTransactionReceipt
Retorna o recibo de uma transação pelo hash da transação.
Nota: O código Tx do Tendermint e o status do recibo Ethereum são trocados:
Tendermint | Ethereum | |
---|---|---|
Sucesso | 0 | 1 |
Falha | 1 | 0 |
Parâmetros
- Hash de uma transação
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_newFilter
Cria um novo filtro usando tópicos de algum tipo.
Parâmetros
- hash de uma transação
// Solicitação
curl -X POST --data '],"id":1}' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_newBlockFilter
Cria um filtro no nó, para notificar quando um novo bloco chegar.
// Solicitação
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_newPendingTransactionFilter
Cria um filtro no nó para notificar quando novas transações pendentes chegarem.
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_uninstallFilter
Remove o filtro com o ID fornecido. Retorna verdadeiro se o filtro foi desinstalado com sucesso, caso contrário, falso.
Parâmetros
- O ID do filtro
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getFilterChanges
Método de polling para um filtro que retorna um array de logs que ocorreram desde a última consulta.
Parâmetros
- O ID do filtro
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getFilterLogs
Retorna um array de todos os logs que correspondem ao filtro com o ID fornecido.
Parâmetros
QUANTIDADE
- O ID do filtro
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getLogs
Retorna um array de todos os logs que correspondem a um objeto de filtro fornecido.
Parâmetros
-
Objeto contendo:
fromBlock
:QUANTIDADE|TAG
- (opcional, padrão:"latest"
) Número do bloco inteiro ou"latest"
para o último bloco minerado ou"pending"
,"earliest"
para transações ainda não mineradas.toBlock
:QUANTIDADE|TAG
- (opcional, padrão:"latest"
) Número do bloco inteiro ou"latest"
para o último bloco minerado ou"pending"
,"earliest"
para transações ainda não mineradas.address
:DADOS|Array
, 20 Bytes - (opcional) Endereço do contrato ou uma lista de endereços de onde os logs devem se originar.topics
: Array deDADOS
, - (opcional) Array de 32 BytesDADOS
tópicos. Os tópicos são dependentes de ordem. Cada tópico também pode ser um array deDADOS
com opções "ou".blockhash
: (opcional, futuro) Com a adição de EIP-234,blockHash
será uma nova opção de filtro que restringirá os logs retornados ao bloco único com o hashblockHash
de 32 bytes. Usarblockhash
é equivalente afromBlock
=toBlock
= o número do bloco com hashblockHash
. Seblockhash
estiver presente nos critérios de filtro, então nemfromBlock
nemtoBlock
são permitidos.
// Requisição
curl -X POST --data '],"id":1}' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_coinbase
Retorna a conta para a qual as recompensas de mineração serão enviadas.
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
eth_getProof
Retorna os valores de conta e armazenamento da conta especificada, incluindo a prova de Merkle.
Parâmetros
- Endereço da conta ou contrato
- Inteiro da posição no armazenamento
- Número do Bloco ou Hash do Bloco (EIP-1898)
// Requisição
curl -X POST --data '' -H "Content-type:application/json" http://localhost:8545
// Resultado
Métodos WebSocket
Leia sobre websockets em Eventos Tendermint
eth_subscribe
inscrever-se usando notificações JSON-RPC. Isso permite que os clientes esperem por eventos em vez de consultá-los.
Funciona inscrevendo-se em eventos específicos. O nó retornará um ID de inscrição. Para cada evento que coincida com a inscrição, uma notificação com dados relevantes é enviada junto com o ID de inscrição.
Parâmetros
- Nome da Inscrição
- Argumentos Opcionais
// Requisição
]}
// Resultado
<
eth_unsubscribe
Cancelar a inscrição de um evento usando o ID de inscrição
Parâmetros
- ID de Inscrição
// Requisição
// Resultado
Métodos Pessoais
personal_importRawKey
:::Importa a chave privada não criptografada fornecida (string codificada em hexadecimal) para o armazenamento de chaves, criptografando-a com a senha.Retorna o endereço da nova conta.#### Parâmetros (2)1: privkey string
- Requerido: ✓ Sim2: senha string
- Requerido: ✓ Sim```json
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
```### personal_listAccounts
:::dica Privado: Requer autenticação.
Importa a chave privada não criptografada fornecida (string codificada em hexadecimal) para o armazenamento de chaves, criptografando-a com a senha.
Retorna o endereço da nova conta.
Parâmetros (2)
1: privkey string
- Requerido: ✓ Sim
2: senha string
- Requerido: ✓ Sim
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
personal_listAccounts
:::dica Privado: Requer autenticação. :::
Retorna uma lista de endereços para contas geridas por este nó.
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_lockAccount
:::Remove a chave privada com o endereço fornecido da memória. A conta não poderá mais ser usada para enviar transações.#### Parâmetros- Endereço da Conta```json // Requisição curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
```### personal_newAccount
:::dica Privado: Requer autenticação.
Remove a chave privada com o endereço fornecido da memória. A conta não poderá mais ser usada para enviar transações.
Parâmetros
- Endereço da Conta
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_newAccount
:::dica Privado: Requer autenticação. :::
Gera uma nova chave privada e armazena-a no diretório de armazenamento de chaves. O arquivo de chave é criptografado com a senha fornecida. Retorna o endereço da nova conta.
Parâmetros
- Senha
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_unlockAccount
:::Descriptografa a chave com o endereço fornecido do armazenamento de chaves.Tanto a senha quanto a duração do desbloqueio são opcionais ao usar o console JavaScript. A chave descriptografada ficará na memória até que o tempo do desbloqueio expire. Se a duração do desbloqueio não for especificada, o padrão é 300 segundos. Uma duração explícita de zero segundos desbloqueia a chave até que o "geth" feche.A conta pode ser utilizada com eth_sign
e eth_sendTransaction
enquanto estiver desbloqueada.#### Parâmetros- Endereço da Conta
- Senha
- Duração```json // Requisição curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
```### personal_sendTransaction
:::dica Privado: Requer autenticação.
Descriptografa a chave com o endereço fornecido do armazenamento de chaves.
Tanto a senha quanto a duração do desbloqueio são opcionais ao usar o console JavaScript. A chave descriptografada ficará na memória até que o tempo do desbloqueio expire. Se a duração do desbloqueio não for especificada, o padrão é 300 segundos. Uma duração explícita de zero segundos desbloqueia a chave até que o "geth" feche.
A conta pode ser utilizada com eth_sign
e eth_sendTransaction
enquanto estiver desbloqueada.
Parâmetros
- Endereço da Conta
- Senha
- Duração
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_sendTransaction
:::dica Privado: Requer autenticação. :::
Valide a senha fornecida e envie a transação.
A transação é o mesmo argumento como para eth_sendTransaction
e contém o endereço "from". Se a senha puder ser utilizada para descriptografar a chave privada pertencente a "tx.from", a transação é verificada, assinada e enviada para a rede.
A conta não é desbloqueada globalmente no nó e não pode ser utilizada em outras chamadas RPC.
Parâmetros
-
Objeto contendo:
from
:DADOS
, 20 Bytes - O endereço de onde a transação é enviada.to
:DADOS
, 20 Bytes - (opcional ao criar novo contrato) O endereço para o qual a transação é direcionada.value
: QUANTIDADE - valor enviado com esta transação. -
Senha
// Requisição
curl -X POST --data ', "senha"],"id":1}' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_sign
:::O método de assinatura calcula uma assinatura específica do Ethereum com: sign(keccack256("\x19Ethereum Signed Message:\n" + len(message) + message)))
,#### Parâmetros- Mensagem
- Endereço da Conta
- Senha```json // Requisição curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
```### personal_ecRecover
:::dica Privado: Requer autenticação.
O método de assinatura calcula uma assinatura específica do Ethereum com: sign(keccack256("\x19Ethereum Signed Message:\n" + len(message) + message)))
,
Parâmetros
- Mensagem
- Endereço da Conta
- Senha
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_ecRecover
:::dica Privado: Requer autenticação. :::
ecRecover
retorna o endereço associado à chave privada que foi utilizada para calcular a assinatura em personal_sign
.
Parâmetros
- Mensagem
- Assinatura retornada por
personal_sign
// Requisição
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
// Resultado
personal_initializeWallet
:::Inicializa uma nova carteira no URL fornecido, gerando e retornando uma nova chave privada.#### Parâmetros (1)Os parâmetros devem ser fornecidos por posição.1: url string
- Requerido: ✓ Sim#### Exemplos de Cliente```shell
curl -X POST -H "Content-Type: application/json" http://localhost:8545 --data ''
wscat -c ws://localhost:8546 -x ''
javascript
personal.initializeWallet(url);
```### personal_unpair
:::dica Privado: Requer autenticação.
Inicializa uma nova carteira no URL fornecido, gerando e retornando uma nova chave privada.
Parâmetros (1)
Os parâmetros devem ser fornecidos por posição.
1: url string
- Requerido: ✓ Sim
Exemplos 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
:::dica Privado: Requer autenticação. :::
Unpair deleta um emparelhamento entre carteira e o nó.
Parâmetros (2)
- URL
- Senha do emparelhamento
Exemplos 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 Debug
debug_traceTransaction
O método de debug traceTransaction
tentará executar a transação da mesma maneira que foi executada na rede. Ele irá reproduzir qualquer transação que possa ter sido executada antes desta para finalmente tentar executar a transação que corresponde ao hash fornecido.
Parâmetros
- Configuração de Trace
// Requisição
curl -X POST --data ', step: function(log) , result: function() }"}],"id":1}' -H "Content-Type: application/json" http://localhost:8545
//Resultado
["68410", "51470"]
debug_traceBlockByNumber
O endpoint traceBlockByNumber
aceita um número de bloco e reproduzirá o bloco que já está presente no banco de dados.
Parâmetros
- Configuração de Rastreio
// Solicitação\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 Mineração
miner_getHashrate
:::\n\nObtenha a taxa de hash em H/s (Operações de Hash por segundo).\n\n:::aviso\nEspecífico para Proof-of-Work. Este endpoint sempre retorna 0
.
Obtenha a taxa de hash em H/s (Operações de Hash por segundo).
:::aviso\nEspecífico para Proof-of-Work. Este endpoint sempre retorna 0
.\n:::
// Solicitação\ncurl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545\n\n// Resultado\n
miner_setExtra
:::\n\nDefine os dados extras que um validador pode incluir ao propor blocos. Isso está limitado a 32 bytes.\n\n:::aviso\nNão compatível. Este endpoint sempre retorna um erro
Define os dados extras que um validador pode incluir ao propor blocos. Isso está limitado a 32 bytes.
:::aviso\nNão compatível. Este endpoint sempre retorna um erro\n:::
Parâmetros
- Dados
// Solicitação\ncurl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545\n\n// Resultado\n
miner_setGasPrice
:::\n\nDefine o preço mínimo do gás usado para aceitar transações. Qualquer transação abaixo deste limite é excluída do processo de proposta de bloco do validador.\n\nEste método requer reiniciar um nó
após ser chamado porque ele altera o arquivo de configuração.\n\nCertifique-se de que seu chamador de crossfid start
não esteja usando a bandeira minimum-gas-prices
porque este valor será usado em vez do que está configurado no arquivo de configuração.\n\n#### Parâmetros\n\n* Preço do Gás Hex\n\njson\n// Solicitação\ncurl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545\n\n// Resultado\n\n
\n\n### miner_start
\n\n:::dica Privado: Requer autenticação.
Define o preço mínimo do gás usado para aceitar transações. Qualquer transação abaixo deste limite é excluída do processo de proposta de bloco do validador.
Este método requer reiniciar um nó
após ser chamado porque ele altera o arquivo de configuração.
Certifique-se de que seu chamador de crossfid start
não esteja usando a bandeira minimum-gas-prices
porque este valor será usado em vez do que está configurado no arquivo de configuração.
Parâmetros
- Preço do Gás Hex
// Solicitação\ncurl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545\n\n// Resultado\n
miner_start
:::dica Privado: Requer autenticação. \n:::
Inicia o processo de validação do CPU com o número dado de threads.
Não compatível. Este endpoint sempre retorna um erro
Parâmetros
- Hex número de threads
// Solicitação\ncurl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545\n\n// Resultado\n
miner_stop
:::\n\nPare a operação de validação.\n\n:::aviso\nNão compatível. Este endpoint sempre realiza uma operação sem efeito.
Pare a operação de validação.
:::aviso\nNão compatível. Este endpoint sempre realiza uma operação sem efeito.\n:::
// Solicitação\ncurl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545
miner_setGasLimit
:::\n\nDefine o limite de gás que o minerador visará ao minerar. Nota: em redes onde o EIP-1559 está ativado, isso deve ser definido para o dobro do que se deseja como alvo de gás (ou seja, o gás efetivo usado em média por bloco).\n\n:::aviso\nNão suportado. Este endpoint sempre retorna false
Define o limite de gás que o minerador visará ao minerar. Nota: em redes onde o EIP-1559 está ativado, isso deve ser definido para o dobro do que se deseja como alvo de gás (ou seja, o gás efetivo usado em média por bloco).
:::aviso\nNão suportado. Este endpoint sempre retorna false
\n:::
Parâmetros
- Limite de gás Hex
// Solicitação\ncurl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545\n\n// Resultado\n
miner_setEtherbase
:::dica Privado: Requer autenticação. \n:::
Define o etherbase. Isso altera a carteira onde as recompensas do validador serão depositadas.
Parâmetros
- Endereço da conta
// Solicitação\ncurl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545\n\n// Resultado\n
Métodos TxPool
txpool_content
Retorna uma lista com os detalhes exatos de todas as transações atualmente pendentes para inclusão nos próximos blocos, assim como aquelas que estão programadas para execução futura apenas.
Parame (0)
Exemplos de Cliente
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545\n
wscat -c ws://localhost:8546 -x ''
javascript\ntxpool.content();\n
Resultado
json\n,"queued":{}
txpool_inspect
Retorna uma lista em formato de texto para resumir todas as transações atualmente pendentes para inclusão nos próximos blocos, assim como aquelas que estão programadas para execução futura apenas. Este é um método especificamente adaptado para desenvolvedores verem rapidamente as transações no pool e encontrarem quaisquer potenciais problemas.
Parâmetros (0)
Exemplos de Cliente
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545\n
wscat -c ws://localhost:8546 -x ''
javascript\ntxpool.inspect();\n
Resultado
json\n,"queued":{}
txpool_status
Retorna o número de transações atualmente pendentes para inclusão nos próximos blocos, assim como aquelas que estão programadas para execução futura apenas.
Parâmetros (0)
Exemplos de Cliente
curl -X POST --data '' -H "Content-Type: application/json" http://localhost:8545\n
wscat -c ws://localhost:8546 -x ''
txpool.status();
Resultado
json\n}