- Cree un proyecto en Builder y obtenga una clave de acceso
- Inicialice una aplicación React Vite
- Use Sequence Wallet para el inicio de sesión del usuario
- Utilice datos tipados EIP712 para generar firmas EIP6492
- Implemente el contrato para verificación EIP712 y validación EIP1271
- Renderice la respuesta del contrato de verificación y validación

Consulte el código completo del demo para más información y un ejemplo de demo aquí.
1. Cree un proyecto en Builder y obtenga una clave de acceso
Primero, siga esta guía para crear un proyecto en Sequence Builder y obtener una clave de acceso para el proyecto.2. Inicialice una aplicación React Vite
A continuación, comience inicializando un nuevo proyecto que contendrá todo el código necesario para generar firmas y respuestas de validación desde la blockchain:3. Use Sequence Wallet para el inicio de sesión del usuario
Instale los paquetes necesarios para que el proyecto funcione:4. Utilice datos tipados EIP712 para generar firmas EIP6492
A continuación, definiremos un dato tipado personalizado en TypeScript y, usando la biblioteca de utilidades de Sequence, construiremos un tipoTypedData
, donde verificaremos una estructura de mensaje con los parámetros name
, wallet
y message
:
En este ejemplo, VERIFYING_CONTRACT_ADDRESS
es el smart contract que desplegamos en sepolia
, pero en el siguiente paso le mostraremos qué hace este contrato para que pueda desplegarlo usted mismo en cualquier red:
5. Despliegue el contrato para verificación EIP712 y validación EIP1271
Ahora le proporcionaremos el código fuente que puede utilizar en herramientas como Remix para desplegar un contrato, o incluso algo como Foundry para construir y desplegar con el Sequence Builder1
Universal Signature Validator
El Universal Signature Validator puede, en teoría, desplegarse una sola vez para una red específica y compartirse entre muchas aplicaciones, lo que lo hace componible y reutilizable. Se utiliza tanto para wallets inteligentes off-chain como on-chain compatibles con EIP6492.Puede encontrar el código fuente aquí para desplegarlo.
2
Verificador de contrato personalizado
El siguiente contrato lo explicaremos más en detalle junto con sus distintas funciones, ya que puede personalizarse para la aplicación específica. Comience con lo básico, pasando el Universal Signature Validator en el constructor en el primer paso:
3
Verificar firma
A continuación, tenemos la función de verificación de firma que tanto crea el hash del mensaje como valida al firmante:
Digest personalizado de persona
En la siguiente función, recreamos el hash de la estructura con los parámetros recibidos, los cuales pueden ampliarse para incluir más o menos parámetros de distintos tipos:Para más información sobre cómo construir el digest, consulte la especificación EIP712.Validar firmante
A continuación, validamos la dirección delsigner
, el digest
y la signature
. Si se ha proporcionado una firma EIP6492, usamos el Universal Signature Validator; de lo contrario, verificamos la firma EIP1271 directamente:6. Renderice la respuesta del contrato de verificación y validación
Pasamos las firmas y llamamos al contrato desplegado usandoethers
con el PROJECT_ACCESS_KEY
en los siguientes pasos:
1
Cree un provider
Cree un provider usando la clave de acceso del proyecto:
2
Inicialice un contrato de Ethers
Importe el ABI generado en el paso 5 (o cópielo del código fuente en git), incluya el provider e ingrese la dirección del contrato verificador:
3
Llamada estática a la función de verificación de firma
Al realizar una llamada estática a la función, simulamos la transacción sin enviarla en cadena. Esto devuelve un resultado que especifica si la validación fue verdadera o falsa: