module QueruBtce
Constants
- VERSION
Public Class Methods
credentials(key: '', secret: '')
click to toggle source
# File lib/queru_btce.rb, line 13 def self.credentials(key: '', secret: '') @api_key = key @api_secret = secret end
method_missing(m, *args)
click to toggle source
Calls superclass method
# File lib/queru_btce.rb, line 78 def self.method_missing(m, *args) if trade_api_methods.key? m trade_api trade_api_methods[m], *args elsif public_api_methods.key? m public_api public_api_methods[m], *args else super end end
nonce()
click to toggle source
# File lib/queru_btce.rb, line 49 def self.nonce new_nonce = Time.now.to_i while new_nonce <= @last_nonce sleep 1 new_nonce = Time.now.to_i end @last_nonce = new_nonce end
public_api(m, *pair)
click to toggle source
# File lib/queru_btce.rb, line 38 def self.public_api(m, *pair) if pair pair = pair.join('-') if pair.is_a? Array JSON.parse open("https://wex.nz/api/3/#{m}/#{pair}").read, object_class: OpenStruct else JSON.parse open("https://wex.nz/api/3/#{m}").read, object_class: OpenStruct end rescue OpenURI::HTTPError => e raise "BTC-e API down? #{e}" end
public_api_methods()
click to toggle source
# File lib/queru_btce.rb, line 69 def self.public_api_methods { info: 'info', ticker: 'ticker', depth: 'depth', trades: 'trades' } end
respond_to_missing?(m, _include_all = false)
click to toggle source
# File lib/queru_btce.rb, line 88 def self.respond_to_missing?(m, _include_all = false) return true if trade_api_methods.key?(m) or public_api_methods.key?(m) false end
trade_api(m, opts = {})
click to toggle source
# File lib/queru_btce.rb, line 18 def self.trade_api(m, opts = {}) opts[:method] = m opts[:nonce] = nonce payload = opts.collect do |key, val| "#{key}=#{CGI::escape(val.to_s)}" end.join('&') signature = OpenSSL::HMAC.hexdigest('sha512', @api_secret, payload) Net::HTTP.start('wex.nz', 443, use_ssl: true) do |http| headers = { 'Sign': signature, 'Key': @api_key } response = http.post('/tapi', payload, headers).body JSON.parse response, object_class: OpenStruct end rescue Net::HTTPUnauthorized raise 'Bad API credentials' rescue Net::HTTPError raise 'HTTP Error: API down?' end
trade_api_methods()
click to toggle source
# File lib/queru_btce.rb, line 58 def self.trade_api_methods { get_info: 'getInfo', trade: 'Trade', cancel_order: 'CancelOrder', active_orders: 'ActiveOrders', trans_history: 'TransHistory', trade_history: 'TradeHistory' } end