Move.

Пост

Поделитесь своими знаниями.

Tawhid.
Mar 26, 2025
Экспертные Вопросы и Ответы

How to ensure a smart contract doesn't resend a capability?

I'm working on a smart contract and I want to ensure that it doesn't send a capability if the user already owns one. This is to avoid unwanted transactions. I am thinking about using an SDK to check all objects a user holds and perhaps using a sui::table::Table to keep a list of minted capabilities. Is this the right approach, or is there a better way to confirm if an address holds a certain object on-chain?

  • Move CLI
  • Move
0
3
Поделиться
Комментарии
.

Ответы

3
dudley_smith.
Mar 27 2025, 07:47

Для вашего варианта использования рекомендуется сохранить список адресов, возможность которых была сохранена в общем объекте. Вы можете управлять ограничениями размера объекта с помощью буквы asui::table::Table, которая позволяет эффективно вести список/карту.

2
Лучший ответ
Комментарии
.
cod.
cod95
Mar 27 2025, 02:05

Вы можете попробовать использовать SDK для проверки всех объектов, которые пользователь хранит вне сети. Это может помочь подтвердить право собственности, не влияя на поток контрактов в блокчейне.

2
Комментарии
.
Grizzly.
Mar 27 2025, 05:53

Возможно, для этого варианта использования вам не понадобится проверка в сети. Если вы хотите, чтобы пользователи доказали, что они владеют объектом, попросите их предоставить документ, подтверждающий право собственности.

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

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

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

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

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

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

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

Кампания вознагражденийИюль
      Посты с вознаграждением