Class: NearApi::Api
- Inherits:
-
Object
- Object
- NearApi::Api
- Defined in:
- lib/near_api/api.rb
Instance Method Summary collapse
- #block_hash ⇒ Object
- #call(method, payload) ⇒ Object
-
#initialize(config = NearApi.config) ⇒ Api
constructor
A new instance of Api.
- #json_rpc(method, payload) ⇒ Object
- #nonce(key) ⇒ Object
- #status ⇒ Object
- #view_access_key(key, finality: 'optimistic') ⇒ Object
- #view_access_key_list(account_id, finality: 'optimistic') ⇒ Object
- #view_account(account_id, finality: 'optimistic') ⇒ Object
Constructor Details
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(account_id, finality: 'optimistic') call( 'query', { "request_type": 'view_access_key_list', "account_id": 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 view_account(account_id, finality: 'optimistic') call( 'query', { "request_type": 'view_account', "account_id": account_id, "finality": finality } ) end |