Beitrag
Teile dein Wissen.
Wie kann sichergestellt werden, dass nur NFT-Besitzer es in einem Vertrag übertragen können?
Hallo zusammen! Ich arbeite an der Umsetzung eines NFT-Vertrags und möchte sicherstellen, dass nur der rechtmäßige Eigentümer des NFT ihn übertragen kann. Ich habe diese Funktion zum Übertragen von:
public fun transfer(
nft: DevNetNFT, recipient: address, _: &mut TxContext
) {
transfer::public_transfer(nft, recipient)
}
Wird diese Überprüfung innerhalb der public_transfer
Methode durchgeführt, oder muss ich zusätzliche Logik hinzufügen?
- Move CLI
Antworten
3Zur weiteren Verdeutlichung: Es ist nicht speziell public_transfer
die Überprüfung des Eigentums, sondern die Semantik der Sui-Transaktion. Damit eine Transaktion ein Objekt als Eingabe akzeptiert, müssen Sie Eigentümer sein. Das heißt, die Adresse des Absenders muss mit der Eigentümeradresse auf dem Objekt übereinstimmen. Bei gemeinsam genutzten Objekten wird bei Transaktionen jedoch jeder als „Eigentümer“ behandelt.
checkwithegorVor der Übertragung einer NFT public_transfer
prüft die Funktion, ob der Absender die NFT besitzt. public_transfer
Somit ist die Logik tatsächlich in die Methode eingebaut.
Sie benötigen diese Funktion eigentlich nicht, da Sie sie direkt tx.transferObjects
in einer PTB aufrufen können.
Weißt du die Antwort?
Bitte melde dich an und teile sie.