Sha256: ead809e1391c98fa693f40dae2c064fea3b336f7c027bd92a6f8eac01e281f9d

Contents?: true

Size: 835 Bytes

Versions: 1

Compression:

Stored size: 835 Bytes

Contents

require_relative 'net'
require_relative 'mapper'
require 'bigdecimal/util'

module Bitstampede
  class Client
    attr_accessor :key
    attr_accessor :secret

    def initialize
    end

    def balance
      mapper.map_balance(net.post("balance"))
    end

    def orders
      mapper.map_orders(net.post("open_orders"))
    end

    def buy!(price, amount)
      trade!("buy", price, amount)
    end

    def sell!(price, amount)
      trade!("sell", price, amount)
    end

    def cancel(id)
      mapper.map_cancel(net.post("cancel_order", { id: id.to_s }))
    end

    private
    def net
      @net ||= Net.new(self)
    end

    def mapper
      @mapper ||= Mapper.new
    end

    def trade!(type, price, amount)
      mapper.map_order(net.post(type, { price: price.to_digits, amount: amount.to_digits }))
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bitstampede-0.0.1 lib/bitstampede/client.rb