Source code for coinbase.rest.convert

from typing import Any, Dict, Optional

from coinbase.constants import API_PREFIX
from coinbase.rest.types.convert_types import (
    CommitConvertTradeResponse,
    CreateConvertQuoteResponse,
    GetConvertTradeResponse,
)


[docs] def create_convert_quote( self, from_account: str, to_account: str, amount: str, user_incentive_id: Optional[str] = None, code_val: Optional[str] = None, **kwargs, ) -> CreateConvertQuoteResponse: """ **Create Convert Quote** ________________________ [POST] https://api.coinbase.com/api/v3/brokerage/convert/quote __________ **Description:** Create a convert quote with a specified source currency, target currency, and amount. __________ **Read more on the official documentation:** `Create Convert Quote <https://docs.cdp.coinbase.com/api-reference/advanced-trade-api/rest-api/convert/create-convert-quote>`_ """ endpoint = f"{API_PREFIX}/convert/quote" data = { "from_account": from_account, "to_account": to_account, "amount": amount, } trade_incentive_metadata = { "user_incentive_id": user_incentive_id, "code_val": code_val, } filtered_trade_incentive_metadata = { key: value for key, value in trade_incentive_metadata.items() if value is not None } if filtered_trade_incentive_metadata: data["trade_incentive_metadata"] = filtered_trade_incentive_metadata return CreateConvertQuoteResponse(self.post(endpoint, data=data, **kwargs))
[docs] def get_convert_trade( self, trade_id: str, from_account: str, to_account: str, **kwargs ) -> GetConvertTradeResponse: """ **Get Convert Trade** _____________________ [GET] https://api.coinbase.com/api/v3/brokerage/convert/trade/{trade_id} __________ **Description:** Gets a list of information about a convert trade with a specified trade ID, source currency, and target currency. __________ **Read more on the official documentation:** `Get Convert Trade <https://docs.cdp.coinbase.com/api-reference/advanced-trade-api/rest-api/convert/get-convert-trade>`_ """ endpoint = f"{API_PREFIX}/convert/trade/{trade_id}" params = { "from_account": from_account, "to_account": to_account, } return GetConvertTradeResponse(self.get(endpoint, params=params, **kwargs))
[docs] def commit_convert_trade( self, trade_id: str, from_account: str, to_account: str, **kwargs ) -> CommitConvertTradeResponse: """ **Commit Convert Trade** ________________________ [POST] https://api.coinbase.com/api/v3/brokerage/convert/trade/{trade_id} __________ **Description:** Commits a convert trade with a specified trade ID, source currency, and target currency. __________ **Read more on the official documentation:** `Commit Convert Trade <https://docs.cdp.coinbase.com/api-reference/advanced-trade-api/rest-api/convert/commit-convert-trade>`_ """ endpoint = f"{API_PREFIX}/convert/trade/{trade_id}" data = { "from_account": from_account, "to_account": to_account, } return CommitConvertTradeResponse(self.post(endpoint, data=data, **kwargs))