Contenido del curso
Salvador Enrique German Becerra
Erick Ramon Mendoza Varela
Carlos Jose Ramirez Divo
Diego Camino Reinoso
EIP712
hashStruct
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
Para entender mejor la especificación de la función encodeData es necesario tener en cuenta lo siguiente:
Tipos de datos atómicos
Tipos de datos dinámicos y referencias
domainSeparator
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.