1use 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#[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}