module Binance::Api::Margin

Public Class Methods

borrow!(asset: nil, amount: nil, recvWindow: nil, api_key: nil, api_secret_key: nil) click to toggle source

Your Margin Wallet balance determines the amount of funds you can borrow, following a fixed rate of 5:1 (5x).

# File lib/binance/api/margin.rb, line 7
def borrow!(asset: nil, amount: nil, recvWindow: nil, api_key: nil, api_secret_key: nil)
  timestamp = Configuration.timestamp
  params = {
    asset: asset, amount: amount, recvWindow: recvWindow, timestamp: timestamp,
  }.delete_if { |_, value| value.nil? }
  ensure_required_keys!(params: params)
  path = "/sapi/v1/margin/loan"
  Request.send!(api_key_type: :trading, method: :post, path: path,
                params: params, security_type: :margin, tld: Configuration.tld,
                api_key: api_key, api_secret_key: api_secret_key)
end
repay!(asset: nil, isIsolated: nil, amount: nil, recvWindow: nil, api_key: nil, api_secret_key: nil) click to toggle source
# File lib/binance/api/margin.rb, line 19
def repay!(asset: nil, isIsolated: nil, amount: nil, recvWindow: nil, api_key: nil, api_secret_key: nil)
  timestamp = Configuration.timestamp
  params = {
    asset: asset, amount: amount, recvWindow: recvWindow, timestamp: timestamp,
  }.delete_if { |_, value| value.nil? }
  ensure_required_keys!(params: params)
  path = "/sapi/v1/margin/repay"
  Request.send!(api_key_type: :trading, method: :post, path: path,
                params: params, security_type: :margin, tld: Configuration.tld,
                api_key: api_key, api_secret_key: api_secret_key)
end

Private Class Methods

ensure_required_keys!(params:) click to toggle source
# File lib/binance/api/margin.rb, line 33
def ensure_required_keys!(params:)
  keys = required_margin_keys.dup
  missing_keys = keys.select { |key| params[key].nil? }
  raise Error.new(message: "required keys are missing: #{missing_keys.join(", ")}") unless missing_keys.empty?
end
required_margin_keys() click to toggle source
# File lib/binance/api/margin.rb, line 39
def required_margin_keys
  [:asset, :amount, :timestamp].freeze
end