alloy_dyn_abi::eip712

Struct TypedData

Source
pub struct TypedData {
    pub domain: Eip712Domain,
    pub resolver: Resolver,
    pub primary_type: String,
    pub message: Value,
}
Available on crate feature eip712 only.
Expand description

Represents the EIP-712 typed data object.

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

{
    "type": "object",
    "properties": {
        "types": {
            "type": "object",
            "properties": {
                "EIP712Domain": { "type": "array" }
            },
            "additionalProperties": {
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {
                        "name": { "type": "string" },
                        "type": { "type": "string" }
                    },
                    "required": ["name", "type"]
                }
            },
            "required": ["EIP712Domain"]
        },
        "primaryType": { "type": "string" },
        "domain": { "type": "object" },
        "message": { "type": "object" }
    },
    "required": ["types", "primaryType", "domain", "message"]
}

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 separator of the message.

§resolver: Resolver

The custom types used by this message.

§primary_type: String

The type of the message.

§message: Value

The message to be signed.

Implementations§

Source§

impl TypedData

Source

pub fn from_struct<S: SolStruct + Serialize>( s: &S, domain: Option<Eip712Domain>, ) -> Self

Instantiate TypedData from a SolStruct that implements serde::Serialize.

Source

pub const fn domain(&self) -> &Eip712Domain

Returns the domain for this typed data.

Source

pub fn coerce(&self) -> Result<DynSolValue>

Coerce the message to the type specified by primary_type, using the types map as a resolver.

Source

pub fn type_hash(&self) -> Result<B256>

Calculate the Keccak-256 hash of encodeType for this value.

Fails if this type is not a struct.

Source

pub fn hash_struct(&self) -> Result<B256>

Calculate the hashStruct for this value.

Fails if this type is not a struct.

Source

pub fn encode_data(&self) -> Result<Vec<u8>>

Calculate the encodeData for this value.

Fails if this type is not a struct.

Source

pub fn encode_type(&self) -> Result<String>

Calculate the encodeType for this value.

Fails if this type is not a struct.

Source

pub fn eip712_signing_hash(&self) -> Result<B256>

Calculate the EIP-712 signing hash for this value.

This is the hash of the magic bytes 0x1901 concatenated with the domain separator and the hashStruct result.

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

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

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

Source§

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

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

impl PartialEq for TypedData

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

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::Ok, __S::Error>
where __S: Serializer,

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

impl Eq for TypedData

Source§

impl StructuralPartialEq for TypedData

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

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> ToOwned for T
where T: Clone,

Source§

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 T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V

Source§

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