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.
Gagne ta part de 1000 Sui
Gagne des points de réputation et obtiens des récompenses pour avoir aidé la communauté Sui à se développer.