redgold-crawler 0.1.48

Decentralized Portfolio Contracts & Data Lake
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize, Clone)]
#[serde(untagged)]
pub enum Message {
    Subscription(SubscriptionMessage),
    Ticker(TickerMessage),
}

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SubscriptionMessage {
    #[serde(rename = "type")]
    pub message_type: String,
    pub channels: Vec<Channel>,
}

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Channel {
    pub name: String,
    pub product_ids: Vec<String>,
    pub account_ids: Option<Vec<String>>,
}

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct TickerMessage {
    #[serde(rename = "type")]
    pub message_type: String,
    pub sequence: u64,
    pub product_id: String,
    pub price: String,
    pub open_24h: String,
    pub volume_24h: String,
    pub low_24h: String,
    pub high_24h: String,
    pub volume_30d: String,
    pub best_bid: String,
    pub best_bid_size: String,
    pub best_ask: String,
    pub best_ask_size: String,
    pub side: String,
    pub time: String,
    pub trade_id: u64,
    pub last_size: String,
}