Class: InfuraRuby::Client

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

Constant Summary collapse

NETWORK_URLS =

Infura URLs for each network.

{
  main:      'https://mainnet.infura.io',
  test:      'https://ropsten.infura.io',
  consensys: 'https://consensysnet.inufra.io'
}.freeze
JSON_RPC_METHODS =
[
  'eth_getBalance'
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(api_key:, network: :main) ⇒ Client



17
18
19
20
21
22
23
# File 'lib/infura_ruby/client.rb', line 17

def initialize(api_key:, network: :main)
  validate_api_key(api_key)
  validate_network(network)

  @api_key = api_key
  @network = network
end

Instance Method Details

#get_balance(address) ⇒ Object

Returns balance of address in wei as integer.



26
27
28
29
30
31
32
33
34
35
# File 'lib/infura_ruby/client.rb', line 26

def get_balance(address)
  resp = conn.post do |req|
    req.headers['Content-Type'] = 'application/json'
    req.body = json_rpc(method: 'eth_getBalance', params: [address, 'latest']).to_json
  end

  resp_body  = JSON.parse(resp.body)
  wei_amount_hex_string = resp_body['result']
  wei_amount_hex_string.to_i(16)
end