CursosEmpresasBlogLiveConfPrecios

EIP712

Clase 9 de 14 • Curso de Tokens en Ethereum: Implementación con ERC-20

Clase anteriorSiguiente clase
    Diego Camino Reinoso

    Diego Camino Reinoso

    student•
    hace 2 años

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

    Carlos Jose Ramirez Divo

    Carlos Jose Ramirez Divo

    student•
    hace 3 años

    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)

    Salvador Enrique German Becerra

    Salvador Enrique German Becerra

    student•
    hace 3 años

    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:
    encode.PNG

    hashStruct

    • hashStruct es definido como:
    hashStruct.PNG
    • typeHash es definido como:
    typeHash.PNG

    encodeType

    El tipo de una estructura es codificado como:

    encodeType.PNG

    En donde cada miembro se escribe de la siguiente manera:

    type.PNG

    Un ejemplo:

    struct Signature { address signer; string message; }

    encodeData

    • encodeData es definido como:
    encode data.PNG
    • 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.PNG

    Tipos de datos dinámicos y referencias

    dinamicos y referencias.PNG

    domainSeparator

    • domainSeparator es definido de la siguiente manera:
    domain separator.PNG
    • eip712Domain contiene los siguientes miembros:
    miembros.PNG
    Erick Ramon Mendoza Varela

    Erick Ramon Mendoza Varela

    student•
    hace 3 años
    Eip 712.PNG