EIP712
- La EIP712 permite agregar estructura al conjunto de mensajes firmables en Ethereum, que incluye transacciones y cadenas de butes haxadecimales.
- La especificación del EIP presenta la siguiente definición:
hashStruct
- hashStruct es definido como:
- typeHash es definido como:
encodeType
El tipo de una estructura es codificado como:
En donde cada miembro se escribe de la siguiente manera:
Un ejemplo:
struct Signature {
address signer;
string message;
}
encodeData
- encodeData es definido como:
- Los miembros son codificados en el orden en que son definidos en la estructura.
- Cada miembro codificado es exactamente de 32 bytes.
Para entender mejor la especificación de la función encodeData es necesario tener en cuenta lo siguiente:
- Existen 3 tipos de datos. Cada tipo es codificado de manera diferente:
- Atómicos.
- Dinámicos.
- Referencias.
Tipos de datos atómicos
Tipos de datos dinámicos y referencias
domainSeparator
- domainSeparator es definido de la siguiente manera:
- eip712Domain contiene los siguientes miembros:
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?