-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinternal_api.py
More file actions
30 lines (26 loc) · 1.11 KB
/
Copy pathinternal_api.py
File metadata and controls
30 lines (26 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from exchange_api_bridge import ExchangeAPIBridge
class InternalAPI:
def __init__(self, credentials):
self.bridge = ExchangeAPIBridge(credentials)
def get_price(self, exchange, symbol):
ticker = self.bridge.fetch_price(exchange, symbol)
if 'error' in ticker:
return {'success': False, 'error': ticker['error']}
return {
'success': True,
'price': {
'bid': ticker.get('bid'),
'ask': ticker.get('ask'),
'last': ticker.get('last')
}
}
def get_balance(self, exchange):
balance = self.bridge.get_balance(exchange)
if 'error' in balance:
return {'success': False, 'error': balance['error']}
return {'success': True, 'balance': balance}
def make_order(self, exchange, symbol, order_type, side, amount, price=None):
order = self.bridge.create_order(exchange, symbol, order_type, side, amount, price)
if 'error' in order:
return {'success': False, 'error': order['error']}
return {'success': True, 'order': order}