1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use solana_client::{rpc_client::RpcClient, rpc_config::RpcSendTransactionConfig};
use solana_program::instruction::Instruction;
use solana_sdk::{
commitment_config::{CommitmentConfig, CommitmentLevel},
signature::Signature,
};
use solana_sdk::transaction::Transaction;
use crate::command::CliConfig;
pub fn send_tx(
client: &RpcClient,
config: &CliConfig,
ixs: &[Instruction],
) -> Result<Signature, solana_client::client_error::ClientError> {
let payer = config.pubkey().unwrap();
let recent_blockhash = client.get_latest_blockhash().unwrap();
let tx =
Transaction::new_signed_with_payer(ixs, Some(&payer), &config.signers, recent_blockhash);
client.send_and_confirm_transaction_with_spinner_and_config(
&tx,
CommitmentConfig {
commitment: CommitmentLevel::Processed,
},
RpcSendTransactionConfig {
skip_preflight: true,
preflight_commitment: None,
encoding: None,
max_retries: Some(2),
min_context_slot: None,
},
)
}