Publication
Partagez vos connaissances.
Comment s'assurer que seul le propriétaire d'un NFT peut le transférer dans un contrat ?
Salut tout le monde ! Je travaille à la mise en œuvre d'un contrat NFT et je souhaite m'assurer que seul le propriétaire légitime du NFT peut le transférer. J'ai cette fonction pour transférer :
public fun transfer(
nft: DevNetNFT, recipient: address, _: &mut TxContext
) {
transfer::public_transfer(nft, recipient)
}
Cette vérification est-elle effectuée dans le cadre public_transfer
de la méthode ou dois-je ajouter une logique supplémentaire ?
- Move CLI
Réponses
3Pour clarifier davantage, ce n'est pas spécifiquement la vérification de la propriété public_transfer
qui vérifie la propriété, mais plutôt la sémantique des transactions Sui. Pour qu'une transaction accepte un objet en entrée, vous devez en être le propriétaire, c'est-à-dire que l'adresse de l'expéditeur doit correspondre à l'adresse du propriétaire de l'objet. Les objets partagés considèrent toutefois tout le monde comme un « propriétaire » aux fins des transactions.
CheckWitheGoAvant le transfert d'un NFT, la public_transfer
fonction vérifie si l'expéditeur détient le NFT. Ainsi, la logique est bel et bien intégrée à la public_transfer
méthode.
En fait, vous n'avez pas besoin de cette fonction car vous pouvez appeler directement tx.transferObjects
depuis un PTB.
Connaissez-vous la réponse ?
Veuillez vous connecter et la partager.
Move is an executable bytecode language used to implement custom transactions and smart contracts.