Aller au contenu principal

Référence API : getOwnedObjects (objets possédés)

Récupère une liste d'objets appartenant à une adresse spécifique.

-Classe : SuiClient -Type de méthode: Opération de lecture, pas de gaz


Aperçu

Cette méthode permet de remplir les écrans "Inventaire" ou "Portefeuille". Comme une adresse peut posséder des milliers d'objets, cette méthode pagine les résultats.

Signature

client.getOwnedObjects(input : GetOwnedObjectsParams) : Promesse<PaginatedObjectsResponse>

Paramètres

ParamètreTypeRequisDescription
propriétairechaîneOuiL'adresse sur 32 octets du portefeuille à vérifier.
filterSuiObjectDataFilterNonFiltrer les résultats par type ou paquet, voir ci-dessous.
optionsSuiObjectDataOptionsNonIndicateurs pour inclure des détails, par exemple, showType.
cursorstringNonLe nextCursor d'une réponse précédente, pour la pagination.
limitnumberNoMax items to return, default : 50.

SuiObjectDataFilter (Filtre à données)

Le paramètre filter offre un filtrage puissant. Il vous permet de poser des questions spécifiques comme "Montrez-moi seulement les pièces " au lieu de télécharger tout l'inventaire de l'utilisateur.

Filtre CléValeur TypeDescription
MatchAllFilter[]ET logique. L'objet doit correspondre à tous les filtres fournis.
MatchAnyFilter[]OR logique. L'objet peut correspondre à n'importe quel filtre fourni.
StructTypestringCorrespondance exacte pour un type de structure Move, par exemple, 0x2::sui::SUI.
PackagestringCorrespondance avec tout objet défini dans un identifiant de package spécifique.

Valeur de retour

Renvoie une réponse PaginatedObjectsResponse.

{
"data" : [
{ "data" : {"objectId" : "0xA...", "type" : "..." } },
{ "data" : { "objectId" : "0xB...", "type" : "..." } }
],
"hasNextPage" : true,
"nextCursor" : "0x12345...ResultCursor"
}
  • data : Ce tableau contient les objets de cette page.
  • hasNextPage : true s'il y a plus d'objets à récupérer.
  • nextCursor : La chaîne que vous devez passer au paramètre cursor dans votre appel next pour obtenir la page suivante.

Exemples d'utilisation

Scénario A : Recherche d'inventaire de base, première page

Obtenir les 5 premiers objets appartenant à une adresse.

const response = await client.getOwnedObjects({
owner : '0xMyAddress...',
limite : 5,
options : { showType : true }
}) ;

response.data.forEach(item => {
if (item.data) {
console.log(`ID : ${item.data.objectId}, Type : ${item.data.type}`) ;
}
}) ;

Scénario B : Filtrage d'actifs spécifiques

Obtenir uniquement les "Sui DevNet Non-Fungible Tokens" appartenant à un utilisateur, en ignorant ses pièces et autres objets.

const response = await client.getOwnedObjects({
owner : '0xMyAddress...',
filter : {
StructType : '0x2::devnet_nft::DevNetNFT'
},
options : { showContent : true }
}) ;

Scénario C : Pagination complète, récupération de tous les objets

Utilisez une boucle while pour récupérer tous les objets d'un compte, page par page.

let hasNextPage = true ;
let nextCursor = null ;
const allObjects = [] ;

while (hasNextPage) {
const response = await client.getOwnedObjects({
owner : '0xMyAddress...',
curseur : nextCursor
}) ;

allObjects.push(...response.data) ;

hasNextPage = response.hasNextPage ;
nextCursor = response.nextCursor ;
}

console.log(`Total des objets récupérés : ${allObjects.length}`) ;

Erreurs courantes

Code d'erreurCauseRésolution
cursor_invalidLa chaîne passée à cursor n'est pas valide ou provient d'une requête différente.Assurez-vous de passer la chaîne exacte retournée dans nextCursor lors de l'appel précédent.
remarque

Si vous demandez une limite plus élevée que ce que le noeud permet, par exemple 1000, réduisez votre limite. La limite standard est typiquement de 50.


Voir aussi

getObject : Récupérer un seul objet par son ID.

multiGetObjects : Récupère plusieurs objets par leur ID en une seule requête.