From 0812f2163205be4e48486f201ab979b78593e9a1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 15:19:20 +0000 Subject: [PATCH 1/2] feat(api): update via SDK Studio --- .stats.yml | 8 +- api.md | 14 +- src/coingecko_python/resources/coins/coins.py | 14 ++ .../resources/coins/tickers.py | 12 ++ .../resources/exchanges/exchanges.py | 26 ++- .../resources/exchanges/tickers.py | 12 ++ .../resources/onchain/networks/pools/multi.py | 20 +- .../resources/onchain/networks/pools/ohlcv.py | 8 + .../resources/onchain/networks/pools/pools.py | 22 +- .../onchain/networks/tokens/__init__.py | 14 ++ .../onchain/networks/tokens/tokens.py | 32 +++ .../onchain/networks/tokens/trades.py | 193 ++++++++++++++++++ src/coingecko_python/types/__init__.py | 1 + .../types/coin_get_id_params.py | 8 +- .../types/coins/ticker_get_params.py | 6 + .../types/exchange_get_id_params.py | 15 ++ .../types/exchanges/ticker_get_params.py | 6 + .../networks/dex_get_pools_response.py | 14 -- .../networks/new_pool_get_network_response.py | 14 -- .../onchain/networks/new_pool_get_response.py | 14 -- .../networks/pool_get_address_params.py | 3 + .../networks/pool_get_address_response.py | 4 + .../onchain/networks/pool_get_response.py | 14 -- .../networks/pools/info_get_response.py | 11 + .../pools/multi_get_addresses_params.py | 3 + .../pools/multi_get_addresses_response.py | 4 + .../pools/ohlcv_get_timeframe_params.py | 3 + .../networks/token_get_address_response.py | 2 + .../types/onchain/networks/tokens/__init__.py | 2 + .../networks/tokens/info_get_response.py | 11 + .../tokens/multi_get_addresses_response.py | 2 + .../networks/tokens/pool_get_response.py | 14 -- .../networks/tokens/trade_get_params.py | 14 ++ .../networks/tokens/trade_get_response.py | 53 +++++ .../trending_pool_get_network_response.py | 14 -- .../networks/trending_pool_get_response.py | 14 -- .../onchain/pools/megafilter_get_response.py | 14 -- .../types/onchain/search/pool_get_response.py | 14 -- tests/api_resources/coins/test_tickers.py | 2 + tests/api_resources/exchanges/test_tickers.py | 2 + .../onchain/networks/pools/test_multi.py | 2 + .../onchain/networks/pools/test_ohlcv.py | 2 + .../onchain/networks/test_pools.py | 2 + .../onchain/networks/tokens/test_trades.py | 146 +++++++++++++ tests/api_resources/test_coins.py | 2 + tests/api_resources/test_exchanges.py | 34 ++- 46 files changed, 694 insertions(+), 147 deletions(-) create mode 100644 src/coingecko_python/resources/onchain/networks/tokens/trades.py create mode 100644 src/coingecko_python/types/exchange_get_id_params.py create mode 100644 src/coingecko_python/types/onchain/networks/tokens/trade_get_params.py create mode 100644 src/coingecko_python/types/onchain/networks/tokens/trade_get_response.py create mode 100644 tests/api_resources/onchain/networks/tokens/test_trades.py diff --git a/.stats.yml b/.stats.yml index 5308838..bd57530 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 76 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/coingecko%2Fcoingecko-927a6b126ae13cbcde1cb8818c390ce13f838d7802e51bd9ceb1920893c46470.yml -openapi_spec_hash: 0c29bd602dbc3fb5a226320a3fd0f9d9 -config_hash: 1cc0bc621ce857d41500f93783460439 +configured_endpoints: 77 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/coingecko%2Fcoingecko-672da434b7c16835742e7051aa49aa7c953646ea384ead8b64fcbfd611c9dc13.yml +openapi_spec_hash: 8c8c984aa692011f8b7b5f62d9ad3211 +config_hash: ee0fcee03e9f9b77015be66024d42405 diff --git a/api.md b/api.md index a390aa8..afa2153 100644 --- a/api.md +++ b/api.md @@ -253,7 +253,7 @@ from coingecko_python.types import ( Methods: - client.exchanges.get(\*\*params) -> ExchangeGetResponse -- client.exchanges.get_id(id) -> ExchangeGetIDResponse +- client.exchanges.get_id(id, \*\*params) -> ExchangeGetIDResponse - client.exchanges.get_list(\*\*params) -> ExchangeGetListResponse ## Tickers @@ -581,6 +581,18 @@ Methods: - client.onchain.networks.tokens.pools.get(token_address, \*, network, \*\*params) -> PoolGetResponse +#### Trades + +Types: + +```python +from coingecko_python.types.onchain.networks.tokens import TradeGetResponse +``` + +Methods: + +- client.onchain.networks.tokens.trades.get(token_address, \*, network, \*\*params) -> TradeGetResponse + ## Pools ### Megafilter diff --git a/src/coingecko_python/resources/coins/coins.py b/src/coingecko_python/resources/coins/coins.py index 9c3c1a8..6aa25d1 100644 --- a/src/coingecko_python/resources/coins/coins.py +++ b/src/coingecko_python/resources/coins/coins.py @@ -2,6 +2,8 @@ from __future__ import annotations +from typing_extensions import Literal + import httpx from .list import ( @@ -179,6 +181,7 @@ def get_id( *, community_data: bool | NotGiven = NOT_GIVEN, developer_data: bool | NotGiven = NOT_GIVEN, + dex_pair_format: Literal["contract_address", "symbol"] | NotGiven = NOT_GIVEN, localization: bool | NotGiven = NOT_GIVEN, market_data: bool | NotGiven = NOT_GIVEN, sparkline: bool | NotGiven = NOT_GIVEN, @@ -201,6 +204,10 @@ def get_id( developer_data: include developer data, default: true + dex_pair_format: + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + localization: include all the localized languages in the response, default: true market_data: include market data, default: true @@ -230,6 +237,7 @@ def get_id( { "community_data": community_data, "developer_data": developer_data, + "dex_pair_format": dex_pair_format, "localization": localization, "market_data": market_data, "sparkline": sparkline, @@ -312,6 +320,7 @@ async def get_id( *, community_data: bool | NotGiven = NOT_GIVEN, developer_data: bool | NotGiven = NOT_GIVEN, + dex_pair_format: Literal["contract_address", "symbol"] | NotGiven = NOT_GIVEN, localization: bool | NotGiven = NOT_GIVEN, market_data: bool | NotGiven = NOT_GIVEN, sparkline: bool | NotGiven = NOT_GIVEN, @@ -334,6 +343,10 @@ async def get_id( developer_data: include developer data, default: true + dex_pair_format: + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + localization: include all the localized languages in the response, default: true market_data: include market data, default: true @@ -363,6 +376,7 @@ async def get_id( { "community_data": community_data, "developer_data": developer_data, + "dex_pair_format": dex_pair_format, "localization": localization, "market_data": market_data, "sparkline": sparkline, diff --git a/src/coingecko_python/resources/coins/tickers.py b/src/coingecko_python/resources/coins/tickers.py index f2bc4ab..307b9bb 100644 --- a/src/coingecko_python/resources/coins/tickers.py +++ b/src/coingecko_python/resources/coins/tickers.py @@ -48,6 +48,7 @@ def get( id: str, *, depth: bool | NotGiven = NOT_GIVEN, + dex_pair_format: Literal["contract_address", "symbol"] | NotGiven = NOT_GIVEN, exchange_ids: str | NotGiven = NOT_GIVEN, include_exchange_logo: bool | NotGiven = NOT_GIVEN, order: Literal["trust_score_desc", "trust_score_asc", "volume_desc", "volume_asc"] | NotGiven = NOT_GIVEN, @@ -67,6 +68,10 @@ def get( depth: include 2% orderbook depth, ie. `cost_to_move_up_usd` and `cost_to_move_down_usd` Default: false + dex_pair_format: + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + exchange_ids: exchange ID \\**refers to [`/exchanges/list`](/reference/exchanges-list). include_exchange_logo: include exchange logo, default: false @@ -95,6 +100,7 @@ def get( query=maybe_transform( { "depth": depth, + "dex_pair_format": dex_pair_format, "exchange_ids": exchange_ids, "include_exchange_logo": include_exchange_logo, "order": order, @@ -132,6 +138,7 @@ async def get( id: str, *, depth: bool | NotGiven = NOT_GIVEN, + dex_pair_format: Literal["contract_address", "symbol"] | NotGiven = NOT_GIVEN, exchange_ids: str | NotGiven = NOT_GIVEN, include_exchange_logo: bool | NotGiven = NOT_GIVEN, order: Literal["trust_score_desc", "trust_score_asc", "volume_desc", "volume_asc"] | NotGiven = NOT_GIVEN, @@ -151,6 +158,10 @@ async def get( depth: include 2% orderbook depth, ie. `cost_to_move_up_usd` and `cost_to_move_down_usd` Default: false + dex_pair_format: + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + exchange_ids: exchange ID \\**refers to [`/exchanges/list`](/reference/exchanges-list). include_exchange_logo: include exchange logo, default: false @@ -179,6 +190,7 @@ async def get( query=await async_maybe_transform( { "depth": depth, + "dex_pair_format": dex_pair_format, "exchange_ids": exchange_ids, "include_exchange_logo": include_exchange_logo, "order": order, diff --git a/src/coingecko_python/resources/exchanges/exchanges.py b/src/coingecko_python/resources/exchanges/exchanges.py index 60a0917..8be5afc 100644 --- a/src/coingecko_python/resources/exchanges/exchanges.py +++ b/src/coingecko_python/resources/exchanges/exchanges.py @@ -6,7 +6,7 @@ import httpx -from ...types import exchange_get_params, exchange_get_list_params +from ...types import exchange_get_params, exchange_get_id_params, exchange_get_list_params from .tickers import ( TickersResource, AsyncTickersResource, @@ -120,6 +120,7 @@ def get_id( self, id: str, *, + dex_pair_format: Literal["contract_address", "symbol"] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -133,6 +134,10 @@ def get_id( ID** Args: + dex_pair_format: + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -146,7 +151,11 @@ def get_id( return self._get( f"/exchanges/{id}", options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform({"dex_pair_format": dex_pair_format}, exchange_get_id_params.ExchangeGetIDParams), ), cast_to=ExchangeGetIDResponse, ) @@ -268,6 +277,7 @@ async def get_id( self, id: str, *, + dex_pair_format: Literal["contract_address", "symbol"] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -281,6 +291,10 @@ async def get_id( ID** Args: + dex_pair_format: + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -294,7 +308,13 @@ async def get_id( return await self._get( f"/exchanges/{id}", options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + {"dex_pair_format": dex_pair_format}, exchange_get_id_params.ExchangeGetIDParams + ), ), cast_to=ExchangeGetIDResponse, ) diff --git a/src/coingecko_python/resources/exchanges/tickers.py b/src/coingecko_python/resources/exchanges/tickers.py index 62fa222..a144beb 100644 --- a/src/coingecko_python/resources/exchanges/tickers.py +++ b/src/coingecko_python/resources/exchanges/tickers.py @@ -49,6 +49,7 @@ def get( *, coin_ids: str | NotGiven = NOT_GIVEN, depth: bool | NotGiven = NOT_GIVEN, + dex_pair_format: Literal["contract_address", "symbol"] | NotGiven = NOT_GIVEN, include_exchange_logo: bool | NotGiven = NOT_GIVEN, order: Literal["trust_score_desc", "trust_score_asc", "volume_desc", "volume_asc", "base_target"] | NotGiven = NOT_GIVEN, @@ -70,6 +71,10 @@ def get( depth: include 2% orderbook depth (Example: cost_to_move_up_usd & cost_to_move_down_usd),default: false + dex_pair_format: + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + include_exchange_logo: include exchange logo, default: false order: use this to sort the order of responses, default: trust_score_desc @@ -97,6 +102,7 @@ def get( { "coin_ids": coin_ids, "depth": depth, + "dex_pair_format": dex_pair_format, "include_exchange_logo": include_exchange_logo, "order": order, "page": page, @@ -134,6 +140,7 @@ async def get( *, coin_ids: str | NotGiven = NOT_GIVEN, depth: bool | NotGiven = NOT_GIVEN, + dex_pair_format: Literal["contract_address", "symbol"] | NotGiven = NOT_GIVEN, include_exchange_logo: bool | NotGiven = NOT_GIVEN, order: Literal["trust_score_desc", "trust_score_asc", "volume_desc", "volume_asc", "base_target"] | NotGiven = NOT_GIVEN, @@ -155,6 +162,10 @@ async def get( depth: include 2% orderbook depth (Example: cost_to_move_up_usd & cost_to_move_down_usd),default: false + dex_pair_format: + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + include_exchange_logo: include exchange logo, default: false order: use this to sort the order of responses, default: trust_score_desc @@ -182,6 +193,7 @@ async def get( { "coin_ids": coin_ids, "depth": depth, + "dex_pair_format": dex_pair_format, "include_exchange_logo": include_exchange_logo, "order": order, "page": page, diff --git a/src/coingecko_python/resources/onchain/networks/pools/multi.py b/src/coingecko_python/resources/onchain/networks/pools/multi.py index 6753c40..73a2f5c 100644 --- a/src/coingecko_python/resources/onchain/networks/pools/multi.py +++ b/src/coingecko_python/resources/onchain/networks/pools/multi.py @@ -47,6 +47,7 @@ def get_addresses( *, network: str, include: str | NotGiven = NOT_GIVEN, + include_volume_breakdown: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -62,6 +63,8 @@ def get_addresses( include: attributes to include, comma-separated if more than one to include Available values: `base_token`, `quote_token`, `dex` + include_volume_breakdown: include volume breakdown, default: false + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -81,7 +84,13 @@ def get_addresses( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - query=maybe_transform({"include": include}, multi_get_addresses_params.MultiGetAddressesParams), + query=maybe_transform( + { + "include": include, + "include_volume_breakdown": include_volume_breakdown, + }, + multi_get_addresses_params.MultiGetAddressesParams, + ), ), cast_to=MultiGetAddressesResponse, ) @@ -113,6 +122,7 @@ async def get_addresses( *, network: str, include: str | NotGiven = NOT_GIVEN, + include_volume_breakdown: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -128,6 +138,8 @@ async def get_addresses( include: attributes to include, comma-separated if more than one to include Available values: `base_token`, `quote_token`, `dex` + include_volume_breakdown: include volume breakdown, default: false + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -148,7 +160,11 @@ async def get_addresses( extra_body=extra_body, timeout=timeout, query=await async_maybe_transform( - {"include": include}, multi_get_addresses_params.MultiGetAddressesParams + { + "include": include, + "include_volume_breakdown": include_volume_breakdown, + }, + multi_get_addresses_params.MultiGetAddressesParams, ), ), cast_to=MultiGetAddressesResponse, diff --git a/src/coingecko_python/resources/onchain/networks/pools/ohlcv.py b/src/coingecko_python/resources/onchain/networks/pools/ohlcv.py index ae69326..7a601f5 100644 --- a/src/coingecko_python/resources/onchain/networks/pools/ohlcv.py +++ b/src/coingecko_python/resources/onchain/networks/pools/ohlcv.py @@ -53,6 +53,7 @@ def get_timeframe( aggregate: str | NotGiven = NOT_GIVEN, before_timestamp: int | NotGiven = NOT_GIVEN, currency: Literal["usd", "token"] | NotGiven = NOT_GIVEN, + include_empty_intervals: bool | NotGiven = NOT_GIVEN, limit: int | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -77,6 +78,8 @@ def get_timeframe( currency: return OHLCV in USD or quote token Default value: usd + include_empty_intervals: include empty intervals with no trade data, default: false + limit: number of OHLCV results to return, maximum 1000 Default value: 100 extra_headers: Send extra headers @@ -106,6 +109,7 @@ def get_timeframe( "aggregate": aggregate, "before_timestamp": before_timestamp, "currency": currency, + "include_empty_intervals": include_empty_intervals, "limit": limit, }, ohlcv_get_timeframe_params.OhlcvGetTimeframeParams, @@ -145,6 +149,7 @@ async def get_timeframe( aggregate: str | NotGiven = NOT_GIVEN, before_timestamp: int | NotGiven = NOT_GIVEN, currency: Literal["usd", "token"] | NotGiven = NOT_GIVEN, + include_empty_intervals: bool | NotGiven = NOT_GIVEN, limit: int | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -169,6 +174,8 @@ async def get_timeframe( currency: return OHLCV in USD or quote token Default value: usd + include_empty_intervals: include empty intervals with no trade data, default: false + limit: number of OHLCV results to return, maximum 1000 Default value: 100 extra_headers: Send extra headers @@ -198,6 +205,7 @@ async def get_timeframe( "aggregate": aggregate, "before_timestamp": before_timestamp, "currency": currency, + "include_empty_intervals": include_empty_intervals, "limit": limit, }, ohlcv_get_timeframe_params.OhlcvGetTimeframeParams, diff --git a/src/coingecko_python/resources/onchain/networks/pools/pools.py b/src/coingecko_python/resources/onchain/networks/pools/pools.py index cec1805..ce02ad8 100644 --- a/src/coingecko_python/resources/onchain/networks/pools/pools.py +++ b/src/coingecko_python/resources/onchain/networks/pools/pools.py @@ -153,6 +153,7 @@ def get_address( *, network: str, include: str | NotGiven = NOT_GIVEN, + include_volume_breakdown: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -168,6 +169,8 @@ def get_address( include: attributes to include, comma-separated if more than one to include Available values: `base_token`, `quote_token`, `dex` + include_volume_breakdown: include volume breakdown, default: false + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -187,7 +190,13 @@ def get_address( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - query=maybe_transform({"include": include}, pool_get_address_params.PoolGetAddressParams), + query=maybe_transform( + { + "include": include, + "include_volume_breakdown": include_volume_breakdown, + }, + pool_get_address_params.PoolGetAddressParams, + ), ), cast_to=PoolGetAddressResponse, ) @@ -290,6 +299,7 @@ async def get_address( *, network: str, include: str | NotGiven = NOT_GIVEN, + include_volume_breakdown: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -305,6 +315,8 @@ async def get_address( include: attributes to include, comma-separated if more than one to include Available values: `base_token`, `quote_token`, `dex` + include_volume_breakdown: include volume breakdown, default: false + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -324,7 +336,13 @@ async def get_address( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - query=await async_maybe_transform({"include": include}, pool_get_address_params.PoolGetAddressParams), + query=await async_maybe_transform( + { + "include": include, + "include_volume_breakdown": include_volume_breakdown, + }, + pool_get_address_params.PoolGetAddressParams, + ), ), cast_to=PoolGetAddressResponse, ) diff --git a/src/coingecko_python/resources/onchain/networks/tokens/__init__.py b/src/coingecko_python/resources/onchain/networks/tokens/__init__.py index 62396b9..932a845 100644 --- a/src/coingecko_python/resources/onchain/networks/tokens/__init__.py +++ b/src/coingecko_python/resources/onchain/networks/tokens/__init__.py @@ -32,6 +32,14 @@ TokensResourceWithStreamingResponse, AsyncTokensResourceWithStreamingResponse, ) +from .trades import ( + TradesResource, + AsyncTradesResource, + TradesResourceWithRawResponse, + AsyncTradesResourceWithRawResponse, + TradesResourceWithStreamingResponse, + AsyncTradesResourceWithStreamingResponse, +) from .top_holders import ( TopHoldersResource, AsyncTopHoldersResource, @@ -66,6 +74,12 @@ "AsyncPoolsResourceWithRawResponse", "PoolsResourceWithStreamingResponse", "AsyncPoolsResourceWithStreamingResponse", + "TradesResource", + "AsyncTradesResource", + "TradesResourceWithRawResponse", + "AsyncTradesResourceWithRawResponse", + "TradesResourceWithStreamingResponse", + "AsyncTradesResourceWithStreamingResponse", "TokensResource", "AsyncTokensResource", "TokensResourceWithRawResponse", diff --git a/src/coingecko_python/resources/onchain/networks/tokens/tokens.py b/src/coingecko_python/resources/onchain/networks/tokens/tokens.py index ff52c99..27fa6c6 100644 --- a/src/coingecko_python/resources/onchain/networks/tokens/tokens.py +++ b/src/coingecko_python/resources/onchain/networks/tokens/tokens.py @@ -30,6 +30,14 @@ PoolsResourceWithStreamingResponse, AsyncPoolsResourceWithStreamingResponse, ) +from .trades import ( + TradesResource, + AsyncTradesResource, + TradesResourceWithRawResponse, + AsyncTradesResourceWithRawResponse, + TradesResourceWithStreamingResponse, + AsyncTradesResourceWithStreamingResponse, +) from ....._types import NOT_GIVEN, Body, Query, Headers, NotGiven from ....._utils import maybe_transform, async_maybe_transform from ....._compat import cached_property @@ -72,6 +80,10 @@ def top_holders(self) -> TopHoldersResource: def pools(self) -> PoolsResource: return PoolsResource(self._client) + @cached_property + def trades(self) -> TradesResource: + return TradesResource(self._client) + @cached_property def with_raw_response(self) -> TokensResourceWithRawResponse: """ @@ -153,6 +165,10 @@ def top_holders(self) -> AsyncTopHoldersResource: def pools(self) -> AsyncPoolsResource: return AsyncPoolsResource(self._client) + @cached_property + def trades(self) -> AsyncTradesResource: + return AsyncTradesResource(self._client) + @cached_property def with_raw_response(self) -> AsyncTokensResourceWithRawResponse: """ @@ -241,6 +257,10 @@ def top_holders(self) -> TopHoldersResourceWithRawResponse: def pools(self) -> PoolsResourceWithRawResponse: return PoolsResourceWithRawResponse(self._tokens.pools) + @cached_property + def trades(self) -> TradesResourceWithRawResponse: + return TradesResourceWithRawResponse(self._tokens.trades) + class AsyncTokensResourceWithRawResponse: def __init__(self, tokens: AsyncTokensResource) -> None: @@ -266,6 +286,10 @@ def top_holders(self) -> AsyncTopHoldersResourceWithRawResponse: def pools(self) -> AsyncPoolsResourceWithRawResponse: return AsyncPoolsResourceWithRawResponse(self._tokens.pools) + @cached_property + def trades(self) -> AsyncTradesResourceWithRawResponse: + return AsyncTradesResourceWithRawResponse(self._tokens.trades) + class TokensResourceWithStreamingResponse: def __init__(self, tokens: TokensResource) -> None: @@ -291,6 +315,10 @@ def top_holders(self) -> TopHoldersResourceWithStreamingResponse: def pools(self) -> PoolsResourceWithStreamingResponse: return PoolsResourceWithStreamingResponse(self._tokens.pools) + @cached_property + def trades(self) -> TradesResourceWithStreamingResponse: + return TradesResourceWithStreamingResponse(self._tokens.trades) + class AsyncTokensResourceWithStreamingResponse: def __init__(self, tokens: AsyncTokensResource) -> None: @@ -315,3 +343,7 @@ def top_holders(self) -> AsyncTopHoldersResourceWithStreamingResponse: @cached_property def pools(self) -> AsyncPoolsResourceWithStreamingResponse: return AsyncPoolsResourceWithStreamingResponse(self._tokens.pools) + + @cached_property + def trades(self) -> AsyncTradesResourceWithStreamingResponse: + return AsyncTradesResourceWithStreamingResponse(self._tokens.trades) diff --git a/src/coingecko_python/resources/onchain/networks/tokens/trades.py b/src/coingecko_python/resources/onchain/networks/tokens/trades.py new file mode 100644 index 0000000..b7e9574 --- /dev/null +++ b/src/coingecko_python/resources/onchain/networks/tokens/trades.py @@ -0,0 +1,193 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import httpx + +from ....._types import NOT_GIVEN, Body, Query, Headers, NotGiven +from ....._utils import maybe_transform, async_maybe_transform +from ....._compat import cached_property +from ....._resource import SyncAPIResource, AsyncAPIResource +from ....._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from ....._base_client import make_request_options +from .....types.onchain.networks.tokens import trade_get_params +from .....types.onchain.networks.tokens.trade_get_response import TradeGetResponse + +__all__ = ["TradesResource", "AsyncTradesResource"] + + +class TradesResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> TradesResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/coingecko/coingecko-python#accessing-raw-response-data-eg-headers + """ + return TradesResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> TradesResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/coingecko/coingecko-python#with_streaming_response + """ + return TradesResourceWithStreamingResponse(self) + + def get( + self, + token_address: str, + *, + network: str, + trade_volume_in_usd_greater_than: float | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> TradeGetResponse: + """ + This endpoint allows you to **query the last 300 trades in the past 24 hours + based on the provided token contract address on a network** + + Args: + trade_volume_in_usd_greater_than: filter trades by trade volume in USD greater than this value Default value: 0 + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not network: + raise ValueError(f"Expected a non-empty value for `network` but received {network!r}") + if not token_address: + raise ValueError(f"Expected a non-empty value for `token_address` but received {token_address!r}") + return self._get( + f"/onchain/networks/{network}/tokens/{token_address}/trades", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + {"trade_volume_in_usd_greater_than": trade_volume_in_usd_greater_than}, + trade_get_params.TradeGetParams, + ), + ), + cast_to=TradeGetResponse, + ) + + +class AsyncTradesResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncTradesResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/coingecko/coingecko-python#accessing-raw-response-data-eg-headers + """ + return AsyncTradesResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncTradesResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/coingecko/coingecko-python#with_streaming_response + """ + return AsyncTradesResourceWithStreamingResponse(self) + + async def get( + self, + token_address: str, + *, + network: str, + trade_volume_in_usd_greater_than: float | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> TradeGetResponse: + """ + This endpoint allows you to **query the last 300 trades in the past 24 hours + based on the provided token contract address on a network** + + Args: + trade_volume_in_usd_greater_than: filter trades by trade volume in USD greater than this value Default value: 0 + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not network: + raise ValueError(f"Expected a non-empty value for `network` but received {network!r}") + if not token_address: + raise ValueError(f"Expected a non-empty value for `token_address` but received {token_address!r}") + return await self._get( + f"/onchain/networks/{network}/tokens/{token_address}/trades", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + {"trade_volume_in_usd_greater_than": trade_volume_in_usd_greater_than}, + trade_get_params.TradeGetParams, + ), + ), + cast_to=TradeGetResponse, + ) + + +class TradesResourceWithRawResponse: + def __init__(self, trades: TradesResource) -> None: + self._trades = trades + + self.get = to_raw_response_wrapper( + trades.get, + ) + + +class AsyncTradesResourceWithRawResponse: + def __init__(self, trades: AsyncTradesResource) -> None: + self._trades = trades + + self.get = async_to_raw_response_wrapper( + trades.get, + ) + + +class TradesResourceWithStreamingResponse: + def __init__(self, trades: TradesResource) -> None: + self._trades = trades + + self.get = to_streamed_response_wrapper( + trades.get, + ) + + +class AsyncTradesResourceWithStreamingResponse: + def __init__(self, trades: AsyncTradesResource) -> None: + self._trades = trades + + self.get = async_to_streamed_response_wrapper( + trades.get, + ) diff --git a/src/coingecko_python/types/__init__.py b/src/coingecko_python/types/__init__.py index b5439dc..73219ac 100644 --- a/src/coingecko_python/types/__init__.py +++ b/src/coingecko_python/types/__init__.py @@ -14,6 +14,7 @@ from .coin_get_id_response import CoinGetIDResponse as CoinGetIDResponse from .exchange_get_response import ExchangeGetResponse as ExchangeGetResponse from .nft_get_list_response import NFTGetListResponse as NFTGetListResponse +from .exchange_get_id_params import ExchangeGetIDParams as ExchangeGetIDParams from .nft_get_markets_params import NFTGetMarketsParams as NFTGetMarketsParams from .derivative_get_response import DerivativeGetResponse as DerivativeGetResponse from .exchange_get_id_response import ExchangeGetIDResponse as ExchangeGetIDResponse diff --git a/src/coingecko_python/types/coin_get_id_params.py b/src/coingecko_python/types/coin_get_id_params.py index 4745c33..20712d7 100644 --- a/src/coingecko_python/types/coin_get_id_params.py +++ b/src/coingecko_python/types/coin_get_id_params.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing_extensions import TypedDict +from typing_extensions import Literal, TypedDict __all__ = ["CoinGetIDParams"] @@ -14,6 +14,12 @@ class CoinGetIDParams(TypedDict, total=False): developer_data: bool """include developer data, default: true""" + dex_pair_format: Literal["contract_address", "symbol"] + """ + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + """ + localization: bool """include all the localized languages in the response, default: true""" diff --git a/src/coingecko_python/types/coins/ticker_get_params.py b/src/coingecko_python/types/coins/ticker_get_params.py index bb64b84..facd4b1 100644 --- a/src/coingecko_python/types/coins/ticker_get_params.py +++ b/src/coingecko_python/types/coins/ticker_get_params.py @@ -14,6 +14,12 @@ class TickerGetParams(TypedDict, total=False): `cost_to_move_up_usd` and `cost_to_move_down_usd` Default: false """ + dex_pair_format: Literal["contract_address", "symbol"] + """ + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + """ + exchange_ids: str """exchange ID \\**refers to [`/exchanges/list`](/reference/exchanges-list).""" diff --git a/src/coingecko_python/types/exchange_get_id_params.py b/src/coingecko_python/types/exchange_get_id_params.py new file mode 100644 index 0000000..bb44def --- /dev/null +++ b/src/coingecko_python/types/exchange_get_id_params.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Literal, TypedDict + +__all__ = ["ExchangeGetIDParams"] + + +class ExchangeGetIDParams(TypedDict, total=False): + dex_pair_format: Literal["contract_address", "symbol"] + """ + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + """ diff --git a/src/coingecko_python/types/exchanges/ticker_get_params.py b/src/coingecko_python/types/exchanges/ticker_get_params.py index 1017f0d..acf86e5 100644 --- a/src/coingecko_python/types/exchanges/ticker_get_params.py +++ b/src/coingecko_python/types/exchanges/ticker_get_params.py @@ -20,6 +20,12 @@ class TickerGetParams(TypedDict, total=False): cost_to_move_down_usd),default: false """ + dex_pair_format: Literal["contract_address", "symbol"] + """ + set to `symbol` to display DEX pair base and target as symbols, default: + `contract_address` + """ + include_exchange_logo: bool """include exchange logo, default: false""" diff --git a/src/coingecko_python/types/onchain/networks/dex_get_pools_response.py b/src/coingecko_python/types/onchain/networks/dex_get_pools_response.py index 99b9614..421338f 100644 --- a/src/coingecko_python/types/onchain/networks/dex_get_pools_response.py +++ b/src/coingecko_python/types/onchain/networks/dex_get_pools_response.py @@ -21,8 +21,6 @@ "DataRelationshipsBaseTokenData", "DataRelationshipsDex", "DataRelationshipsDexData", - "DataRelationshipsNetwork", - "DataRelationshipsNetworkData", "DataRelationshipsQuoteToken", "DataRelationshipsQuoteTokenData", "Included", @@ -164,16 +162,6 @@ class DataRelationshipsDex(BaseModel): data: Optional[DataRelationshipsDexData] = None -class DataRelationshipsNetworkData(BaseModel): - id: Optional[str] = None - - type: Optional[str] = None - - -class DataRelationshipsNetwork(BaseModel): - data: Optional[DataRelationshipsNetworkData] = None - - class DataRelationshipsQuoteTokenData(BaseModel): id: Optional[str] = None @@ -189,8 +177,6 @@ class DataRelationships(BaseModel): dex: Optional[DataRelationshipsDex] = None - network: Optional[DataRelationshipsNetwork] = None - quote_token: Optional[DataRelationshipsQuoteToken] = None diff --git a/src/coingecko_python/types/onchain/networks/new_pool_get_network_response.py b/src/coingecko_python/types/onchain/networks/new_pool_get_network_response.py index b70f953..bf7c7fe 100644 --- a/src/coingecko_python/types/onchain/networks/new_pool_get_network_response.py +++ b/src/coingecko_python/types/onchain/networks/new_pool_get_network_response.py @@ -21,8 +21,6 @@ "DataRelationshipsBaseTokenData", "DataRelationshipsDex", "DataRelationshipsDexData", - "DataRelationshipsNetwork", - "DataRelationshipsNetworkData", "DataRelationshipsQuoteToken", "DataRelationshipsQuoteTokenData", "Included", @@ -164,16 +162,6 @@ class DataRelationshipsDex(BaseModel): data: Optional[DataRelationshipsDexData] = None -class DataRelationshipsNetworkData(BaseModel): - id: Optional[str] = None - - type: Optional[str] = None - - -class DataRelationshipsNetwork(BaseModel): - data: Optional[DataRelationshipsNetworkData] = None - - class DataRelationshipsQuoteTokenData(BaseModel): id: Optional[str] = None @@ -189,8 +177,6 @@ class DataRelationships(BaseModel): dex: Optional[DataRelationshipsDex] = None - network: Optional[DataRelationshipsNetwork] = None - quote_token: Optional[DataRelationshipsQuoteToken] = None diff --git a/src/coingecko_python/types/onchain/networks/new_pool_get_response.py b/src/coingecko_python/types/onchain/networks/new_pool_get_response.py index 1b42369..369ee8f 100644 --- a/src/coingecko_python/types/onchain/networks/new_pool_get_response.py +++ b/src/coingecko_python/types/onchain/networks/new_pool_get_response.py @@ -21,8 +21,6 @@ "DataRelationshipsBaseTokenData", "DataRelationshipsDex", "DataRelationshipsDexData", - "DataRelationshipsNetwork", - "DataRelationshipsNetworkData", "DataRelationshipsQuoteToken", "DataRelationshipsQuoteTokenData", "Included", @@ -164,16 +162,6 @@ class DataRelationshipsDex(BaseModel): data: Optional[DataRelationshipsDexData] = None -class DataRelationshipsNetworkData(BaseModel): - id: Optional[str] = None - - type: Optional[str] = None - - -class DataRelationshipsNetwork(BaseModel): - data: Optional[DataRelationshipsNetworkData] = None - - class DataRelationshipsQuoteTokenData(BaseModel): id: Optional[str] = None @@ -189,8 +177,6 @@ class DataRelationships(BaseModel): dex: Optional[DataRelationshipsDex] = None - network: Optional[DataRelationshipsNetwork] = None - quote_token: Optional[DataRelationshipsQuoteToken] = None diff --git a/src/coingecko_python/types/onchain/networks/pool_get_address_params.py b/src/coingecko_python/types/onchain/networks/pool_get_address_params.py index 24e5a46..627d38c 100644 --- a/src/coingecko_python/types/onchain/networks/pool_get_address_params.py +++ b/src/coingecko_python/types/onchain/networks/pool_get_address_params.py @@ -15,3 +15,6 @@ class PoolGetAddressParams(TypedDict, total=False): attributes to include, comma-separated if more than one to include Available values: `base_token`, `quote_token`, `dex` """ + + include_volume_breakdown: bool + """include volume breakdown, default: false""" diff --git a/src/coingecko_python/types/onchain/networks/pool_get_address_response.py b/src/coingecko_python/types/onchain/networks/pool_get_address_response.py index 713e24f..9c8bac7 100644 --- a/src/coingecko_python/types/onchain/networks/pool_get_address_response.py +++ b/src/coingecko_python/types/onchain/networks/pool_get_address_response.py @@ -146,6 +146,10 @@ class DataAttributes(BaseModel): pool_created_at: Optional[str] = None + pool_fee_percentage: Optional[str] = None + + pool_name: Optional[str] = None + price_change_percentage: Optional[DataAttributesPriceChangePercentage] = None quote_token_price_base_token: Optional[str] = None diff --git a/src/coingecko_python/types/onchain/networks/pool_get_response.py b/src/coingecko_python/types/onchain/networks/pool_get_response.py index b2d3866..42c8178 100644 --- a/src/coingecko_python/types/onchain/networks/pool_get_response.py +++ b/src/coingecko_python/types/onchain/networks/pool_get_response.py @@ -21,8 +21,6 @@ "DataRelationshipsBaseTokenData", "DataRelationshipsDex", "DataRelationshipsDexData", - "DataRelationshipsNetwork", - "DataRelationshipsNetworkData", "DataRelationshipsQuoteToken", "DataRelationshipsQuoteTokenData", "Included", @@ -164,16 +162,6 @@ class DataRelationshipsDex(BaseModel): data: Optional[DataRelationshipsDexData] = None -class DataRelationshipsNetworkData(BaseModel): - id: Optional[str] = None - - type: Optional[str] = None - - -class DataRelationshipsNetwork(BaseModel): - data: Optional[DataRelationshipsNetworkData] = None - - class DataRelationshipsQuoteTokenData(BaseModel): id: Optional[str] = None @@ -189,8 +177,6 @@ class DataRelationships(BaseModel): dex: Optional[DataRelationshipsDex] = None - network: Optional[DataRelationshipsNetwork] = None - quote_token: Optional[DataRelationshipsQuoteToken] = None diff --git a/src/coingecko_python/types/onchain/networks/pools/info_get_response.py b/src/coingecko_python/types/onchain/networks/pools/info_get_response.py index 80a9f60..c08edbe 100644 --- a/src/coingecko_python/types/onchain/networks/pools/info_get_response.py +++ b/src/coingecko_python/types/onchain/networks/pools/info_get_response.py @@ -13,6 +13,7 @@ "DataAttributesGtScoreDetails", "DataAttributesHolders", "DataAttributesHoldersDistributionPercentage", + "DataAttributesImage", ] @@ -46,6 +47,14 @@ class DataAttributesHolders(BaseModel): last_updated: Optional[str] = None +class DataAttributesImage(BaseModel): + large: Optional[str] = None + + small: Optional[str] = None + + thumb: Optional[str] = None + + class DataAttributes(BaseModel): address: Optional[str] = None @@ -67,6 +76,8 @@ class DataAttributes(BaseModel): holders: Optional[DataAttributesHolders] = None + image: Optional[DataAttributesImage] = None + image_url: Optional[str] = None mint_authority: Optional[str] = None diff --git a/src/coingecko_python/types/onchain/networks/pools/multi_get_addresses_params.py b/src/coingecko_python/types/onchain/networks/pools/multi_get_addresses_params.py index 8867b69..8457ba1 100644 --- a/src/coingecko_python/types/onchain/networks/pools/multi_get_addresses_params.py +++ b/src/coingecko_python/types/onchain/networks/pools/multi_get_addresses_params.py @@ -15,3 +15,6 @@ class MultiGetAddressesParams(TypedDict, total=False): attributes to include, comma-separated if more than one to include Available values: `base_token`, `quote_token`, `dex` """ + + include_volume_breakdown: bool + """include volume breakdown, default: false""" diff --git a/src/coingecko_python/types/onchain/networks/pools/multi_get_addresses_response.py b/src/coingecko_python/types/onchain/networks/pools/multi_get_addresses_response.py index 4874859..cfabb17 100644 --- a/src/coingecko_python/types/onchain/networks/pools/multi_get_addresses_response.py +++ b/src/coingecko_python/types/onchain/networks/pools/multi_get_addresses_response.py @@ -146,6 +146,10 @@ class DataAttributes(BaseModel): pool_created_at: Optional[str] = None + pool_fee_percentage: Optional[str] = None + + pool_name: Optional[str] = None + price_change_percentage: Optional[DataAttributesPriceChangePercentage] = None quote_token_price_base_token: Optional[str] = None diff --git a/src/coingecko_python/types/onchain/networks/pools/ohlcv_get_timeframe_params.py b/src/coingecko_python/types/onchain/networks/pools/ohlcv_get_timeframe_params.py index dce0bfa..dd577c0 100644 --- a/src/coingecko_python/types/onchain/networks/pools/ohlcv_get_timeframe_params.py +++ b/src/coingecko_python/types/onchain/networks/pools/ohlcv_get_timeframe_params.py @@ -31,5 +31,8 @@ class OhlcvGetTimeframeParams(TypedDict, total=False): currency: Literal["usd", "token"] """return OHLCV in USD or quote token Default value: usd""" + include_empty_intervals: bool + """include empty intervals with no trade data, default: false""" + limit: int """number of OHLCV results to return, maximum 1000 Default value: 100""" diff --git a/src/coingecko_python/types/onchain/networks/token_get_address_response.py b/src/coingecko_python/types/onchain/networks/token_get_address_response.py index 1f1364e..b9cb7f0 100644 --- a/src/coingecko_python/types/onchain/networks/token_get_address_response.py +++ b/src/coingecko_python/types/onchain/networks/token_get_address_response.py @@ -51,6 +51,8 @@ class DataAttributes(BaseModel): name: Optional[str] = None + normalized_total_supply: Optional[str] = None + price_usd: Optional[str] = None symbol: Optional[str] = None diff --git a/src/coingecko_python/types/onchain/networks/tokens/__init__.py b/src/coingecko_python/types/onchain/networks/tokens/__init__.py index 276f706..d21db66 100644 --- a/src/coingecko_python/types/onchain/networks/tokens/__init__.py +++ b/src/coingecko_python/types/onchain/networks/tokens/__init__.py @@ -3,8 +3,10 @@ from __future__ import annotations from .pool_get_params import PoolGetParams as PoolGetParams +from .trade_get_params import TradeGetParams as TradeGetParams from .info_get_response import InfoGetResponse as InfoGetResponse from .pool_get_response import PoolGetResponse as PoolGetResponse +from .trade_get_response import TradeGetResponse as TradeGetResponse from .top_holder_get_params import TopHolderGetParams as TopHolderGetParams from .top_holder_get_response import TopHolderGetResponse as TopHolderGetResponse from .multi_get_addresses_params import MultiGetAddressesParams as MultiGetAddressesParams diff --git a/src/coingecko_python/types/onchain/networks/tokens/info_get_response.py b/src/coingecko_python/types/onchain/networks/tokens/info_get_response.py index 80a9f60..c08edbe 100644 --- a/src/coingecko_python/types/onchain/networks/tokens/info_get_response.py +++ b/src/coingecko_python/types/onchain/networks/tokens/info_get_response.py @@ -13,6 +13,7 @@ "DataAttributesGtScoreDetails", "DataAttributesHolders", "DataAttributesHoldersDistributionPercentage", + "DataAttributesImage", ] @@ -46,6 +47,14 @@ class DataAttributesHolders(BaseModel): last_updated: Optional[str] = None +class DataAttributesImage(BaseModel): + large: Optional[str] = None + + small: Optional[str] = None + + thumb: Optional[str] = None + + class DataAttributes(BaseModel): address: Optional[str] = None @@ -67,6 +76,8 @@ class DataAttributes(BaseModel): holders: Optional[DataAttributesHolders] = None + image: Optional[DataAttributesImage] = None + image_url: Optional[str] = None mint_authority: Optional[str] = None diff --git a/src/coingecko_python/types/onchain/networks/tokens/multi_get_addresses_response.py b/src/coingecko_python/types/onchain/networks/tokens/multi_get_addresses_response.py index eb5fb0d..47fe449 100644 --- a/src/coingecko_python/types/onchain/networks/tokens/multi_get_addresses_response.py +++ b/src/coingecko_python/types/onchain/networks/tokens/multi_get_addresses_response.py @@ -51,6 +51,8 @@ class DataAttributes(BaseModel): name: Optional[str] = None + normalized_total_supply: Optional[str] = None + price_usd: Optional[str] = None symbol: Optional[str] = None diff --git a/src/coingecko_python/types/onchain/networks/tokens/pool_get_response.py b/src/coingecko_python/types/onchain/networks/tokens/pool_get_response.py index 520aa17..849b288 100644 --- a/src/coingecko_python/types/onchain/networks/tokens/pool_get_response.py +++ b/src/coingecko_python/types/onchain/networks/tokens/pool_get_response.py @@ -21,8 +21,6 @@ "DataRelationshipsBaseTokenData", "DataRelationshipsDex", "DataRelationshipsDexData", - "DataRelationshipsNetwork", - "DataRelationshipsNetworkData", "DataRelationshipsQuoteToken", "DataRelationshipsQuoteTokenData", "Included", @@ -164,16 +162,6 @@ class DataRelationshipsDex(BaseModel): data: Optional[DataRelationshipsDexData] = None -class DataRelationshipsNetworkData(BaseModel): - id: Optional[str] = None - - type: Optional[str] = None - - -class DataRelationshipsNetwork(BaseModel): - data: Optional[DataRelationshipsNetworkData] = None - - class DataRelationshipsQuoteTokenData(BaseModel): id: Optional[str] = None @@ -189,8 +177,6 @@ class DataRelationships(BaseModel): dex: Optional[DataRelationshipsDex] = None - network: Optional[DataRelationshipsNetwork] = None - quote_token: Optional[DataRelationshipsQuoteToken] = None diff --git a/src/coingecko_python/types/onchain/networks/tokens/trade_get_params.py b/src/coingecko_python/types/onchain/networks/tokens/trade_get_params.py new file mode 100644 index 0000000..0fc9336 --- /dev/null +++ b/src/coingecko_python/types/onchain/networks/tokens/trade_get_params.py @@ -0,0 +1,14 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["TradeGetParams"] + + +class TradeGetParams(TypedDict, total=False): + network: Required[str] + + trade_volume_in_usd_greater_than: float + """filter trades by trade volume in USD greater than this value Default value: 0""" diff --git a/src/coingecko_python/types/onchain/networks/tokens/trade_get_response.py b/src/coingecko_python/types/onchain/networks/tokens/trade_get_response.py new file mode 100644 index 0000000..e1fd1bd --- /dev/null +++ b/src/coingecko_python/types/onchain/networks/tokens/trade_get_response.py @@ -0,0 +1,53 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List, Optional + +from ....._models import BaseModel + +__all__ = ["TradeGetResponse", "Data", "DataAttributes"] + + +class DataAttributes(BaseModel): + block_number: Optional[int] = None + + block_timestamp: Optional[str] = None + + from_token_address: Optional[str] = None + + from_token_amount: Optional[str] = None + + kind: Optional[str] = None + + pool_address: Optional[str] = None + + pool_dex: Optional[str] = None + + price_from_in_currency_token: Optional[str] = None + + price_from_in_usd: Optional[str] = None + + price_to_in_currency_token: Optional[str] = None + + price_to_in_usd: Optional[str] = None + + to_token_address: Optional[str] = None + + to_token_amount: Optional[str] = None + + tx_from_address: Optional[str] = None + + tx_hash: Optional[str] = None + + volume_in_usd: Optional[str] = None + + +class Data(BaseModel): + id: Optional[str] = None + + attributes: Optional[DataAttributes] = None + + type: Optional[str] = None + + +class TradeGetResponse(BaseModel): + data: Optional[List[Data]] = None diff --git a/src/coingecko_python/types/onchain/networks/trending_pool_get_network_response.py b/src/coingecko_python/types/onchain/networks/trending_pool_get_network_response.py index 8c66ed2..e7634e8 100644 --- a/src/coingecko_python/types/onchain/networks/trending_pool_get_network_response.py +++ b/src/coingecko_python/types/onchain/networks/trending_pool_get_network_response.py @@ -21,8 +21,6 @@ "DataRelationshipsBaseTokenData", "DataRelationshipsDex", "DataRelationshipsDexData", - "DataRelationshipsNetwork", - "DataRelationshipsNetworkData", "DataRelationshipsQuoteToken", "DataRelationshipsQuoteTokenData", "Included", @@ -164,16 +162,6 @@ class DataRelationshipsDex(BaseModel): data: Optional[DataRelationshipsDexData] = None -class DataRelationshipsNetworkData(BaseModel): - id: Optional[str] = None - - type: Optional[str] = None - - -class DataRelationshipsNetwork(BaseModel): - data: Optional[DataRelationshipsNetworkData] = None - - class DataRelationshipsQuoteTokenData(BaseModel): id: Optional[str] = None @@ -189,8 +177,6 @@ class DataRelationships(BaseModel): dex: Optional[DataRelationshipsDex] = None - network: Optional[DataRelationshipsNetwork] = None - quote_token: Optional[DataRelationshipsQuoteToken] = None diff --git a/src/coingecko_python/types/onchain/networks/trending_pool_get_response.py b/src/coingecko_python/types/onchain/networks/trending_pool_get_response.py index 2e166e2..31eca13 100644 --- a/src/coingecko_python/types/onchain/networks/trending_pool_get_response.py +++ b/src/coingecko_python/types/onchain/networks/trending_pool_get_response.py @@ -21,8 +21,6 @@ "DataRelationshipsBaseTokenData", "DataRelationshipsDex", "DataRelationshipsDexData", - "DataRelationshipsNetwork", - "DataRelationshipsNetworkData", "DataRelationshipsQuoteToken", "DataRelationshipsQuoteTokenData", "Included", @@ -164,16 +162,6 @@ class DataRelationshipsDex(BaseModel): data: Optional[DataRelationshipsDexData] = None -class DataRelationshipsNetworkData(BaseModel): - id: Optional[str] = None - - type: Optional[str] = None - - -class DataRelationshipsNetwork(BaseModel): - data: Optional[DataRelationshipsNetworkData] = None - - class DataRelationshipsQuoteTokenData(BaseModel): id: Optional[str] = None @@ -189,8 +177,6 @@ class DataRelationships(BaseModel): dex: Optional[DataRelationshipsDex] = None - network: Optional[DataRelationshipsNetwork] = None - quote_token: Optional[DataRelationshipsQuoteToken] = None diff --git a/src/coingecko_python/types/onchain/pools/megafilter_get_response.py b/src/coingecko_python/types/onchain/pools/megafilter_get_response.py index 2c605e7..ddb700f 100644 --- a/src/coingecko_python/types/onchain/pools/megafilter_get_response.py +++ b/src/coingecko_python/types/onchain/pools/megafilter_get_response.py @@ -21,8 +21,6 @@ "DataRelationshipsBaseTokenData", "DataRelationshipsDex", "DataRelationshipsDexData", - "DataRelationshipsNetwork", - "DataRelationshipsNetworkData", "DataRelationshipsQuoteToken", "DataRelationshipsQuoteTokenData", "Included", @@ -164,16 +162,6 @@ class DataRelationshipsDex(BaseModel): data: Optional[DataRelationshipsDexData] = None -class DataRelationshipsNetworkData(BaseModel): - id: Optional[str] = None - - type: Optional[str] = None - - -class DataRelationshipsNetwork(BaseModel): - data: Optional[DataRelationshipsNetworkData] = None - - class DataRelationshipsQuoteTokenData(BaseModel): id: Optional[str] = None @@ -189,8 +177,6 @@ class DataRelationships(BaseModel): dex: Optional[DataRelationshipsDex] = None - network: Optional[DataRelationshipsNetwork] = None - quote_token: Optional[DataRelationshipsQuoteToken] = None diff --git a/src/coingecko_python/types/onchain/search/pool_get_response.py b/src/coingecko_python/types/onchain/search/pool_get_response.py index b2d3866..42c8178 100644 --- a/src/coingecko_python/types/onchain/search/pool_get_response.py +++ b/src/coingecko_python/types/onchain/search/pool_get_response.py @@ -21,8 +21,6 @@ "DataRelationshipsBaseTokenData", "DataRelationshipsDex", "DataRelationshipsDexData", - "DataRelationshipsNetwork", - "DataRelationshipsNetworkData", "DataRelationshipsQuoteToken", "DataRelationshipsQuoteTokenData", "Included", @@ -164,16 +162,6 @@ class DataRelationshipsDex(BaseModel): data: Optional[DataRelationshipsDexData] = None -class DataRelationshipsNetworkData(BaseModel): - id: Optional[str] = None - - type: Optional[str] = None - - -class DataRelationshipsNetwork(BaseModel): - data: Optional[DataRelationshipsNetworkData] = None - - class DataRelationshipsQuoteTokenData(BaseModel): id: Optional[str] = None @@ -189,8 +177,6 @@ class DataRelationships(BaseModel): dex: Optional[DataRelationshipsDex] = None - network: Optional[DataRelationshipsNetwork] = None - quote_token: Optional[DataRelationshipsQuoteToken] = None diff --git a/tests/api_resources/coins/test_tickers.py b/tests/api_resources/coins/test_tickers.py index 7b6064b..dfda9ab 100644 --- a/tests/api_resources/coins/test_tickers.py +++ b/tests/api_resources/coins/test_tickers.py @@ -31,6 +31,7 @@ def test_method_get_with_all_params(self, client: Coingecko) -> None: ticker = client.coins.tickers.get( id="bitcoin", depth=True, + dex_pair_format="contract_address", exchange_ids="binance", include_exchange_logo=True, order="trust_score_desc", @@ -90,6 +91,7 @@ async def test_method_get_with_all_params(self, async_client: AsyncCoingecko) -> ticker = await async_client.coins.tickers.get( id="bitcoin", depth=True, + dex_pair_format="contract_address", exchange_ids="binance", include_exchange_logo=True, order="trust_score_desc", diff --git a/tests/api_resources/exchanges/test_tickers.py b/tests/api_resources/exchanges/test_tickers.py index 588587b..3bffeb8 100644 --- a/tests/api_resources/exchanges/test_tickers.py +++ b/tests/api_resources/exchanges/test_tickers.py @@ -32,6 +32,7 @@ def test_method_get_with_all_params(self, client: Coingecko) -> None: id="binance", coin_ids="coin_ids", depth=True, + dex_pair_format="contract_address", include_exchange_logo=True, order="trust_score_desc", page=0, @@ -91,6 +92,7 @@ async def test_method_get_with_all_params(self, async_client: AsyncCoingecko) -> id="binance", coin_ids="coin_ids", depth=True, + dex_pair_format="contract_address", include_exchange_logo=True, order="trust_score_desc", page=0, diff --git a/tests/api_resources/onchain/networks/pools/test_multi.py b/tests/api_resources/onchain/networks/pools/test_multi.py index 6b8356c..2bd9aea 100644 --- a/tests/api_resources/onchain/networks/pools/test_multi.py +++ b/tests/api_resources/onchain/networks/pools/test_multi.py @@ -33,6 +33,7 @@ def test_method_get_addresses_with_all_params(self, client: Coingecko) -> None: addresses="addresses", network="eth", include="include", + include_volume_breakdown=True, ) assert_matches_type(MultiGetAddressesResponse, multi, path=["response"]) @@ -99,6 +100,7 @@ async def test_method_get_addresses_with_all_params(self, async_client: AsyncCoi addresses="addresses", network="eth", include="include", + include_volume_breakdown=True, ) assert_matches_type(MultiGetAddressesResponse, multi, path=["response"]) diff --git a/tests/api_resources/onchain/networks/pools/test_ohlcv.py b/tests/api_resources/onchain/networks/pools/test_ohlcv.py index 2b2a5d4..c793ac0 100644 --- a/tests/api_resources/onchain/networks/pools/test_ohlcv.py +++ b/tests/api_resources/onchain/networks/pools/test_ohlcv.py @@ -38,6 +38,7 @@ def test_method_get_timeframe_with_all_params(self, client: Coingecko) -> None: aggregate="aggregate", before_timestamp=0, currency="usd", + include_empty_intervals=True, limit=0, ) assert_matches_type(OhlcvGetTimeframeResponse, ohlcv, path=["response"]) @@ -114,6 +115,7 @@ async def test_method_get_timeframe_with_all_params(self, async_client: AsyncCoi aggregate="aggregate", before_timestamp=0, currency="usd", + include_empty_intervals=True, limit=0, ) assert_matches_type(OhlcvGetTimeframeResponse, ohlcv, path=["response"]) diff --git a/tests/api_resources/onchain/networks/test_pools.py b/tests/api_resources/onchain/networks/test_pools.py index b69892d..7921fec 100644 --- a/tests/api_resources/onchain/networks/test_pools.py +++ b/tests/api_resources/onchain/networks/test_pools.py @@ -89,6 +89,7 @@ def test_method_get_address_with_all_params(self, client: Coingecko) -> None: address="0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640", network="eth", include="include", + include_volume_breakdown=True, ) assert_matches_type(PoolGetAddressResponse, pool, path=["response"]) @@ -208,6 +209,7 @@ async def test_method_get_address_with_all_params(self, async_client: AsyncCoing address="0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640", network="eth", include="include", + include_volume_breakdown=True, ) assert_matches_type(PoolGetAddressResponse, pool, path=["response"]) diff --git a/tests/api_resources/onchain/networks/tokens/test_trades.py b/tests/api_resources/onchain/networks/tokens/test_trades.py new file mode 100644 index 0000000..7e10b07 --- /dev/null +++ b/tests/api_resources/onchain/networks/tokens/test_trades.py @@ -0,0 +1,146 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import os +from typing import Any, cast + +import pytest + +from tests.utils import assert_matches_type +from coingecko_python import Coingecko, AsyncCoingecko +from coingecko_python.types.onchain.networks.tokens import TradeGetResponse + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestTrades: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @pytest.mark.skip() + @parametrize + def test_method_get(self, client: Coingecko) -> None: + trade = client.onchain.networks.tokens.trades.get( + token_address="0xdac17f958d2ee523a2206206994597c13d831ec7", + network="eth", + ) + assert_matches_type(TradeGetResponse, trade, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_method_get_with_all_params(self, client: Coingecko) -> None: + trade = client.onchain.networks.tokens.trades.get( + token_address="0xdac17f958d2ee523a2206206994597c13d831ec7", + network="eth", + trade_volume_in_usd_greater_than=0, + ) + assert_matches_type(TradeGetResponse, trade, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_raw_response_get(self, client: Coingecko) -> None: + response = client.onchain.networks.tokens.trades.with_raw_response.get( + token_address="0xdac17f958d2ee523a2206206994597c13d831ec7", + network="eth", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + trade = response.parse() + assert_matches_type(TradeGetResponse, trade, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_streaming_response_get(self, client: Coingecko) -> None: + with client.onchain.networks.tokens.trades.with_streaming_response.get( + token_address="0xdac17f958d2ee523a2206206994597c13d831ec7", + network="eth", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + trade = response.parse() + assert_matches_type(TradeGetResponse, trade, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + def test_path_params_get(self, client: Coingecko) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `network` but received ''"): + client.onchain.networks.tokens.trades.with_raw_response.get( + token_address="0xdac17f958d2ee523a2206206994597c13d831ec7", + network="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `token_address` but received ''"): + client.onchain.networks.tokens.trades.with_raw_response.get( + token_address="", + network="eth", + ) + + +class TestAsyncTrades: + parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) + + @pytest.mark.skip() + @parametrize + async def test_method_get(self, async_client: AsyncCoingecko) -> None: + trade = await async_client.onchain.networks.tokens.trades.get( + token_address="0xdac17f958d2ee523a2206206994597c13d831ec7", + network="eth", + ) + assert_matches_type(TradeGetResponse, trade, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_method_get_with_all_params(self, async_client: AsyncCoingecko) -> None: + trade = await async_client.onchain.networks.tokens.trades.get( + token_address="0xdac17f958d2ee523a2206206994597c13d831ec7", + network="eth", + trade_volume_in_usd_greater_than=0, + ) + assert_matches_type(TradeGetResponse, trade, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_raw_response_get(self, async_client: AsyncCoingecko) -> None: + response = await async_client.onchain.networks.tokens.trades.with_raw_response.get( + token_address="0xdac17f958d2ee523a2206206994597c13d831ec7", + network="eth", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + trade = await response.parse() + assert_matches_type(TradeGetResponse, trade, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_streaming_response_get(self, async_client: AsyncCoingecko) -> None: + async with async_client.onchain.networks.tokens.trades.with_streaming_response.get( + token_address="0xdac17f958d2ee523a2206206994597c13d831ec7", + network="eth", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + trade = await response.parse() + assert_matches_type(TradeGetResponse, trade, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + async def test_path_params_get(self, async_client: AsyncCoingecko) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `network` but received ''"): + await async_client.onchain.networks.tokens.trades.with_raw_response.get( + token_address="0xdac17f958d2ee523a2206206994597c13d831ec7", + network="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `token_address` but received ''"): + await async_client.onchain.networks.tokens.trades.with_raw_response.get( + token_address="", + network="eth", + ) diff --git a/tests/api_resources/test_coins.py b/tests/api_resources/test_coins.py index f87dfa6..593230f 100644 --- a/tests/api_resources/test_coins.py +++ b/tests/api_resources/test_coins.py @@ -32,6 +32,7 @@ def test_method_get_id_with_all_params(self, client: Coingecko) -> None: id="bitcoin", community_data=True, developer_data=True, + dex_pair_format="contract_address", localization=True, market_data=True, sparkline=True, @@ -92,6 +93,7 @@ async def test_method_get_id_with_all_params(self, async_client: AsyncCoingecko) id="bitcoin", community_data=True, developer_data=True, + dex_pair_format="contract_address", localization=True, market_data=True, sparkline=True, diff --git a/tests/api_resources/test_exchanges.py b/tests/api_resources/test_exchanges.py index 4f67a42..5f32935 100644 --- a/tests/api_resources/test_exchanges.py +++ b/tests/api_resources/test_exchanges.py @@ -62,7 +62,16 @@ def test_streaming_response_get(self, client: Coingecko) -> None: @parametrize def test_method_get_id(self, client: Coingecko) -> None: exchange = client.exchanges.get_id( - "binance", + id="binance", + ) + assert_matches_type(ExchangeGetIDResponse, exchange, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_method_get_id_with_all_params(self, client: Coingecko) -> None: + exchange = client.exchanges.get_id( + id="binance", + dex_pair_format="contract_address", ) assert_matches_type(ExchangeGetIDResponse, exchange, path=["response"]) @@ -70,7 +79,7 @@ def test_method_get_id(self, client: Coingecko) -> None: @parametrize def test_raw_response_get_id(self, client: Coingecko) -> None: response = client.exchanges.with_raw_response.get_id( - "binance", + id="binance", ) assert response.is_closed is True @@ -82,7 +91,7 @@ def test_raw_response_get_id(self, client: Coingecko) -> None: @parametrize def test_streaming_response_get_id(self, client: Coingecko) -> None: with client.exchanges.with_streaming_response.get_id( - "binance", + id="binance", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -97,7 +106,7 @@ def test_streaming_response_get_id(self, client: Coingecko) -> None: def test_path_params_get_id(self, client: Coingecko) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"): client.exchanges.with_raw_response.get_id( - "", + id="", ) @pytest.mark.skip() @@ -181,7 +190,16 @@ async def test_streaming_response_get(self, async_client: AsyncCoingecko) -> Non @parametrize async def test_method_get_id(self, async_client: AsyncCoingecko) -> None: exchange = await async_client.exchanges.get_id( - "binance", + id="binance", + ) + assert_matches_type(ExchangeGetIDResponse, exchange, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_method_get_id_with_all_params(self, async_client: AsyncCoingecko) -> None: + exchange = await async_client.exchanges.get_id( + id="binance", + dex_pair_format="contract_address", ) assert_matches_type(ExchangeGetIDResponse, exchange, path=["response"]) @@ -189,7 +207,7 @@ async def test_method_get_id(self, async_client: AsyncCoingecko) -> None: @parametrize async def test_raw_response_get_id(self, async_client: AsyncCoingecko) -> None: response = await async_client.exchanges.with_raw_response.get_id( - "binance", + id="binance", ) assert response.is_closed is True @@ -201,7 +219,7 @@ async def test_raw_response_get_id(self, async_client: AsyncCoingecko) -> None: @parametrize async def test_streaming_response_get_id(self, async_client: AsyncCoingecko) -> None: async with async_client.exchanges.with_streaming_response.get_id( - "binance", + id="binance", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -216,7 +234,7 @@ async def test_streaming_response_get_id(self, async_client: AsyncCoingecko) -> async def test_path_params_get_id(self, async_client: AsyncCoingecko) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"): await async_client.exchanges.with_raw_response.get_id( - "", + id="", ) @pytest.mark.skip() From cbcc66ae0a519e5444f8040f571a92a6f34dc443 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 15:19:34 +0000 Subject: [PATCH 2/2] release: 0.1.0-alpha.3 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/coingecko_python/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f14b480..aaf968a 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.2" + ".": "0.1.0-alpha.3" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9074e2b..3e31371 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.1.0-alpha.3 (2025-05-29) + +Full Changelog: [v0.1.0-alpha.2...v0.1.0-alpha.3](https://github.com/coingecko/coingecko-python/compare/v0.1.0-alpha.2...v0.1.0-alpha.3) + +### Features + +* **api:** update via SDK Studio ([0812f21](https://github.com/coingecko/coingecko-python/commit/0812f2163205be4e48486f201ab979b78593e9a1)) + ## 0.1.0-alpha.2 (2025-05-28) Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/coingecko/coingecko-python/compare/v0.1.0-alpha.1...v0.1.0-alpha.2) diff --git a/pyproject.toml b/pyproject.toml index 4ea5d45..dd4a4b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "coingecko_python" -version = "0.1.0-alpha.2" +version = "0.1.0-alpha.3" description = "The official Python library for the coingecko API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/coingecko_python/_version.py b/src/coingecko_python/_version.py index 9fc083c..9a3224f 100644 --- a/src/coingecko_python/_version.py +++ b/src/coingecko_python/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "coingecko_python" -__version__ = "0.1.0-alpha.2" # x-release-please-version +__version__ = "0.1.0-alpha.3" # x-release-please-version