Publication
Partagez vos connaissances.
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
Réponses
3Une suggestion pour votre cas d'utilisation est de conserver une liste des adresses dont une fonctionnalité a été créée dans un objet partagé. Vous pouvez gérer les restrictions de taille des objets à l'aide desui::table::Table
, ce qui vous permet de gérer efficacement une liste/une carte.
Vous pouvez essayer d'utiliser le SDK pour vérifier tous les objets qu'un utilisateur détient hors chaîne. Cela peut vous aider à valider la propriété sans affecter le flux des contrats en chaîne.
Vous n'aurez peut-être pas besoin d'une vérification en chaîne pour ce cas d'utilisation. Si vous souhaitez que les utilisateurs prouvent qu'ils possèdent un objet, demandez-leur de saisir une preuve de propriété.
Connaissez-vous la réponse ?
Veuillez vous connecter et la partager.