class BittraderBot::BotLogic

Attributes

exchange[R]
key[R]
secret[R]
telegram_token[R]

Public Class Methods

new(config) click to toggle source

Initializes a BotLogic object

# File lib/bittrader-bot/bot_logic.rb, line 36
def initialize config
  @exchange = config['exchange']
  @telegram_token = config['telegram_token']
  @key = config['key']
end

Public Instance Methods

send_get_request(host, request) click to toggle source

Send GET request to exchange

# File lib/bittrader-bot/bot_logic.rb, line 53
def send_get_request host, request
  https = start_connection host
  req = Net::HTTP::Get.new(request)
  https.request(req)
end
send_post_request(data) click to toggle source

Sends POST request to exchange

# File lib/bittrader-bot/bot_logic.rb, line 61
def send_post_request data
  request = Net::HTTP::Post.new(uri.path, initheader: {'Content-Type' =>'application/json'})
  request['key'] = @key
  request['sign'] = sign_post_data(data.to_json)
  request.body = data.to_json
  response = https.request(request)
  puts "Response #{response.code} #{response.message}: #{response.body}"
end
sign_post_data(data) click to toggle source

Signs POST data using HMAC-SHA512 method

# File lib/bittrader-bot/bot_logic.rb, line 72
def sign_post_data data
  digest = OpenSSL::Digest.new('sha512')
  OpenSSL::HMAC.digest(digest, @secret, data)
end
start_connection(host) click to toggle source

Starts the connection to the server and provides identification

# File lib/bittrader-bot/bot_logic.rb, line 44
def start_connection host
  uri = URI.parse(host)
  https = Net::HTTP.new(uri.host, 443)
  https.use_ssl = true
  return https
end