Publicación
Comparte tu conocimiento.

Transacciones patrocinadas por Sui: ejemplos básicos de integraciones
Tradicionalmente, los usuarios que utilizan aplicaciones descentralizadas (dApps) se enfrentan a un obstáculo común: las tarifas de gas. En nuestro caso, estas tarifas de Sui, necesarias para ejecutar transacciones en la cadena de bloques, a menudo disuaden a los nuevos usuarios de aprovechar al máximo el potencial de Web3. Sin embargo, la innovadora función de transacciones patrocinadas de Sui elimina este obstáculo, lo que permite a los desarrolladores cubrir las tarifas de gas de las transacciones de sus aplicaciones. Esta funcionalidad revolucionaria allana el camino para una experiencia de usuario perfecta y fomenta una adopción más amplia de aplicaciones descentralizadas.
- TheMoveDev GitHub;
- SuIQL Repositorio de GitHub;
Si tienes alguna duda, puedes hacerla aquí.
Flujo de trabajo de transacciones patrocinadas
El flujo de trabajo de transacciones patrocinadas de Sui es un proceso bien orquestado que garantiza transacciones fluidas y sin comisiones para los usuarios finales. Este es un desglose de los pasos necesarios.
El usuario inicia una acción
El proceso se inicia cuando un usuario inicializa una GasLessTransactionData
transacción, indicando su intención de realizar una acción específica dentro de una dApp.
dApp crea un bloque de transacciones de Sui
En el centro del flujo de trabajo de las transacciones patrocinadas se encuentra la capacidad de la dApp para crear un bloque de transacciones. Este bloque encapsula todos los datos necesarios, incluida la intención del usuario, la acción que se va a realizar y los parámetros asociados.
Transmisión de GasLessTransactionData
GasLessTransactionData
Se envía al patrocinador, un participante clave en el marco de la transacción patrocinada, con una solicitud de firma. Estos datos sirven de base para la próxima transacción.
Validación y construcción de datos de transacciones
El patrocinador valida la transacción recibida y la construyeTransactionData
, incorporando las tarifas de gas necesarias. Este paso garantiza que la transacción esté debidamente financiada para su ejecución en la cadena de bloques Sui.
Firma de transacciones
El patrocinador firma laTransactionData
, indicando su aprobación y compromiso con la transacción. La clave privada necesaria para esta firma se almacena de forma segura en AWS Secrets Manager, lo que garantiza la máxima seguridad.
Verificación y doble firma por parte del usuario
La firmaTransactionData
, junto con la firma del patrocinador, se devuelve al usuario. El usuario verifica los detalles de la transacción y la firma TransactionData
una vez más, creando una transacción con doble firma lista para su ejecución.
Ejecución de transacciones en Sui
La transacción con doble firma se envía a la red Sui a través de un nodo Sui (nodo completo) o del patrocinador. Sui procesa la transacción y ejecuta la acción especificada dentro de la dApp, todo ello sin que el usuario deba pagar ninguna tarifa de gas.
Notificación al usuario
Finalmente, una dApp notifica al usuario que la transacción está patrocinada y enviada.
Implementación de transacciones patrocinadas por Sui: la perspectiva de un desarrollador
Para implementar transacciones patrocinadas, los desarrolladores interactúan con la API Sui o la API de transacciones patrocinadas, haciendo uso de la función sui-sign-sponsored-transaction
Lambda. He aquí un vistazo al código del lado del cliente que facilita este proceso:
const response = await fetch('http://localhost:5000/blockchain/sui-sign-sponsored-transaction', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
sender: wallet.address,
module: libName,
action,
arguments: data,
}),
});
const sponsorSignedTransaction = await response.json();
const transactionBlock = TransactionBlock.from(sponsorSignedTransaction?.transactionBlockBytes);
const senderSignedTransaction = await wallet.signTransactionBlock({
transactionBlock,
});
const executeResponse = await provider.executeTransactionBlock({
transactionBlock: sponsorSignedTransaction?.transactionBlockBytes,
signature: [sponsorSignedTransaction?.signatureBytes, senderSignedTransaction.signature],
options: { showEffects: true },
requestType: 'WaitForLocalExecution',
});
Este código del lado del cliente actúa como un puente entre el usuario, el patrocinador y la cadena de bloques Sui, lo que permite la ejecución sin problemas de transacciones sin comisiones de gas.
Conclusión
La función de transacciones patrocinadas de Sui representa un cambio de paradigma en el mundo de las aplicaciones descentralizadas, ya que elimina una importante barrera de entrada para los usuarios. A través de nuestra exploración de esta innovadora funcionalidad, hemos obtenido información valiosa que ha dado forma a nuestro enfoque para crear dApps fáciles de usar.
No dudes en dejar tus preguntas aquí.
- Move
Move is an executable bytecode language used to implement custom transactions and smart contracts.