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

Проверьте с помощью EGOR Перед передачей NFT public_transferфункция проверяет, есть ли у отправителя NFT. public_transferТаким образом, логика действительно встроена в метод.

0
Комментарии
.
DuAn.
Apr 7 2025, 21:52

На самом деле эта функция вам не нужна, так как вы можете напрямую звонить tx.transferObjectsв PTB.

0
Комментарии
.

Знаете ответ?

Пожалуйста, войдите в систему и поделитесь им.

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

148Посты231Ответы
Sui.X.Peera.

Заработай свою долю из 1000 Sui

Зарабатывай очки репутации и получай награды за помощь в развитии сообщества Sui.

Кампания вознагражденийИюнь
      Посты с вознаграждением
      Мы используем файлы cookie, чтобы гарантировать вам лучший опыт на нашем сайте.
      Подробнее