class Meeseeker::SteemEngine::Agent

Constants

POST_HEADERS

Public Class Methods

new(options = {}) click to toggle source
Calls superclass method
# File lib/meeseeker/steem_engine/agent.rb, line 10
def initialize(options = {})
  super
  
  self.user_agent = Meeseeker::AGENT_ID
  self.max_history = 0
  self.default_encoding = 'UTF-8'
  
  @node_url = options[:url] || Meeseeker::steem_engine_node_url
end

Public Instance Methods

block(block_num) click to toggle source
# File lib/meeseeker/steem_engine/agent.rb, line 47
def block(block_num)
  5.times do
    request_body = {
      jsonrpc: "2.0",
      method: :getBlockInfo,
      params: {
        blockNumber: block_num.to_i
      },
      id: rpc_id
    }.to_json
    
    response = request_with_entity :post, blockchain_uri, request_body, POST_HEADERS
    block = JSON[response.body]["result"]
    
    return block if !!block
    
    sleep 3
  end
  
  return nil
end
blockchain_http_post() click to toggle source
# File lib/meeseeker/steem_engine/agent.rb, line 24
def blockchain_http_post
  @http_post ||= Net::HTTP::Post.new(blockchain_uri.request_uri, POST_HEADERS)
end
blockchain_uri() click to toggle source
# File lib/meeseeker/steem_engine/agent.rb, line 20
def blockchain_uri
  @blockchain_uri ||= URI.parse(@node_url + '/blockchain')
end
latest_block_info() click to toggle source
# File lib/meeseeker/steem_engine/agent.rb, line 28
def latest_block_info
  5.times do
    request_body = {
      jsonrpc: "2.0",
      method: :getLatestBlockInfo,
      id: rpc_id
    }.to_json
    
    response = request_with_entity :post, blockchain_uri, request_body, POST_HEADERS
    latest_block_info = JSON[response.body]["result"]
    
    return latest_block_info if !!latest_block_info
    
    sleep 3
  end
  
  return nil
end

Private Instance Methods

rpc_id() click to toggle source
# File lib/meeseeker/steem_engine/agent.rb, line 69
def rpc_id
  @rpc_id ||= 0
  @rpc_id = @rpc_id + 1
end