एपीआई संदर्भ: getObject
ब्लॉकचेन से किसी विशिष्ट ऑब्जेक्ट का विवरण प्राप्त करता है।
क्लास: SuiClient
विधि का प्रकार: रीड ऑपरेशन, कोई गैस नहीं
सिग्नेचर
client.getObject(input: GetObjectParams): Promise<SuiObjectResponse>
पैरामीटर
यह मेथड एक सिंगल कॉन्फ़िगरेशन ऑब्जेक्ट स्वीकार करता है जिसमें निम्नलिखित प्रॉपर्टीज़ होती हैं:
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | हाँ | 32-बाइट हेक्साडेसिमल ऑब्जेक्ट आईडी, उदाहरण के लिए, 0x123...। |
options | SuiObjectDataOptions | नहीं | प्रतिक्रिया में विशिष्ट डेटा फ़ील्ड को टॉगल करने के लिए कॉन्फ़िगरेशन फ़्लैग। सभी फ़ील्ड के लिए डिफ़ॉल्ट false है। |
SuiObjectDataOptions
डिफ़ॉल्ट रूप से, getObject केवल ऑब्जेक्ट का संदर्भ, विशेष रूप से इसकी आईडी, संस्करण और डाइजेस्ट लौटाता है। वास्तविक डेटा प्राप्त करने के लिए, आपको इन फ़्लैग्स को स्पष्ट रूप से true पर सेट करना होगा।
| Option | Description |
|---|---|
showType | Move प्रकार लौटाता है, उदाहरण के लिए, 0x2::coin::Coin<SUI>. |
showContent | पार्स किए गए Move डेटा फ़ील्ड्स, यानी ऑब्जेक्ट की आंतरिक स्थिति, लौटाता है। |
showOwner | इस आइटम का मालिक पता या ऑब्जेक्ट लौटाता है। |
showDisplay | UI रेंडरिंग के लिए डिस्प्ले स्टैंडर्ड मेटाडेटा, विशेष रूप से छवियां और नाम, लौटाता है। |
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 Code | Cause | Resolution |
|---|---|---|
notExists | ऑब्जेक्ट आईडी मान्य हेक्स है, लेकिन नेटवर्क पर ऑब्जेक्ट नहीं मिला। | आईडी की जाँच करें या सुनिश्चित करें कि ऑब्जेक्ट पिछले लेनदेन में हटाया नहीं गया था। |
deleted | ऑब्जेक्ट पहले मौजूद था लेकिन बर्न कर दिया गया या आपने उसे हटा दिया। | आप हटाए गए ऑब्जेक्ट्स के लिए डेटा प्राप्त नहीं कर सकते। |
invalid_param | प्रदान किया गया ऑब्जेक्ट आईडी एक मान्य 32-बाइट हेक्स स्ट्रिंग नहीं है। | सुनिश्चित करें कि आईडी 0x से शुरू हो और सही लंबाई का हो। |
यह भी देखें
getMultiGetObjects: बैचिंग के लिए, एक ही नेटवर्क अनुरोध में कई ऑब्जेक्ट प्राप्त करें।getOwnedObjects: किसी विशिष्ट पते के स्वामित्व वाले सभी ऑब्जेक्ट खोजें।