Move.

Beitrag

Teile dein Wissen.

mssoni.
Mar 11, 2025
Diskussion

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
Teilen
Kommentare
.

Antworten

2
Bahador.
Mar 11 2025, 11:05

Wie der Fehler erwähnt, könnte es zu einer Typinkongruenz kommen. Bitte geben Sie Ihren Code ein und zeigen Sie, wo das Problem liegt.

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

Ja, danke Kumpel, habe meine Frage bearbeitet. Könntest du es dir jetzt ansehen?

jogador_1.
Mar 14 2025, 05:57

Es scheint, dass das Missverständnis auf den erwarteten Typ Ihrer Transaktion zurückzuführen ist. Das <TYPE>in your move-callist nicht unbedingt der Typ des ersten Arguments; stattdessen verwendet die Funktion möglicherweise Generics. Indem Sie sicherstellen, dass die Typargumente den Erwartungen der Funktion entsprechen, können Sie das Problem lösen.

0
Kommentare
.

Weißt du die Antwort?

Bitte melde dich an und teile sie.

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

148Beiträge231Antworten
Sui.X.Peera.

Verdiene deinen Anteil an 1000 Sui

Sammle Reputationspunkte und erhalte Belohnungen für deine Hilfe beim Wachstum der Sui-Community.

BelohnungskampagneJuli