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'] != 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 account, market['base']
quote_balance = state.balance_for account, 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
|