Publicación
Comparte tu conocimiento.
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-call
s, 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
Respuestas
2Como menciona el error, podría haber una falta de coincidencia de tipos. Proporcione su código y muestre dónde está el problema.
Sí, gracias amigo, edité mi pregunta. ¿Podrías echarle un vistazo ahora?
Parece que el malentendido se debe al tipo esperado de transacción. El <TYPE>
in your move-call
no 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.
Sabes la respuesta?
Inicie sesión y compártalo.