Skip to content

Commit 10486d5

Browse files
feat(api): add TVL, missing balance variants
- Added TVL /markets/TVL endpoint - Added TVL field to /markets endpoint - Fixed missing balance variants in collateral state
1 parent 39b2df7 commit 10486d5

10 files changed

Lines changed: 257 additions & 4 deletions

File tree

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 49
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cryptech%2Fneptune-api-v2-99a21fdf9159c28a75eb60c0b7ad4710d01b0a98dd0474267a07e9914039fa83.yml
3-
openapi_spec_hash: f58f326c00c34bc45b28b09b9530566c
4-
config_hash: 27aff5f3f84397a9b3c2cb8a3c1d1e71
1+
configured_endpoints: 50
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cryptech%2Fneptune-api-v2-40d8045cda417d4c8a7a4a0d014345cdeb273fb5fdfa48eea08493bc5a5079ce.yml
3+
openapi_spec_hash: 71ca66dcf6e775aae3f49b42cd6ce2cc
4+
config_hash: f5ca3bc259f95069f0db4114d34e29ef

api.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,12 @@ from neptune_api_v2.types import (
6363
GlobalMarketConfig,
6464
MarketRate,
6565
MergedMarket,
66+
Tvl,
6667
MarketGetMergedResponse,
6768
MarketGetMergedByAssetResponse,
6869
MarketGetOverviewResponse,
6970
MarketGetParamsResponse,
71+
MarketGetTvlResponse,
7072
)
7173
```
7274

@@ -76,6 +78,7 @@ Methods:
7678
- <code title="get /api/v1/markets/merged/lookup">client.markets.<a href="./src/neptune_api_v2/resources/markets/markets.py">get_merged_by_asset</a>(\*\*<a href="src/neptune_api_v2/types/market_get_merged_by_asset_params.py">params</a>) -> <a href="./src/neptune_api_v2/types/market_get_merged_by_asset_response.py">MarketGetMergedByAssetResponse</a></code>
7779
- <code title="get /api/v1/markets">client.markets.<a href="./src/neptune_api_v2/resources/markets/markets.py">get_overview</a>(\*\*<a href="src/neptune_api_v2/types/market_get_overview_params.py">params</a>) -> <a href="./src/neptune_api_v2/types/market_get_overview_response.py">MarketGetOverviewResponse</a></code>
7880
- <code title="get /api/v1/markets/config">client.markets.<a href="./src/neptune_api_v2/resources/markets/markets.py">get_params</a>(\*\*<a href="src/neptune_api_v2/types/market_get_params_params.py">params</a>) -> <a href="./src/neptune_api_v2/types/market_get_params_response.py">MarketGetParamsResponse</a></code>
81+
- <code title="get /api/v1/markets/tvl">client.markets.<a href="./src/neptune_api_v2/resources/markets/markets.py">get_tvl</a>(\*\*<a href="src/neptune_api_v2/types/market_get_tvl_params.py">params</a>) -> <a href="./src/neptune_api_v2/types/market_get_tvl_response.py">MarketGetTvlResponse</a></code>
7982

8083
## Lend
8184

src/neptune_api_v2/resources/markets/markets.py

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
AsyncLendResourceWithStreamingResponse,
1414
)
1515
from ...types import (
16+
market_get_tvl_params,
1617
market_get_merged_params,
1718
market_get_params_params,
1819
market_get_overview_params,
@@ -37,6 +38,7 @@
3738
AsyncBorrowResourceWithStreamingResponse,
3839
)
3940
from ..._base_client import make_request_options
41+
from ...types.market_get_tvl_response import MarketGetTvlResponse
4042
from ...types.market_get_merged_response import MarketGetMergedResponse
4143
from ...types.market_get_params_response import MarketGetParamsResponse
4244
from ...types.market_get_overview_response import MarketGetOverviewResponse
@@ -252,6 +254,43 @@ def get_params(
252254
cast_to=MarketGetParamsResponse,
253255
)
254256

257+
def get_tvl(
258+
self,
259+
*,
260+
with_text: bool | Omit = omit,
261+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
262+
# The extra values given here take precedence over values defined on the client or passed to this method.
263+
extra_headers: Headers | None = None,
264+
extra_query: Query | None = None,
265+
extra_body: Body | None = None,
266+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
267+
) -> MarketGetTvlResponse:
268+
"""
269+
Get market TVL
270+
271+
Args:
272+
with_text: Include text variation fields
273+
274+
extra_headers: Send extra headers
275+
276+
extra_query: Add additional query parameters to the request
277+
278+
extra_body: Add additional JSON properties to the request
279+
280+
timeout: Override the client-level default timeout for this request, in seconds
281+
"""
282+
return self._get(
283+
"/api/v1/markets/tvl",
284+
options=make_request_options(
285+
extra_headers=extra_headers,
286+
extra_query=extra_query,
287+
extra_body=extra_body,
288+
timeout=timeout,
289+
query=maybe_transform({"with_text": with_text}, market_get_tvl_params.MarketGetTvlParams),
290+
),
291+
cast_to=MarketGetTvlResponse,
292+
)
293+
255294

256295
class AsyncMarketsResource(AsyncAPIResource):
257296
@cached_property
@@ -462,6 +501,43 @@ async def get_params(
462501
cast_to=MarketGetParamsResponse,
463502
)
464503

504+
async def get_tvl(
505+
self,
506+
*,
507+
with_text: bool | Omit = omit,
508+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
509+
# The extra values given here take precedence over values defined on the client or passed to this method.
510+
extra_headers: Headers | None = None,
511+
extra_query: Query | None = None,
512+
extra_body: Body | None = None,
513+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
514+
) -> MarketGetTvlResponse:
515+
"""
516+
Get market TVL
517+
518+
Args:
519+
with_text: Include text variation fields
520+
521+
extra_headers: Send extra headers
522+
523+
extra_query: Add additional query parameters to the request
524+
525+
extra_body: Add additional JSON properties to the request
526+
527+
timeout: Override the client-level default timeout for this request, in seconds
528+
"""
529+
return await self._get(
530+
"/api/v1/markets/tvl",
531+
options=make_request_options(
532+
extra_headers=extra_headers,
533+
extra_query=extra_query,
534+
extra_body=extra_body,
535+
timeout=timeout,
536+
query=await async_maybe_transform({"with_text": with_text}, market_get_tvl_params.MarketGetTvlParams),
537+
),
538+
cast_to=MarketGetTvlResponse,
539+
)
540+
465541

466542
class MarketsResourceWithRawResponse:
467543
def __init__(self, markets: MarketsResource) -> None:
@@ -479,6 +555,9 @@ def __init__(self, markets: MarketsResource) -> None:
479555
self.get_params = to_raw_response_wrapper(
480556
markets.get_params,
481557
)
558+
self.get_tvl = to_raw_response_wrapper(
559+
markets.get_tvl,
560+
)
482561

483562
@cached_property
484563
def lend(self) -> LendResourceWithRawResponse:
@@ -505,6 +584,9 @@ def __init__(self, markets: AsyncMarketsResource) -> None:
505584
self.get_params = async_to_raw_response_wrapper(
506585
markets.get_params,
507586
)
587+
self.get_tvl = async_to_raw_response_wrapper(
588+
markets.get_tvl,
589+
)
508590

509591
@cached_property
510592
def lend(self) -> AsyncLendResourceWithRawResponse:
@@ -531,6 +613,9 @@ def __init__(self, markets: MarketsResource) -> None:
531613
self.get_params = to_streamed_response_wrapper(
532614
markets.get_params,
533615
)
616+
self.get_tvl = to_streamed_response_wrapper(
617+
markets.get_tvl,
618+
)
534619

535620
@cached_property
536621
def lend(self) -> LendResourceWithStreamingResponse:
@@ -557,6 +642,9 @@ def __init__(self, markets: AsyncMarketsResource) -> None:
557642
self.get_params = async_to_streamed_response_wrapper(
558643
markets.get_params,
559644
)
645+
self.get_tvl = async_to_streamed_response_wrapper(
646+
markets.get_tvl,
647+
)
560648

561649
@cached_property
562650
def lend(self) -> AsyncLendResourceWithStreamingResponse:

src/neptune_api_v2/types/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from __future__ import annotations
44

5+
from .tvl import Tvl as Tvl
56
from .user import User as User
67
from .user_tx import UserTx as UserTx
78
from .interval import Interval as Interval
@@ -26,9 +27,11 @@
2627
from .asset_classification import AssetClassification as AssetClassification
2728
from .global_market_config import GlobalMarketConfig as GlobalMarketConfig
2829
from .user_get_user_params import UserGetUserParams as UserGetUserParams
30+
from .market_get_tvl_params import MarketGetTvlParams as MarketGetTvlParams
2931
from .nept_get_state_params import NeptGetStateParams as NeptGetStateParams
3032
from .nept_get_params_params import NeptGetParamsParams as NeptGetParamsParams
3133
from .user_get_user_response import UserGetUserResponse as UserGetUserResponse
34+
from .market_get_tvl_response import MarketGetTvlResponse as MarketGetTvlResponse
3235
from .nept_get_state_response import NeptGetStateResponse as NeptGetStateResponse
3336
from .validation_field_source import ValidationFieldSource as ValidationFieldSource
3437
from .asset_list_prices_params import AssetListPricesParams as AssetListPricesParams

src/neptune_api_v2/types/market_get_overview_response.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from typing import List
44

5+
from .tvl import Tvl
56
from .._models import BaseModel
67
from .markets.lend_market import LendMarket
78
from .global_market_config import GlobalMarketConfig
@@ -20,6 +21,9 @@ class Data(BaseModel):
2021
lend: List[LendMarket]
2122
"""Current lending markets"""
2223

24+
tvl: Tvl
25+
"""Market TVL"""
26+
2327

2428
class MarketGetOverviewResponse(BaseModel):
2529
data: Data
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing_extensions import TypedDict
6+
7+
__all__ = ["MarketGetTvlParams"]
8+
9+
10+
class MarketGetTvlParams(TypedDict, total=False):
11+
with_text: bool
12+
"""Include text variation fields"""
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from .tvl import Tvl
4+
from .._models import BaseModel
5+
6+
__all__ = ["MarketGetTvlResponse"]
7+
8+
9+
class MarketGetTvlResponse(BaseModel):
10+
data: Tvl
11+
12+
error: None = None
13+
"""Error data. Guaranteed `null` for successful response."""
14+
15+
status: int
16+
"""HTTP status.
17+
18+
Successful responses are guaranteed to be < `400`. Conversely, error responses
19+
are guaranteed to be >= `400`.
20+
"""
21+
22+
status_text: str
23+
"""HTTP status text"""

src/neptune_api_v2/types/markets/borrow/borrow_collateral_state.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ class ExtraText(BaseModel):
1313
Will not be null when query param `with_text` is `true`.
1414
"""
1515

16+
balance: str
17+
1618
collateral_sum: str
1719

1820

@@ -22,6 +24,8 @@ class ExtraValueExtraText(BaseModel):
2224
Will not be null when query params `with_text` and `with_value` are `true`.
2325
"""
2426

27+
balance: str
28+
2529
collateral_sum: str
2630

2731
price: str
@@ -48,6 +52,8 @@ class ExtraValue(BaseModel):
4852
The embedded text group will contain the text variant if `with_text` was specified as well.
4953
"""
5054

55+
balance: str
56+
5157
collateral_sum: str
5258

5359
extra: ExtraValueExtra

src/neptune_api_v2/types/tvl.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing import Optional
4+
5+
from .._models import BaseModel
6+
7+
__all__ = ["Tvl", "Extra", "ExtraText"]
8+
9+
10+
class ExtraText(BaseModel):
11+
"""Human-readable field variants.
12+
13+
Will not be null when query param `with_text` is `true`.
14+
"""
15+
16+
collateral_value: str
17+
18+
lend_value: str
19+
20+
total_value: str
21+
22+
23+
class Extra(BaseModel):
24+
text: Optional[ExtraText] = None
25+
"""Human-readable field variants.
26+
27+
Will not be null when query param `with_text` is `true`.
28+
"""
29+
30+
31+
class Tvl(BaseModel):
32+
collateral_value: str
33+
"""Market TVL in USD - collateral portion"""
34+
35+
extra: Extra
36+
37+
lend_value: str
38+
"""Market TVL in USD - lend portion"""
39+
40+
total_value: str
41+
"""Market TVL in USD"""

0 commit comments

Comments
 (0)