Sui.

Inicio

Bienvenido al Foro Comunitario de Peera

Nuevos Artículos

  • article banner.
    MumiTroll.Peera.
    ParaMoveOct 31, 2023
    Artículo
    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 GasLessTransactionDatatransacció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 GasLessTransactionDataSe 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 TransactionDatauna 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-transactionLambda. 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í.

    0
  • article banner.
    MumiTroll.Peera.
    ParaMoveOct 31, 2023
    Artículo
    Oyentes y webhooks de Sui Move Events: ejemplos básicos de integraciones

    Para las empresas y los desarrolladores, la integración con cadenas como Sui ofrece una oportunidad única para innovar y crear soluciones transformadoras. En esta serie, nos adentramos en el proceso de construir sobre Sui, arrojando luz sobre las complejidades de las integraciones y centrándonos en los oyentes de eventos y los webhooks, que han sido componentes integrales de TheMoveDev y SuiQL, la API de eventos de GraphQL para indexación de Sui creada por Peeranha. TheMoveDev GitHub; SuIQL Repositorio de GitHub; Si tienes alguna duda, puedes hacerla aquí. El código se implementa en TypeScript y se ejecuta en el entorno de nube de AWS mediante tecnologías sin servidor. Serverless se usa para las implementaciones. Serverless Offline se usa para ejecutar el código localmente. Sui Events Listeners and Webhooks: una breve descripción Las redes blockchain están inherentemente descentralizadas, lo que hace que la integración de datos en tiempo real sea una hazaña desafiante. Aquí es donde entran en juego los oyentes de eventos y los webhooks. Losdetectores de eventosson mecanismos que supervisan constantemente la actividad de la cadena de bloques, identificando y capturando eventos específicos de interés. LosWebhooks, por otro lado, son llamadas HTTP activadas por estos eventos, lo que permite una comunicación fluida entre diferentes aplicaciones. La arquitectura de integración de Sui Nuestro proceso de integración con Sui implicó una arquitectura integral que comprendía varios componentes clave. Oyente de eventos ElEvents Listener, una potente herramienta de ECS Fargate, desempeña un papel fundamental en nuestra configuración de integración. Sondea continuamente los nuevos eventos de los nodos Sui (nodo completo de Sui) para garantizar que nuestro sistema se mantenga actualizado con las últimas actividades de la cadena de bloques. Lista de oyentes de Sui Events Los eventos identificados por elEvents Listenerse añaden a laSui Listener Queue, una cola FIFO SQS. Esta cola actúa como almacenamiento intermediario, lo que permite procesar y gestionar los eventos de forma eficiente. Invocador de webhook ElWebhook Invoker, responsable de invocar los webhooks, es una función de Lambda que garantiza una comunicación fluida entre nuestro sistema y las aplicaciones externas. Actúa como un puente, lo que facilita la transmisión de los datos de los eventos a los puntos finales designados. Event Bridge ElEvent Bridge, un componente fundamental de nuestra arquitectura, invoca la lambdaWebhook Invokercada vez que se añaden nuevos elementos a laSui Listener Queue. Este mecanismo de activación en tiempo real garantiza la invocación rápida de los webhooks. Webhook ElWebhook, implementado como una función de AWS Lambda, procesa los eventos individuales recibidos de la cadena de bloques Sui. Este componente desempeña un papel crucial a la hora de interpretar los datos del evento y ejecutar acciones específicas en función del tipo de evento. Flujo de trabajo: cómo se combina todo Entender el flujo de trabajo es esencial para comprender el perfecto funcionamiento de nuestra arquitectura de integración. Eventos: funcionamiento del oyente El detector de eventos funciona en un bucle continuo y realiza llamadas a la API de RPC para suix_queryEventsrecuperar nuevos eventos asociados a un ID de paquete configurado. El detector de eventos mantiene un valor de cursor en DynamoDB, lo que garantiza que lee los eventos cronológicamente. Añadir eventos a Sui Listener Queue Siempre que el detector de eventos identifica nuevos eventos, los añade a la cola de oyentes de Sui para su posterior procesamiento. Event Bridge Trigger El AWS Event Bridge monitoriza la cola de oyentes de Sui y activa la lambda del invocador de webhooks en cuanto se añaden nuevos elementos. Esto garantiza el procesamiento de eventos en tiempo real. Invocación de webhook El invocador de webhooks, una vez activado, invoca la función Lambda de Webhook para cada evento presente en la cola. Ejecución local: Dev Playground El complemento offline sin servidor se utiliza para ejecutar la solución localmente. Listener ejecuta una tarea de ECS en la nube. ECS no está disponible sin conexión a Internet sin servidor. Por ese motivo, descomente la sui-events-listenerfunción lambda en serverless.yml. Esta función leerá los nuevos eventos de la cadena de bloques una vez por minuto. Instalar dependencias: npm install Instale DynamoDB: npm run dynamodb:install Si recibe un error Error getting DynamoDb local latest tar.gz location undefined: 403en este paso, significa que todavía hay un problema conocido en serverless-dynamodb-local. Se discute aquí o puedes dejar tu pregunta en Sui Move Q&A. node_modules/dynamodb-localhost/dynamodb/config.json URL to https://s3.us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz- En http(añadir s a); node_modules/dynamodb-localhost/dynamodb/installer.j Cambiando httpahttps; Para iniciar los servicios, ejecute: npm run dev Implementación de Event Listener en AWS Instale la CLI de AWS; Configurar la CLI de AWS; aws configure Modificar los valores en stages\test.ymlystages\prod.yml; Iniciar el despliegue; npm run deploy:test o npm run deploy:prod Continuará... En esta primera parte de nuestra serie sobre integraciones de Sui, hemos explorado los conceptos fundamentales de los oyentes de eventos y los webhooks, y hemos desentrañado la intrincada arquitectura que subyace a nuestra integración con la cadena de bloques Sui. Estén atentos a las próximas partes, en las que profundizaremos en nuestro viaje y compartiremos ideas, desafíos y soluciones innovadoras que han dado forma a nuestra experiencia. No dudes en dejar tus preguntas aquí.

    1

