From 6fcdff6a283c785fd71dfe4aef38570a2e34d20a Mon Sep 17 00:00:00 2001 From: Tyera Eulberg Date: Wed, 7 Sep 2022 16:33:53 -0600 Subject: [PATCH] Respect options.show_rewards in UiTransactionStatusMeta --- transaction-status/src/lib.rs | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/transaction-status/src/lib.rs b/transaction-status/src/lib.rs index ff08dd65c09100..77b651117a705b 100644 --- a/transaction-status/src/lib.rs +++ b/transaction-status/src/lib.rs @@ -358,7 +358,7 @@ impl From<&LoadedAddresses> for UiLoadedAddresses { } impl UiTransactionStatusMeta { - fn parse(meta: TransactionStatusMeta, static_keys: &[Pubkey]) -> Self { + fn parse(meta: TransactionStatusMeta, static_keys: &[Pubkey], show_rewards: bool) -> Self { let account_keys = AccountKeys::new(static_keys, Some(&meta.loaded_addresses)); Self { err: meta.status.clone().err(), @@ -378,16 +378,14 @@ impl UiTransactionStatusMeta { post_token_balances: meta .post_token_balances .map(|balance| balance.into_iter().map(Into::into).collect()), - rewards: meta.rewards, + rewards: if show_rewards { meta.rewards } else { None }, loaded_addresses: None, return_data: meta.return_data, compute_units_consumed: meta.compute_units_consumed, } } -} -impl From for UiTransactionStatusMeta { - fn from(meta: TransactionStatusMeta) -> Self { + fn from(meta: TransactionStatusMeta, show_rewards: bool) -> Self { Self { err: meta.status.clone().err(), status: meta.status, @@ -404,7 +402,7 @@ impl From for UiTransactionStatusMeta { post_token_balances: meta .post_token_balances .map(|balance| balance.into_iter().map(Into::into).collect()), - rewards: meta.rewards, + rewards: if show_rewards { meta.rewards } else { None }, loaded_addresses: Some(UiLoadedAddresses::from(&meta.loaded_addresses)), return_data: meta.return_data, compute_units_consumed: meta.compute_units_consumed, @@ -540,7 +538,11 @@ impl ConfirmedBlock { self.transactions .into_iter() .map(|tx_with_meta| { - tx_with_meta.encode(encoding, options.max_supported_transaction_version) + tx_with_meta.encode( + encoding, + options.max_supported_transaction_version, + options.show_rewards, + ) }) .collect::, _>>()?, ), @@ -659,6 +661,7 @@ impl TransactionWithStatusMeta { self, encoding: UiTransactionEncoding, max_supported_transaction_version: Option, + show_rewards: bool, ) -> Result { match self { Self::MissingMetadata(ref transaction) => Ok(EncodedTransactionWithStatusMeta { @@ -667,7 +670,7 @@ impl TransactionWithStatusMeta { meta: None, }), Self::Complete(tx_with_meta) => { - tx_with_meta.encode(encoding, max_supported_transaction_version) + tx_with_meta.encode(encoding, max_supported_transaction_version, show_rewards) } } } @@ -685,6 +688,7 @@ impl VersionedTransactionWithStatusMeta { self, encoding: UiTransactionEncoding, max_supported_transaction_version: Option, + show_rewards: bool, ) -> Result { let version = match ( max_supported_transaction_version, @@ -711,8 +715,9 @@ impl VersionedTransactionWithStatusMeta { UiTransactionEncoding::JsonParsed => UiTransactionStatusMeta::parse( self.meta, self.transaction.message.static_account_keys(), + show_rewards, ), - _ => UiTransactionStatusMeta::from(self.meta), + _ => UiTransactionStatusMeta::from(self.meta, show_rewards), }), version, }) @@ -757,9 +762,11 @@ impl ConfirmedTransactionWithStatusMeta { ) -> Result { Ok(EncodedConfirmedTransactionWithStatusMeta { slot: self.slot, - transaction: self - .tx_with_meta - .encode(encoding, max_supported_transaction_version)?, + transaction: self.tx_with_meta.encode( + encoding, + max_supported_transaction_version, + true, + )?, block_time: self.block_time, }) }