Move.

Publication

Partagez vos connaissances.

mssoni.
Mar 11, 2025
Discussion

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
Partager
Commentaires
.

Réponses

2
Bahador.
Mar 11 2025, 11:05

Comme le mentionne l'erreur, il peut y avoir une incompatibilité de type. Veuillez saisir votre code et indiquer où se situe le problème.

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

Oui, merci mon pote, j'ai édité ma question. Peux-tu y jeter un œil maintenant ?

jogador_1.
Mar 14 2025, 05:57

Il semble que le malentendu provienne du type attendu de votre transaction. Le <TYPE>in your move-calln'est pas nécessairement le type du premier argument ; au lieu de cela, la fonction utilise peut-être des génériques. En vous assurant que les arguments de type correspondent à ce qui est attendu par la fonction, vous pouvez résoudre le problème.

0
Commentaires
.

Connaissez-vous la réponse ?

Veuillez vous connecter et la partager.

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

148Publications231Réponses
Sui.X.Peera.

Gagne ta part de 1000 Sui

Gagne des points de réputation et obtiens des récompenses pour avoir aidé la communauté Sui à se développer.

Campagne de RécompensesJuillet