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