Пост
Поделитесь своими знаниями.
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 для проверки всех объектов, которые пользователь хранит вне сети. Это может помочь подтвердить право собственности, не влияя на поток контрактов в блокчейне.
Возможно, для этого варианта использования вам не понадобится проверка в сети. Если вы хотите, чтобы пользователи доказали, что они владеют объектом, попросите их предоставить документ, подтверждающий право собственности.
Знаете ответ?
Пожалуйста, войдите в систему и поделитесь им.