Beitrag
Teile dein Wissen.
How to fetch objects by ID in a Sui smart contract?
I've been working on a Sui smart contract and want to understand how to fetch an object by its ID from within the smart contract itself. From what I've gathered, it seems like smart contracts on Sui don't have the direct capability like in Ethereum's Solidity to access storage and retrieve objects by their IDs. I'm looking for some guidance on whether this is possible directly within the smart contract or if I need to approach it differently.
- Move CLI
- Move
Antworten
2Sui Smart Contracts können zwar nicht direkt per ID innerhalb des Vertrags auf Objekte zugreifen, Sie können dies jedoch umgehen, indem Sie clientseitige Bibliotheken verwenden, um die benötigten Daten aus der Blockchain abzurufen und sie dann als Eingabe für die Smart-Contract-Funktionen bereitzustellen. Dies beinhaltet die Verwendung der API oder des SDK von Sui, um mit der Blockchain zu interagieren und die erforderlichen Objekte abzurufen, bevor der Smart Contract aufgerufen wird. Um mit solchen Szenarien umzugehen, verwenden Entwickler in der Regel den Sui-Client oder verwandte APIs, um extern mit der Blockchain zu interagieren. Diese Tools können Objekte anhand von IDs abfragen und dann die Übertragung dieser Objekte in die Funktionen des intelligenten Vertrags als erforderliche Eingaben erleichtern.
Leider ist es innerhalb eines Sui-Smart-Contracts nicht möglich, ein Objekt direkt nur mit seiner ID abzurufen. Dies liegt daran, dass intelligente Verträge auf Sui keinen direkten Zugriff auf den globalen Speicher haben, wie dies bei intelligenten Verträgen von Ethereum der Fall ist. Auf Sui müssen Sie das Objekt von einem externen System, z. B. einer clientseitigen Anwendung, abrufen und es dann als Argument an eine Smart-Contract-Methode übergeben.
Weißt du die Antwort?
Bitte melde dich an und teile sie.