alloy::sol_types

Macro eip712_domain

source
macro_rules! eip712_domain {
    (@opt) => { ... };
    (@opt $e:expr) => { ... };
    (@cow) => { ... };
    (@cow $l:literal) => { ... };
    (@cow $e:expr) => { ... };
    (
        $(name: $name:expr,)?
        $(version: $version:expr,)?
        $(chain_id: $chain_id:expr,)?
        $(verifying_contract: $verifying_contract:expr,)?
        $(salt: $salt:expr)?
        $(,)?
    ) => { ... };
}
Available on crate feature sol-types only.
Expand description

Convenience macro to instantiate an EIP-712 domain.

This macro allows you to instantiate an EIP-712 domain struct without manually writing None for unused fields.

It may be used to declare a domain with any combination of fields. Each field must be labeled with the name of the field, and the fields must be in order. The fields for the domain are:

  • name
  • version
  • chain_id
  • verifying_contract
  • salt

ยงExamples

const MY_DOMAIN: Eip712Domain = eip712_domain! {
    name: "MyCoolProtocol",
};

let dynamic_name = String::from("MyCoolProtocol");
let my_other_domain: Eip712Domain = eip712_domain! {
    name: dynamic_name,
    version: "1.0.0",
    salt: keccak256("my domain salt"),
};