Move.

帖子

分享您的知识。

yhant3.
Apr 07, 2025
专家问答

如何确保只有NFT所有者才能在合约中进行转让?

嘿大家!我正在努力实施NFT合同,并希望确保只有NFT的合法所有者才能进行转让. 我有这个传送功能:

public fun transfer(
    nft: DevNetNFT, recipient: address, _: &mut TxContext
) {
    transfer::public_transfer(nft, recipient)
}

这个检查是在public_transfer方法中完成的,还是我需要添加额外的逻辑?

  • Move CLI
0
3
分享
评论
.

答案

3
kryptoschain.
Apr 7 2025, 20:34

进一步澄清一下,public_transfer检查所有权的不是特别的,而是Sui交易语义. 要使交易接受对象作为输入,您必须拥有所有权,这意味着发件人的地址必须与该对象的所有者地址相匹配. 但是,出于交易的目的,共享对象将每个人视为 “所有者”.

0
评论
.
deriss.
Apr 7 2025, 20:36

checkWithegor在转移NFT之前,该public_transfer函数检查发送者是否持有NFT. 因此,该public_transfer方法确实内置了逻辑.

0
评论
.
DuAn.
Apr 7 2025, 21:52

你实际上并不需要这个函数,因为你可以直接在 tx.transferObjectsPTB 中调用.

0
评论
.

你知道答案吗?

请登录并分享。

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

148帖子231答案
Sui.X.Peera.

赚取你的 1000 Sui 份额

获取声誉积分,并因帮助 Sui 社区成长而获得奖励。

我们使用 cookie 确保您在我们的网站上获得最佳体验。
更多信息