transaction-status: Add return data to meta (#23688)
* transaction-status: Add return data to meta * Add return data to simulation results * Use pretty-hex for printing return data * Update arg name, make TransactionRecord struct * Rename TransactionRecord -> ExecutionRecord
This commit is contained in:
@ -4697,6 +4697,7 @@ pub mod tests {
|
||||
pubkey::Pubkey,
|
||||
signature::Signature,
|
||||
transaction::{Transaction, TransactionError},
|
||||
transaction_context::TransactionReturnData,
|
||||
},
|
||||
solana_storage_proto::convert::generated,
|
||||
solana_transaction_status::{InnerInstructions, Reward, Rewards, TransactionTokenBalance},
|
||||
@ -6858,6 +6859,7 @@ pub mod tests {
|
||||
post_token_balances: Some(vec![]),
|
||||
rewards: Some(vec![]),
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data: Some(TransactionReturnData::default()),
|
||||
}
|
||||
.into();
|
||||
blockstore
|
||||
@ -6875,6 +6877,7 @@ pub mod tests {
|
||||
post_token_balances: Some(vec![]),
|
||||
rewards: Some(vec![]),
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data: Some(TransactionReturnData::default()),
|
||||
}
|
||||
.into();
|
||||
blockstore
|
||||
@ -6892,6 +6895,7 @@ pub mod tests {
|
||||
post_token_balances: Some(vec![]),
|
||||
rewards: Some(vec![]),
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data: Some(TransactionReturnData::default()),
|
||||
}
|
||||
.into();
|
||||
blockstore
|
||||
@ -6911,6 +6915,7 @@ pub mod tests {
|
||||
post_token_balances: Some(vec![]),
|
||||
rewards: Some(vec![]),
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data: Some(TransactionReturnData::default()),
|
||||
},
|
||||
}
|
||||
})
|
||||
@ -7023,6 +7028,10 @@ pub mod tests {
|
||||
writable: vec![Pubkey::new_unique()],
|
||||
readonly: vec![Pubkey::new_unique()],
|
||||
};
|
||||
let test_return_data = TransactionReturnData {
|
||||
program_id: Pubkey::new_unique(),
|
||||
data: vec![1, 2, 3],
|
||||
};
|
||||
|
||||
// result not found
|
||||
assert!(transaction_status_cf
|
||||
@ -7042,6 +7051,7 @@ pub mod tests {
|
||||
post_token_balances: Some(post_token_balances_vec.clone()),
|
||||
rewards: Some(rewards_vec.clone()),
|
||||
loaded_addresses: test_loaded_addresses.clone(),
|
||||
return_data: Some(test_return_data.clone()),
|
||||
}
|
||||
.into();
|
||||
assert!(transaction_status_cf
|
||||
@ -7060,6 +7070,7 @@ pub mod tests {
|
||||
post_token_balances,
|
||||
rewards,
|
||||
loaded_addresses,
|
||||
return_data,
|
||||
} = transaction_status_cf
|
||||
.get_protobuf_or_bincode::<StoredTransactionStatusMeta>((0, Signature::default(), 0))
|
||||
.unwrap()
|
||||
@ -7076,6 +7087,7 @@ pub mod tests {
|
||||
assert_eq!(post_token_balances.unwrap(), post_token_balances_vec);
|
||||
assert_eq!(rewards.unwrap(), rewards_vec);
|
||||
assert_eq!(loaded_addresses, test_loaded_addresses);
|
||||
assert_eq!(return_data.unwrap(), test_return_data);
|
||||
|
||||
// insert value
|
||||
let status = TransactionStatusMeta {
|
||||
@ -7089,6 +7101,7 @@ pub mod tests {
|
||||
post_token_balances: Some(post_token_balances_vec.clone()),
|
||||
rewards: Some(rewards_vec.clone()),
|
||||
loaded_addresses: test_loaded_addresses.clone(),
|
||||
return_data: Some(test_return_data.clone()),
|
||||
}
|
||||
.into();
|
||||
assert!(transaction_status_cf
|
||||
@ -7107,6 +7120,7 @@ pub mod tests {
|
||||
post_token_balances,
|
||||
rewards,
|
||||
loaded_addresses,
|
||||
return_data,
|
||||
} = transaction_status_cf
|
||||
.get_protobuf_or_bincode::<StoredTransactionStatusMeta>((
|
||||
0,
|
||||
@ -7129,6 +7143,7 @@ pub mod tests {
|
||||
assert_eq!(post_token_balances.unwrap(), post_token_balances_vec);
|
||||
assert_eq!(rewards.unwrap(), rewards_vec);
|
||||
assert_eq!(loaded_addresses, test_loaded_addresses);
|
||||
assert_eq!(return_data.unwrap(), test_return_data);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -7357,6 +7372,7 @@ pub mod tests {
|
||||
post_token_balances: Some(vec![]),
|
||||
rewards: Some(vec![]),
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data: Some(TransactionReturnData::default()),
|
||||
}
|
||||
.into();
|
||||
|
||||
@ -7552,6 +7568,7 @@ pub mod tests {
|
||||
post_token_balances: Some(vec![]),
|
||||
rewards: Some(vec![]),
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data: Some(TransactionReturnData::default()),
|
||||
}
|
||||
.into();
|
||||
|
||||
@ -7723,6 +7740,10 @@ pub mod tests {
|
||||
let post_token_balances = Some(vec![]);
|
||||
let rewards = Some(vec![]);
|
||||
let signature = transaction.signatures[0];
|
||||
let return_data = Some(TransactionReturnData {
|
||||
program_id: Pubkey::new_unique(),
|
||||
data: vec![1, 2, 3],
|
||||
});
|
||||
let status = TransactionStatusMeta {
|
||||
status: Ok(()),
|
||||
fee: 42,
|
||||
@ -7734,6 +7755,7 @@ pub mod tests {
|
||||
post_token_balances: post_token_balances.clone(),
|
||||
rewards: rewards.clone(),
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data: return_data.clone(),
|
||||
}
|
||||
.into();
|
||||
blockstore
|
||||
@ -7753,6 +7775,7 @@ pub mod tests {
|
||||
post_token_balances,
|
||||
rewards,
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data,
|
||||
},
|
||||
}
|
||||
})
|
||||
@ -7824,6 +7847,10 @@ pub mod tests {
|
||||
let pre_token_balances = Some(vec![]);
|
||||
let post_token_balances = Some(vec![]);
|
||||
let rewards = Some(vec![]);
|
||||
let return_data = Some(TransactionReturnData {
|
||||
program_id: Pubkey::new_unique(),
|
||||
data: vec![1, 2, 3],
|
||||
});
|
||||
let signature = transaction.signatures[0];
|
||||
let status = TransactionStatusMeta {
|
||||
status: Ok(()),
|
||||
@ -7836,6 +7863,7 @@ pub mod tests {
|
||||
post_token_balances: post_token_balances.clone(),
|
||||
rewards: rewards.clone(),
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data: return_data.clone(),
|
||||
}
|
||||
.into();
|
||||
blockstore
|
||||
@ -7855,6 +7883,7 @@ pub mod tests {
|
||||
post_token_balances,
|
||||
rewards,
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data,
|
||||
},
|
||||
}
|
||||
})
|
||||
@ -8614,6 +8643,7 @@ pub mod tests {
|
||||
post_token_balances: Some(vec![]),
|
||||
rewards: Some(vec![]),
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data: Some(TransactionReturnData::default()),
|
||||
}
|
||||
.into();
|
||||
transaction_status_cf
|
||||
@ -9171,6 +9201,10 @@ pub mod tests {
|
||||
commission: None,
|
||||
}]),
|
||||
loaded_addresses: LoadedAddresses::default(),
|
||||
return_data: Some(TransactionReturnData {
|
||||
program_id: Pubkey::new_unique(),
|
||||
data: vec![1, 2, 3],
|
||||
}),
|
||||
};
|
||||
let deprecated_status: StoredTransactionStatusMeta = status.clone().try_into().unwrap();
|
||||
let protobuf_status: generated::TransactionStatusMeta = status.into();
|
||||
|
@ -181,6 +181,7 @@ fn execute_batch(
|
||||
transaction_status_sender.is_some(),
|
||||
transaction_status_sender.is_some(),
|
||||
transaction_status_sender.is_some(),
|
||||
transaction_status_sender.is_some(),
|
||||
timings,
|
||||
);
|
||||
|
||||
@ -3510,6 +3511,7 @@ pub mod tests {
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
&mut ExecuteTimings::default(),
|
||||
);
|
||||
let (err, signature) = get_first_error(&batch, fee_collection_results).unwrap();
|
||||
|
Reference in New Issue
Block a user