members_config.rs 960 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. use serde::Deserialize;
  2. use serde_json::Result;
  3. use sp_core::crypto::{AccountId32, Ss58Codec};
  4. #[derive(Deserialize)]
  5. struct Member {
  6. /// SS58 Encoded public key
  7. address: String,
  8. handle: String,
  9. avatar_uri: String,
  10. about: String,
  11. }
  12. fn parse_members_json() -> Result<Vec<Member>> {
  13. let data = include_str!("../res/acropolis_members.json");
  14. serde_json::from_str(data)
  15. }
  16. pub fn decode_address(address: String) -> AccountId32 {
  17. AccountId32::from_ss58check(address.as_ref()).expect("failed to decode account id")
  18. }
  19. pub fn initial_members() -> Vec<(AccountId32, String, String, String)> {
  20. let members = parse_members_json().expect("failed parsing members data");
  21. members
  22. .into_iter()
  23. .map(|member| {
  24. (
  25. decode_address(member.address),
  26. member.handle,
  27. member.avatar_uri,
  28. member.about,
  29. )
  30. })
  31. .collect()
  32. }