Added support for interest history

api-breakage
financelurker 5 years ago
parent fc02b2465e
commit bc65340fe7
  1. 20
      src/cryptocom/exchange/private.py
  2. 19
      src/cryptocom/exchange/structs.py

@ -6,7 +6,7 @@ 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
)
@ -36,6 +36,24 @@ class Account:
for bal in data['accounts']
}
async def get_interest_history(
self, currency: str, 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 currency:
params['currency'] = currency
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]:

@ -339,3 +339,22 @@ class Order:
trigger_price=trigger_price,
trades=trades
)
@dataclass
class Interest:
loan_id: int
currency: str
interest: float
stake_amount: float
interest_rate: float
@staticmethod
def create_from_api(cls, data: Dict) -> 'Interest':
return cls(
loan_id=int(data['loan_id']),
currency=data['currency'],
interest=float(data['interest']),
stake_amount=float(data['stake_amount']),
interest_rate=float(data['interest_rate'])
)

Loading…
Cancel
Save