Class: Honeymaker::Clients::Bitvavo
- Inherits:
-
Honeymaker::Client
- Object
- Honeymaker::Client
- Honeymaker::Clients::Bitvavo
- Defined in:
- lib/honeymaker/clients/bitvavo.rb
Constant Summary collapse
- URL =
"https://api.bitvavo.com"- ACCESS_WINDOW =
"10000"- RATE_LIMITS =
{ default: 100, orders: 100 }.freeze
Constants inherited from Honeymaker::Client
Instance Attribute Summary
Attributes inherited from Honeymaker::Client
Instance Method Summary collapse
- #cancel_order(market:, order_id:) ⇒ Object
- #get_assets ⇒ Object
- #get_balances ⇒ Object
- #get_candles(market:, interval:, start_time: nil, end_time: nil, limit: nil) ⇒ Object
- #get_deposit_history(symbol: nil, limit: nil, start_time: nil, end_time: nil) ⇒ Object
- #get_markets(market: nil) ⇒ Object
- #get_order(market:, order_id:) ⇒ Object
- #get_raw_balance(symbol: nil) ⇒ Object
- #get_ticker_book(market: nil) ⇒ Object
- #get_ticker_price(market: nil) ⇒ Object
- #get_trades(market:, limit: nil, start_time: nil, end_time: nil, trade_id_from: nil, trade_id_to: nil) ⇒ Object
-
#get_transactions(limit: nil, start_time: nil, end_time: nil) ⇒ Object
— History —.
- #get_withdrawal_history(symbol: nil, limit: nil, start_time: nil, end_time: nil) ⇒ Object
- #place_order(market:, side:, order_type:, amount: nil, amount_quote: nil, price: nil, time_in_force: nil, client_order_id: nil) ⇒ Object
- #withdraw(symbol:, amount:, address:, payment_id: nil) ⇒ Object
Methods inherited from Honeymaker::Client
#initialize, rate_limits, #validate
Constructor Details
This class inherits a constructor from Honeymaker::Client
Instance Method Details
#cancel_order(market:, order_id:) ⇒ Object
74 75 76 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 74 def cancel_order(market:, order_id:) delete_signed("/v2/order", { market: market, orderId: order_id }) end |
#get_assets ⇒ Object
10 11 12 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 10 def get_assets get_public("/v2/assets") end |
#get_balances ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 36 def get_balances result = get_raw_balance return result if result.failure? balances = {} Array(result.data).each do |balance| symbol = balance["symbol"] next unless symbol free = BigDecimal((balance["available"] || "0").to_s) locked = BigDecimal((balance["inOrder"] || "0").to_s) next if free.zero? && locked.zero? balances[symbol] = { free: free, locked: locked } end Result::Success.new(balances) end |
#get_candles(market:, interval:, start_time: nil, end_time: nil, limit: nil) ⇒ Object
26 27 28 29 30 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 26 def get_candles(market:, interval:, start_time: nil, end_time: nil, limit: nil) get_public("/v2/#{market}/candles", { interval: interval, start: start_time, end: end_time, limit: limit }) end |
#get_deposit_history(symbol: nil, limit: nil, start_time: nil, end_time: nil) ⇒ Object
85 86 87 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 85 def get_deposit_history(symbol: nil, limit: nil, start_time: nil, end_time: nil) get_signed("/v2/deposit", { symbol: symbol, limit: limit, start: start_time, end: end_time }) end |
#get_markets(market: nil) ⇒ Object
14 15 16 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 14 def get_markets(market: nil) get_public("/v2/markets", { market: market }) end |
#get_order(market:, order_id:) ⇒ Object
66 67 68 69 70 71 72 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 66 def get_order(market:, order_id:) result = get_signed("/v2/order", { market: market, orderId: order_id }) return result if result.failure? raw = result.data Result::Success.new(normalize_order("#{raw['market']}-#{raw['orderId']}", raw)) end |
#get_raw_balance(symbol: nil) ⇒ Object
32 33 34 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 32 def get_raw_balance(symbol: nil) get_signed("/v2/balance", { symbol: symbol }) end |
#get_ticker_book(market: nil) ⇒ Object
22 23 24 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 22 def get_ticker_book(market: nil) get_public("/v2/ticker/book", { market: market }) end |
#get_ticker_price(market: nil) ⇒ Object
18 19 20 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 18 def get_ticker_price(market: nil) get_public("/v2/ticker/price", { market: market }) end |
#get_trades(market:, limit: nil, start_time: nil, end_time: nil, trade_id_from: nil, trade_id_to: nil) ⇒ Object
78 79 80 81 82 83 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 78 def get_trades(market:, limit: nil, start_time: nil, end_time: nil, trade_id_from: nil, trade_id_to: nil) get_signed("/v2/trades", { market: market, limit: limit, start: start_time, end: end_time, tradeIdFrom: trade_id_from, tradeIdTo: trade_id_to }) end |
#get_transactions(limit: nil, start_time: nil, end_time: nil) ⇒ Object
— History —
101 102 103 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 101 def get_transactions(limit: nil, start_time: nil, end_time: nil) get_signed("/v2/transactions", { limit: limit, start: start_time, end: end_time }) end |
#get_withdrawal_history(symbol: nil, limit: nil, start_time: nil, end_time: nil) ⇒ Object
89 90 91 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 89 def get_withdrawal_history(symbol: nil, limit: nil, start_time: nil, end_time: nil) get_signed("/v2/withdrawal", { symbol: symbol, limit: limit, start: start_time, end: end_time }) end |
#place_order(market:, side:, order_type:, amount: nil, amount_quote: nil, price: nil, time_in_force: nil, client_order_id: nil) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 53 def place_order(market:, side:, order_type:, amount: nil, amount_quote: nil, price: nil, time_in_force: nil, client_order_id: nil) result = post_signed("/v2/order", { market: market, side: side, orderType: order_type, amount: amount, amountQuote: amount_quote, price: price, timeInForce: time_in_force, clientOrderId: client_order_id }) return result if result.failure? raw = result.data Result::Success.new({ order_id: "#{raw['market']}-#{raw['orderId']}", raw: raw }) end |
#withdraw(symbol:, amount:, address:, payment_id: nil) ⇒ Object
93 94 95 96 97 |
# File 'lib/honeymaker/clients/bitvavo.rb', line 93 def withdraw(symbol:, amount:, address:, payment_id: nil) post_signed("/v2/withdrawal", { symbol: symbol, amount: amount, address: address, paymentId: payment_id }) end |