Move.

Publicación

Comparte tu conocimiento.

mssoni.
Mar 11, 2025
Discusión

How do I fix a type mismatch error in a Move transaction?

I'm working on a transaction in Move language involving a purchase function for a kiosk, but I keep hitting an error indicating a type mismatch, specifically EFieldTypeMismatch: u64 = 2 from dynamic_field.move. I've tried using BUYER_KIOSK instead of BUYER, but with no success. The transaction script involves splitting coins, assigning to coin, making move-calls, and confirming requests, but it fails at remove_child_object. Could this error be due to the incorrect type for function arguments? How can I resolve this?

(\
PRICE="5000000000"; \
PACKAGE="0x4"; \
PURCHASE_COIN="0x5"; \
ITEM="0x6"; \
ITEM_TRANSFER_POLICY_TYPE="<0x2::transfer_policy::TransferPolicy<$PACKAGE::factory::Nft>>"; \
ITEM_TRANSFER_POLICY="0x7"; \
SELLER_KIOSK="0x8"; \
BUYER_KIOSK="0x9"; \
BUYER="0x10"; \
sui client ptb \
    --split-coins @$PURCHASE_COIN "[$PRICE]" \
    --assign coin \
    --move-call 0x2::kiosk::purchase "<0x2::kiosk::Kiosk>" @$SELLER_KIOSK @$ITEM coin.0 \
    --assign purchase_result \
    --move-call 0x2::transfer_policy::confirm_request $ITEM_TRANSFER_POLICY_TYPE @$ITEM_TRANSFER_POLICY purchase_result.1 \
    --move-call 0x2::transfer::public_transfer "<0x2::kiosk::Item>" purchase_result.0 @$BUYER \
    --gas-budget 1000000000 \
    --json\
)
  • Move CLI
  • Move
2
2
Cuota
Comentarios
.

Respuestas

2
Bahador.
Mar 11 2025, 11:05

Como menciona el error, podría haber una falta de coincidencia de tipos. Proporcione su código y muestre dónde está el problema.

2
Comentarios
.
mssoni.
Mar 11 2025, 15:04

Sí, gracias amigo, edité mi pregunta. ¿Podrías echarle un vistazo ahora?

jogador_1.
Mar 14 2025, 05:57

Parece que el malentendido se debe al tipo esperado de transacción. El <TYPE>in your move-callno es necesariamente el tipo del primer argumento; en su lugar, la función puede estar usando genéricos. Si te aseguras de que los argumentos de tipo coinciden con lo que espera la función, puedes resolver el problema.

0
Comentarios
.

Sabes la respuesta?

Inicie sesión y compártalo.

Move is an executable bytecode language used to implement custom transactions and smart contracts.

148Publicaciones231Respuestas
Sui.X.Peera.

Gana tu parte de 1000 Sui

Gana puntos de reputación y obtén recompensas por ayudar a crecer a la comunidad de Sui.

Campaña de RecompensasJulio