38 lines
916 B
Ruby
38 lines
916 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Bench
|
|
module Injectors
|
|
class Bitfinex < Base
|
|
|
|
def initialize(config)
|
|
super
|
|
if config[:data_load_path].present?
|
|
@data = YAML.load_file(Rails.root.join(config[:data_load_path]))
|
|
@index = 0
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def construct_order
|
|
@index = 0 if @data[@index].blank?
|
|
order_data = @data[@index]
|
|
price = order_data[1]
|
|
amount = order_data[2]
|
|
market = @markets.sample
|
|
type = amount > 0 ? 'OrderBid' : 'OrderAsk'
|
|
@index += 1
|
|
{ type: type,
|
|
state: Order::WAIT,
|
|
member: @members.sample,
|
|
market: market,
|
|
ask: market.base_unit,
|
|
bid: market.quote_unit,
|
|
ord_type: :limit,
|
|
price: price,
|
|
volume: amount.abs }
|
|
end
|
|
end
|
|
end
|
|
end
|