Beitrag
Teile dein Wissen.
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
Antworten
3Ein Vorschlag für Ihren Anwendungsfall besteht darin, eine Liste von Adressen zu führen, für die eine Funktion in einem gemeinsamen Objekt geprägt wurde. Sie können Objektgrößenbeschränkungen mithilfe von a verwaltensui::table::Table
, sodass Sie eine Liste/Map effizient verwalten können.
Sie können versuchen, das SDK zu verwenden, um nach allen Objekten zu suchen, die ein Benutzer außerhalb der Kette hält. Dies könnte Ihnen helfen, die Inhaberschaft zu validieren, ohne den Vertragsablauf innerhalb der Kette zu beeinträchtigen.
Für diesen Anwendungsfall benötigen Sie möglicherweise keinen On-Chain-Check. Wenn Sie möchten, dass Benutzer nachweisen, dass sie Eigentümer eines Objekts sind, verlangen Sie von ihnen die Eingabe eines Eigentumsnachweises.
Weißt du die Antwort?
Bitte melde dich an und teile sie.