Skip to main content

polyester/models/
auth.rs

1//! Auth-related SDK models.
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
6pub struct MeResult {
7    pub account_id: String,
8    #[serde(skip_serializing_if = "Option::is_none")]
9    pub api_key_id: Option<String>,
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub username: Option<String>,
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub root_smart_account_address: Option<String>,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
17pub struct UserProfile {
18    pub username: String,
19    pub bio: String,
20    pub website: String,
21    pub twitter: String,
22    pub twitter_verified: bool,
23    pub discord: String,
24    pub discord_verified: bool,
25    pub avatar_url: String,
26    #[serde(skip_serializing_if = "Option::is_none")]
27    pub created_at_ms: Option<i64>,
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub next_username_change_at_ms: Option<i64>,
30    pub vip_tier: i32,
31    pub username_unlocked: bool,
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
35pub struct UsernameHistoryEntry {
36    pub username: String,
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub changed_at_ms: Option<i64>,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
42pub struct UsernameHistoryList {
43    pub entries: Vec<UsernameHistoryEntry>,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
47pub struct AccountIdentity {
48    pub account_id: String,
49    pub username: String,
50    pub avatar_url: String,
51    pub root_smart_account_address: String,
52}
53
54/// Locally generated Ed25519 keypair for API key creation.
55#[derive(Debug, Clone, PartialEq, Eq)]
56pub struct Ed25519Keypair {
57    pub public_key_hex: String,
58    pub secret_key_hex: String,
59    pub public_key: Vec<u8>,
60    pub secret_key: Vec<u8>,
61}