Struct ethers_rs::TypedData

source ·
pub struct TypedData {
    pub domain: EIP712Domain,
    pub types: BTreeMap<String, Vec<Eip712DomainType, Global>, Global>,
    pub primary_type: String,
    pub message: BTreeMap<String, Value, Global>,
}
Expand description

Typed data is a JSON object containing type information, domain separator parameters and the message object which has the following schema

{

Fields§

§domain: EIP712Domain

Signing domain metadata. The signing domain is the intended context for the signature (e.g. the dapp, protocol, etc. that it’s intended for). This data is used to construct the domain seperator of the message.

§types: BTreeMap<String, Vec<Eip712DomainType, Global>, Global>

The custom types used by this message.

§primary_type: String

The type of the message.

§message: BTreeMap<String, Value, Global>

The message to be signed.

Trait Implementations§

source§

impl Clone for TypedData

source§

fn clone(&self) -> TypedData

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TypedData

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for TypedData

According to the MetaMask implementation, the message parameter may be JSON stringified in versions later than V1 See https://github.com/MetaMask/metamask-extension/blob/0dfdd44ae7728ed02cbf32c564c75b74f37acf77/app/scripts/metamask-controller.js#L1736 In fact, ethers.js JSON stringifies the message at the time of writing.

source§

fn deserialize<D>(
    deserializer: D
) -> Result<TypedData, <D as Deserializer<'de>>::Error>where
    D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Eip712 for TypedData

source§

fn encode_eip712(&self) -> Result<[u8; 32], <TypedData as Eip712>::Error>

Hash a typed message according to EIP-712. The returned message starts with the EIP-712 prefix, which is “1901”, followed by the hash of the domain separator, then the data (if any). The result is hashed again and returned.

§

type Error = Eip712Error

User defined error type;
source§

fn domain(&self) -> Result<EIP712Domain, <TypedData as Eip712>::Error>

Returns the current domain. The domain depends on the contract and unique domain for which the user is targeting. In the derive macro, these attributes are passed in as arguments to the macro. When manually deriving, the user will need to know the name of the domain, version of the contract, chain ID of where the contract lives and the address of the verifying contract.
source§

fn type_hash() -> Result<[u8; 32], <TypedData as Eip712>::Error>

This method is used for calculating the hash of the type signature of the struct. The field types of the struct must map to primitive ethereum types or custom types defined in the contract.
source§

fn struct_hash(&self) -> Result<[u8; 32], <TypedData as Eip712>::Error>

Hash of the struct, according to EIP-712 definition of hashStruct
source§

fn domain_separator(&self) -> Result<[u8; 32], Self::Error>

Default implementation of the domain separator;
source§

impl PartialEq<TypedData> for TypedData

source§

fn eq(&self, other: &TypedData) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for TypedData

source§

fn serialize<__S>(
    &self,
    __serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
    __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for TypedData

source§

impl StructuralEq for TypedData

source§

impl StructuralPartialEq for TypedData

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere
    T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Q, K> Equivalent<K> for Qwhere
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere
    U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere
    T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere
    U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere
    U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere
    V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
    S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere
    T: for<'de> Deserialize<'de>,