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ètre | Type | Requis | Description |
|---|---|---|---|
propriétaire | chaîne | Oui | L'adresse sur 32 octets du portefeuille à vérifier. |
filter | SuiObjectDataFilter | Non | Filtrer les résultats par type ou paquet, voir ci-dessous. |
options | SuiObjectDataOptions | Non | Indicateurs pour inclure des détails, par exemple, showType. |
cursor | string | Non | Le nextCursor d'une réponse précédente, pour la pagination. |
limit | number | No | Max 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 Type | Description |
|---|---|---|
MatchAll | Filter[] | ET logique. L'objet doit correspondre à tous les filtres fournis. |
MatchAny | Filter[] | OR logique. L'objet peut correspondre à n'importe quel filtre fourni. |
StructType | string | Correspondance exacte pour un type de structure Move, par exemple, 0x2::sui::SUI. |
Package | string | Correspondance 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:trues'il y a plus d'objets à récupérer.nextCursor: La chaîne que vous devez passer au paramètrecursordans 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'erreur | Cause | Résolution |
|---|---|---|
cursor_invalid | La 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. |
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.