msg.sender
es una de las direcciones de wallet de Sequence Relayers. Para los contratos estándar de Sequence Builder, esto no es un problema cuando se combina con una solicitud a la Transactions API de relayed transactions.
Por defecto, las transacciones de Sequence se ejecutan de forma secuencial.
- Configuración del entorno con Express Server: Cree un servidor basado en NodeJs usando la librería Express para aceptar solicitudes HTTP
- Gestión de proyecto y clave de acceso: Solicite una clave de acceso pública para interactuar con el stack de Sequence
- Despliegue del contrato de coleccionables: Despliegue un contrato de coleccionables para poder enviar transacciones a la blockchain y mintear tokens a una dirección de wallet
- Construcción de un relayer patrocinado con la Transactions API: Cree una función para usar en una ruta de Express que llame a la Transactions API de Sequence desde un contrato patrocinado
- (Opcional) Retransmisión con moneda propia de la wallet: Crea una función para usar en una ruta de Express que llame a la Transactions API de Sequence y pague usando una moneda que posee la wallet
- (Opcional) Retransmisión de transacciones en paralelo: Realiza agrupación de transacciones para enviar una moneda
1
Configuración del entorno con Express Server
Asegúrate de tener instalado Luego, clone el siguiente código de plantilla de expressUna vez que el código esté en su máquina local, ejecute su servidor y cliente con el siguiente comando:Dentro del código hay una ruta llamada Debería ver la siguiente salida:
pnpm
(u otro gestor de paquetes de Node) con el siguiente comando:Express es un framework minimalista y flexible para aplicaciones web en Node.js que ofrece un conjunto robusto de funciones para aplicaciones web y móviles, y será utilizado en esta guía.
/mint
que puede llamarse desde la CLI para pruebas.Pruebe con este ejemplo de solicitud curl:2
Gestión de proyecto y clave de acceso
Primero, siga esta guía para aprender cómo registrarse en Sequence Builder y cómo crear un proyecto.Luego, para usar la Transactions API, deberá actualizar su facturación a
Developer
, lo cual puede hacer siguiendo esta guía.Finalmente, se requiere una Public Access Key
para la Transactions API, que puede obtener siguiendo esta guía.Por último, actualice el archivo .env.example
a .env
con lo siguiente:3
Despliegue del contrato de coleccionables
Siga este tutorial para desplegar un contrato de coleccionables.Finalmente, actualice el archivo Primero, usando el código de plantilla proporcionado en el paso #1, necesitaremos agregar algunos paquetesLuego, su servidor necesitará una wallet EOA que pueda firmar mensajes. Será la propietaria de su wallet Sequence del lado del servidor, la cual se usará para enviar transacciones.Para implementar la función Por último, actualice el archivo 
Donde el valor de
Si está usando una red que no es testnet y necesita patrocinar su contrato, puede hacerlo siguiendo esta guía
.env
con su contrato de coleccionables desplegado:Construya un relayer patrocinado con la Transactions API
El código completo para esta sección se encuentra aquí
Abrir una sesión puede desencadenar una migración de su wallet Sequence a una nueva versión, esto podría ser de
v1
a v2
o de v2
a versiones futuras.La migración es un proceso irreversible; una vez que su wallet es migrada, no puede volver a una versión anterior.Para detectar cualquier migración no deseada, puede usar el callback onMigration
.callContract
, incluya el siguiente código que utiliza un único firmante para retransmitir transacciones:.env
con una clave privada para una wallet que puede generarse desde esta aplicación (solo para fines de demostración). Para producción, recomendamos generar claves privadas de forma segura y local en su computadora usando este script de ejemplo.Luego, actualice la variable PKEY
con la clave:Otorgar el rol MINTER_ROLE a la dirección de la wallet relayer
Debe actualizar el acceso por roles del contrato en el Builder para que solo reciba solicitudes desde la dirección de la wallet minter.Puede hacer esto en Sequence Builder otorgando elminter permission
a su Sequence Wallet Transactions API Address
.Para hacerlo, abra su proyecto, navegue a la página de Contracts
, seleccione sus Linked contracts
y, en la pestaña Write Contract
, expanda el método grantRole
.Complete con los siguientes datos:bytes32 role
: 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6
address account
: <Generated Sequence Transactions API Wallet Address>

role
ingresado es el resultado de keccak256("MINTER_ROLE")
en solidity o ethers.solidityPackedKeccak256(ethers.toUtf8Bytes("MINTER_ROLE"))
en javascriptEsto hace que solo su dirección específica pueda mintear desde el contrato; de lo contrario, dará error.Complete la actualización del rol haciendo clic en write
y firme la transacción patrocinada.Su aplicación ya está lista para que envíe una transacción de prueba desde el frontend del cliente iniciando sesión en su wallet y haciendo clic en mintear.¡Pruébelo!No olvide actualizar la clave de acceso en el cliente en la función
initWallet