pub struct LosslessAbi {
pub abi_value: Value,
pub abi: Abi,
}
Expand description
A helper type that ensures lossless (de)serialisation unlike ethers_core::abi::Abi
which
omits some information of (nested) components in a serde roundtrip. This is a problem for
abienconderv2 structs because ethers_core::abi::Contract
’s representation of those are
ethers_core::abi::Param
and the kind
field of type ethers_core::abi::ParamType
does
not support deeply nested components as it’s the case for structs. This is not easily fixable in
ethabi as it would require a redesign of the overall Param
and ParamType
types. Instead,
this type keeps a copy of the serde_json::Value
when deserialized from the solc
json
compiler output and uses it to serialize the abi
without loss.
Fields§
§abi_value: Value
The complete abi as json value
abi: Abi
The deserialised version of abi_value
Trait Implementations§
Source§impl Clone for LosslessAbi
impl Clone for LosslessAbi
Source§fn clone(&self) -> LosslessAbi
fn clone(&self) -> LosslessAbi
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for LosslessAbi
impl Debug for LosslessAbi
Source§impl Default for LosslessAbi
impl Default for LosslessAbi
Source§impl<'de> Deserialize<'de> for LosslessAbi
impl<'de> Deserialize<'de> for LosslessAbi
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl From<LosslessAbi> for Abi
impl From<LosslessAbi> for Abi
Source§fn from(abi: LosslessAbi) -> Self
fn from(abi: LosslessAbi) -> Self
Source§impl PartialEq for LosslessAbi
impl PartialEq for LosslessAbi
Source§impl Serialize for LosslessAbi
impl Serialize for LosslessAbi
impl StructuralPartialEq for LosslessAbi
Auto Trait Implementations§
impl Freeze for LosslessAbi
impl RefUnwindSafe for LosslessAbi
impl Send for LosslessAbi
impl Sync for LosslessAbi
impl Unpin for LosslessAbi
impl UnwindSafe for LosslessAbi
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more