Contenido del curso
Contratos actualizables
Firmas off-chain
Meta-transacciones
EIP712
Contenido del curso
EIP712
Salvador Enrique German Becerra
EstudianteErick Ramon Mendoza Varela
EstudianteCarlos Jose Ramirez Divo
EstudianteDiego Camino Reinoso
EstudianteEIP712
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.