Saltar al contenido principal

Referencia API: getObject

Recupera los detalles de un objeto específico de la cadena de bloques.

Clase: SuiClient Tipo de método: Operación de lectura, sin gas


Firma

client.getObject(input: GetObjectParams): Promise<SuiObjectResponse>

Parámetros

El método acepta un único objeto de configuración que contiene las siguientes propiedades:

ParámetroTipoRequeridoDescripción
idstringEl ID de objeto hexadecimal de 32 bytes, por ejemplo, 0x123....
optionsSuiObjectDataOptionsNoBanderas de configuración para activar campos de datos específicos en la respuesta. Por defecto es false para todos los campos.

SuiObjectDataOptions

Por defecto, getObject devuelve sólo la referencia del objeto, específicamente su ID, versión y resumen. Para recuperar los datos reales, debe establecer explícitamente estas banderas a true.

OpciónDescripción
showTypeDevuelve el tipo Move, por ejemplo, 0x2::coin::Coin<SUI>.
showContentDevuelve los campos de datos Move analizados, el estado interno del objeto.
showOwnerDevuelve la dirección o el objeto que posee este elemento.
showDisplayDevuelve los metadatos estándar de visualización, específicamente imágenes y nombres, para la representación de la interfaz de usuario.
showStorageRebateDevuelve el descuento de almacenamiento asociado al objeto.

Valor de retorno

Devuelve un Promise que resuelve a una SuiObjectResponse. Esta respuesta es una envoltura estándar que maneja los estados de éxito y error.

1. Respuesta de éxito (data)

Si el objeto existe y se mantiene la accesibilidad, la propiedad data contiene SuiObjectData.

{
"data": {
"objectId": "0x...",
"version": "10",
"digest": "...",
"type": "0x2::coin::Coin<0x2::sui::SUI>", // Presente si showType: true
"content": { // Presente si showContent: true
"dataType": "moveObject",
"fields": { "balance": "1000000000" }
},
"owner": { // Presente si showOwner: true
"AddressOwner": "0xabc..."
}
}
}

2. Respuesta de error (error)

Si ha eliminado el objeto, está envuelto en otro objeto, o no existe, la propiedad error contiene un valor.

{
"error": {
"code": "notExists",
"object_id": "0x..."
}
}

Ejemplos de uso

Escenario A: Comprobar si un objeto existe

Esta es la consulta más ligera. No solicita ningún dato, sólo el digest/versión.

const response = await client.getObject({
id: '0x123...'
});

if (response.error) {
console.log("El objeto no existe.");
} else {
console.log("El objeto existe en la versión:", response.data.version);
}

Escenario B: Obtención de metadatos de tokens no fungibles

Esta solicitud pide el content para leer campos, y display para ver la dirección de la imagen.

const nft = await client.getObject({
id: '0x123...',
options: {
showContent: true,
showDisplay: true
}
});

const name = nft.data.content.fields.name;
const imageUrl = nft.data.display.data.image_url;

Escenario C: Verificación de la propiedad

Utilice esto para comprobar si un usuario específico posee un elemento.

const item = await client.getObject({
id: '0x123...',
options: { showOwner: true }
});

const owner = item.data.owner;

if (owner && owner.AddressOwner === '0xMyAddress...') {
console.log("Usted es el propietario de este artículo.");
}

Errores comunes

Código de errorCausaResolución
notExistsEl ID del objeto es un hex válido, pero el objeto no se encuentra en la red.Compruebe el ID o asegúrese de que el objeto no fue eliminado en una transacción anterior.
deletedEl objeto existía antes pero fue quemado o usted lo eliminó.No puede obtener datos de objetos eliminados.
invalid_paramEl ID de objeto proporcionado no es una cadena hexadecimal válida de 32 bytes.Asegúrese de que el ID comienza con 0x y tiene la longitud correcta.

Ver también

  • getMultiGetObjects**: Obtiene muchos objetos en una sola petición de red, para procesamiento por lotes.
  • getOwnedObjects: Encuentra todos los objetos poseídos por una dirección específica.