pub trait AbiDecode: Sized {
    // Required method
    fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>;

    // Provided method
    fn decode_hex(data: impl AsRef<str>) -> Result<Self, AbiError> { ... }
}
Expand description

Trait for ABI decoding

Required Methods§

source

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

Decodes the ABI encoded data

Provided Methods§

source

fn decode_hex(data: impl AsRef<str>) -> Result<Self, AbiError>

Decode hex encoded ABI encoded data

Expects a hex encoded string, with optional 0x prefix

Implementations on Foreign Types§

source§

impl AbiDecode for Bytes

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S> AbiDecode for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable, K: AbiType + Tokenizable, L: AbiType + Tokenizable, M: AbiType + Tokenizable, N: AbiType + Tokenizable, O: AbiType + Tokenizable, P: AbiType + Tokenizable, Q: AbiType + Tokenizable, R: AbiType + Tokenizable, S: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for i16

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for i8

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G> AbiDecode for (A, B, C, D, E, F, G)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<T: TokenizableItem + AbiArrayType> AbiDecode for Vec<T>

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for bool

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R> AbiDecode for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable, K: AbiType + Tokenizable, L: AbiType + Tokenizable, M: AbiType + Tokenizable, N: AbiType + Tokenizable, O: AbiType + Tokenizable, P: AbiType + Tokenizable, Q: AbiType + Tokenizable, R: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for u128

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T> AbiDecode for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable, K: AbiType + Tokenizable, L: AbiType + Tokenizable, M: AbiType + Tokenizable, N: AbiType + Tokenizable, O: AbiType + Tokenizable, P: AbiType + Tokenizable, Q: AbiType + Tokenizable, R: AbiType + Tokenizable, S: AbiType + Tokenizable, T: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M> AbiDecode for (A, B, C, D, E, F, G, H, I, J, K, L, M)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable, K: AbiType + Tokenizable, L: AbiType + Tokenizable, M: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H> AbiDecode for (A, B, C, D, E, F, G, H)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> AbiDecode for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable, K: AbiType + Tokenizable, L: AbiType + Tokenizable, M: AbiType + Tokenizable, N: AbiType + Tokenizable, O: AbiType + Tokenizable, P: AbiType + Tokenizable, Q: AbiType + Tokenizable, R: AbiType + Tokenizable, S: AbiType + Tokenizable, T: AbiType + Tokenizable, U: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> AbiDecode for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable, K: AbiType + Tokenizable, L: AbiType + Tokenizable, M: AbiType + Tokenizable, N: AbiType + Tokenizable, O: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for u8

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> AbiDecode for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable, K: AbiType + Tokenizable, L: AbiType + Tokenizable, M: AbiType + Tokenizable, N: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F> AbiDecode for (A, B, C, D, E, F)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q> AbiDecode for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable, K: AbiType + Tokenizable, L: AbiType + Tokenizable, M: AbiType + Tokenizable, N: AbiType + Tokenizable, O: AbiType + Tokenizable, P: AbiType + Tokenizable, Q: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I> AbiDecode for (A, B, C, D, E, F, G, H, I)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E> AbiDecode for (A, B, C, D, E)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for u32

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for u64

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for i128

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D> AbiDecode for (A, B, C, D)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J> AbiDecode for (A, B, C, D, E, F, G, H, I, J)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> AbiDecode for (A, B, C, D, E, F, G, H, I, J, K, L)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable, K: AbiType + Tokenizable, L: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for i32

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<T, const N: usize> AbiDecode for [T; N]where T: TokenizableItem + AbiArrayType + Clone,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<const N: usize> AbiDecode for [u8; N]

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B> AbiDecode for (A, B)where A: AbiType + Tokenizable, B: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C> AbiDecode for (A, B, C)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for i64

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A, B, C, D, E, F, G, H, I, J, K> AbiDecode for (A, B, C, D, E, F, G, H, I, J, K)where A: AbiType + Tokenizable, B: AbiType + Tokenizable, C: AbiType + Tokenizable, D: AbiType + Tokenizable, E: AbiType + Tokenizable, F: AbiType + Tokenizable, G: AbiType + Tokenizable, H: AbiType + Tokenizable, I: AbiType + Tokenizable, J: AbiType + Tokenizable, K: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for Vec<u8>

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for String

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl<A> AbiDecode for (A,)where A: AbiType + Tokenizable,

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

source§

impl AbiDecode for u16

source§

fn decode(bytes: impl AsRef<[u8]>) -> Result<Self, AbiError>

Implementors§