No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

13 Días
19 Hrs
16 Min
5 Seg

EIP712

9/14
Recursos

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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:

EIP712 - Partes o miembros del domainSeparator
.
miembro | Descripción
…
string name | Nombre de la DApp o protocolo.
string version | La versión actual más alta del dominio.
uint256 chainId | El identificador de la cadena (EIP-155) en el que el contrato está desplegado ().
address verifyingContract | Dirección del contrato que va a verificar la firma.
…
NOTA: (
) Para conocer los identiicadores de cadenas o chainId, ver la especificación del EIP-155:
.
Ethereum Improvement Proposals > EIP-155: Simple replay attack protection
https://eips.ethereum.org/EIPS/eip-155
.
List of Chain ID’s:
.
CHAIN_ID Chain(s)
1 = Ethereum mainnet
2 = Morden (disused), Expanse mainnet
3 = Ropsten
4 = Rinkeby
5 = Goerli
42 = Kovan
1337 = Geth private chains (default)

Cabe resaltar que el stándar EIP-712 y los conceptos off-chain son diferentes pero pueden estar relacionados en ciertos contextos.