diff --git a/tplus/client/clearingengine/admin.py b/tplus/client/clearingengine/admin.py index fadf755..f1224d5 100644 --- a/tplus/client/clearingengine/admin.py +++ b/tplus/client/clearingengine/admin.py @@ -8,6 +8,7 @@ from tplus.client.clearingengine.base import BaseClearingEngineClient from tplus.model.asset_identifier import AssetIdentifier +from tplus.model.interest_rates import InterestRates from tplus.model.types import UserPublicKey from tplus.utils.user import User @@ -227,3 +228,9 @@ async def set_trader_as_mm( "signature": sig, }, ) + + async def set_interest_rates(self, rates: list[InterestRates]): + await self._post( + "admin/interest/inject", + json_data={"request_id": 1, "rates": [r.model_dump(mode="json") for r in rates]}, + ) diff --git a/tplus/model/interest_rates.py b/tplus/model/interest_rates.py new file mode 100644 index 0000000..b9d5629 --- /dev/null +++ b/tplus/model/interest_rates.py @@ -0,0 +1,8 @@ +from pydantic import BaseModel + + +class InterestRates(BaseModel): + asset_identifier: str + funding_rate: int + utilisation_rate: int + quote_utilisation_rate: int diff --git a/tplus/model/user_inventory.py b/tplus/model/user_inventory.py index 3c7306e..294a445 100644 --- a/tplus/model/user_inventory.py +++ b/tplus/model/user_inventory.py @@ -1,3 +1,4 @@ +from decimal import Decimal from typing import Literal from pydantic import BaseModel @@ -6,14 +7,14 @@ class Spot(BaseModel): """Represents a single spot account with multiple assets""" - spot_account_balance: dict[str, int] + spot_account_balance: dict[str, Decimal] class Balance(BaseModel): """Represents either credits or liabilities for given asset""" - credits: int - liabilities: int + credits: Decimal + liabilities: Decimal class MarginPosition(BaseModel):