solana_block_decoder/
decodable.rs1
2use {
3 crate::{
4 errors::{
5 decode_error::DecodeError,
6 }
7 },
8 solana_sdk::{
9 transaction::{
10 TransactionVersion,
11 },
12 },
13 solana_transaction_status::{
14 UiTransactionEncoding,
15 },
16};
17
18pub trait Decodable {
19 type Encoded;
20 type Decoded;
21 fn decode(encoded: &Self::Encoded) -> Result<Self::Decoded, DecodeError>;
22}
23
24pub trait DecodableWithMeta {
25 type Encoded;
26 type Decoded;
27 fn decode_with_meta(
28 encoded: Self::Encoded,
29 encoding: UiTransactionEncoding,
30 version: Option<TransactionVersion>
31 ) -> Result<Self::Decoded, DecodeError>;
32 fn json_decode(encoded: Self::Encoded, version: Option<TransactionVersion>) -> Result<Self::Decoded, DecodeError>;
33}