Publicaciones

301
  • Bolke .Peera.
    ParaSuiFeb 28, 2025
    Discusión

    ¿Cómo arreglar el bloqueo de pases frecuentes en Sui Wallet después de la actualización?

    He tenido un problema con mi billetera Sui. Ahora tengo que introducir mi pase casi siempre, ya que se bloquea después de 1 minuto. Esto empezó a suceder después de la última actualización. ¿Qué puedo hacer para solucionar este problema?

    • Sui
    0
    0
  • farshad.Peera.
    ParaSuiFeb 27, 2025
    Discusión

    ¿Por qué no recibo los tokens Sui después del primer día en testnet?

    He estado publicando la dirección de mi monedero Sui en testnet-faucet y faucet.blockbolt cada pocas horas. Recibí 1 Sui el primer día, pero nada después. ¿Qué va mal?

    • Sui
    0
    1
  • Tawhid.Peera.
    ParaSuiFeb 26, 2025
    Discusión

    ¿Por qué ZKLogin genera diferentes direcciones de monederos?

    Inicié sesión en Tusky con Google y automáticamente me generó una dirección de monedero sui. Cuando volví a usar Google para iniciar sesión en la billetera sui, las direcciones eran completamente diferentes. Esto me desconcierta y mi comprensión es limitada, ya que no soy un experto en tecnología, solo un jugador de web3. ¿Se trata de un error? ¿Cómo funciona? ¿Puedo recuperar mi billetera?

    • Sui
    • Architecture
    0
    1
  • hohm.Peera.
    ParaMoveFeb 17, 2025
    P&R expertos

    How to fix 'UnusedValueWithoutDrop' error in PTB function?

    I'm trying to create a contract interaction function similar to a given transaction hash but face an error during execution. The error message is UnusedValueWithoutDrop { result_idx: 0, secondary_idx: 0 }. It appears in the dry run result of the PTB function. I suspect it might be due to an object not being properly handled by the end of the transaction. I attempted to use MoveCall, but I'm not sure if my approach is correct. Can someone advise me on correctly handling this issue?

    • Move CLI
    • Move
    1
    1
  • cod.Peera.
    cod15
    ParaSuiFeb 17, 2025
    Discusión

    ¿Dónde encontrar ejemplos de DAPP con TypeScript SDK?

    Estoy buscando un repositorio de GitHub con ejemplos de dApps, principalmente con React o NextJS, que implementen el SDK de TypeScript. ¿Alguien podría indicarme la dirección correcta?

    • Move
    0
    1
  • mssoni.Peera.
    ParaMoveFeb 17, 2025
    P&R expertos

    How to resolve CommandArgumentError with tx failed issue?

    I've been trying to execute a transaction using the CommandArgumentError { arg_idx: 1, kind: InvalidBCSBytes } error. Here's the snippet I used: const tx = new Transaction(); const [newCoin] = tx.splitCoins( tx.object(coinObjectId), [1000] ); tx.transferObjects([newCoin], tx.pure.string(wallet.address || "")); tx.setGasBudget(750000); const result = await wallet.signAndExecuteTransaction({ transaction: tx, }); I've tried using tx.pure.u64 but it didn't help. Any solutions?

    • Move CLI
    1
    1
  • doodee.Peera.
    ParaMoveFeb 17, 2025
    P&R expertos

    How to properly pass BCS serialized struct parameters in Sui?

    I've been trying to pass BCS serialized struct parameters to a move module in the Sui blockchain, but I'm hitting an InvalidUsageOfPureArg error. Can Sui handle BCS serialized struct parameters directly, or do I need to create a struct object first and pass it to the move module? How should I structure my code to achieve this?

    • Move CLI
    1
    2
  • elfDani.Peera.
    ParaSuiFeb 17, 2025
    P&R expertos

    How to monitor Sui transactions in a wallet app?

    I'm adding Sui support to an existing wallet app and need to track blockchain transactions for wallet accounts to detect deposits and update balances. Is there a straightforward method to achieve this without implementing a complex indexer? Is there an event I can monitor using the Sui SDK?

    • Sui
    • Architecture
    0
    2
  • Caplec.Peera.
    ParaSuiFeb 17, 2025
    Discusión

    ¿Cómo funciona la transferencia de tokens en SUI en comparación con el ERC-20?

    Estoy intentando entender cómo funcionan las transferencias de tokens en la cadena de bloques SUI. En las cadenas EVM, existe el estándar ERC-20 para las transferencias de tokens, y en BSC hay registros de transferencias. Sin embargo, en SUI, tengo problemas para capturar todos los diferentes tipos de swaps porque las diferentes bolsas descentralizadas emiten eventos diferentes. ¿Cómo puedo agregar de manera efectiva estos eventos en SUI?

    • Sui
    0
    2
  • mssoni.Peera.
    ParaMoveFeb 17, 2025
    P&R expertos

    How to call a function from another Move contract?

    I've deployed a contract with an address 0x3df... and a public function 'coll'. Now, I'm trying to write another contract that calls this 'coll' function, but I'm getting an error saying 'use 0x3df...::coll; use is invalid. Unbound module'. I've seen suggestions about using a dependencies file but I'm not sure how to implement this properly. What steps should I take to resolve the error and successfully call the function?

    • Move CLI
    • Move
    1
    2
Usamos cookies para asegurarnos de que obtenga la mejor experiencia en nuestro sitio web.
Más información