Class: BinanceClient::AuthenticatedBaseRequest

Inherits:
BaseRequest
  • Object
show all
Defined in:
lib/binance_client/requests/authenticated_base_request.rb

Instance Method Summary collapse

Methods inherited from BaseRequest

#headers

Instance Method Details

#paramsObject



23
24
25
26
# File 'lib/binance_client/requests/authenticated_base_request.rb', line 23

def params
  params_without_signature_with_timestamp_and_recv_window.
    merge(signature_hash).to_query
end

#params_without_signatureObject



34
35
36
# File 'lib/binance_client/requests/authenticated_base_request.rb', line 34

def params_without_signature
  {}
end

#params_without_signature_with_timestamp_and_recv_windowObject



28
29
30
31
32
# File 'lib/binance_client/requests/authenticated_base_request.rb', line 28

def params_without_signature_with_timestamp_and_recv_window
  attrs_to_merge = { timestamp: timestamp }
  attrs_to_merge[:recvWindow] = recv_window if recv_window.present?
  params_without_signature.merge(attrs_to_merge)
end

#signatureObject



7
8
9
10
11
12
13
# File 'lib/binance_client/requests/authenticated_base_request.rb', line 7

def signature
  OpenSSL::HMAC.hexdigest(
    OpenSSL::Digest.new("sha256"),
    api_secret,
    params_without_signature_with_timestamp_and_recv_window.to_query,
  )
end

#signature_hashObject



15
16
17
# File 'lib/binance_client/requests/authenticated_base_request.rb', line 15

def signature_hash
  { signature: signature }
end

#timestampObject



19
20
21
# File 'lib/binance_client/requests/authenticated_base_request.rb', line 19

def timestamp
  @timestamp ||= DateTime.now.strftime("%Q")
end