class RbtcArbitrage::Clients::BtceClient

Public Instance Methods

balance() click to toggle source
# File lib/rbtc_arbitrage/clients/btce_client.rb, line 10
def balance
  return @balance if @balance
  begin
    balances = interface.get_info["return"]["funds"]
    @balance = [balances["btc"], balances["usd"]]
  rescue NoMethodError => e
    raise SecurityError, "Invalid API key for BTC-e"
  end
end
exchange() click to toggle source
# File lib/rbtc_arbitrage/clients/btce_client.rb, line 6
def exchange
  :btce
end
interface() click to toggle source
# File lib/rbtc_arbitrage/clients/btce_client.rb, line 20
def interface
end
price(action) click to toggle source
# File lib/rbtc_arbitrage/clients/btce_client.rb, line 42
def price action
  return @ticker[action.to_s] if @ticker
  @ticker = Btce::Ticker.new("btc_usd").json["ticker"]
  @ticker[action.to_s]
end
trade(action) click to toggle source
# File lib/rbtc_arbitrage/clients/btce_client.rb, line 27
def trade action
  warning = "BTC-E does not support API bitcoin transfer. "
  warning << "If you really want to trade, you will have "
  warning << "to manually send bitcoin. Enter 'accept' to continue. \n> "
  @options[:logger].warn warning if @options[:verbose]
  return false unless gets.chomp == "accept"
  opts = {
    type: action,
    rate: price(action),
    amount: @options[:volume],
    pair: "btc_usd"
  }
  interface.trade opts
end
transfer(client) click to toggle source
# File lib/rbtc_arbitrage/clients/btce_client.rb, line 48
def transfer client
  if @options[:verbose]
    error = "BTC-E does not have a 'transfer' API.\n"
    error << "You must transfer bitcoin manually."
    @options[:logger].error error
  end
end
validate_env() click to toggle source
# File lib/rbtc_arbitrage/clients/btce_client.rb, line 23
def validate_env
  validate_keys :btce_key, :btce_secret, :btce_address
end