diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e8fdcd6..caf1487 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.10.1" + ".": "1.11.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 611597c..b4544a5 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 81 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/coingecko%2Fcoingecko-91c83447321ba66e6f4972b448ee54d2361be73423ff0200633740f47dfb0cea.yml -openapi_spec_hash: 775dac0b3f4bd1d7bb64745c22546758 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/coingecko%2Fcoingecko-9782d0fc256ca80aa3bb4c14cb3b3944b0076c5cea6046563c8a5979adc8981d.yml +openapi_spec_hash: dcb61d2acfd79e5b906fd191f6b512bb config_hash: 7710c0bb2c0cea0ec5a44596f81188a6 diff --git a/CHANGELOG.md b/CHANGELOG.md index b5d9272..0c41997 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 1.11.0 (2025-10-06) + +Full Changelog: [v1.10.1...v1.11.0](https://github.com/coingecko/coingecko-python/compare/v1.10.1...v1.11.0) + +### Features + +* **api:** api update ([384c417](https://github.com/coingecko/coingecko-python/commit/384c4173d02da6ee84c5650ded6c56530a960fd1)) + ## 1.10.1 (2025-09-25) Full Changelog: [v1.10.0...v1.10.1](https://github.com/coingecko/coingecko-python/compare/v1.10.0...v1.10.1) diff --git a/pyproject.toml b/pyproject.toml index ee7c296..b926761 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "coingecko_sdk" -version = "1.10.1" +version = "1.11.0" description = "The official Python library for the coingecko API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/coingecko_sdk/_version.py b/src/coingecko_sdk/_version.py index 0e50959..65e4928 100644 --- a/src/coingecko_sdk/_version.py +++ b/src/coingecko_sdk/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "coingecko_sdk" -__version__ = "1.10.1" # x-release-please-version +__version__ = "1.11.0" # x-release-please-version diff --git a/src/coingecko_sdk/resources/onchain/pools/megafilter.py b/src/coingecko_sdk/resources/onchain/pools/megafilter.py index a1a3b52..fe36442 100644 --- a/src/coingecko_sdk/resources/onchain/pools/megafilter.py +++ b/src/coingecko_sdk/resources/onchain/pools/megafilter.py @@ -77,6 +77,10 @@ def get( "h24_trending", "h24_tx_count_desc", "h24_volume_usd_desc", + "m5_price_change_percentage_asc", + "h1_price_change_percentage_asc", + "h6_price_change_percentage_asc", + "h24_price_change_percentage_asc", "m5_price_change_percentage_desc", "h1_price_change_percentage_desc", "h6_price_change_percentage_desc", @@ -271,6 +275,10 @@ async def get( "h24_trending", "h24_tx_count_desc", "h24_volume_usd_desc", + "m5_price_change_percentage_asc", + "h1_price_change_percentage_asc", + "h6_price_change_percentage_asc", + "h24_price_change_percentage_asc", "m5_price_change_percentage_desc", "h1_price_change_percentage_desc", "h6_price_change_percentage_desc", diff --git a/src/coingecko_sdk/types/derivatives/exchange_get_id_response.py b/src/coingecko_sdk/types/derivatives/exchange_get_id_response.py index 01e25ea..03de392 100644 --- a/src/coingecko_sdk/types/derivatives/exchange_get_id_response.py +++ b/src/coingecko_sdk/types/derivatives/exchange_get_id_response.py @@ -4,50 +4,79 @@ from ..._models import BaseModel -__all__ = ["ExchangeGetIDResponse", "Ticker"] +__all__ = ["ExchangeGetIDResponse", "Ticker", "TickerConvertedLast", "TickerConvertedVolume"] + + +class TickerConvertedLast(BaseModel): + btc: Optional[str] = None + + eth: Optional[str] = None + + usd: Optional[str] = None + + +class TickerConvertedVolume(BaseModel): + btc: Optional[str] = None + + eth: Optional[str] = None + + usd: Optional[str] = None class Ticker(BaseModel): - basis: Optional[float] = None - """difference of derivative price and index price""" + base: Optional[str] = None + """derivative base asset""" + + bid_ask_spread: Optional[float] = None + """derivative bid ask spread""" + + coin_id: Optional[str] = None + """derivative base asset coin ID""" contract_type: Optional[str] = None """derivative contract type""" + converted_last: Optional[TickerConvertedLast] = None + + converted_volume: Optional[TickerConvertedVolume] = None + expired_at: Optional[str] = None funding_rate: Optional[float] = None """derivative funding rate""" - index: Optional[float] = None - """derivative underlying asset price""" - - index_id: Optional[str] = None - """derivative underlying asset""" + h24_percentage_change: Optional[float] = None + """derivative price percentage change in 24 hours""" - last_traded_at: Optional[float] = None - """derivative last updated time""" + h24_volume: Optional[float] = None + """derivative volume in 24 hours""" - market: Optional[str] = None - """derivative market name""" + index: Optional[float] = None + """derivative underlying asset price""" - open_interest: Optional[float] = None - """derivative open interest""" + index_basis_percentage: Optional[float] = None + """difference of derivative price and index price in percentage""" - price: Optional[str] = None - """derivative ticker price""" + last: Optional[float] = None + """derivative last price""" - price_percentage_change_24h: Optional[float] = None - """derivative ticker price percentage change in 24 hours""" + last_traded: Optional[float] = None + """derivative last updated time""" - spread: Optional[float] = None - """derivative bid ask spread""" + open_interest_usd: Optional[float] = None + """derivative open interest in USD""" symbol: Optional[str] = None """derivative ticker symbol""" - volume_24h: Optional[float] = None - """derivative volume in 24 hours""" + target: Optional[str] = None + """derivative target asset""" + + target_coin_id: Optional[str] = None + """derivative target asset coin ID""" + + trade_url: Optional[str] = None + """derivative trade url""" class ExchangeGetIDResponse(BaseModel): @@ -74,7 +103,7 @@ class ExchangeGetIDResponse(BaseModel): tickers: Optional[List[Ticker]] = None - trade_volume_24h_btc: Optional[str] = None + trade_volume_24h_btc: Optional[float] = None """derivatives exchange trade volume in BTC in 24 hours""" url: Optional[str] = None diff --git a/src/coingecko_sdk/types/onchain/networks/tokens/multi_get_addresses_response.py b/src/coingecko_sdk/types/onchain/networks/tokens/multi_get_addresses_response.py index 727ae62..f671dd6 100644 --- a/src/coingecko_sdk/types/onchain/networks/tokens/multi_get_addresses_response.py +++ b/src/coingecko_sdk/types/onchain/networks/tokens/multi_get_addresses_response.py @@ -8,6 +8,7 @@ "MultiGetAddressesResponse", "Data", "DataAttributes", + "DataAttributesLaunchpadDetails", "DataAttributesVolumeUsd", "DataRelationships", "DataRelationshipsTopPools", @@ -33,6 +34,16 @@ ] +class DataAttributesLaunchpadDetails(BaseModel): + completed: Optional[bool] = None + + completed_at: Optional[str] = None + + graduation_percentage: Optional[float] = None + + migrated_destination_pool_address: Optional[str] = None + + class DataAttributesVolumeUsd(BaseModel): h24: Optional[str] = None @@ -48,6 +59,8 @@ class DataAttributes(BaseModel): image_url: Optional[str] = None + launchpad_details: Optional[DataAttributesLaunchpadDetails] = None + market_cap_usd: Optional[str] = None name: Optional[str] = None diff --git a/src/coingecko_sdk/types/onchain/pools/megafilter_get_params.py b/src/coingecko_sdk/types/onchain/pools/megafilter_get_params.py index 34a6a97..da6986f 100644 --- a/src/coingecko_sdk/types/onchain/pools/megafilter_get_params.py +++ b/src/coingecko_sdk/types/onchain/pools/megafilter_get_params.py @@ -102,6 +102,10 @@ class MegafilterGetParams(TypedDict, total=False): "h24_trending", "h24_tx_count_desc", "h24_volume_usd_desc", + "m5_price_change_percentage_asc", + "h1_price_change_percentage_asc", + "h6_price_change_percentage_asc", + "h24_price_change_percentage_asc", "m5_price_change_percentage_desc", "h1_price_change_percentage_desc", "h6_price_change_percentage_desc", diff --git a/tests/api_resources/onchain/networks/tokens/test_multi.py b/tests/api_resources/onchain/networks/tokens/test_multi.py index 0aabebb..181959c 100644 --- a/tests/api_resources/onchain/networks/tokens/test_multi.py +++ b/tests/api_resources/onchain/networks/tokens/test_multi.py @@ -22,7 +22,7 @@ class TestMulti: def test_method_get_addresses(self, client: Coingecko) -> None: multi = client.onchain.networks.tokens.multi.get_addresses( addresses="addresses", - network="eth", + network="solana", ) assert_matches_type(MultiGetAddressesResponse, multi, path=["response"]) @@ -31,7 +31,7 @@ def test_method_get_addresses(self, client: Coingecko) -> None: def test_method_get_addresses_with_all_params(self, client: Coingecko) -> None: multi = client.onchain.networks.tokens.multi.get_addresses( addresses="addresses", - network="eth", + network="solana", include="top_pools", include_composition=True, ) @@ -42,7 +42,7 @@ def test_method_get_addresses_with_all_params(self, client: Coingecko) -> None: def test_raw_response_get_addresses(self, client: Coingecko) -> None: response = client.onchain.networks.tokens.multi.with_raw_response.get_addresses( addresses="addresses", - network="eth", + network="solana", ) assert response.is_closed is True @@ -55,7 +55,7 @@ def test_raw_response_get_addresses(self, client: Coingecko) -> None: def test_streaming_response_get_addresses(self, client: Coingecko) -> None: with client.onchain.networks.tokens.multi.with_streaming_response.get_addresses( addresses="addresses", - network="eth", + network="solana", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -77,7 +77,7 @@ def test_path_params_get_addresses(self, client: Coingecko) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `addresses` but received ''"): client.onchain.networks.tokens.multi.with_raw_response.get_addresses( addresses="", - network="eth", + network="solana", ) @@ -91,7 +91,7 @@ class TestAsyncMulti: async def test_method_get_addresses(self, async_client: AsyncCoingecko) -> None: multi = await async_client.onchain.networks.tokens.multi.get_addresses( addresses="addresses", - network="eth", + network="solana", ) assert_matches_type(MultiGetAddressesResponse, multi, path=["response"]) @@ -100,7 +100,7 @@ async def test_method_get_addresses(self, async_client: AsyncCoingecko) -> None: async def test_method_get_addresses_with_all_params(self, async_client: AsyncCoingecko) -> None: multi = await async_client.onchain.networks.tokens.multi.get_addresses( addresses="addresses", - network="eth", + network="solana", include="top_pools", include_composition=True, ) @@ -111,7 +111,7 @@ async def test_method_get_addresses_with_all_params(self, async_client: AsyncCoi async def test_raw_response_get_addresses(self, async_client: AsyncCoingecko) -> None: response = await async_client.onchain.networks.tokens.multi.with_raw_response.get_addresses( addresses="addresses", - network="eth", + network="solana", ) assert response.is_closed is True @@ -124,7 +124,7 @@ async def test_raw_response_get_addresses(self, async_client: AsyncCoingecko) -> async def test_streaming_response_get_addresses(self, async_client: AsyncCoingecko) -> None: async with async_client.onchain.networks.tokens.multi.with_streaming_response.get_addresses( addresses="addresses", - network="eth", + network="solana", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -146,5 +146,5 @@ async def test_path_params_get_addresses(self, async_client: AsyncCoingecko) -> with pytest.raises(ValueError, match=r"Expected a non-empty value for `addresses` but received ''"): await async_client.onchain.networks.tokens.multi.with_raw_response.get_addresses( addresses="", - network="eth", + network="solana", )