Update struct prefixes to Ui (#10874)

* Update comments

* Use Ui prefix
This commit is contained in:
Tyera Eulberg 2020-07-01 14:06:40 -06:00 committed by GitHub
parent 6b45481bbb
commit 2669ccb864
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 68 additions and 66 deletions

View File

@ -54,7 +54,7 @@ use solana_stake_program::{
stake_instruction::LockupArgs,
stake_state::{Lockup, StakeAuthorize},
};
use solana_transaction_status::{EncodedTransaction, TransactionEncoding};
use solana_transaction_status::{EncodedTransaction, UiTransactionEncoding};
use solana_vote_program::vote_state::VoteAuthorize;
use std::{
collections::HashMap,
@ -1173,7 +1173,7 @@ fn process_confirm(
if let Some(transaction_status) = status {
if config.verbose {
match rpc_client
.get_confirmed_transaction(signature, TransactionEncoding::Binary)
.get_confirmed_transaction(signature, UiTransactionEncoding::Binary)
{
Ok(confirmed_transaction) => {
println!(

View File

@ -5,7 +5,7 @@ use solana_sdk::{
hash::Hash, native_token::lamports_to_sol, program_utils::limited_deserialize,
transaction::Transaction,
};
use solana_transaction_status::RpcTransactionStatusMeta;
use solana_transaction_status::UiTransactionStatusMeta;
use std::{collections::HashMap, fmt, io};
// Pretty print a "name value"
@ -81,7 +81,7 @@ pub fn println_signers(
pub fn write_transaction<W: io::Write>(
w: &mut W,
transaction: &Transaction,
transaction_status: &Option<RpcTransactionStatusMeta>,
transaction_status: &Option<UiTransactionStatusMeta>,
prefix: &str,
) -> io::Result<()> {
let message = &transaction.message;
@ -204,7 +204,7 @@ pub fn write_transaction<W: io::Write>(
pub fn println_transaction(
transaction: &Transaction,
transaction_status: &Option<RpcTransactionStatusMeta>,
transaction_status: &Option<UiTransactionStatusMeta>,
prefix: &str,
) {
let mut w = Vec::new();

View File

@ -28,7 +28,7 @@ use solana_sdk::{
transaction::{self, Transaction},
};
use solana_transaction_status::{
ConfirmedBlock, ConfirmedTransaction, TransactionEncoding, TransactionStatus,
ConfirmedBlock, ConfirmedTransaction, TransactionStatus, UiTransactionEncoding,
};
use solana_vote_program::vote_state::MAX_LOCKOUT_HISTORY;
use std::{
@ -238,13 +238,13 @@ impl RpcClient {
}
pub fn get_confirmed_block(&self, slot: Slot) -> ClientResult<ConfirmedBlock> {
self.get_confirmed_block_with_encoding(slot, TransactionEncoding::Json)
self.get_confirmed_block_with_encoding(slot, UiTransactionEncoding::Json)
}
pub fn get_confirmed_block_with_encoding(
&self,
slot: Slot,
encoding: TransactionEncoding,
encoding: UiTransactionEncoding,
) -> ClientResult<ConfirmedBlock> {
self.send(RpcRequest::GetConfirmedBlock, json!([slot, encoding]))
}
@ -285,7 +285,7 @@ impl RpcClient {
pub fn get_confirmed_transaction(
&self,
signature: &Signature,
encoding: TransactionEncoding,
encoding: UiTransactionEncoding,
) -> ClientResult<ConfirmedTransaction> {
self.send(
RpcRequest::GetConfirmedTransaction,

View File

@ -40,7 +40,7 @@ use solana_sdk::{
transaction::{self, Transaction},
};
use solana_transaction_status::{
ConfirmedBlock, ConfirmedTransaction, TransactionEncoding, TransactionStatus,
ConfirmedBlock, ConfirmedTransaction, TransactionStatus, UiTransactionEncoding,
};
use solana_vote_program::vote_state::{VoteState, MAX_LOCKOUT_HISTORY};
use std::{
@ -541,7 +541,7 @@ impl JsonRpcRequestProcessor {
pub fn get_confirmed_block(
&self,
slot: Slot,
encoding: Option<TransactionEncoding>,
encoding: Option<UiTransactionEncoding>,
) -> Result<Option<ConfirmedBlock>> {
if self.config.enable_rpc_transaction_history
&& slot
@ -710,7 +710,7 @@ impl JsonRpcRequestProcessor {
pub fn get_confirmed_transaction(
&self,
signature: Signature,
encoding: Option<TransactionEncoding>,
encoding: Option<UiTransactionEncoding>,
) -> Result<Option<ConfirmedTransaction>> {
if self.config.enable_rpc_transaction_history {
Ok(self
@ -1031,7 +1031,7 @@ pub trait RpcSol {
&self,
meta: Self::Metadata,
slot: Slot,
encoding: Option<TransactionEncoding>,
encoding: Option<UiTransactionEncoding>,
) -> Result<Option<ConfirmedBlock>>;
#[rpc(meta, name = "getBlockTime")]
@ -1050,7 +1050,7 @@ pub trait RpcSol {
&self,
meta: Self::Metadata,
signature_str: String,
encoding: Option<TransactionEncoding>,
encoding: Option<UiTransactionEncoding>,
) -> Result<Option<ConfirmedTransaction>>;
#[rpc(meta, name = "getConfirmedSignaturesForAddress")]
@ -1525,7 +1525,7 @@ impl RpcSol for RpcSolImpl {
&self,
meta: Self::Metadata,
slot: Slot,
encoding: Option<TransactionEncoding>,
encoding: Option<UiTransactionEncoding>,
) -> Result<Option<ConfirmedBlock>> {
meta.get_confirmed_block(slot, encoding)
}
@ -1547,7 +1547,7 @@ impl RpcSol for RpcSolImpl {
&self,
meta: Self::Metadata,
signature_str: String,
encoding: Option<TransactionEncoding>,
encoding: Option<UiTransactionEncoding>,
) -> Result<Option<ConfirmedTransaction>> {
let signature = verify_signature(&signature_str)?;
meta.get_confirmed_transaction(signature, encoding)
@ -1647,7 +1647,7 @@ pub mod tests {
system_transaction,
transaction::{self, TransactionError},
};
use solana_transaction_status::{EncodedTransaction, RpcMessage, TransactionWithStatusMeta};
use solana_transaction_status::{EncodedTransaction, TransactionWithStatusMeta, UiMessage};
use solana_vote_program::{
vote_instruction,
vote_state::{Vote, VoteInit, MAX_LOCKOUT_HISTORY},
@ -3213,8 +3213,8 @@ pub mod tests {
if transaction.signatures[0] == confirmed_block_signatures[0].to_string() {
let meta = meta.unwrap();
let transaction_recent_blockhash = match transaction.message {
RpcMessage::Parsed(message) => message.recent_blockhash,
RpcMessage::Raw(message) => message.recent_blockhash,
UiMessage::Parsed(message) => message.recent_blockhash,
UiMessage::Raw(message) => message.recent_blockhash,
};
assert_eq!(transaction_recent_blockhash, blockhash.to_string());
assert_eq!(meta.status, Ok(()));

View File

@ -37,8 +37,8 @@ use solana_sdk::{
transaction::Transaction,
};
use solana_transaction_status::{
ConfirmedBlock, ConfirmedTransaction, EncodedTransaction, Rewards, RpcTransactionStatusMeta,
TransactionEncoding, TransactionStatusMeta, TransactionWithStatusMeta,
ConfirmedBlock, ConfirmedTransaction, EncodedTransaction, Rewards, TransactionStatusMeta,
TransactionWithStatusMeta, UiTransactionEncoding, UiTransactionStatusMeta,
};
use solana_vote_program::{vote_instruction::VoteInstruction, vote_state::TIMESTAMP_SLOT_INTERVAL};
use std::{
@ -1516,7 +1516,7 @@ impl Blockstore {
pub fn get_confirmed_block(
&self,
slot: Slot,
encoding: Option<TransactionEncoding>,
encoding: Option<UiTransactionEncoding>,
) -> Result<ConfirmedBlock> {
datapoint_info!(
"blockstore-rpc-api",
@ -1528,7 +1528,7 @@ impl Blockstore {
if *lowest_cleanup_slot > 0 && *lowest_cleanup_slot >= slot {
return Err(BlockstoreError::SlotCleanedUp);
}
let encoding = encoding.unwrap_or(TransactionEncoding::Json);
let encoding = encoding.unwrap_or(UiTransactionEncoding::Json);
if self.is_root(slot) {
let slot_meta_cf = self.db.column::<cf::SlotMeta>();
let slot_meta = match slot_meta_cf.get(slot)? {
@ -1579,7 +1579,7 @@ impl Blockstore {
fn map_transactions_to_statuses<'a>(
&self,
slot: Slot,
encoding: TransactionEncoding,
encoding: UiTransactionEncoding,
iterator: impl Iterator<Item = Transaction> + 'a,
) -> Vec<TransactionWithStatusMeta> {
iterator
@ -1591,7 +1591,7 @@ impl Blockstore {
meta: self
.read_transaction_status((signature, slot))
.expect("Expect database get to succeed")
.map(RpcTransactionStatusMeta::from),
.map(UiTransactionStatusMeta::from),
}
})
.collect()
@ -1761,7 +1761,7 @@ impl Blockstore {
pub fn get_confirmed_transaction(
&self,
signature: Signature,
encoding: Option<TransactionEncoding>,
encoding: Option<UiTransactionEncoding>,
) -> Result<Option<ConfirmedTransaction>> {
datapoint_info!(
"blockstore-rpc-api",
@ -1770,7 +1770,7 @@ impl Blockstore {
if let Some((slot, status)) = self.get_transaction_status(signature)? {
let transaction = self.find_transaction_in_slot(slot, signature)?
.expect("Transaction to exist in slot entries if it exists in statuses and hasn't been cleaned up");
let encoding = encoding.unwrap_or(TransactionEncoding::Json);
let encoding = encoding.unwrap_or(UiTransactionEncoding::Json);
let encoded_transaction = EncodedTransaction::encode(transaction, encoding);
Ok(Some(ConfirmedTransaction {
slot,
@ -5100,7 +5100,7 @@ pub mod tests {
.put_meta_bytes(slot - 1, &serialize(&parent_meta).unwrap())
.unwrap();
let expected_transactions: Vec<(Transaction, Option<RpcTransactionStatusMeta>)> = entries
let expected_transactions: Vec<(Transaction, Option<UiTransactionStatusMeta>)> = entries
.iter()
.cloned()
.filter(|entry| !entry.is_tick())
@ -5164,7 +5164,7 @@ pub mod tests {
.iter()
.cloned()
.map(|(tx, meta)| TransactionWithStatusMeta {
transaction: EncodedTransaction::encode(tx, TransactionEncoding::Json),
transaction: EncodedTransaction::encode(tx, UiTransactionEncoding::Json),
meta,
})
.collect(),
@ -5185,7 +5185,7 @@ pub mod tests {
.iter()
.cloned()
.map(|(tx, meta)| TransactionWithStatusMeta {
transaction: EncodedTransaction::encode(tx, TransactionEncoding::Json),
transaction: EncodedTransaction::encode(tx, UiTransactionEncoding::Json),
meta,
})
.collect(),
@ -5802,7 +5802,7 @@ pub mod tests {
blockstore.insert_shreds(shreds, None, false).unwrap();
blockstore.set_roots(&[slot - 1, slot]).unwrap();
let expected_transactions: Vec<(Transaction, Option<RpcTransactionStatusMeta>)> = entries
let expected_transactions: Vec<(Transaction, Option<UiTransactionStatusMeta>)> = entries
.iter()
.cloned()
.filter(|entry| !entry.is_tick())
@ -5845,7 +5845,7 @@ pub mod tests {
for (transaction, status) in expected_transactions.clone() {
let signature = transaction.signatures[0];
let encoded_transaction =
EncodedTransaction::encode(transaction, TransactionEncoding::Json);
EncodedTransaction::encode(transaction, UiTransactionEncoding::Json);
let expected_transaction = ConfirmedTransaction {
slot,
transaction: TransactionWithStatusMeta {
@ -6073,7 +6073,7 @@ pub mod tests {
let map = blockstore.map_transactions_to_statuses(
slot,
TransactionEncoding::Json,
UiTransactionEncoding::Json,
transactions.into_iter(),
);
assert_eq!(map.len(), 5);

View File

@ -7,7 +7,7 @@ use solana_sdk::{
pubkey::Pubkey, signature::Signature, transaction::Transaction,
};
use solana_stake_program::{stake_instruction::StakeInstruction, stake_state::Lockup};
use solana_transaction_status::{ConfirmedBlock, RpcTransactionStatusMeta, TransactionEncoding};
use solana_transaction_status::{ConfirmedBlock, UiTransactionEncoding, UiTransactionStatusMeta};
use std::{collections::HashMap, thread::sleep, time::Duration};
pub type PubkeyString = String;
@ -65,7 +65,7 @@ impl AccountsInfo {
fn process_transaction(
slot: Slot,
transaction: &Transaction,
meta: &RpcTransactionStatusMeta,
meta: &UiTransactionStatusMeta,
accounts: &mut HashMap<PubkeyString, AccountInfo>,
) {
let mut last_instruction = true;
@ -289,7 +289,7 @@ fn load_blocks(
let mut blocks = vec![];
for slot in slots.into_iter() {
let block =
rpc_client.get_confirmed_block_with_encoding(slot, TransactionEncoding::Binary)?;
rpc_client.get_confirmed_block_with_encoding(slot, UiTransactionEncoding::Binary)?;
blocks.push((slot, block));
}
Ok(blocks)

View File

@ -16,23 +16,24 @@ use solana_sdk::{
transaction::{Result, Transaction, TransactionError},
};
/// A duplicate representation of an Instruction for pretty JSON serialization
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase", untagged)]
pub enum RpcInstruction {
Compiled(RpcCompiledInstruction),
pub enum UiInstruction {
Compiled(UiCompiledInstruction),
Parsed(Value),
}
/// A duplicate representation of a CompiledInstruction for pretty JSON serialization
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RpcCompiledInstruction {
pub struct UiCompiledInstruction {
pub program_id_index: u8,
pub accounts: Vec<u8>,
pub data: String,
}
impl From<&CompiledInstruction> for RpcCompiledInstruction {
impl From<&CompiledInstruction> for UiCompiledInstruction {
fn from(instruction: &CompiledInstruction) -> Self {
Self {
program_id_index: instruction.program_id_index,
@ -62,9 +63,10 @@ impl Default for TransactionStatusMeta {
}
}
/// A duplicate representation of TransactionStatusMeta with `err` field
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RpcTransactionStatusMeta {
pub struct UiTransactionStatusMeta {
pub err: Option<TransactionError>,
pub status: Result<()>, // This field is deprecated. See https://github.com/solana-labs/solana/issues/9302
pub fee: u64,
@ -72,7 +74,7 @@ pub struct RpcTransactionStatusMeta {
pub post_balances: Vec<u64>,
}
impl From<TransactionStatusMeta> for RpcTransactionStatusMeta {
impl From<TransactionStatusMeta> for UiTransactionStatusMeta {
fn from(meta: TransactionStatusMeta) -> Self {
Self {
err: meta.status.clone().err(),
@ -129,47 +131,47 @@ pub struct ConfirmedTransaction {
/// A duplicate representation of a Transaction for pretty JSON serialization
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RpcTransaction {
pub struct UiTransaction {
pub signatures: Vec<String>,
pub message: RpcMessage,
pub message: UiMessage,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase", untagged)]
pub enum RpcMessage {
Parsed(RpcParsedMessage),
Raw(RpcRawMessage),
pub enum UiMessage {
Parsed(UiParsedMessage),
Raw(UiRawMessage),
}
/// A duplicate representation of a Message for pretty JSON serialization
/// A duplicate representation of a Message, in raw format, for pretty JSON serialization
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RpcRawMessage {
pub struct UiRawMessage {
pub header: MessageHeader,
pub account_keys: Vec<String>,
pub recent_blockhash: String,
pub instructions: Vec<RpcCompiledInstruction>,
pub instructions: Vec<UiCompiledInstruction>,
}
/// A duplicate representation of a Message for pretty JSON serialization
/// A duplicate representation of a Message, in parsed format, for pretty JSON serialization
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RpcParsedMessage {
pub struct UiParsedMessage {
pub account_keys: Value,
pub recent_blockhash: String,
pub instructions: Vec<RpcInstruction>,
pub instructions: Vec<UiInstruction>,
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TransactionWithStatusMeta {
pub transaction: EncodedTransaction,
pub meta: Option<RpcTransactionStatusMeta>,
pub meta: Option<UiTransactionStatusMeta>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[serde(rename_all = "camelCase")]
pub enum TransactionEncoding {
pub enum UiTransactionEncoding {
Binary,
Json,
JsonParsed,
@ -179,18 +181,18 @@ pub enum TransactionEncoding {
#[serde(rename_all = "camelCase", untagged)]
pub enum EncodedTransaction {
Binary(String),
Json(RpcTransaction),
Json(UiTransaction),
}
impl EncodedTransaction {
pub fn encode(transaction: Transaction, encoding: TransactionEncoding) -> Self {
pub fn encode(transaction: Transaction, encoding: UiTransactionEncoding) -> Self {
match encoding {
TransactionEncoding::Binary => EncodedTransaction::Binary(
UiTransactionEncoding::Binary => EncodedTransaction::Binary(
bs58::encode(bincode::serialize(&transaction).unwrap()).into_string(),
),
_ => {
let message = if encoding == TransactionEncoding::Json {
RpcMessage::Raw(RpcRawMessage {
let message = if encoding == UiTransactionEncoding::Json {
UiMessage::Raw(UiRawMessage {
header: transaction.message.header,
account_keys: transaction
.message
@ -207,7 +209,7 @@ impl EncodedTransaction {
.collect(),
})
} else {
RpcMessage::Parsed(RpcParsedMessage {
UiMessage::Parsed(UiParsedMessage {
account_keys: parse_accounts(&transaction.message),
recent_blockhash: transaction.message.recent_blockhash.to_string(),
instructions: transaction
@ -218,15 +220,15 @@ impl EncodedTransaction {
let program_id =
instruction.program_id(&transaction.message.account_keys);
if let Some(parsed_instruction) = parse(program_id, instruction) {
RpcInstruction::Parsed(parsed_instruction)
UiInstruction::Parsed(parsed_instruction)
} else {
RpcInstruction::Compiled(instruction.into())
UiInstruction::Compiled(instruction.into())
}
})
.collect(),
})
};
EncodedTransaction::Json(RpcTransaction {
EncodedTransaction::Json(UiTransaction {
signatures: transaction
.signatures
.iter()

View File

@ -16,7 +16,7 @@ use solana_sdk::{
clock::Slot, hash::Hash, native_token::lamports_to_sol, program_utils::limited_deserialize,
pubkey::Pubkey,
};
use solana_transaction_status::{ConfirmedBlock, TransactionEncoding};
use solana_transaction_status::{ConfirmedBlock, UiTransactionEncoding};
use solana_vote_program::vote_instruction::VoteInstruction;
use std::{
collections::HashMap,
@ -226,7 +226,7 @@ fn load_blocks(
let mut blocks = vec![];
for slot in slots.into_iter() {
let block =
rpc_client.get_confirmed_block_with_encoding(slot, TransactionEncoding::Binary)?;
rpc_client.get_confirmed_block_with_encoding(slot, UiTransactionEncoding::Binary)?;
blocks.push((slot, block));
}
Ok(blocks)