Class: Ethereum::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/ethereum/client.rb

Direct Known Subclasses

HttpClient, IpcClient

Constant Summary collapse

RPC_COMMANDS =
%w(web3_clientVersion web3_sha3 net_version net_peerCount net_listening eth_protocolVersion eth_syncing eth_coinbase eth_mining eth_hashrate eth_gasPrice eth_accounts eth_blockNumber eth_getBalance eth_getStorageAt eth_getTransactionCount eth_getBlockTransactionCountByHash eth_getBlockTransactionCountByNumber eth_getUncleCountByBlockHash eth_getUncleCountByBlockNumber eth_getCode eth_sign eth_sendTransaction eth_sendRawTransaction eth_call eth_estimateGas eth_getBlockByHash eth_getBlockByNumber eth_getTransactionByHash eth_getTransactionByBlockHashAndIndex eth_getTransactionByBlockNumberAndIndex eth_getTransactionReceipt eth_getUncleByBlockHashAndIndex eth_getUncleByBlockNumberAndIndex eth_getCompilers eth_compileLLL eth_compileSolidity eth_compileSerpent eth_newFilter eth_newBlockFilter eth_newPendingTransactionFilter eth_uninstallFilter eth_getFilterChanges eth_getFilterLogs eth_getLogs eth_getWork eth_submitWork eth_submitHashrate db_putString db_getString db_putHex db_getHex shh_post shh_version shh_newIdentity shh_hasIdentity shh_newGroup shh_addToGroup shh_newFilter shh_uninstallFilter shh_getFilterChanges shh_getMessages)
RPC_MANAGEMENT_COMMANDS =
%w(admin_addPeer admin_datadir admin_nodeInfo admin_peers admin_setSolc admin_startRPC admin_startWS admin_stopRPC admin_stopWS debug_backtraceAt debug_blockProfile debug_cpuProfile debug_dumpBlock debug_gcStats debug_getBlockRlp debug_goTrace debug_memStats debug_seedHash debug_setHead debug_setBlockProfileRate debug_stacks debug_startCPUProfile debug_startGoTrace debug_stopCPUProfile debug_stopGoTrace debug_traceBlock debug_traceBlockByNumber debug_traceBlockByHash debug_traceBlockFromFile debug_traceTransaction debug_verbosity debug_vmodule debug_writeBlockProfile debug_writeMemProfile miner_hashrate miner_makeDAG miner_setExtra miner_setGasPrice miner_start miner_startAutoDAG miner_stop miner_stopAutoDAG personal_importRawKey personal_listAccounts personal_lockAccount personal_newAccount personal_unlockAccount personal_sendTransaction txpool_content txpool_inspect txpool_status)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(log = false) ⇒ Client

Returns a new instance of Client.


10
11
12
13
14
15
16
17
18
# File 'lib/ethereum/client.rb', line 10

def initialize(log = false)
  @id = 0
  @log = log
  @batch = nil

  if @log == true
    @logger = Logger.new("/tmp/ethereum_ruby_http.log")
  end
end

Instance Attribute Details

#commandObject

Returns the value of attribute command


8
9
10
# File 'lib/ethereum/client.rb', line 8

def command
  @command
end

#idObject

Returns the value of attribute id


8
9
10
# File 'lib/ethereum/client.rb', line 8

def id
  @id
end

#logObject

Returns the value of attribute log


8
9
10
# File 'lib/ethereum/client.rb', line 8

def log
  @log
end

#loggerObject

Returns the value of attribute logger


8
9
10
# File 'lib/ethereum/client.rb', line 8

def logger
  @logger
end

Instance Method Details

#batchObject


20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ethereum/client.rb', line 20

def batch
  @batch = []

  yield
  result = send_batch(@batch)

  @batch = nil
  reset_id

  return result
end

#get_idObject


32
33
34
35
# File 'lib/ethereum/client.rb', line 32

def get_id
  @id += 1
  return @id
end

#reset_idObject


37
38
39
# File 'lib/ethereum/client.rb', line 37

def reset_id
  @id = 0
end