Допис
Діліться своїми знаннями.
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
Відповіді
3Пропозиція для вашого випадку використання полягає в тому, щоб зберегти список адрес, які мали можливість викарбувати у спільному об'єкті. Ви можете керувати обмеженнями розміру об'єкта за допомогою asui::table::Table
, що дозволяє ефективно підтримувати списк/карту.
Ви можете спробувати використовувати SDK для перевірки всіх об'єктів, які користувач зберігає поза ланцюжком. Це може допомогти вам підтвердити право власності, не впливаючи на потоки контрактів у мережі.
Можливо, вам не знадобиться перевірка на ланцюжку для цього випадку використання. Якщо ви хочете, щоб користувачі довели, що вони володіють об'єктом, вимагайте від них ввести підтвердження права власності.
Ви знаєте відповідь?
Будь ласка, увійдіть та поділіться нею.