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: ValueThe complete abi as json value
abi: AbiThe 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