Trait alloy_sol_types::SolCall
source · pub trait SolCall: Sized {
type Parameters<'a>: SolType<Token<'a> = Self::Token<'a>>;
type Token<'a>: TokenSeq<'a>;
type Return;
type ReturnTuple<'a>: SolType<Token<'a> = Self::ReturnToken<'a>>;
type ReturnToken<'a>: TokenSeq<'a>;
const SIGNATURE: &'static str;
const SELECTOR: [u8; 4];
// Required methods
fn new(tuple: <Self::Parameters<'_> as SolType>::RustType) -> Self;
fn tokenize(&self) -> Self::Token<'_>;
fn abi_decode_returns(data: &[u8], validate: bool) -> Result<Self::Return>;
// Provided methods
fn abi_encoded_size(&self) -> usize { ... }
fn abi_decode_raw(data: &[u8], validate: bool) -> Result<Self> { ... }
fn abi_decode(data: &[u8], validate: bool) -> Result<Self> { ... }
fn abi_encode_raw(&self, out: &mut Vec<u8>) { ... }
fn abi_encode(&self) -> Vec<u8> ⓘ { ... }
fn abi_encode_returns<'a, E>(e: &'a E) -> Vec<u8> ⓘ
where E: SolTypeValue<Self::ReturnTuple<'a>> { ... }
}
Expand description
Required Associated Types§
sourcetype Parameters<'a>: SolType<Token<'a> = Self::Token<'a>>
type Parameters<'a>: SolType<Token<'a> = Self::Token<'a>>
The underlying tuple type which represents this type’s arguments.
If this type has no arguments, this will be the unit type ()
.
sourcetype ReturnTuple<'a>: SolType<Token<'a> = Self::ReturnToken<'a>>
type ReturnTuple<'a>: SolType<Token<'a> = Self::ReturnToken<'a>>
The underlying tuple type which represents this type’s return values.
If this type has no return values, this will be the unit type ()
.
sourcetype ReturnToken<'a>: TokenSeq<'a>
type ReturnToken<'a>: TokenSeq<'a>
The returns’ corresponding TokenSeq type.
Required Associated Constants§
Required Methods§
sourcefn new(tuple: <Self::Parameters<'_> as SolType>::RustType) -> Self
fn new(tuple: <Self::Parameters<'_> as SolType>::RustType) -> Self
Convert from the tuple type used for ABI encoding and decoding.
Provided Methods§
sourcefn abi_encoded_size(&self) -> usize
fn abi_encoded_size(&self) -> usize
The size of the encoded data in bytes, without its selector.
sourcefn abi_decode_raw(data: &[u8], validate: bool) -> Result<Self>
fn abi_decode_raw(data: &[u8], validate: bool) -> Result<Self>
ABI decode this call’s arguments from the given slice, without its selector.
sourcefn abi_decode(data: &[u8], validate: bool) -> Result<Self>
fn abi_decode(data: &[u8], validate: bool) -> Result<Self>
ABI decode this call’s arguments from the given slice, with the selector.
sourcefn abi_encode_raw(&self, out: &mut Vec<u8>)
fn abi_encode_raw(&self, out: &mut Vec<u8>)
ABI encode the call to the given buffer without its selector.
sourcefn abi_encode(&self) -> Vec<u8> ⓘ
fn abi_encode(&self) -> Vec<u8> ⓘ
ABI encode the call to the given buffer with its selector.
sourcefn abi_encode_returns<'a, E>(e: &'a E) -> Vec<u8> ⓘwhere
E: SolTypeValue<Self::ReturnTuple<'a>>,
fn abi_encode_returns<'a, E>(e: &'a E) -> Vec<u8> ⓘwhere
E: SolTypeValue<Self::ReturnTuple<'a>>,
ABI encode the call’s return values.
Object Safety§
This trait is not object safe.