Class: NearApi::Api

Inherits:
Object
  • Object
show all
Defined in:
lib/near_api/api.rb

Instance Method Summary collapse

Constructor Details

#initialize(config = NearApi.config) ⇒ Api

Returns a new instance of Api.



4
5
6
# File 'lib/near_api/api.rb', line 4

def initialize(config = NearApi.config)
  @config = config
end

Instance Method Details

#block_hash ⇒ Object



55
56
57
# File 'lib/near_api/api.rb', line 55

def block_hash
  NearApi::Base58.decode(status['sync_info']['latest_block_hash'])
end

#call(method, payload) ⇒ Object



8
9
10
# File 'lib/near_api/api.rb', line 8

def call(method, payload)
  json_rpc(method, payload)
end

#json_rpc(method, payload) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/near_api/api.rb', line 59

def json_rpc(method, payload)
  json_rpc_payload = {
    id: 'dontcare',
    jsonrpc: '2.0',
    method: method,
    params: payload
  }

  uri = URI.parse(config.node_url)
  req = Net::HTTP::Post.new(uri.path == '' ? '/' : uri.path)
  req.body = json_rpc_payload.to_json
  req['Content-Type'] = 'application/json'
  response = Net::HTTP.new(uri.host, uri.port).tap { |http| http.use_ssl = true }.request(req)

  JSON.parse(response.body)
end

#nonce(key) ⇒ Object



51
52
53
# File 'lib/near_api/api.rb', line 51

def nonce(key)
  view_access_key(key)['result']['nonce']
end

#status ⇒ Object



12
13
14
15
# File 'lib/near_api/api.rb', line 12

def status
  uri = URI("#{config.node_url}/status")
  JSON.parse(Net::HTTP.get(uri))
end

#view_access_key(key, finality: 'optimistic') ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/near_api/api.rb', line 17

def view_access_key(key, finality: 'optimistic')
  call(
    'query',
    {
      "request_type": 'view_access_key',
      "account_id": key.signer_id,
      "public_key": NearApi::Base58.encode(key.public_key),
      "finality": finality
    }
  )
end

#view_access_key_list(account_id, finality: 'optimistic') ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/near_api/api.rb', line 29

def view_access_key_list(, finality: 'optimistic')
  call(
    'query',
    {
      "request_type": 'view_access_key_list',
      "account_id": ,
      "finality": finality
    }
  )
end

#view_account(account_id, finality: 'optimistic') ⇒ Object



40
41
42
43
44
45
46
47
48
49
# File 'lib/near_api/api.rb', line 40

def (, finality: 'optimistic')
  call(
    'query',
    {
      "request_type": 'view_account',
      "account_id": ,
      "finality": finality
    }
  )
end