class KucoinRuby::Util

Public Class Methods

build_message(endpoint, nonce, query_string = '') click to toggle source
# File lib/kucoin_ruby/util.rb, line 7
def self.build_message(endpoint, nonce, query_string = '')
  "#{endpoint}/#{nonce}/#{query_string}"
end
nonce() click to toggle source
# File lib/kucoin_ruby/util.rb, line 3
def self.nonce
  (Time.now.to_f * 1000).to_i.to_s
end
sign(string) click to toggle source
# File lib/kucoin_ruby/util.rb, line 11
def self.sign(string)
  base = Base64.strict_encode64(string)
  sign_hmac(base)
end
sign_message(endpoint, query_string = nil) click to toggle source
# File lib/kucoin_ruby/util.rb, line 16
def self.sign_message(endpoint, query_string = nil)
  nc = nonce
  query_string = compose_query_string(query_string)
  [nc, sign(build_message(endpoint, nc, query_string))]
end

Private Class Methods

compose_query_string(query_string) click to toggle source
# File lib/kucoin_ruby/util.rb, line 28
def self.compose_query_string(query_string)
  return query_string unless query_string.is_a? Hash
  uri = Addressable::URI.new
  uri.query_values = query_string
  uri.query
end
sign_hmac(string) click to toggle source
# File lib/kucoin_ruby/util.rb, line 24
def self.sign_hmac(string)
  OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), KucoinRuby::Net.secret, string)
end