midgard_rs/types/
member_pool.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3use serde_aux::prelude::*;
4use serde_with::formats::Flexible;
5use serde_with::TimestampSeconds;
6
7/*
8
9*** Member Pool Scheme ***
10
11{
12		"assetAdded": "360000",
13		"assetAddress": "17c57oQDkMkjiHTmDbjH2W1Jj7bRrqtV4X",
14		"assetDeposit": "360000",
15		"assetPending": "0",
16		"assetWithdrawn": "0",
17		"dateFirstAdded": "1699829623",
18		"dateLastAdded": "1699829623",
19		"liquidityUnits": "775667659",
20		"pool": "BTC.BTC",
21		"runeAdded": "0",
22		"runeAddress": "",
23		"runeDeposit": "0",
24		"runePending": "0",
25		"runeWithdrawn": "0"
26}
27
28*/
29
30#[serde_with::serde_as]
31#[derive(Debug, Serialize, Deserialize, Clone)]
32pub struct MemberPool {
33	#[serde(rename = "assetAdded", deserialize_with = "deserialize_number_from_string")]
34	asset_added: u64,
35
36	#[serde(rename = "assetAddress")]
37	asset_address: String,
38
39	#[serde(rename = "assetDeposit", deserialize_with = "deserialize_number_from_string")]
40	asset_deposit: u64,
41
42	#[serde(rename = "assetPending", deserialize_with = "deserialize_number_from_string")]
43	asset_pending: u64,
44
45	#[serde(rename = "assetWithdrawn", deserialize_with = "deserialize_number_from_string")]
46	asset_withdrawn: u64,
47
48	#[serde_as(as = "TimestampSeconds<String, Flexible>")]
49	#[serde(rename = "dateFirstAdded")]
50	date_first_added: DateTime<Utc>,
51
52	#[serde_as(as = "TimestampSeconds<String, Flexible>")]
53	#[serde(rename = "dateLastAdded")]
54	date_last_added: DateTime<Utc>,
55
56	#[serde(rename = "liquidityUnits", deserialize_with = "deserialize_number_from_string")]
57	liquidity_units: u64,
58
59	pool: String,
60
61	#[serde(rename = "runeAdded", deserialize_with = "deserialize_number_from_string")]
62	rune_added: u64,
63
64	#[serde(rename = "runeAddress")]
65	rune_address: String,
66
67	#[serde(rename = "runeDeposit", deserialize_with = "deserialize_number_from_string")]
68	rune_deposit: u64,
69
70	#[serde(rename = "runePending", deserialize_with = "deserialize_number_from_string")]
71	rune_pending: u64,
72
73	#[serde(rename = "runeWithdrawn", deserialize_with = "deserialize_number_from_string")]
74	rune_withdrawn: u64,
75}
76
77impl MemberPool {
78	#[must_use]
79	pub const fn get_asset_added(&self) -> &u64 {
80		&self.asset_added
81	}
82
83	#[must_use]
84	pub const fn get_asset_address(&self) -> &String {
85		&self.asset_address
86	}
87
88	#[must_use]
89	pub const fn get_asset_deposit(&self) -> &u64 {
90		&self.asset_deposit
91	}
92
93	#[must_use]
94	pub const fn get_asset_pending(&self) -> &u64 {
95		&self.asset_pending
96	}
97
98	#[must_use]
99	pub const fn get_asset_withdrawn(&self) -> &u64 {
100		&self.asset_withdrawn
101	}
102
103	#[must_use]
104	pub const fn get_date_first_added(&self) -> &DateTime<Utc> {
105		&self.date_first_added
106	}
107
108	#[must_use]
109	pub const fn get_date_last_added(&self) -> &DateTime<Utc> {
110		&self.date_last_added
111	}
112
113	#[must_use]
114	pub const fn get_liquidity_units(&self) -> &u64 {
115		&self.liquidity_units
116	}
117
118	#[must_use]
119	pub const fn get_pool(&self) -> &String {
120		&self.pool
121	}
122
123	#[must_use]
124	pub const fn get_rune_added(&self) -> &u64 {
125		&self.rune_added
126	}
127
128	#[must_use]
129	pub const fn get_rune_address(&self) -> &String {
130		&self.rune_address
131	}
132
133	#[must_use]
134	pub const fn get_rune_deposit(&self) -> &u64 {
135		&self.rune_deposit
136	}
137
138	#[must_use]
139	pub const fn get_rune_pending(&self) -> &u64 {
140		&self.rune_pending
141	}
142
143	#[must_use]
144	pub const fn get_rune_withdrawn(&self) -> &u64 {
145		&self.rune_withdrawn
146	}
147}