Plumb transaction-level rewards (aka "rent debits") into the getTransaction RPC method

This commit is contained in:
Michael Vines
2021-05-26 14:43:15 -07:00
committed by mergify[bot]
parent 7dfc1d9790
commit 9541411c15
17 changed files with 146 additions and 16 deletions

View File

@@ -65,6 +65,8 @@ pub struct TransactionStatusMeta {
pub pre_token_balances: ::prost::alloc::vec::Vec<TokenBalance>,
#[prost(message, repeated, tag = "8")]
pub post_token_balances: ::prost::alloc::vec::Vec<TokenBalance>,
#[prost(message, repeated, tag = "9")]
pub rewards: ::prost::alloc::vec::Vec<Reward>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TransactionError {

View File

@@ -43,6 +43,7 @@ message TransactionStatusMeta {
repeated string log_messages = 6;
repeated TokenBalance pre_token_balances = 7;
repeated TokenBalance post_token_balances = 8;
repeated Reward rewards = 9;
}
message TransactionError {

View File

@@ -267,6 +267,7 @@ impl From<TransactionStatusMeta> for generated::TransactionStatusMeta {
log_messages,
pre_token_balances,
post_token_balances,
rewards,
} = value;
let err = match status {
Ok(()) => None,
@@ -290,6 +291,11 @@ impl From<TransactionStatusMeta> for generated::TransactionStatusMeta {
.into_iter()
.map(|balance| balance.into())
.collect();
let rewards = rewards
.unwrap_or_default()
.into_iter()
.map(|reward| reward.into())
.collect();
Self {
err,
@@ -300,6 +306,7 @@ impl From<TransactionStatusMeta> for generated::TransactionStatusMeta {
log_messages,
pre_token_balances,
post_token_balances,
rewards,
}
}
}
@@ -324,6 +331,7 @@ impl TryFrom<generated::TransactionStatusMeta> for TransactionStatusMeta {
log_messages,
pre_token_balances,
post_token_balances,
rewards,
} = value;
let status = match &err {
None => Ok(()),
@@ -348,6 +356,7 @@ impl TryFrom<generated::TransactionStatusMeta> for TransactionStatusMeta {
.map(|balance| balance.into())
.collect(),
);
let rewards = Some(rewards.into_iter().map(|reward| reward.into()).collect());
Ok(Self {
status,
fee,
@@ -357,6 +366,7 @@ impl TryFrom<generated::TransactionStatusMeta> for TransactionStatusMeta {
log_messages,
pre_token_balances,
post_token_balances,
rewards,
})
}
}

View File

@@ -150,6 +150,8 @@ pub struct StoredTransactionStatusMeta {
pub pre_token_balances: Option<Vec<StoredTransactionTokenBalance>>,
#[serde(deserialize_with = "default_on_eof")]
pub post_token_balances: Option<Vec<StoredTransactionTokenBalance>>,
#[serde(deserialize_with = "default_on_eof")]
pub rewards: Option<Vec<StoredExtendedReward>>,
}
impl From<StoredTransactionStatusMeta> for TransactionStatusMeta {
@@ -163,6 +165,7 @@ impl From<StoredTransactionStatusMeta> for TransactionStatusMeta {
log_messages,
pre_token_balances,
post_token_balances,
rewards,
} = value;
Self {
status,
@@ -175,6 +178,8 @@ impl From<StoredTransactionStatusMeta> for TransactionStatusMeta {
.map(|balances| balances.into_iter().map(|balance| balance.into()).collect()),
post_token_balances: post_token_balances
.map(|balances| balances.into_iter().map(|balance| balance.into()).collect()),
rewards: rewards
.map(|rewards| rewards.into_iter().map(|reward| reward.into()).collect()),
}
}
}
@@ -190,6 +195,7 @@ impl From<TransactionStatusMeta> for StoredTransactionStatusMeta {
log_messages,
pre_token_balances,
post_token_balances,
rewards,
} = value;
Self {
status,
@@ -202,6 +208,8 @@ impl From<TransactionStatusMeta> for StoredTransactionStatusMeta {
.map(|balances| balances.into_iter().map(|balance| balance.into()).collect()),
post_token_balances: post_token_balances
.map(|balances| balances.into_iter().map(|balance| balance.into()).collect()),
rewards: rewards
.map(|rewards| rewards.into_iter().map(|reward| reward.into()).collect()),
}
}
}