Référence de l'API : getObject
Récupère les détails d'un objet spécifique de la blockchain.
Classe: SuiClient
Method Type: Read Operation, no gas
Signature
client.getObject(input : GetObjectParams) : Promesse<SuiObjectResponse>
Paramètres
La méthode accepte un seul objet de configuration contenant les propriétés suivantes :
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
id | string | Oui | L'ID hexadécimal de l'objet sur 32 octets, par exemple, 0x123.... |
options | SuiObjectDataOptions | Non | Drapeaux de configuration pour activer des champs de données spécifiques dans la réponse. La valeur par défaut est false pour tous les champs. |
SuiObjectDataOptions
Par défaut, getObject ne retourne que la référence de l'objet, en particulier son ID, sa version et son résumé. Pour récupérer les données réelles, vous devez explicitement mettre ces drapeaux à true.
| Option | Description |
|---|---|
showType | Retourne le type de mouvement, par exemple, 0x2::coin::Coin<SUI>. |
showContent | Retourne les champs de données de déplacement analysés, l'état interne de l'objet. |
showOwner | Retourne l'adresse ou l'objet propriétaire de cet élément. |
showDisplay | Retourne les métadonnées standard d'affichage, en particulier les images et les noms, pour le rendu de l'interface utilisateur. |
showStorageRebate | Retourne le rabais de stockage associé à l'objet. |
Valeur de retour
Retourne une Promesse qui se résout en une SuiObjectResponse. Cette réponse est une enveloppe standard qui gère à la fois les états de succès et d'erreur.
1. Réponse de succès (data)
Si l'objet existe et que l'accessibilité est maintenue, la propriété data contient SuiObjectData.
{
"data" : {
"objectId" : "0x...",
"version" : "10",
"digest" : "...",
"type" : "0x2::coin::Coin<0x2::sui::SUI>", // Présent si showType : true
"content" : { // Présent si showContent : true
"dataType" : "moveObject",
"fields" : { "balance" : "1000000000" }
},
"owner" : { // Présenté si showOwner : true
"AddressOwner" : "0xabc..."
}
}
}
2. Réponse d'erreur (error)
Si vous avez supprimé l'objet, s'il est enveloppé dans un autre objet ou s'il n'existe pas, la propriété error contient une valeur.
{
"error" : {
"code" : "notExists",
"object_id" : "0x..."
}
}
Exemples d'utilisation
Scénario A : Vérifier si un objet existe
Il s'agit de la requête la plus légère. Elle ne demande aucune donnée, seulement le code/la version.
const response = await client.getObject({
id : '0x123...'
}) ;
if (response.error) {
console.log("L'objet n'existe pas.") ;
} else {
console.log("L'objet existe à la version :", response.data.version) ;
}
Scénario B : Récupération des métadonnées des tokens non fongibles
Cette requête demande content pour lire les champs, et display pour voir l'adresse de l'image.
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 ;
Scénario C : Vérification de la propriété
Ce scénario permet de vérifier si un utilisateur spécifique est propriétaire d'un élément.
const item = await client.getObject({
id : '0x123...',
options : { showOwner : true }
}) ;
const owner = item.data.owner ;
if (owner && owner.AddressOwner === '0xMyAddress...') {
console.log("Vous êtes propriétaire de cet élément.") ;
}
Erreurs courantes
| Code d'erreur | Cause | Résolution |
|---|---|---|
notExists | L'ID de l'objet est un hexagone valide, mais l'objet n'est pas trouvé sur le réseau. | Vérifier l'ID ou s'assurer que l'objet n'a pas été supprimé lors d'une transaction précédente. |
deleted | L'objet existait auparavant mais il a été brûlé ou vous l'avez supprimé. | Vous ne pouvez pas récupérer les données des objets supprimés. |
invalid_param | L'ID de l'objet fourni n'est pas une chaîne hexagonale valide de 32 octets. | Assurez-vous que l'ID commence par 0x et qu'il est de la bonne longueur. |
Voir aussi
multiGetObjects : Récupère de nombreux objets en une seule requête réseau, pour le traitement par lots.
getOwnedObjects : Trouver tous les objets appartenant à une adresse spécifique.