帖子
分享您的知识。
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
答案
2正如错误所提到的,可能存在类型不匹配. 请提供您的代码并显示问题出在哪里.
是的,谢谢伙计,编辑了我的问题. 你现在能看看吗?
看来这种误解源于您的交易的预期类型. <TYPE>
你中的move-call
不一定是第一个参数的类型;相反,该函数可能使用泛型. 通过确保类型参数与函数的预期相匹配,你可以解决问题.
你知道答案吗?
请登录并分享。
Move is an executable bytecode language used to implement custom transactions and smart contracts.