pub enum Token {
Address(Address),
FixedBytes(FixedBytes),
Bytes(Bytes),
Int(Int),
Uint(Uint),
Bool(bool),
String(String),
FixedArray(Vec<Token>),
Array(Vec<Token>),
Tuple(Vec<Token>),
}
Expand description
Ethereum ABI params.
Variants
Address(Address)
Address.
solidity name: address Encoded to left padded [0u8; 32].
FixedBytes(FixedBytes)
Vector of bytes with known size.
solidity name eg.: bytes8, bytes32, bytes64, bytes1024 Encoded to right padded [0u8; ((N + 31) / 32) * 32].
Bytes(Bytes)
Vector of bytes of unknown size.
solidity name: bytes Encoded in two parts. Init part: offset of ’closing part`. Closing part: encoded length followed by encoded right padded bytes.
Int(Int)
Signed integer.
solidity name: int
Uint(Uint)
Unsigned integer.
solidity name: uint
Bool(bool)
Boolean value.
solidity name: bool Encoded as left padded [0u8; 32], where last bit represents boolean value.
String(String)
String.
solidity name: string Encoded in the same way as bytes. Must be utf8 compliant.
FixedArray(Vec<Token>)
Array with known size.
solidity name eg.: int[3], bool[3], address[][8] Encoding of array is equal to encoding of consecutive elements of array.
Array(Vec<Token>)
Array of params with unknown size.
solidity name eg. int[], bool[], address[5][]
Tuple(Vec<Token>)
Tuple of params of variable types.
solidity name: tuple
Implementations
sourceimpl Token
impl Token
sourcepub fn type_check(&self, param_type: &ParamType) -> bool
pub fn type_check(&self, param_type: &ParamType) -> bool
Check whether the type of the token matches the given parameter type.
Numeric types (Int
and Uint
) type check if the size of the token
type is of greater or equal size than the provided parameter type.
sourcepub fn into_address(self) -> Option<Address>
pub fn into_address(self) -> Option<Address>
Converts token to…
sourcepub fn into_fixed_bytes(self) -> Option<Vec<u8>>
pub fn into_fixed_bytes(self) -> Option<Vec<u8>>
Converts token to…
sourcepub fn into_bytes(self) -> Option<Vec<u8>>
pub fn into_bytes(self) -> Option<Vec<u8>>
Converts token to…
sourcepub fn into_string(self) -> Option<String>
pub fn into_string(self) -> Option<String>
Converts token to…
sourcepub fn into_fixed_array(self) -> Option<Vec<Token>>
pub fn into_fixed_array(self) -> Option<Vec<Token>>
Converts token to…
sourcepub fn into_array(self) -> Option<Vec<Token>>
pub fn into_array(self) -> Option<Vec<Token>>
Converts token to…
sourcepub fn into_tuple(self) -> Option<Vec<Token>>
pub fn into_tuple(self) -> Option<Vec<Token>>
Converts token to…
sourcepub fn types_check(tokens: &[Token], param_types: &[ParamType]) -> bool
pub fn types_check(tokens: &[Token], param_types: &[ParamType]) -> bool
Check if all the types of the tokens match the given parameter types.
sourcepub fn is_dynamic(&self) -> bool
pub fn is_dynamic(&self) -> bool
Check if the token is a dynamic type resulting in prefixed encoding