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.

Кампанія винагородЛипень