spl_token_client/
output.rs1#![cfg(feature = "display")]
2
3use {crate::client::RpcClientResponse, solana_cli_output::display::writeln_transaction, std::fmt};
4
5impl fmt::Display for RpcClientResponse {
6 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7 match self {
8 RpcClientResponse::Signature(signature) => writeln!(f, "Signature: {}", signature),
9 RpcClientResponse::Transaction(transaction) => {
10 writeln!(f, "Transaction:")?;
11 writeln_transaction(f, &transaction.clone().into(), None, " ", None, None)
12 }
13 RpcClientResponse::Simulation(result) => {
14 writeln!(f, "Simulation:")?;
15 writeln!(f, "{result:?}")
17 }
18 }
19 }
20}
21
22#[cfg(test)]
23mod tests {
24 use {
25 super::*,
26 solana_sdk::{
27 hash::Hash,
28 pubkey::Pubkey,
29 signature::{Signature, Signer, SIGNATURE_BYTES},
30 signer::keypair::Keypair,
31 transaction::Transaction,
32 },
33 solana_system_interface::instruction as system_instruction,
34 };
35
36 #[test]
37 fn display_signature() {
38 let signature_bytes = [202u8; SIGNATURE_BYTES];
39 let signature = RpcClientResponse::Signature(Signature::from(signature_bytes));
40 println!("{}", signature);
41 }
42
43 #[test]
44 fn display_transaction() {
45 let payer = Keypair::new();
46 let transaction = Transaction::new_signed_with_payer(
47 &[system_instruction::transfer(
48 &payer.pubkey(),
49 &Pubkey::new_unique(),
50 10,
51 )],
52 Some(&payer.pubkey()),
53 &[&payer],
54 Hash::default(),
55 );
56 let transaction = RpcClientResponse::Transaction(transaction);
57 println!("{}", transaction);
58 }
59}