Deprecate UiTokenAmount::ui_amount (#15616)
* Add TokenAmount::ui_amount_string * Fixup solana-tokens * Update docs
This commit is contained in:
@ -104,6 +104,8 @@ pub struct UiTokenAmount {
|
||||
pub decimals: u32,
|
||||
#[prost(string, tag = "3")]
|
||||
pub amount: ::prost::alloc::string::String,
|
||||
#[prost(string, tag = "4")]
|
||||
pub ui_amount_string: ::prost::alloc::string::String,
|
||||
}
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Reward {
|
||||
|
@ -70,6 +70,7 @@ message UiTokenAmount {
|
||||
double ui_amount = 1;
|
||||
uint32 decimals = 2;
|
||||
string amount = 3;
|
||||
string ui_amount_string = 4;
|
||||
}
|
||||
|
||||
enum RewardType {
|
||||
|
@ -1,5 +1,5 @@
|
||||
use crate::StoredExtendedRewards;
|
||||
use solana_account_decoder::parse_token::UiTokenAmount;
|
||||
use solana_account_decoder::parse_token::{real_number_string_trimmed, UiTokenAmount};
|
||||
use solana_sdk::{
|
||||
hash::Hash,
|
||||
instruction::CompiledInstruction,
|
||||
@ -14,7 +14,10 @@ use solana_transaction_status::{
|
||||
ConfirmedBlock, InnerInstructions, Reward, RewardType, TransactionByAddrInfo,
|
||||
TransactionStatusMeta, TransactionTokenBalance, TransactionWithStatusMeta,
|
||||
};
|
||||
use std::convert::{TryFrom, TryInto};
|
||||
use std::{
|
||||
convert::{TryFrom, TryInto},
|
||||
str::FromStr,
|
||||
};
|
||||
|
||||
pub mod generated {
|
||||
include!(concat!(
|
||||
@ -383,9 +386,10 @@ impl From<TransactionTokenBalance> for generated::TokenBalance {
|
||||
account_index: value.account_index as u32,
|
||||
mint: value.mint,
|
||||
ui_token_amount: Some(generated::UiTokenAmount {
|
||||
ui_amount: value.ui_token_amount.ui_amount,
|
||||
ui_amount: value.ui_token_amount.ui_amount.unwrap_or_default(),
|
||||
decimals: value.ui_token_amount.decimals as u32,
|
||||
amount: value.ui_token_amount.amount,
|
||||
ui_amount_string: value.ui_token_amount.ui_amount_string,
|
||||
}),
|
||||
}
|
||||
}
|
||||
@ -398,9 +402,21 @@ impl From<generated::TokenBalance> for TransactionTokenBalance {
|
||||
account_index: value.account_index as u8,
|
||||
mint: value.mint,
|
||||
ui_token_amount: UiTokenAmount {
|
||||
ui_amount: ui_token_amount.ui_amount,
|
||||
ui_amount: if (ui_token_amount.ui_amount - f64::default()).abs() > f64::EPSILON {
|
||||
Some(ui_token_amount.ui_amount)
|
||||
} else {
|
||||
None
|
||||
},
|
||||
decimals: ui_token_amount.decimals as u8,
|
||||
amount: ui_token_amount.amount,
|
||||
amount: ui_token_amount.amount.clone(),
|
||||
ui_amount_string: if !ui_token_amount.ui_amount_string.is_empty() {
|
||||
ui_token_amount.ui_amount_string
|
||||
} else {
|
||||
real_number_string_trimmed(
|
||||
u64::from_str(&ui_token_amount.amount).unwrap_or_default(),
|
||||
ui_token_amount.decimals as u8,
|
||||
)
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user