You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
0 Hrs
14 Min
53 Seg

EIP712

9/14
Resources

Contributions 4

Questions 0

Sort by:

Want to see more contributions, questions and answers from the community?

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.