मुख्य कंटेंट तक स्किप करें

एपीआई संदर्भ: getOwnedObjects

एक विशिष्ट पते के स्वामित्व वाले ऑब्जेक्ट्स की एक सूची प्राप्त करता है।

क्लास: SuiClient विधि प्रकार: रीड ऑपरेशन, कोई गैस नहीं


अवलोकन

यह मेथड "इन्वेंटरी" या "वॉलेट" स्क्रीन को भरता है। क्योंकि एक पता हज़ारों ऑब्जेक्ट्स का मालिक हो सकता है, यह मेथड परिणामों को पेजिनेट करता है।

सिग्नेचर

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

पैरामीटर

ParameterTypeRequiredDescription
ownerstringहाँजाँच किए जाने वाले वॉलेट का 32-बाइट पता।
filterSuiObjectDataFilterनहींप्रकार या पैकेज द्वारा परिणाम फ़िल्टर करें, नीचे देखें।
optionsSuiObjectDataOptionsनहींविवरण शामिल करने के लिए फ़्लैग, उदाहरण के लिए, showType
cursorstringनहींपेजिनेशन के लिए, पिछले प्रतिक्रिया से nextCursor
limitnumberनहींवापस करने के लिए अधिकतम आइटम, डिफ़ॉल्ट: 50।

SuiObjectDataFilter

फ़िल्टर पैरामीटर शक्तिशाली फ़िल्टरिंग प्रदान करता. यह आपको उपयोगकर्ता की पूरी इन्वेंट्री डाउनलोड करने के बजाय "मुझे केवल कॉइन्स दिखाएँ" जैसे विशिष्ट प्रश्न पूछने देता है।

Filter KeyValue TypeDescription
MatchAllFilter[]लॉजिकल AND। ऑब्जेक्ट को सभी प्रदान किए गए फ़िल्टर से मेल खाना चाहिए।
MatchAnyFilter[]लॉजिकल OR। ऑब्जेक्ट किसी भी दिए गए फ़िल्टर से मेल खा सकता है।
StructTypestringMove Struct प्रकार के लिए सटीक मिलान, उदाहरण के लिए, 0x2::sui::SUI
Packagestringकिसी विशिष्ट पैकेज आईडी में परिभाषित किसी भी ऑब्जेक्ट से मेल खाता है।

रिटर्न वैल्यू

एक PaginatedObjectsResponse लौटाता है।

{
"data": [
{ "data": { "objectId": "0xA...", "type": "..." } },
{ "data": { "objectId": "0xB...", "type": "..." } }
],
"hasNextPage": true,
"nextCursor": "0x12345...ResultCursor"
}
  • data: यह ऐरे इस पेज के ऑब्जेक्ट्स को रखता है।
  • hasNextPage: true यदि प्राप्त करने के लिए और ऑब्जेक्ट हैं।
  • nextCursor: वह स्ट्रिंग जिसे आपको अगले पेज को प्राप्त करने के लिए अपने अगले कॉल में cursor पैरामीटर को पास करना होगा।

उपयोग के उदाहरण

परिदृश्य A: बुनियादी इन्वेंटरी फ़ेच, पहला पेज

किसी पते के स्वामित्व वाले पहले 5 ऑब्जेक्ट प्राप्त करें।

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

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

परिदृश्य B: विशिष्ट संपत्तियों के लिए फ़िल्टरिंग

किसी उपयोगकर्ता के स्वामित्व वाले केवल "Sui DevNet Non-Fungible Tokens" प्राप्त करें, उनके कॉइन और अन्य आइटमों को अनदेखा करते हुए।

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

परिदृश्य C: पूर्ण पेजिनेशन, सभी प्राप्त करना

किसी खाते के स्वामित्व वाले प्रत्येक ऑब्जेक्ट को पेज-दर-पेज प्राप्त करने के लिए एक while लूप का उपयोग करें।

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

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

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

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

console.log(`कुल ऑब्जेक्ट प्राप्त हुए: ${allObjects.length}`);

सामान्य त्रुटियाँ

Error CodeCauseResolution
cursor_invalidcursor को दी गई स्ट्रिंग मान्य नहीं है या किसी अलग क्वेरी से है।सुनिश्चित करें कि आप पिछली कॉल से nextCursor में लौटाई गई सटीक स्ट्रिंग ही पास करें।
limit_exceededयदि आप नोड द्वारा अनुमत सीमा से अधिक की अनुरोध करते हैं, उदाहरण के लिए, 1000।अपनी सीमा कम करें। मानक अधिकतम आमतौर पर 50 होता है।

यह भी देखें

  • getObject: इसकी आईडी (ID) द्वारा एक ऑब्जेक्ट प्राप्त करें।
  • multiGetObjects: एक ही अनुरोध में उनकी आईडी (IDs) द्वारा कई ऑब्जेक्ट प्राप्त करें।