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

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

ब्लॉकचेन से किसी विशिष्ट ऑब्जेक्ट का विवरण प्राप्त करता है।

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


सिग्नेचर

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

पैरामीटर

यह मेथड एक सिंगल कॉन्फ़िगरेशन ऑब्जेक्ट स्वीकार करता है जिसमें निम्नलिखित प्रॉपर्टीज़ होती हैं:

ParameterTypeRequiredDescription
idstringहाँ32-बाइट हेक्साडेसिमल ऑब्जेक्ट आईडी, उदाहरण के लिए, 0x123...
optionsSuiObjectDataOptionsनहींप्रतिक्रिया में विशिष्ट डेटा फ़ील्ड को टॉगल करने के लिए कॉन्फ़िगरेशन फ़्लैग। सभी फ़ील्ड के लिए डिफ़ॉल्ट false है।

SuiObjectDataOptions

डिफ़ॉल्ट रूप से, getObject केवल ऑब्जेक्ट का संदर्भ, विशेष रूप से इसकी आईडी, संस्करण और डाइजेस्ट लौटाता है। वास्तविक डेटा प्राप्त करने के लिए, आपको इन फ़्लैग्स को स्पष्ट रूप से true पर सेट करना होगा।

OptionDescription
showTypeMove प्रकार लौटाता है, उदाहरण के लिए, 0x2::coin::Coin<SUI>.
showContentपार्स किए गए Move डेटा फ़ील्ड्स, यानी ऑब्जेक्ट की आंतरिक स्थिति, लौटाता है।
showOwnerइस आइटम का मालिक पता या ऑब्जेक्ट लौटाता है।
showDisplayUI रेंडरिंग के लिए डिस्प्ले स्टैंडर्ड मेटाडेटा, विशेष रूप से छवियां और नाम, लौटाता है।
showStorageRebateऑब्जेक्ट से जुड़ी स्टोरेज रिबेट लौटाता है।

रिटर्न मान

एक Promise लौटाता है जो एक SuiObjectResponse में रिज़ॉल्व होता है। यह प्रतिक्रिया एक मानक रैपर है जो सफलता और त्रुटि दोनों राज्यों को संभालता है।

1. सफलता प्रतिक्रिया (data)

यदि ऑब्जेक्ट मौजूद है और पहुँच बनाए रखी गई है, तो data प्रॉपर्टी में SuiObjectData होता है।

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

2. त्रुटि प्रतिक्रिया (error)

यदि आप ऑब्जेक्ट को हटा देते हैं, किसी अन्य ऑब्जेक्ट में लपेटते हैं, या वह मौजूद नहीं है, तो error प्रॉपर्टी में एक मान होता है।

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

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

परिदृश्य A: जाँचें कि कोई ऑब्जेक्ट मौजूद है या नहीं

यह सबसे हल्की क्वेरी है। यह कोई डेटा नहीं, केवल डिजिस्ट/संस्करण का अनुरोध करती है।

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

if (response.error) {
console.log("ऑब्जेक्ट मौजूद नहीं है।");
} else {
console.log("ऑब्जेक्ट संस्करण:", response.data.version, "पर मौजूद है");
}

परिदृश्य बी: नॉन-फंजिबल टोकन मेटाडेटा प्राप्त करना

यह अनुरोध फ़ील्ड पढ़ने के लिए content और इमेज एड्रेस देखने के लिए display के लिए पूछता है।

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;

परिदृश्य C: स्वामित्व सत्यापित करना

यह जांचने के लिए इसका उपयोग करें कि कोई विशिष्ट उपयोगकर्ता किसी आइटम का मालिक है या नहीं।

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

const owner = item.data.owner;

if (owner && owner.AddressOwner === '0xMyAddress...') {
console.log("यह आइटम आपका है।");
}

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

Error CodeCauseResolution
notExistsऑब्जेक्ट आईडी मान्य हेक्स है, लेकिन नेटवर्क पर ऑब्जेक्ट नहीं मिला।आईडी की जाँच करें या सुनिश्चित करें कि ऑब्जेक्ट पिछले लेनदेन में हटाया नहीं गया था।
deletedऑब्जेक्ट पहले मौजूद था लेकिन बर्न कर दिया गया या आपने उसे हटा दिया।आप हटाए गए ऑब्जेक्ट्स के लिए डेटा प्राप्त नहीं कर सकते।
invalid_paramप्रदान किया गया ऑब्जेक्ट आईडी एक मान्य 32-बाइट हेक्स स्ट्रिंग नहीं है।सुनिश्चित करें कि आईडी 0x से शुरू हो और सही लंबाई का हो।

यह भी देखें

  • getMultiGetObjects: बैचिंग के लिए, एक ही नेटवर्क अनुरोध में कई ऑब्जेक्ट प्राप्त करें।
  • getOwnedObjects: किसी विशिष्ट पते के स्वामित्व वाले सभी ऑब्जेक्ट खोजें।