RPC: add err field to TransactionStatus, alongside the now deprecated status field (#9296)

automerge
This commit is contained in:
Michael Vines
2020-04-04 16:13:26 -07:00
committed by GitHub
parent 8cdf406dd3
commit ad0997e15f
12 changed files with 143 additions and 60 deletions

View File

@ -4,7 +4,7 @@ use solana_client::{client_error::Result as ClientResult, rpc_client::RpcClient}
use solana_metrics::{datapoint_error, datapoint_info};
use solana_sdk::{clock::Slot, program_utils::limited_deserialize, transaction::Transaction};
use solana_stake_program::{stake_instruction::StakeInstruction, stake_state::Lockup};
use solana_transaction_status::{ConfirmedBlock, TransactionEncoding, TransactionStatusMeta};
use solana_transaction_status::{ConfirmedBlock, RpcTransactionStatusMeta, TransactionEncoding};
use std::{collections::HashMap, thread::sleep, time::Duration};
pub type PubkeyString = String;
@ -41,7 +41,7 @@ pub struct StakeAccountsInfo {
fn process_transaction(
slot: Slot,
transaction: &Transaction,
meta: &TransactionStatusMeta,
meta: &RpcTransactionStatusMeta,
stake_accounts: &mut HashMap<PubkeyString, StakeAccountInfo>,
) {
let mut last_instruction = true;
@ -194,7 +194,7 @@ fn process_confirmed_block(
);
}
Some(meta) => {
if meta.status.is_ok() {
if meta.err.is_none() {
if let Some(transaction) = rpc_transaction.transaction.decode() {
if transaction.verify().is_ok() {
process_transaction(slot, &transaction, &meta, stake_accounts);