diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 5a01738..2f225cd 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -65,6 +65,7 @@ docs/PositionFundings.md
docs/PriceLevel.md
docs/PublicPool.md
docs/PublicPoolInfo.md
+docs/PublicPoolMetadata.md
docs/PublicPoolShare.md
docs/PublicPools.md
docs/ReferralApi.md
@@ -72,6 +73,7 @@ docs/ReferralPointEntry.md
docs/ReferralPoints.md
docs/ReqExportData.md
docs/ReqGetAccount.md
+docs/ReqGetAccountActiveOrders.md
docs/ReqGetAccountApiKeys.md
docs/ReqGetAccountByL1Address.md
docs/ReqGetAccountInactiveOrders.md
@@ -96,6 +98,7 @@ docs/ReqGetOrderBookOrders.md
docs/ReqGetOrderBooks.md
docs/ReqGetPositionFunding.md
docs/ReqGetPublicPools.md
+docs/ReqGetPublicPoolsMetadata.md
docs/ReqGetRangeWithCursor.md
docs/ReqGetRangeWithIndex.md
docs/ReqGetRangeWithIndexSortable.md
@@ -108,6 +111,7 @@ docs/ReqGetTx.md
docs/ReqGetWithdrawHistory.md
docs/RespChangeAccountTier.md
docs/RespGetFastBridgeInfo.md
+docs/RespPublicPoolsMetadata.md
docs/RespSendTx.md
docs/RespSendTxBatch.md
docs/RespWithdrawalDelay.md
@@ -115,6 +119,7 @@ docs/ResultCode.md
docs/RiskInfo.md
docs/RiskParameters.md
docs/RootApi.md
+docs/SharePrice.md
docs/SimpleOrder.md
docs/Status.md
docs/SubAccounts.md
@@ -211,12 +216,14 @@ lighter/models/position_fundings.py
lighter/models/price_level.py
lighter/models/public_pool.py
lighter/models/public_pool_info.py
+lighter/models/public_pool_metadata.py
lighter/models/public_pool_share.py
lighter/models/public_pools.py
lighter/models/referral_point_entry.py
lighter/models/referral_points.py
lighter/models/req_export_data.py
lighter/models/req_get_account.py
+lighter/models/req_get_account_active_orders.py
lighter/models/req_get_account_api_keys.py
lighter/models/req_get_account_by_l1_address.py
lighter/models/req_get_account_inactive_orders.py
@@ -241,6 +248,7 @@ lighter/models/req_get_order_book_orders.py
lighter/models/req_get_order_books.py
lighter/models/req_get_position_funding.py
lighter/models/req_get_public_pools.py
+lighter/models/req_get_public_pools_metadata.py
lighter/models/req_get_range_with_cursor.py
lighter/models/req_get_range_with_index.py
lighter/models/req_get_range_with_index_sortable.py
@@ -253,12 +261,14 @@ lighter/models/req_get_tx.py
lighter/models/req_get_withdraw_history.py
lighter/models/resp_change_account_tier.py
lighter/models/resp_get_fast_bridge_info.py
+lighter/models/resp_public_pools_metadata.py
lighter/models/resp_send_tx.py
lighter/models/resp_send_tx_batch.py
lighter/models/resp_withdrawal_delay.py
lighter/models/result_code.py
lighter/models/risk_info.py
lighter/models/risk_parameters.py
+lighter/models/share_price.py
lighter/models/simple_order.py
lighter/models/status.py
lighter/models/sub_accounts.py
diff --git a/docs/AccountApi.md b/docs/AccountApi.md
index 24bcb76..9e90478 100644
--- a/docs/AccountApi.md
+++ b/docs/AccountApi.md
@@ -15,6 +15,7 @@ Method | HTTP request | Description
[**pnl**](AccountApi.md#pnl) | **GET** /api/v1/pnl | pnl
[**position_funding**](AccountApi.md#position_funding) | **GET** /api/v1/positionFunding | positionFunding
[**public_pools**](AccountApi.md#public_pools) | **GET** /api/v1/publicPools | publicPools
+[**public_pools_metadata**](AccountApi.md#public_pools_metadata) | **GET** /api/v1/publicPoolsMetadata | publicPoolsMetadata
# **account**
@@ -848,3 +849,82 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **public_pools_metadata**
+> RespPublicPoolsMetadata public_pools_metadata(index, limit, authorization=authorization, auth=auth, filter=filter, account_index=account_index)
+
+publicPoolsMetadata
+
+Get public pools metadata
+
+### Example
+
+
+```python
+import lighter
+from lighter.models.resp_public_pools_metadata import RespPublicPoolsMetadata
+from lighter.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://mainnet.zklighter.elliot.ai
+# See configuration.py for a list of all supported configuration parameters.
+configuration = lighter.Configuration(
+ host = "https://mainnet.zklighter.elliot.ai"
+)
+
+
+# Enter a context with an instance of the API client
+async with lighter.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = lighter.AccountApi(api_client)
+ index = 56 # int |
+ limit = 56 # int |
+ authorization = 'authorization_example' # str | (optional)
+ auth = 'auth_example' # str | (optional)
+ filter = 'filter_example' # str | (optional)
+ account_index = 56 # int | (optional)
+
+ try:
+ # publicPoolsMetadata
+ api_response = await api_instance.public_pools_metadata(index, limit, authorization=authorization, auth=auth, filter=filter, account_index=account_index)
+ print("The response of AccountApi->public_pools_metadata:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AccountApi->public_pools_metadata: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **index** | **int**| |
+ **limit** | **int**| |
+ **authorization** | **str**| | [optional]
+ **auth** | **str**| | [optional]
+ **filter** | **str**| | [optional]
+ **account_index** | **int**| | [optional]
+
+### Return type
+
+[**RespPublicPoolsMetadata**](RespPublicPoolsMetadata.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | A successful response. | - |
+**400** | Bad request | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/docs/AccountPosition.md b/docs/AccountPosition.md
index c75cece..93f2825 100644
--- a/docs/AccountPosition.md
+++ b/docs/AccountPosition.md
@@ -17,6 +17,7 @@ Name | Type | Description | Notes
**position_value** | **str** | |
**unrealized_pnl** | **str** | |
**realized_pnl** | **str** | |
+**liquidation_price** | **str** | |
**total_funding_paid_out** | **str** | | [optional]
**margin_mode** | **int** | |
**allocated_margin** | **str** | |
diff --git a/docs/OrderApi.md b/docs/OrderApi.md
index c7386cc..2b59510 100644
--- a/docs/OrderApi.md
+++ b/docs/OrderApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *https://mainnet.zklighter.elliot.ai*
Method | HTTP request | Description
------------- | ------------- | -------------
+[**account_active_orders**](OrderApi.md#account_active_orders) | **GET** /api/v1/accountActiveOrders | accountActiveOrders
[**account_inactive_orders**](OrderApi.md#account_inactive_orders) | **GET** /api/v1/accountInactiveOrders | accountInactiveOrders
[**exchange_stats**](OrderApi.md#exchange_stats) | **GET** /api/v1/exchangeStats | exchangeStats
[**export**](OrderApi.md#export) | **GET** /api/v1/export | export
@@ -14,6 +15,81 @@ Method | HTTP request | Description
[**trades**](OrderApi.md#trades) | **GET** /api/v1/trades | trades
+# **account_active_orders**
+> Orders account_active_orders(account_index, market_id, authorization=authorization, auth=auth)
+
+accountActiveOrders
+
+Get account active orders. `auth` can be generated using the SDK.
+
+### Example
+
+
+```python
+import lighter
+from lighter.models.orders import Orders
+from lighter.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://mainnet.zklighter.elliot.ai
+# See configuration.py for a list of all supported configuration parameters.
+configuration = lighter.Configuration(
+ host = "https://mainnet.zklighter.elliot.ai"
+)
+
+
+# Enter a context with an instance of the API client
+async with lighter.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = lighter.OrderApi(api_client)
+ account_index = 56 # int |
+ market_id = 56 # int |
+ authorization = 'authorization_example' # str | make required after integ is done (optional)
+ auth = 'auth_example' # str | made optional to support header auth clients (optional)
+
+ try:
+ # accountActiveOrders
+ api_response = await api_instance.account_active_orders(account_index, market_id, authorization=authorization, auth=auth)
+ print("The response of OrderApi->account_active_orders:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling OrderApi->account_active_orders: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **account_index** | **int**| |
+ **market_id** | **int**| |
+ **authorization** | **str**| make required after integ is done | [optional]
+ **auth** | **str**| made optional to support header auth clients | [optional]
+
+### Return type
+
+[**Orders**](Orders.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | A successful response. | - |
+**400** | Bad request | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **account_inactive_orders**
> Orders account_inactive_orders(account_index, limit, authorization=authorization, auth=auth, market_id=market_id, ask_filter=ask_filter, between_timestamps=between_timestamps, cursor=cursor)
diff --git a/docs/PublicPoolInfo.md b/docs/PublicPoolInfo.md
index 1d8cc8f..d3aac46 100644
--- a/docs/PublicPoolInfo.md
+++ b/docs/PublicPoolInfo.md
@@ -10,11 +10,9 @@ Name | Type | Description | Notes
**min_operator_share_rate** | **str** | |
**total_shares** | **int** | |
**operator_shares** | **int** | |
-**share_price_1d** | **float** | |
-**share_price_7d** | **float** | |
-**share_price_30d** | **float** | |
**annual_percentage_yield** | **float** | |
**daily_returns** | [**List[DailyReturn]**](DailyReturn.md) | |
+**share_prices** | [**List[SharePrice]**](SharePrice.md) | |
## Example
diff --git a/docs/PublicPoolMetadata.md b/docs/PublicPoolMetadata.md
new file mode 100644
index 0000000..f3769c2
--- /dev/null
+++ b/docs/PublicPoolMetadata.md
@@ -0,0 +1,40 @@
+# PublicPoolMetadata
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**code** | **int** | |
+**message** | **str** | | [optional]
+**account_index** | **int** | |
+**account_type** | **int** | |
+**name** | **str** | |
+**l1_address** | **str** | |
+**annual_percentage_yield** | **float** | |
+**status** | **int** | |
+**operator_fee** | **str** | |
+**total_asset_value** | **str** | |
+**total_shares** | **int** | |
+**account_share** | [**PublicPoolShare**](PublicPoolShare.md) | | [optional]
+
+## Example
+
+```python
+from lighter.models.public_pool_metadata import PublicPoolMetadata
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PublicPoolMetadata from a JSON string
+public_pool_metadata_instance = PublicPoolMetadata.from_json(json)
+# print the JSON string representation of the object
+print(PublicPoolMetadata.to_json())
+
+# convert the object into a dict
+public_pool_metadata_dict = public_pool_metadata_instance.to_dict()
+# create an instance of PublicPoolMetadata from a dict
+public_pool_metadata_from_dict = PublicPoolMetadata.from_dict(public_pool_metadata_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ReqGetAccountActiveOrders.md b/docs/ReqGetAccountActiveOrders.md
new file mode 100644
index 0000000..d596417
--- /dev/null
+++ b/docs/ReqGetAccountActiveOrders.md
@@ -0,0 +1,31 @@
+# ReqGetAccountActiveOrders
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_index** | **int** | |
+**market_id** | **int** | |
+**auth** | **str** | made optional to support header auth clients | [optional]
+
+## Example
+
+```python
+from lighter.models.req_get_account_active_orders import ReqGetAccountActiveOrders
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ReqGetAccountActiveOrders from a JSON string
+req_get_account_active_orders_instance = ReqGetAccountActiveOrders.from_json(json)
+# print the JSON string representation of the object
+print(ReqGetAccountActiveOrders.to_json())
+
+# convert the object into a dict
+req_get_account_active_orders_dict = req_get_account_active_orders_instance.to_dict()
+# create an instance of ReqGetAccountActiveOrders from a dict
+req_get_account_active_orders_from_dict = ReqGetAccountActiveOrders.from_dict(req_get_account_active_orders_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ReqGetPublicPoolsMetadata.md b/docs/ReqGetPublicPoolsMetadata.md
new file mode 100644
index 0000000..e62dbf5
--- /dev/null
+++ b/docs/ReqGetPublicPoolsMetadata.md
@@ -0,0 +1,33 @@
+# ReqGetPublicPoolsMetadata
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**auth** | **str** | | [optional]
+**filter** | **str** | | [optional]
+**index** | **int** | |
+**limit** | **int** | |
+**account_index** | **int** | | [optional]
+
+## Example
+
+```python
+from lighter.models.req_get_public_pools_metadata import ReqGetPublicPoolsMetadata
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ReqGetPublicPoolsMetadata from a JSON string
+req_get_public_pools_metadata_instance = ReqGetPublicPoolsMetadata.from_json(json)
+# print the JSON string representation of the object
+print(ReqGetPublicPoolsMetadata.to_json())
+
+# convert the object into a dict
+req_get_public_pools_metadata_dict = req_get_public_pools_metadata_instance.to_dict()
+# create an instance of ReqGetPublicPoolsMetadata from a dict
+req_get_public_pools_metadata_from_dict = ReqGetPublicPoolsMetadata.from_dict(req_get_public_pools_metadata_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/RespPublicPoolsMetadata.md b/docs/RespPublicPoolsMetadata.md
new file mode 100644
index 0000000..63b6d07
--- /dev/null
+++ b/docs/RespPublicPoolsMetadata.md
@@ -0,0 +1,31 @@
+# RespPublicPoolsMetadata
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**code** | **int** | |
+**message** | **str** | | [optional]
+**public_pools** | [**List[PublicPoolMetadata]**](PublicPoolMetadata.md) | |
+
+## Example
+
+```python
+from lighter.models.resp_public_pools_metadata import RespPublicPoolsMetadata
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RespPublicPoolsMetadata from a JSON string
+resp_public_pools_metadata_instance = RespPublicPoolsMetadata.from_json(json)
+# print the JSON string representation of the object
+print(RespPublicPoolsMetadata.to_json())
+
+# convert the object into a dict
+resp_public_pools_metadata_dict = resp_public_pools_metadata_instance.to_dict()
+# create an instance of RespPublicPoolsMetadata from a dict
+resp_public_pools_metadata_from_dict = RespPublicPoolsMetadata.from_dict(resp_public_pools_metadata_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/SharePrice.md b/docs/SharePrice.md
new file mode 100644
index 0000000..a23c65c
--- /dev/null
+++ b/docs/SharePrice.md
@@ -0,0 +1,30 @@
+# SharePrice
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**timestamp** | **int** | |
+**share_price** | **float** | |
+
+## Example
+
+```python
+from lighter.models.share_price import SharePrice
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SharePrice from a JSON string
+share_price_instance = SharePrice.from_json(json)
+# print the JSON string representation of the object
+print(SharePrice.to_json())
+
+# convert the object into a dict
+share_price_dict = share_price_instance.to_dict()
+# create an instance of SharePrice from a dict
+share_price_from_dict = SharePrice.from_dict(share_price_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/lighter/__init__.py b/lighter/__init__.py
index a6a804a..a0af3c2 100644
--- a/lighter/__init__.py
+++ b/lighter/__init__.py
@@ -100,12 +100,14 @@
from lighter.models.price_level import PriceLevel
from lighter.models.public_pool import PublicPool
from lighter.models.public_pool_info import PublicPoolInfo
+from lighter.models.public_pool_metadata import PublicPoolMetadata
from lighter.models.public_pool_share import PublicPoolShare
from lighter.models.public_pools import PublicPools
from lighter.models.referral_point_entry import ReferralPointEntry
from lighter.models.referral_points import ReferralPoints
from lighter.models.req_export_data import ReqExportData
from lighter.models.req_get_account import ReqGetAccount
+from lighter.models.req_get_account_active_orders import ReqGetAccountActiveOrders
from lighter.models.req_get_account_api_keys import ReqGetAccountApiKeys
from lighter.models.req_get_account_by_l1_address import ReqGetAccountByL1Address
from lighter.models.req_get_account_inactive_orders import ReqGetAccountInactiveOrders
@@ -130,6 +132,7 @@
from lighter.models.req_get_order_books import ReqGetOrderBooks
from lighter.models.req_get_position_funding import ReqGetPositionFunding
from lighter.models.req_get_public_pools import ReqGetPublicPools
+from lighter.models.req_get_public_pools_metadata import ReqGetPublicPoolsMetadata
from lighter.models.req_get_range_with_cursor import ReqGetRangeWithCursor
from lighter.models.req_get_range_with_index import ReqGetRangeWithIndex
from lighter.models.req_get_range_with_index_sortable import ReqGetRangeWithIndexSortable
@@ -142,12 +145,14 @@
from lighter.models.req_get_withdraw_history import ReqGetWithdrawHistory
from lighter.models.resp_change_account_tier import RespChangeAccountTier
from lighter.models.resp_get_fast_bridge_info import RespGetFastBridgeInfo
+from lighter.models.resp_public_pools_metadata import RespPublicPoolsMetadata
from lighter.models.resp_send_tx import RespSendTx
from lighter.models.resp_send_tx_batch import RespSendTxBatch
from lighter.models.resp_withdrawal_delay import RespWithdrawalDelay
from lighter.models.result_code import ResultCode
from lighter.models.risk_info import RiskInfo
from lighter.models.risk_parameters import RiskParameters
+from lighter.models.share_price import SharePrice
from lighter.models.simple_order import SimpleOrder
from lighter.models.status import Status
from lighter.models.sub_accounts import SubAccounts
diff --git a/lighter/api/account_api.py b/lighter/api/account_api.py
index aa7263c..c92f6dc 100644
--- a/lighter/api/account_api.py
+++ b/lighter/api/account_api.py
@@ -29,6 +29,7 @@
from lighter.models.position_fundings import PositionFundings
from lighter.models.public_pools import PublicPools
from lighter.models.resp_change_account_tier import RespChangeAccountTier
+from lighter.models.resp_public_pools_metadata import RespPublicPoolsMetadata
from lighter.models.sub_accounts import SubAccounts
from lighter.api_client import ApiClient, RequestSerialized
@@ -3543,3 +3544,349 @@ def _public_pools_serialize(
)
+
+
+ @validate_call
+ async def public_pools_metadata(
+ self,
+ index: StrictInt,
+ limit: Annotated[int, Field(le=100, strict=True, ge=1)],
+ authorization: Optional[StrictStr] = None,
+ auth: Optional[StrictStr] = None,
+ filter: Optional[StrictStr] = None,
+ account_index: Optional[StrictInt] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RespPublicPoolsMetadata:
+ """publicPoolsMetadata
+
+ Get public pools metadata
+
+ :param index: (required)
+ :type index: int
+ :param limit: (required)
+ :type limit: int
+ :param authorization:
+ :type authorization: str
+ :param auth:
+ :type auth: str
+ :param filter:
+ :type filter: str
+ :param account_index:
+ :type account_index: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._public_pools_metadata_serialize(
+ index=index,
+ limit=limit,
+ authorization=authorization,
+ auth=auth,
+ filter=filter,
+ account_index=account_index,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "RespPublicPoolsMetadata",
+ '400': "ResultCode",
+ }
+ response_data = await self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ await response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ async def public_pools_metadata_with_http_info(
+ self,
+ index: StrictInt,
+ limit: Annotated[int, Field(le=100, strict=True, ge=1)],
+ authorization: Optional[StrictStr] = None,
+ auth: Optional[StrictStr] = None,
+ filter: Optional[StrictStr] = None,
+ account_index: Optional[StrictInt] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[RespPublicPoolsMetadata]:
+ """publicPoolsMetadata
+
+ Get public pools metadata
+
+ :param index: (required)
+ :type index: int
+ :param limit: (required)
+ :type limit: int
+ :param authorization:
+ :type authorization: str
+ :param auth:
+ :type auth: str
+ :param filter:
+ :type filter: str
+ :param account_index:
+ :type account_index: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._public_pools_metadata_serialize(
+ index=index,
+ limit=limit,
+ authorization=authorization,
+ auth=auth,
+ filter=filter,
+ account_index=account_index,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "RespPublicPoolsMetadata",
+ '400': "ResultCode",
+ }
+ response_data = await self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ await response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ async def public_pools_metadata_without_preload_content(
+ self,
+ index: StrictInt,
+ limit: Annotated[int, Field(le=100, strict=True, ge=1)],
+ authorization: Optional[StrictStr] = None,
+ auth: Optional[StrictStr] = None,
+ filter: Optional[StrictStr] = None,
+ account_index: Optional[StrictInt] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """publicPoolsMetadata
+
+ Get public pools metadata
+
+ :param index: (required)
+ :type index: int
+ :param limit: (required)
+ :type limit: int
+ :param authorization:
+ :type authorization: str
+ :param auth:
+ :type auth: str
+ :param filter:
+ :type filter: str
+ :param account_index:
+ :type account_index: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._public_pools_metadata_serialize(
+ index=index,
+ limit=limit,
+ authorization=authorization,
+ auth=auth,
+ filter=filter,
+ account_index=account_index,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "RespPublicPoolsMetadata",
+ '400': "ResultCode",
+ }
+ response_data = await self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _public_pools_metadata_serialize(
+ self,
+ index,
+ limit,
+ authorization,
+ auth,
+ filter,
+ account_index,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[str, Union[str, bytes]] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if auth is not None:
+
+ _query_params.append(('auth', auth))
+
+ if filter is not None:
+
+ _query_params.append(('filter', filter))
+
+ if index is not None:
+
+ _query_params.append(('index', index))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ if account_index is not None:
+
+ _query_params.append(('account_index', account_index))
+
+ # process the header parameters
+ if authorization is not None:
+ _header_params['authorization'] = authorization
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/publicPoolsMetadata',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/lighter/api/order_api.py b/lighter/api/order_api.py
index 396ea69..6b89d83 100644
--- a/lighter/api/order_api.py
+++ b/lighter/api/order_api.py
@@ -45,6 +45,318 @@ def __init__(self, api_client=None) -> None:
self.api_client = api_client
+ @validate_call
+ async def account_active_orders(
+ self,
+ account_index: StrictInt,
+ market_id: StrictInt,
+ authorization: Annotated[Optional[StrictStr], Field(description=" make required after integ is done")] = None,
+ auth: Annotated[Optional[StrictStr], Field(description=" made optional to support header auth clients")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Orders:
+ """accountActiveOrders
+
+ Get account active orders. `auth` can be generated using the SDK.
+
+ :param account_index: (required)
+ :type account_index: int
+ :param market_id: (required)
+ :type market_id: int
+ :param authorization: make required after integ is done
+ :type authorization: str
+ :param auth: made optional to support header auth clients
+ :type auth: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._account_active_orders_serialize(
+ account_index=account_index,
+ market_id=market_id,
+ authorization=authorization,
+ auth=auth,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Orders",
+ '400': "ResultCode",
+ }
+ response_data = await self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ await response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ async def account_active_orders_with_http_info(
+ self,
+ account_index: StrictInt,
+ market_id: StrictInt,
+ authorization: Annotated[Optional[StrictStr], Field(description=" make required after integ is done")] = None,
+ auth: Annotated[Optional[StrictStr], Field(description=" made optional to support header auth clients")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[Orders]:
+ """accountActiveOrders
+
+ Get account active orders. `auth` can be generated using the SDK.
+
+ :param account_index: (required)
+ :type account_index: int
+ :param market_id: (required)
+ :type market_id: int
+ :param authorization: make required after integ is done
+ :type authorization: str
+ :param auth: made optional to support header auth clients
+ :type auth: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._account_active_orders_serialize(
+ account_index=account_index,
+ market_id=market_id,
+ authorization=authorization,
+ auth=auth,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Orders",
+ '400': "ResultCode",
+ }
+ response_data = await self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ await response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ async def account_active_orders_without_preload_content(
+ self,
+ account_index: StrictInt,
+ market_id: StrictInt,
+ authorization: Annotated[Optional[StrictStr], Field(description=" make required after integ is done")] = None,
+ auth: Annotated[Optional[StrictStr], Field(description=" made optional to support header auth clients")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """accountActiveOrders
+
+ Get account active orders. `auth` can be generated using the SDK.
+
+ :param account_index: (required)
+ :type account_index: int
+ :param market_id: (required)
+ :type market_id: int
+ :param authorization: make required after integ is done
+ :type authorization: str
+ :param auth: made optional to support header auth clients
+ :type auth: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._account_active_orders_serialize(
+ account_index=account_index,
+ market_id=market_id,
+ authorization=authorization,
+ auth=auth,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Orders",
+ '400': "ResultCode",
+ }
+ response_data = await self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _account_active_orders_serialize(
+ self,
+ account_index,
+ market_id,
+ authorization,
+ auth,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[str, Union[str, bytes]] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if account_index is not None:
+
+ _query_params.append(('account_index', account_index))
+
+ if market_id is not None:
+
+ _query_params.append(('market_id', market_id))
+
+ if auth is not None:
+
+ _query_params.append(('auth', auth))
+
+ # process the header parameters
+ if authorization is not None:
+ _header_params['authorization'] = authorization
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/accountActiveOrders',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
async def account_inactive_orders(
self,
diff --git a/lighter/models/__init__.py b/lighter/models/__init__.py
index c75e64c..f5abd92 100644
--- a/lighter/models/__init__.py
+++ b/lighter/models/__init__.py
@@ -72,12 +72,14 @@
from lighter.models.price_level import PriceLevel
from lighter.models.public_pool import PublicPool
from lighter.models.public_pool_info import PublicPoolInfo
+from lighter.models.public_pool_metadata import PublicPoolMetadata
from lighter.models.public_pool_share import PublicPoolShare
from lighter.models.public_pools import PublicPools
from lighter.models.referral_point_entry import ReferralPointEntry
from lighter.models.referral_points import ReferralPoints
from lighter.models.req_export_data import ReqExportData
from lighter.models.req_get_account import ReqGetAccount
+from lighter.models.req_get_account_active_orders import ReqGetAccountActiveOrders
from lighter.models.req_get_account_api_keys import ReqGetAccountApiKeys
from lighter.models.req_get_account_by_l1_address import ReqGetAccountByL1Address
from lighter.models.req_get_account_inactive_orders import ReqGetAccountInactiveOrders
@@ -102,6 +104,7 @@
from lighter.models.req_get_order_books import ReqGetOrderBooks
from lighter.models.req_get_position_funding import ReqGetPositionFunding
from lighter.models.req_get_public_pools import ReqGetPublicPools
+from lighter.models.req_get_public_pools_metadata import ReqGetPublicPoolsMetadata
from lighter.models.req_get_range_with_cursor import ReqGetRangeWithCursor
from lighter.models.req_get_range_with_index import ReqGetRangeWithIndex
from lighter.models.req_get_range_with_index_sortable import ReqGetRangeWithIndexSortable
@@ -114,12 +117,14 @@
from lighter.models.req_get_withdraw_history import ReqGetWithdrawHistory
from lighter.models.resp_change_account_tier import RespChangeAccountTier
from lighter.models.resp_get_fast_bridge_info import RespGetFastBridgeInfo
+from lighter.models.resp_public_pools_metadata import RespPublicPoolsMetadata
from lighter.models.resp_send_tx import RespSendTx
from lighter.models.resp_send_tx_batch import RespSendTxBatch
from lighter.models.resp_withdrawal_delay import RespWithdrawalDelay
from lighter.models.result_code import ResultCode
from lighter.models.risk_info import RiskInfo
from lighter.models.risk_parameters import RiskParameters
+from lighter.models.share_price import SharePrice
from lighter.models.simple_order import SimpleOrder
from lighter.models.status import Status
from lighter.models.sub_accounts import SubAccounts
diff --git a/lighter/models/account_position.py b/lighter/models/account_position.py
index 655ba12..9942715 100644
--- a/lighter/models/account_position.py
+++ b/lighter/models/account_position.py
@@ -38,11 +38,12 @@ class AccountPosition(BaseModel):
position_value: StrictStr
unrealized_pnl: StrictStr
realized_pnl: StrictStr
+ liquidation_price: StrictStr
total_funding_paid_out: Optional[StrictStr] = None
margin_mode: StrictInt
allocated_margin: StrictStr
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["market_id", "symbol", "initial_margin_fraction", "open_order_count", "pending_order_count", "position_tied_order_count", "sign", "position", "avg_entry_price", "position_value", "unrealized_pnl", "realized_pnl", "total_funding_paid_out", "margin_mode", "allocated_margin"]
+ __properties: ClassVar[List[str]] = ["market_id", "symbol", "initial_margin_fraction", "open_order_count", "pending_order_count", "position_tied_order_count", "sign", "position", "avg_entry_price", "position_value", "unrealized_pnl", "realized_pnl", "liquidation_price", "total_funding_paid_out", "margin_mode", "allocated_margin"]
model_config = ConfigDict(
populate_by_name=True,
@@ -114,6 +115,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"position_value": obj.get("position_value"),
"unrealized_pnl": obj.get("unrealized_pnl"),
"realized_pnl": obj.get("realized_pnl"),
+ "liquidation_price": obj.get("liquidation_price"),
"total_funding_paid_out": obj.get("total_funding_paid_out"),
"margin_mode": obj.get("margin_mode"),
"allocated_margin": obj.get("allocated_margin")
diff --git a/lighter/models/public_pool_info.py b/lighter/models/public_pool_info.py
index 41a871d..7ee99d5 100644
--- a/lighter/models/public_pool_info.py
+++ b/lighter/models/public_pool_info.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Union
from lighter.models.daily_return import DailyReturn
+from lighter.models.share_price import SharePrice
from typing import Optional, Set
from typing_extensions import Self
@@ -32,13 +33,11 @@ class PublicPoolInfo(BaseModel):
min_operator_share_rate: StrictStr
total_shares: StrictInt
operator_shares: StrictInt
- share_price_1d: Optional[Union[StrictFloat, StrictInt]]
- share_price_7d: Optional[Union[StrictFloat, StrictInt]]
- share_price_30d: Optional[Union[StrictFloat, StrictInt]]
annual_percentage_yield: Union[StrictFloat, StrictInt]
daily_returns: List[DailyReturn]
+ share_prices: List[SharePrice]
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["status", "operator_fee", "min_operator_share_rate", "total_shares", "operator_shares", "share_price_1d", "share_price_7d", "share_price_30d", "annual_percentage_yield", "daily_returns"]
+ __properties: ClassVar[List[str]] = ["status", "operator_fee", "min_operator_share_rate", "total_shares", "operator_shares", "annual_percentage_yield", "daily_returns", "share_prices"]
model_config = ConfigDict(
populate_by_name=True,
@@ -88,6 +87,13 @@ def to_dict(self) -> Dict[str, Any]:
if _item:
_items.append(_item.to_dict())
_dict['daily_returns'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in share_prices (list)
+ _items = []
+ if self.share_prices:
+ for _item in self.share_prices:
+ if _item:
+ _items.append(_item.to_dict())
+ _dict['share_prices'] = _items
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
@@ -110,11 +116,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"min_operator_share_rate": obj.get("min_operator_share_rate"),
"total_shares": obj.get("total_shares"),
"operator_shares": obj.get("operator_shares"),
- "share_price_1d": obj.get("share_price_1d"),
- "share_price_7d": obj.get("share_price_7d"),
- "share_price_30d": obj.get("share_price_30d"),
"annual_percentage_yield": obj.get("annual_percentage_yield"),
- "daily_returns": [DailyReturn.from_dict(_item) for _item in obj["daily_returns"]] if obj.get("daily_returns") is not None else None
+ "daily_returns": [DailyReturn.from_dict(_item) for _item in obj["daily_returns"]] if obj.get("daily_returns") is not None else None,
+ "share_prices": [SharePrice.from_dict(_item) for _item in obj["share_prices"]] if obj.get("share_prices") is not None else None
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/lighter/models/public_pool_metadata.py b/lighter/models/public_pool_metadata.py
new file mode 100644
index 0000000..a0c5359
--- /dev/null
+++ b/lighter/models/public_pool_metadata.py
@@ -0,0 +1,126 @@
+# coding: utf-8
+
+"""
+
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document:
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from lighter.models.public_pool_share import PublicPoolShare
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PublicPoolMetadata(BaseModel):
+ """
+ PublicPoolMetadata
+ """ # noqa: E501
+ code: StrictInt
+ message: Optional[StrictStr] = None
+ account_index: StrictInt
+ account_type: StrictInt
+ name: StrictStr
+ l1_address: StrictStr
+ annual_percentage_yield: Union[StrictFloat, StrictInt]
+ status: StrictInt
+ operator_fee: StrictStr
+ total_asset_value: StrictStr
+ total_shares: StrictInt
+ account_share: Optional[PublicPoolShare] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["code", "message", "account_index", "account_type", "name", "l1_address", "annual_percentage_yield", "status", "operator_fee", "total_asset_value", "total_shares", "account_share"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of PublicPoolMetadata from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of account_share
+ if self.account_share:
+ _dict['account_share'] = self.account_share.to_dict()
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PublicPoolMetadata from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "account_index": obj.get("account_index"),
+ "account_type": obj.get("account_type"),
+ "name": obj.get("name"),
+ "l1_address": obj.get("l1_address"),
+ "annual_percentage_yield": obj.get("annual_percentage_yield"),
+ "status": obj.get("status"),
+ "operator_fee": obj.get("operator_fee"),
+ "total_asset_value": obj.get("total_asset_value"),
+ "total_shares": obj.get("total_shares"),
+ "account_share": PublicPoolShare.from_dict(obj["account_share"]) if obj.get("account_share") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/lighter/models/req_get_account_active_orders.py b/lighter/models/req_get_account_active_orders.py
new file mode 100644
index 0000000..bf3daff
--- /dev/null
+++ b/lighter/models/req_get_account_active_orders.py
@@ -0,0 +1,104 @@
+# coding: utf-8
+
+"""
+
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document:
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ReqGetAccountActiveOrders(BaseModel):
+ """
+ ReqGetAccountActiveOrders
+ """ # noqa: E501
+ account_index: StrictInt
+ market_id: StrictInt
+ auth: Optional[StrictStr] = Field(default=None, description=" made optional to support header auth clients")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["account_index", "market_id", "auth"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ReqGetAccountActiveOrders from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ReqGetAccountActiveOrders from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "account_index": obj.get("account_index"),
+ "market_id": obj.get("market_id"),
+ "auth": obj.get("auth")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/lighter/models/req_get_public_pools_metadata.py b/lighter/models/req_get_public_pools_metadata.py
new file mode 100644
index 0000000..ccb7397
--- /dev/null
+++ b/lighter/models/req_get_public_pools_metadata.py
@@ -0,0 +1,119 @@
+# coding: utf-8
+
+"""
+
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document:
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ReqGetPublicPoolsMetadata(BaseModel):
+ """
+ ReqGetPublicPoolsMetadata
+ """ # noqa: E501
+ auth: Optional[StrictStr] = None
+ filter: Optional[StrictStr] = None
+ index: StrictInt
+ limit: Annotated[int, Field(le=100, strict=True, ge=1)]
+ account_index: Optional[StrictInt] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["auth", "filter", "index", "limit", "account_index"]
+
+ @field_validator('filter')
+ def filter_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['all', 'user', 'protocol', 'account_index']):
+ raise ValueError("must be one of enum values ('all', 'user', 'protocol', 'account_index')")
+ return value
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ReqGetPublicPoolsMetadata from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ReqGetPublicPoolsMetadata from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "auth": obj.get("auth"),
+ "filter": obj.get("filter"),
+ "index": obj.get("index"),
+ "limit": obj.get("limit"),
+ "account_index": obj.get("account_index")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/lighter/models/resp_public_pools_metadata.py b/lighter/models/resp_public_pools_metadata.py
new file mode 100644
index 0000000..0719da8
--- /dev/null
+++ b/lighter/models/resp_public_pools_metadata.py
@@ -0,0 +1,112 @@
+# coding: utf-8
+
+"""
+
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document:
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from lighter.models.public_pool_metadata import PublicPoolMetadata
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RespPublicPoolsMetadata(BaseModel):
+ """
+ RespPublicPoolsMetadata
+ """ # noqa: E501
+ code: StrictInt
+ message: Optional[StrictStr] = None
+ public_pools: List[PublicPoolMetadata]
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["code", "message", "public_pools"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RespPublicPoolsMetadata from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in public_pools (list)
+ _items = []
+ if self.public_pools:
+ for _item in self.public_pools:
+ if _item:
+ _items.append(_item.to_dict())
+ _dict['public_pools'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RespPublicPoolsMetadata from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "public_pools": [PublicPoolMetadata.from_dict(_item) for _item in obj["public_pools"]] if obj.get("public_pools") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/lighter/models/share_price.py b/lighter/models/share_price.py
new file mode 100644
index 0000000..6f347b4
--- /dev/null
+++ b/lighter/models/share_price.py
@@ -0,0 +1,102 @@
+# coding: utf-8
+
+"""
+
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+ The version of the OpenAPI document:
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt
+from typing import Any, ClassVar, Dict, List, Union
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SharePrice(BaseModel):
+ """
+ SharePrice
+ """ # noqa: E501
+ timestamp: StrictInt
+ share_price: Union[StrictFloat, StrictInt]
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["timestamp", "share_price"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of SharePrice from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SharePrice from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "timestamp": obj.get("timestamp"),
+ "share_price": obj.get("share_price")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/openapi.json b/openapi.json
index 86d4b68..c38679a 100644
--- a/openapi.json
+++ b/openapi.json
@@ -84,6 +84,63 @@
"description": "Get account by account's index.
More details about account index: [Account Index](https://apidocs.lighter.xyz/docs/account-index)