use crate::packed_value;
use crate::protocol::JsonSchema;
use crate::protocol::{symbology::Venue, Account};
use netidx_derive::Pack;
use serde_derive::{Deserialize, Serialize};
#[derive(
Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Pack, Serialize, Deserialize, JsonSchema,
)]
pub struct Label(pub String);
#[derive(
Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Pack, Serialize, Deserialize, JsonSchema,
)]
#[serde(tag = "type", content = "data")]
pub enum SecretKey {
ExchangeKey(Label, Venue, Option<Account>),
EVMKey(Label, Venue),
}
packed_value!(SecretKey);
#[derive(Debug, Clone, PartialEq, Eq, Pack)]
pub enum FromSecrets {
SecretAdded(SecretKey),
SecretDeleted(SecretKey),
}
packed_value!(FromSecrets);