Bài viết
Chia sẻ kiến thức của bạ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-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
Câu trả lời
2Như 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.
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?
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-call
khô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 đề.
Bạn có biết câu trả lời không?
Hãy đăng nhập và chia sẻ nó.