Fix reward type encoding

(cherry picked from commit 0a89bb4d3c)
This commit is contained in:
Michael Vines
2020-10-25 20:55:19 -07:00
parent f0b74a4ecf
commit c4050f541d

View File

@@ -88,8 +88,8 @@ impl From<generated::Reward> for Reward {
0 => None, 0 => None,
1 => Some(RewardType::Fee), 1 => Some(RewardType::Fee),
2 => Some(RewardType::Rent), 2 => Some(RewardType::Rent),
3 => Some(RewardType::Voting), 3 => Some(RewardType::Staking),
4 => Some(RewardType::Staking), 4 => Some(RewardType::Voting),
_ => None, _ => None,
}, },
} }
@@ -355,3 +355,36 @@ impl From<generated::CompiledInstruction> for CompiledInstruction {
} }
} }
} }
#[cfg(test)]
mod test {
use super::*;
#[test]
fn test_reward_type_encode() {
let mut reward = Reward {
pubkey: "invalid".to_string(),
lamports: 123,
post_balance: 321,
reward_type: None,
};
let gen_reward: generated::Reward = reward.clone().into();
assert_eq!(reward, gen_reward.into());
reward.reward_type = Some(RewardType::Fee);
let gen_reward: generated::Reward = reward.clone().into();
assert_eq!(reward, gen_reward.into());
reward.reward_type = Some(RewardType::Rent);
let gen_reward: generated::Reward = reward.clone().into();
assert_eq!(reward, gen_reward.into());
reward.reward_type = Some(RewardType::Voting);
let gen_reward: generated::Reward = reward.clone().into();
assert_eq!(reward, gen_reward.into());
reward.reward_type = Some(RewardType::Staking);
let gen_reward: generated::Reward = reward.clone().into();
assert_eq!(reward, gen_reward.into());
}
}