Move.

Bài viết

Chia sẻ kiến thức của bạn.

mssoni.
Mar 11, 2025
Thảo Luậ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
Chia sẻ
Bình luận
.

Câu trả lời

2
Bahador.
Mar 11 2025, 11:05

Như lỗi đã đề cập, có thể có sự không khớp kiểu. Vui lòng cung cấp mã của bạn và hiển thị vấn đề ở đâu.

2
Bình luận
.
mssoni.
Mar 11 2025, 15:04

Vâng, cảm ơn bạn, đã chỉnh sửa câu hỏi của tôi. Bạn có thể xem nó ngay bây giờ không?

jogador_1.
Mar 14 2025, 05:57

Có vẻ như sự hiểu lầm bắt nguồn từ loại dự kiến trong giao dịch của bạn. <TYPE>Trong bạn move-callkhông nhất thiết phải là kiểu của đối số đầu tiên; thay vào đó, hàm có thể đang sử dụng chung. Bằng cách đảm bảo rằng các đối số kiểu khớp với những gì hàm mong đợi, bạn có thể giải quyết vấn đề.

0
Bình luận
.

Bạn có biết câu trả lời không?

Hãy đăng nhập và chia sẻ nó.

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

148Bài viết231Câu trả lời
Sui.X.Peera.

Kiếm phần của bạn từ 1000 Sui

Tích lũy điểm danh tiếng và nhận phần thưởng khi giúp cộng đồng Sui phát triển.

Chiến dịch phần thưởngTháng Bảy