aboutsummaryrefslogtreecommitdiffstats
path: root/src/config.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.rs')
-rw-r--r--src/config.rs40
1 files changed, 31 insertions, 9 deletions
diff --git a/src/config.rs b/src/config.rs
index 7a524fc..28c63be 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -7,28 +7,50 @@ use log::{error, info};
7/// Configuration for a single network 7/// Configuration for a single network
8#[derive(Debug, Serialize, Deserialize, Clone, Default)] 8#[derive(Debug, Serialize, Deserialize, Clone, Default)]
9pub struct Config { 9pub struct Config {
10 // Name of the network 10 /// Name of the network
11 pub name: String, 11 pub name: String,
12 // URL prefix for this network, can be empty 12
13 /// URL prefix for this network, can be empty
14 ///
15 /// For example, if url_prefix is `example`, register at
16 /// `gradecoin.xyz/example/register`
13 pub url_prefix: String, 17 pub url_prefix: String,
14 // CSV file that contains the list of users who can register 18
19 /// CSV file that contains the list of users who can register
20 ///
21 /// Format of CSV file:
22 /// ```
23 /// User ID, Password
24 /// e123456,register_password
25 /// e123456,register_password
26 /// ```
27 /// First line is ignored.
15 pub preapproved_users: String, 28 pub preapproved_users: String,
16 // Valid blocks should have this many transactions 29
30 /// Valid blocks should have this many transactions
17 pub block_transaction_count: u8, 31 pub block_transaction_count: u8,
18 // How many zero hexadecimal characters should a correct hash start with? 32
33 /// How many zero hexadecimal characters should a correct hash start with?
19 pub hash_zeros: u8, 34 pub hash_zeros: u8,
20 // Inital registration bonus 35
36 /// Inital registration bonus
21 pub register_bonus: u16, 37 pub register_bonus: u16,
22 // Coinbase reward 38
39 /// Coinbase reward
23 pub block_reward: u16, 40 pub block_reward: u16,
24 // Transaction amount limit 41
42 /// Transaction amount upper limit
25 pub tx_upper_limit: u16, 43 pub tx_upper_limit: u16,
44
45 /// Transaction amount lower limit
26 pub tx_lower_limit: u16, 46 pub tx_lower_limit: u16,
27 // Transaction traffic reward 47
48 /// Transaction traffic reward
28 pub tx_traffic_reward: u16, 49 pub tx_traffic_reward: u16,
29} 50}
30 51
31impl Config { 52impl Config {
53 /// Read the configuration from a given `.yaml` file.
32 pub fn read(filename: &str) -> Option<Self> { 54 pub fn read(filename: &str) -> Option<Self> {
33 let file = match std::fs::File::open(filename) { 55 let file = match std::fs::File::open(filename) {
34 Ok(f) => f, 56 Ok(f) => f,