Class: Trader::GameBackend::CancelOrder

Inherits:
Object
  • Object
show all
Defined in:
lib/trade-o-matic/adapters/game_backend/cancel_order.rb

Instance Method Summary collapse

Instance Method Details

#performObject

Raises:

  • (ArgumentError)


4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/trade-o-matic/adapters/game_backend/cancel_order.rb', line 4

def perform
  raise ArgumentError, 'order belong to another account' if order['account'] != 
  raise ArgumentError, 'order already closed' if order['status'] != 'open'

  market['open'].delete order
  market['closed'] << order
  order['status'] = 'canceled'

  base_balance = state.balance_for , market['base']
  quote_balance = state.balance_for , market['quote']

  if bid?
    quote = SFM.quote order['volume'], order['limit']
    quote_balance['available'] += quote
    quote_balance['frozen'] -= quote
  else
    base_balance['available'] += order['volume']
    base_balance['frozen'] -= order['volume']
  end

  GameOrder.new order
end