|
| 1 | +use solido_legacy_core::{AccountType, Lido, ValidatorList, VALIDATOR_LIST_ADDR}; |
| 2 | + |
| 3 | +use crate::common::KeyedUiAccount; |
| 4 | + |
| 5 | +#[test] |
| 6 | +fn lido_serde_roundtrip() { |
| 7 | + let account = KeyedUiAccount::from_test_fixtures_file("lido"); |
| 8 | + let data = account.account_data(); |
| 9 | + let deser = Lido::borsh_de(data.as_slice()).unwrap(); |
| 10 | + |
| 11 | + eprintln!("{deser:#?}"); |
| 12 | + // sample some fields |
| 13 | + assert_eq!(deser.account_type, AccountType::Lido); |
| 14 | + assert_eq!(deser.validator_list, VALIDATOR_LIST_ADDR); |
| 15 | + |
| 16 | + let mut ser = Vec::new(); |
| 17 | + deser.borsh_ser(&mut ser).unwrap(); |
| 18 | + assert_eq!(ser, data[..ser.len()]); |
| 19 | +} |
| 20 | + |
| 21 | +#[test] |
| 22 | +fn validator_list_de() { |
| 23 | + let account = KeyedUiAccount::from_test_fixtures_file("validator-list"); |
| 24 | + let data = account.account_data(); |
| 25 | + let deser = ValidatorList::deserialize(data.as_slice()).unwrap(); |
| 26 | + |
| 27 | + // sample some fields |
| 28 | + assert_eq!(deser.header.account_type, AccountType::Validator); |
| 29 | + assert_eq!(deser.entries.len(), 14); |
| 30 | + |
| 31 | + let largest_val = deser |
| 32 | + .entries |
| 33 | + .iter() |
| 34 | + .max_by_key(|val| val.effective_stake_balance()) |
| 35 | + .unwrap(); |
| 36 | + // `DdCNGDpP7qMgoAy6paFzhhak2EeyCZcgjH7ak5u5v28m` |
| 37 | + // check that this is indeed a vote account |
| 38 | + eprintln!( |
| 39 | + "{}", |
| 40 | + bs58::encode(largest_val.vote_account_address()).into_string() |
| 41 | + ); |
| 42 | +} |
0 commit comments