Move.

Beitrag

Teile dein Wissen.

Tawhid.
Mar 26, 2025
Experten Q&A

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
Teilen
Kommentare
.

Antworten

3
dudley_smith.
Mar 27 2025, 07:47

Ein 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.

2
Beste Antwort
Kommentare
.
cod.
cod95
Mar 27 2025, 02:05

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.

2
Kommentare
.
Grizzly.
Mar 27 2025, 05:53

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.

1
Kommentare
.

Weißt du die Antwort?

Bitte melde dich an und teile sie.

Move is an executable bytecode language used to implement custom transactions and smart contracts.

148Beiträge231Antworten
Sui.X.Peera.

Verdiene deinen Anteil an 1000 Sui

Sammle Reputationspunkte und erhalte Belohnungen für deine Hilfe beim Wachstum der Sui-Community.

BelohnungskampagneJuli