Class: Bitfex::Api

Inherits:
Object
  • Object
show all
Defined in:
lib/bitfex/api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(token: nil, server_url: 'https://bitfex.trade') ⇒ Api

Returns a new instance of Api.

Parameters:

  • server_url (String) (defaults to: 'https://bitfex.trade')

    URL of the main server

  • auth_server_url (String)

    URL of the auth server



10
11
12
13
# File 'lib/bitfex/api.rb', line 10

def initialize(token: nil, server_url: 'https://bitfex.trade')
  @token = token
  @_server_url = server_url
end

Instance Attribute Details

#tokenObject

Returns the value of attribute token.



6
7
8
# File 'lib/bitfex/api.rb', line 6

def token
  @token
end

Instance Method Details

#balancesHash<String, Fixnum>

Return account balances

Returns:

  • (Hash<String, Fixnum>)

    balances

Raises:



27
28
29
30
31
32
# File 'lib/bitfex/api.rb', line 27

def balances
  response = request_get('/api/v1/user')
  raise ApiError.new(response['errors'].to_json) unless response['success']

  response['balances']
end

#create_order(operation, pair, amount, price) ⇒ TrueClass

Create new order

Parameters:

  • operation (String)

    operation - one of (buy/sell)

  • pair (String)

    pair (for example: BTC_RUR)

  • amount (Decimal)

    amount in normal units (roubles or bitcoins)

  • price (Decimal)

    price in normal units (roubles or bitcoins)

Returns:

  • (TrueClass)

Raises:



67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/bitfex/api.rb', line 67

def create_order(operation, pair, amount, price)
  response = request_post(
    '/api/v1/orders',
    order: {
      pair: pair,
      operation: operation,
      amount: amount,
      price: price
    }
  )
  raise ApiError.new(response['error'].to_json) unless response['success']

  true
end

#delete_order(id) ⇒ TrueClass

Delete order by id

Parameters:

  • id (Fixnum)

    order ID

Returns:

  • (TrueClass)

Raises:



54
55
56
57
58
# File 'lib/bitfex/api.rb', line 54

def delete_order(id)
  response = request_delete("/api/v1/orders/#{id}")
  raise ApiError.new(response['errors'].to_json) unless response['success']
  true
end

#my_ordersArray<Hash>

Return list of my orders

Returns:

  • (Array<Hash>)

    list of my orders (id, pair, amount, price, operation, completed, updated)

Raises:



44
45
46
47
48
# File 'lib/bitfex/api.rb', line 44

def my_orders
  response = request_get('/api/v1/orders/my')
  raise ApiError.new(response['errors'].to_json) unless response['success']
  response['orders']
end

#orders_list(pair) ⇒ Array<Hash>

Return list of orders for all pairs

Returns:

  • (Array<Hash>)

    list of orders (id, pair, amount, price, operation, completed, updated)

Raises:



36
37
38
39
40
# File 'lib/bitfex/api.rb', line 36

def orders_list(pair)
  response = request_get("/api/v1/orders?pair=#{pair}")
  raise ApiError.new(response['errors'].to_json) unless response['success']
  response['orders']
end

#server_urlString

Returns server url.

Returns:

  • (String)

    server url



16
17
18
# File 'lib/bitfex/api.rb', line 16

def server_url
  @_server_url
end

#server_url=(url) ⇒ Object

Parameters:

  • url (String)

    set URL of the server



21
22
23
# File 'lib/bitfex/api.rb', line 21

def server_url=(url)
  @_server_url = url
end