Module rest_client

Source
Expand description

Coinbase Advanced Trade REST API Client

A comprehensive implementation of the Coinbase Advanced Trade REST API with support for:

  • ECDSA (ES256) authentication for Advanced Trade
  • HMAC-SHA256 authentication for legacy API
  • Order management (place, cancel, modify, get status)
  • Account management (balances, fees, portfolios)
  • Market data (products, order book, candles, trades)
  • Portfolio management (create, list, move funds)
  • Transaction history and fills

§Authentication

The client supports both authentication methods:

  • ECDSA (Recommended): For Coinbase Advanced Trade API using ES256 JWT tokens
  • HMAC-SHA256: For legacy Coinbase Pro API

§Usage

use rusty_ems::exchanges::coinbase::CoinbaseRestClient;
use rusty_common::auth::exchanges::coinbase::CoinbaseAuth;
use std::sync::Arc;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // ECDSA authentication (Advanced Trade)
    let auth = Arc::new(CoinbaseAuth::new_ecdsa(
        "your_api_key".into(),
        "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----".into()
    )?);

    let client = CoinbaseRestClient::new(auth, false); // false = production

    // Get account balances
    let accounts = client.get_accounts().await?;
    println!("Accounts: {:#?}", accounts);

    Ok(())
}

Structs§

CoinbaseAccount
Account information
CoinbaseAccountBalance
Account balance information
CoinbaseCandle
Candles data for market analysis
CoinbaseFeeStructure
Fee structure
CoinbaseFill
Fill information
CoinbaseLimitOrder
Limit order configuration
CoinbaseLimitOrderGtd
Limit order with Good Till Date
CoinbaseMarketOrder
Market order configuration
CoinbaseOrder
Order information from Coinbase
CoinbaseOrderBook
Order book data
CoinbaseOrderErrorResponse
Error response from order operations
CoinbaseOrderRequest
Order request for creating new orders
CoinbaseOrderResponse
Response from order operations
CoinbaseOrderSuccessResponse
Successful order response
CoinbasePortfolio
Portfolio information
CoinbasePriceBook
Price book with bids and asks
CoinbasePriceLevel
Price level in order book
CoinbaseProduct
Product information
CoinbaseRestClient
Coinbase REST API client
CoinbaseStopLimitOrder
Stop limit order configuration
CoinbaseStopLimitOrderGtd
Stop limit order with Good Till Date
CoinbaseTrade
Trade data
CoinbaseTransaction
Transaction summary

Enums§

CoinbaseOrderConfiguration
Order configuration for different order types