Class: Btce::Api

Inherits:
Object
  • Object
show all
Defined in:
lib/btce/api.rb,
lib/btce/defines/version.rb,
lib/btce/defines/settings.rb

Constant Summary collapse

VERSION =
'1.0.2'
HOST =
'btc-e.com'
PORT =
'443'
AGENT =
'Mozilla/4.0 (compatible; BTC-E Ruby API library; Xlab)'
API_URL =
'/tapi'
HMAC_SHA =
'sha512'

Instance Method Summary collapse

Constructor Details

#initialize(api_key, api_secret) ⇒ Api

Returns a new instance of Api.



25
26
27
# File 'lib/btce/api.rb', line 25

def initialize(api_key, api_secret)
  @bus = Btce::Bus.new(api_key, api_secret)
end

Instance Method Details

#balanceObject

UNOFFICIAL: getInfo -> funds



42
43
44
45
# File 'lib/btce/api.rb', line 42

def balance
  update() unless @info
  Types::Balance.new @info.return
end

#cancel_order(order_id) ⇒ Object

CancelOrder



138
139
140
141
142
143
144
145
146
147
# File 'lib/btce/api.rb', line 138

def cancel_order(order_id)
  options = {
      :order_id => order_id,
      :method => 'CancelOrder'
  }

  response = Types::Response.new(JSON.parse(@bus.request(options)))
  raise "server responded: #{response.error}" if response.success.zero?
  response.return['order_id']
end

#get_infoObject

getInfo



30
31
32
33
34
# File 'lib/btce/api.rb', line 30

def get_info
  response = Types::Response.new(JSON.parse(@bus.request({'method' => 'getInfo'})))
  raise "server responded: #{response.error}" if response.success.zero?
  response
end

#order_list(options = { :from => 0, :count => 1000, :from_id => 0, :end_id => nil, :order => :DESC, # ASC :since => 0, :end => nil, :pair => nil, :active => 1 # 0 }) ⇒ Object

OrderList Options are: from, count, from_id, end_id, order, since, end, pair, active



102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/btce/api.rb', line 102

def order_list(options = {
    :from => 0,
    :count => 1000,
    :from_id => 0,
    :end_id => nil,
    :order => :DESC, # ASC
    :since => 0,
    :end => nil,
    :pair => nil,
    :active => 1 # 0
})

  options[:method] = 'OrderList'
  response = Types::Response.new(JSON.parse(@bus.request(options)))
  raise "server responded: #{response.error}" if response.success.zero?
  response.return.map do |id, data|
    Types::Order.new(id, data)
  end
end

#rightsObject

UNOFFICIAL: getInfo -> rights



48
49
50
51
# File 'lib/btce/api.rb', line 48

def rights
  update() unless @info
  Types::Rights.new @info.return
end

#statsObject

UNOFFICIAL: getInfo -> other



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

def stats
  update() unless @info
  Types::Stats.new @info.return
end

#trade(pair, type, rate, amount) ⇒ Object

Trade Parameters are: pair, type, rate, amount



124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/btce/api.rb', line 124

def trade(pair, type, rate, amount)
  options = {
      :pair => pair,
      :type => type,
      :rate => rate,
      :amount => amount,
      :method => 'Trade'
  }
  response = Types::Response.new(JSON.parse(@bus.request(options)))
  raise "server responded: #{response.error}" if response.success.zero?
  Types::PlacedOrder.new(self, response.return)
end

#trade_history(options = { :from => 0, :count => 1000, :from_id => 0, :end_id => nil, :order => :DESC, # ASC :since => 0, :end => nil, :pair => nil }) ⇒ Object

TradeHistory Options are: from, count, from_id, end_id, order, since, end, pair



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/btce/api.rb', line 81

def trade_history(options = {
    :from => 0,
    :count => 1000,
    :from_id => 0,
    :end_id => nil,
    :order => :DESC, # ASC
    :since => 0,
    :end => nil,
    :pair => nil
})

  options[:method] = 'TradeHistory'
  response = Types::Response.new(JSON.parse(@bus.request(options)))
  raise "server responded: #{response.error}" if response.success.zero?
  response.return.map do |id, data|
    Types::Trade.new(id, data)
  end
end

#trans_history(options = { :from => 0, :count => 1000, :from_id => 0, :end_id => nil, :order => :DESC, # ASC :since => 0, :end => nil }) ⇒ Object

TransHistory Options are: from, count, from_id, end_id, order, since, end



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/btce/api.rb', line 61

def trans_history(options = {
    :from => 0,
    :count => 1000,
    :from_id => 0,
    :end_id => nil,
    :order => :DESC, # ASC
    :since => 0,
    :end => nil
})

  options[:method] = 'TransHistory'
  response = Types::Response.new(JSON.parse(@bus.request(options)))
  raise "server responded: #{response.error}" if response.success.zero?
  response.return.map do |id, data|
    Types::Transaction.new(id, data)
  end
end

#updateObject

UNOFFICIAL: updates ‘getInfo` cache



37
38
39
# File 'lib/btce/api.rb', line 37

def update
  @info = get_info()
end