v1.9: Enforce tx metadata upload to bigtable (#23212)
* Enforce tx metadata upload with static types (#23028) * resolve conflicts * fix test
This commit is contained in:
@@ -10,8 +10,9 @@ use {
|
||||
transaction::{Transaction, TransactionError},
|
||||
},
|
||||
solana_transaction_status::{
|
||||
ConfirmedBlock, InnerInstructions, Reward, RewardType, TransactionByAddrInfo,
|
||||
TransactionStatusMeta, TransactionTokenBalance, TransactionWithStatusMeta,
|
||||
ConfirmedBlock, ConfirmedBlockWithOptionalMetadata, InnerInstructions, Reward, RewardType,
|
||||
TransactionByAddrInfo, TransactionStatusMeta, TransactionTokenBalance,
|
||||
TransactionWithMetadata, TransactionWithOptionalMetadata,
|
||||
},
|
||||
std::{
|
||||
convert::{TryFrom, TryInto},
|
||||
@@ -135,7 +136,7 @@ impl From<ConfirmedBlock> for generated::ConfirmedBlock {
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<generated::ConfirmedBlock> for ConfirmedBlock {
|
||||
impl TryFrom<generated::ConfirmedBlock> for ConfirmedBlockWithOptionalMetadata {
|
||||
type Error = bincode::Error;
|
||||
fn try_from(
|
||||
confirmed_block: generated::ConfirmedBlock,
|
||||
@@ -157,7 +158,8 @@ impl TryFrom<generated::ConfirmedBlock> for ConfirmedBlock {
|
||||
transactions: transactions
|
||||
.into_iter()
|
||||
.map(|tx| tx.try_into())
|
||||
.collect::<std::result::Result<Vec<TransactionWithStatusMeta>, Self::Error>>()?,
|
||||
.collect::<std::result::Result<Vec<TransactionWithOptionalMetadata>, Self::Error>>(
|
||||
)?,
|
||||
rewards: rewards.into_iter().map(|r| r.into()).collect(),
|
||||
block_time: block_time.map(|generated::UnixTimestamp { timestamp }| timestamp),
|
||||
block_height: block_height.map(|generated::BlockHeight { block_height }| block_height),
|
||||
@@ -165,17 +167,16 @@ impl TryFrom<generated::ConfirmedBlock> for ConfirmedBlock {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<TransactionWithStatusMeta> for generated::ConfirmedTransaction {
|
||||
fn from(value: TransactionWithStatusMeta) -> Self {
|
||||
let meta = value.meta.map(|meta| meta.into());
|
||||
impl From<TransactionWithMetadata> for generated::ConfirmedTransaction {
|
||||
fn from(value: TransactionWithMetadata) -> Self {
|
||||
Self {
|
||||
transaction: Some(value.transaction.into()),
|
||||
meta,
|
||||
meta: Some(value.meta.into()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<generated::ConfirmedTransaction> for TransactionWithStatusMeta {
|
||||
impl TryFrom<generated::ConfirmedTransaction> for TransactionWithOptionalMetadata {
|
||||
type Error = bincode::Error;
|
||||
fn try_from(value: generated::ConfirmedTransaction) -> std::result::Result<Self, Self::Error> {
|
||||
let meta = value.meta.map(|meta| meta.try_into()).transpose()?;
|
||||
|
Reference in New Issue
Block a user