Publicación
Comparte tu conocimiento.
Creación de tx_bytes a partir de la salida de SUI_GetNormalizedMoveFunction: ejemplos del módulo Move
sui_getNormalizedMoveFunction
Estoy buscando ejemplos u orientación sobre cómo crear tx_bytes después de recibir datos de Golang, PHP y JavaScript. sui_getNormalizedMoveFunction
Básicamente, quiero completar los parámetros de la función Move usando la salida desui_executeTransactionBlock
, preparar/firmar la transacción y luego enviarla usando. ¿Es este el flujo correcto para ejecutar las funciones de Move? De ser así, ¿cómo puedo generar los parámetros necesarios? 0xf5b55a91957b68f23107522abf96634a0d58ccad6ff9ecd6daf3eba8808b3dd9
y la función requiere parámetros como MintApp, Clock, Coin, sui_getNormalizedMoveFunction
, pero no estoy seguro del enfoque.
- Move
Respuestas
2Parece que está buscando ejecutar una transacción de Move Sui y sui_getNormalizedMoveFunction
proporciona algunos datos sobre el paquete Move. Para realizar una transacción, puedes usar las llamadas JSON RPC unsafe_***documentadas en la RPC JSON de Sui documentación. Esta llamada devolverá los bytes de la transacción (tx_bytes) con los que podrás firmar y ejecutar la transacción.
Estas son algunas sugerencias que te ayudarán a continuar:
- Usa el SDK de TypeScript: si es posible, comienza con el SDK de TypeScript que proporciona el proyecto.
unsafe_moveCall
El uso del SDK puede ayudarte a proporcionar tipos y argumentos de funciones, lo que facilita el trabajo con las funciones Move sin tener que llamarlas. Puedes encontrar más información y recursos en la [documentación] de SUI TypeScript (https://sui-typescript-docs.vercel.app/typescript). - ID y direcciones de objetos: para algunos parámetros, necesitará conocer los ID de objeto. Por ejemplo, si se trata de un quiosco, debe conocer el ID de objeto del quiosco. Del mismo modo, si eres KioskoWnerCap, necesitarás su ObjectID. El objeto Clock tiene un ObjectID fijo de 0x6.
- Tipos de argumentos para
unsafe_payMove
: Al llamarunsafe_payMove
, proporciona los argumentos necesarios en el tipo de argumentos, que incluye una lista de valores de JSON. Estos valores deben ser cadenas que representen los ID o las direcciones. Por ejemplo, «0x2: :sui: :SUI» representa una dirección. Si sigue estos pasos y comprende los parámetros y los ID de los objetos, puede crear los tx_bytes necesarios y ejecutar sus transacciones de Move Sui.
El proceso que estás describiendo es generalmente correcto para ejecutar funciones de movimiento en la cadena de bloques Sui. Esta es una guía paso a paso sobre cómo puedes abordar este tema:
- Llamada
sui_getNormalizedMoveFunction
: esta función devuelve la forma normalizada de una función Move, que incluye el nombre, los parámetros y el tipo de devolución de la función. Puedes usar esta información para entender qué parámetros requiere la función. - Genere los parámetros necesarios: los parámetros necesarios para la llamada a la función dependerán de la función en sí. En tu caso, estás intentando llamar a la función mint del
0xf5b55a91957b68f23107522abf96634a0d58ccad6ff9ecd6daf3eba8808b3dd9
paquete Sui. Mencionaste que puedes recuperar MintApp y Clock a partir de otros ejemplos de transacciones. Para los demás parámetros (Coin, Kiosk, KioskoWnerCap y TransferPolicy <SuiFren >), puede que tengas que recuperarlos de la cadena de bloques de Sui o generarlos tú mismo. - Prepara y firma la transacción de Sui: una vez que tengas todos los parámetros necesarios, puedes preparar la transacción. Esto implicará crear un bloque de transacciones que incluya la llamada a la función y sus parámetros. A continuación, tendrás que firmar este bloque de transacciones con tu clave privada.
- Envía la transacción usando
sui_executeTransactionBlock
: Finalmente, puedes enviar el bloque de transacción firmado a la cadena de bloques Sui usando lasui_executeTransactionBlock
función.
Sabes la respuesta?
Inicie sesión y compártalo.