Publicación
Comparte tu conocimiento.
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
Respuestas
2Si bien los contratos inteligentes de Sui no pueden acceder directamente a los objetos por ID dentro del contrato, puedes solucionar este problema utilizando bibliotecas del lado del cliente para obtener los datos necesarios de la cadena de bloques y luego proporcionarlos como entrada a las funciones del contrato inteligente. Esto implica usar la API o el SDK de Sui para interactuar con la cadena de bloques y recuperar los objetos necesarios antes de invocar el contrato inteligente. Para hacer frente a estos escenarios, los desarrolladores suelen utilizar el cliente de Sui o las API relacionadas para interactuar con la cadena de bloques de forma externa. Estas herramientas pueden consultar objetos en función de los ID y, a continuación, facilitar la transmisión de esos objetos a las funciones del contrato inteligente como entradas necesarias.
Desafortunadamente, dentro de un contrato inteligente de Sui, no es posible obtener directamente un objeto usando solo su ID. Esto se debe a que los contratos inteligentes de Sui no tienen acceso directo al almacenamiento global como lo hacen los contratos inteligentes de Ethereum. En Sui, necesitarás obtener el objeto de un sistema externo, como una aplicación del lado del cliente, y luego pasarlo como argumento a un método de contrato inteligente.
Sabes la respuesta?
Inicie sesión y compártalo.