use std::fmt;
use serde::{Deserialize, Serialize};
#[derive(Clone, Serialize, Deserialize)]
pub struct ApiCredentials {
#[serde(rename = "apiKey")]
pub api_key: String,
pub secret: String,
pub passphrase: String,
}
impl ApiCredentials {
pub fn new(
api_key: impl Into<String>,
secret: impl Into<String>,
passphrase: impl Into<String>,
) -> Self {
Self {
api_key: api_key.into(),
secret: secret.into(),
passphrase: passphrase.into(),
}
}
pub fn from_env() -> Result<Self, std::env::VarError> {
Ok(Self {
api_key: std::env::var("POLYMARKET_API_KEY")?,
secret: std::env::var("POLYMARKET_API_SECRET")?,
passphrase: std::env::var("POLYMARKET_API_PASSPHRASE")?,
})
}
}
impl fmt::Debug for ApiCredentials {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_struct("ApiCredentials")
.field("api_key", &"<redacted>")
.field("secret", &"<redacted>")
.field("passphrase", &"<redacted>")
.finish()
}
}