Class: Coinex::Signature

Inherits:
Base
  • Object
show all
Defined in:
lib/coinex/resources/signature.rb

Class Method Summary collapse

Methods inherited from Base

build_url

Class Method Details

.calculate(params: {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/coinex/resources/signature.rb', line 8

def calculate(params: {})
  current_time = params[:tonce].nil? ? Time.now.strftime('%s%L') : params[:tonce]
  signature = nil

  if params.empty?
    sign_str = "access_id=#{Coinex.access_id}&tonce=#{current_time}&secret_key=#{Coinex.secret_key}"
    signature = Digest::MD5.hexdigest(sign_str).upcase
  else
    params[:tonce] = current_time
    signature = Digest::MD5.hexdigest(calculate_params(params)).upcase
  end

  { tonce: current_time, signature: signature }
end

.calculate_params(params) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/coinex/resources/signature.rb', line 23

def calculate_params(params)
  sort_params = params.sort.to_h
  init = "access_id=#{Coinex.access_id}&"
  finish = "secret_key=#{Coinex.secret_key}"
  array = []

  sort_params.each do |key, value|
    array.push("#{key}=#{value}&")
  end

  init + array.join('') + finish
end