Record vote account commission with voting/staking rewards and surface in RPC
This commit is contained in:
@ -88,6 +88,7 @@ message Reward {
|
||||
int64 lamports = 2;
|
||||
uint64 post_balance = 3;
|
||||
RewardType reward_type = 4;
|
||||
string commission = 5;
|
||||
}
|
||||
|
||||
message Rewards {
|
||||
|
@ -89,6 +89,7 @@ impl From<Reward> for generated::Reward {
|
||||
Some(RewardType::Staking) => generated::RewardType::Staking,
|
||||
Some(RewardType::Voting) => generated::RewardType::Voting,
|
||||
} as i32,
|
||||
commission: reward.commission.map(|c| c.to_string()).unwrap_or_default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -107,6 +108,7 @@ impl From<generated::Reward> for Reward {
|
||||
4 => Some(RewardType::Voting),
|
||||
_ => None,
|
||||
},
|
||||
commission: reward.commission.parse::<u8>().ok(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -841,6 +843,7 @@ mod test {
|
||||
lamports: 123,
|
||||
post_balance: 321,
|
||||
reward_type: None,
|
||||
commission: None,
|
||||
};
|
||||
let gen_reward: generated::Reward = reward.clone().into();
|
||||
assert_eq!(reward, gen_reward.into());
|
||||
|
@ -23,6 +23,8 @@ pub struct StoredExtendedReward {
|
||||
post_balance: u64,
|
||||
#[serde(deserialize_with = "default_on_eof")]
|
||||
reward_type: Option<RewardType>,
|
||||
#[serde(deserialize_with = "default_on_eof")]
|
||||
commission: Option<u8>,
|
||||
}
|
||||
|
||||
impl From<StoredExtendedReward> for Reward {
|
||||
@ -32,12 +34,14 @@ impl From<StoredExtendedReward> for Reward {
|
||||
lamports,
|
||||
post_balance,
|
||||
reward_type,
|
||||
commission,
|
||||
} = value;
|
||||
Self {
|
||||
pubkey,
|
||||
lamports,
|
||||
post_balance,
|
||||
reward_type,
|
||||
commission,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -49,13 +53,14 @@ impl From<Reward> for StoredExtendedReward {
|
||||
lamports,
|
||||
post_balance,
|
||||
reward_type,
|
||||
..
|
||||
commission,
|
||||
} = value;
|
||||
Self {
|
||||
pubkey,
|
||||
lamports,
|
||||
post_balance,
|
||||
reward_type,
|
||||
commission,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user