Add get_signature_status() to SyncClient

And move bank::Result to transaction module.
This commit is contained in:
Greg Fitzgerald
2019-04-05 10:42:54 -06:00
committed by Grimes
parent d3844ef32a
commit 46e6911ec1
12 changed files with 41 additions and 26 deletions

View File

@ -6,6 +6,7 @@ use crate::instruction::Instruction;
use crate::message::Message;
use crate::pubkey::Pubkey;
use crate::signature::{Keypair, Signature};
use crate::transaction;
use crate::transport::Result;
pub trait SyncClient {
@ -26,4 +27,10 @@ pub trait SyncClient {
/// Get account balance or 0 if not found.
fn get_balance(&self, pubkey: &Pubkey) -> Result<u64>;
/// Get signature status.
fn get_signature_status(
&self,
signature: &Signature,
) -> Result<Option<transaction::Result<()>>>;
}

View File

@ -7,6 +7,7 @@ use crate::pubkey::Pubkey;
use crate::short_vec;
use crate::signature::{KeypairUtil, Signature};
use bincode::serialize;
use std::result;
/// Reasons a transaction might be rejected.
#[derive(Debug, PartialEq, Eq, Clone)]
@ -46,6 +47,8 @@ pub enum TransactionError {
InvalidAccountIndex,
}
pub type Result<T> = result::Result<T, TransactionError>;
/// An atomic transaction
#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
pub struct Transaction {