util.rs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. use crate::model::{ConnectInfo, Session};
  2. use darkfi::{util::serial, Result};
  3. pub fn make_node_id(node_name: &String) -> Result<String> {
  4. //match serial::serialize_hex(node_name).as_str() {
  5. // e => {
  6. // debug!("NODE ID {} IS DERIVED FROM NODE NAME {} ", e, node_name);
  7. // }
  8. //}
  9. Ok(serial::serialize_hex(node_name))
  10. }
  11. pub fn make_session_id(node_id: &str, session: &Session) -> Result<String> {
  12. let mut num = 0_u64;
  13. let session_chars = match session {
  14. Session::Inbound => vec!['i', 'n'],
  15. Session::Outbound => vec!['o', 'u', 't'],
  16. Session::Manual => vec!['m', 'a', 'n'],
  17. Session::Offline => vec!['o', 'f', 'f'],
  18. };
  19. for i in session_chars {
  20. num += i as u64
  21. }
  22. for i in node_id.chars() {
  23. num += i as u64
  24. }
  25. //match serial::serialize_hex(&num).as_str() {
  26. // e => {
  27. // debug!("SESSION ID {} IS DERIVED FROM NODE ID {} AND SESSION {:?}", e, node_id, session);
  28. // }
  29. //}
  30. Ok(serial::serialize_hex(&num))
  31. }
  32. pub fn make_connect_id(id: &u64) -> Result<String> {
  33. //match serial::serialize_hex(id).as_str() {
  34. // e => {
  35. // debug!("CONNECT ID {} IS DERIVED FROM ID {}", e, id);
  36. // }
  37. //}
  38. Ok(serial::serialize_hex(id))
  39. }
  40. pub fn make_empty_id(node_id: &str, session: &Session, count: u64) -> Result<String> {
  41. let count = count * 2;
  42. let mut num = 0_u64;
  43. let session_chars = match session {
  44. Session::Inbound => vec!['i', 'n'],
  45. Session::Outbound => vec!['o', 'u', 't'],
  46. Session::Manual => vec!['m', 'a', 'n'],
  47. Session::Offline => vec!['o', 'f', 'f'],
  48. };
  49. for i in session_chars {
  50. num += i as u64
  51. }
  52. for i in node_id.chars() {
  53. num += i as u64
  54. }
  55. num += count;
  56. //match serial::serialize_hex(&num).as_str() {
  57. // e => {
  58. // debug!("EMPTY ID {} IS DERIVED FROM NODE ID {} AND SESSION {:?} AND COUNT {}", e, node_id, session, count);
  59. // }
  60. //}
  61. Ok(serial::serialize_hex(&num))
  62. }
  63. pub fn is_empty_session(connects: &[ConnectInfo]) -> bool {
  64. return connects.iter().all(|conn| conn.is_empty)
  65. }