|
|
|
|
@ -6,7 +6,8 @@ from .api import ApiProvider, ApiError |
|
|
|
|
from .market import Exchange |
|
|
|
|
from .structs import ( |
|
|
|
|
Pair, OrderSide, OrderStatus, OrderType, Order, Coin, Balance, |
|
|
|
|
OrderExecType, OrderForceType, PrivateTrade |
|
|
|
|
OrderExecType, OrderForceType, PrivateTrade, Interest, Withdrawal, |
|
|
|
|
Deposit |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -36,13 +37,77 @@ class Account: |
|
|
|
|
for bal in data['accounts'] |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
async def get_deposit_history( |
|
|
|
|
self, coin: Coin, start_ts: int, end_ts: int, status: int, page: int = 0, page_size: int = 20)\ |
|
|
|
|
-> List[Deposit]: |
|
|
|
|
"""Return all history withdrawals.""" |
|
|
|
|
params = {'page_size': page_size, 'page': page} |
|
|
|
|
if coin: |
|
|
|
|
params['currency'] = coin.name |
|
|
|
|
if start_ts: |
|
|
|
|
params['start_ts'] = start_ts |
|
|
|
|
if end_ts: |
|
|
|
|
params['end_ts'] = end_ts |
|
|
|
|
if status: |
|
|
|
|
params['status'] = str(status) |
|
|
|
|
|
|
|
|
|
data = await self.api.post( |
|
|
|
|
'private/get-deposit-history', {'params': params}) or {} |
|
|
|
|
return [ |
|
|
|
|
Deposit.create_from_api(deposit) |
|
|
|
|
for deposit in data.get('deposit_list') or [] |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
async def get_withdrawal_history( |
|
|
|
|
self, coin: Coin, start_ts: int, end_ts: int, status: int, page: int = 0, page_size: int = 20)\ |
|
|
|
|
-> List[Withdrawal]: |
|
|
|
|
"""Return all history withdrawals.""" |
|
|
|
|
params = {'page_size': page_size, 'page': page} |
|
|
|
|
if coin: |
|
|
|
|
params['currency'] = coin.name |
|
|
|
|
if start_ts: |
|
|
|
|
params['start_ts'] = start_ts |
|
|
|
|
if end_ts: |
|
|
|
|
params['end_ts'] = end_ts |
|
|
|
|
if status: |
|
|
|
|
params['status'] = str(status) |
|
|
|
|
|
|
|
|
|
data = await self.api.post( |
|
|
|
|
'private/get-withdrawal-history', {'params': params}) or {} |
|
|
|
|
return [ |
|
|
|
|
Withdrawal.create_from_api(withdrawal) |
|
|
|
|
for withdrawal in data.get('withdrawal_list') or [] |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
async def get_interest_history( |
|
|
|
|
self, coin: Coin, start_ts: int, end_ts: int, page: int = 0, page_size: int = 20) -> List[Interest]: |
|
|
|
|
"""Return all history interest.""" |
|
|
|
|
params = {'page_size': page_size, 'page': page} |
|
|
|
|
if coin: |
|
|
|
|
params['currency'] = coin.name |
|
|
|
|
if start_ts: |
|
|
|
|
params['start_ts'] = start_ts |
|
|
|
|
if end_ts: |
|
|
|
|
params['end_ts'] = end_ts |
|
|
|
|
|
|
|
|
|
data = await self.api.post( |
|
|
|
|
'private/margin/get-order-history', {'params': params}) or {} |
|
|
|
|
return [ |
|
|
|
|
Interest.create_from_api(interest) |
|
|
|
|
for interest in data.get('list') or [] |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
async def get_orders_history( |
|
|
|
|
self, pair: Pair = None, page: int = 0, |
|
|
|
|
page_size: int = 200) -> List[Order]: |
|
|
|
|
self, pair: Pair = None, start_ts: int = None, end_ts: int = None, |
|
|
|
|
page: int = 0, page_size: int = 200) -> List[Order]: |
|
|
|
|
"""Return all history orders.""" |
|
|
|
|
params = {'page_size': page_size, 'page': page} |
|
|
|
|
if pair: |
|
|
|
|
params['instrument_name'] = pair.name |
|
|
|
|
if start_ts: |
|
|
|
|
params['start_ts'] = start_ts |
|
|
|
|
if end_ts: |
|
|
|
|
params['end_ts'] = end_ts |
|
|
|
|
data = await self.api.post( |
|
|
|
|
'private/get-order-history', {'params': params}) or {} |
|
|
|
|
return [ |
|
|
|
|
|