ऑब्जेक्ट डेटा कैसे प्राप्त करें
लक्षित दर्शक: अपने पहले Sui रीड ऑपरेशन को लागू करने वाले डेवलपर्स।
लक्ष्य: Sui devnet से कच्चा ऑब्जेक्ट डेटा प्राप्त करने और उसकी जाँच करने के लिए एक Node.js स्क्रिप्ट लिखना।
अवलोकन
इस ट्यूटोरियल में, SuiClient का उपयोग करके एक रीड ऑपरेशन किया जाता है, जो एक विशिष्ट नॉन-फंजिबल टोकन (NFT) ऑब्जेक्ट के लिए Sui devnet से क्वेरी करता है ताकि उसकी ऑन-चेन विशेषताओं को देखा जा सके।
क्या बनाया गया है: एक हल्की Node.js स्क्रिप्ट जो नेटवर्क से जुड़ती है, किसी ऑब्जेक्ट को उसकी आईडी (ID) से अनुरोध करती है, और JSON प्रतिक्रिया को प्रिंट करती है।
पूर्वापेक्षाएँ
- Node.js: v18.0.0 या बाद का।
- पैकेज मैनेजर:
npmयाyarn। - टर्मिनल: बुनियादी कमांड-लाइन कौशल।
चरण 1: प्रोजेक्ट सेटअप
-
एक नई डायरेक्टरी बनाएँ और उसमें जाएँ:
mkdir sui-data-fetcher && cd sui-data-fetcher -
एक Node प्रोजेक्ट इनिशियलाइज़ करें और इसे ES मॉड्यूल के लिए कॉन्फ़िगर करें:
npm init -ynpm pkg set type="module" -
Sui TypeScript SDK इंस्टॉल करें:
npm install @mysten/sui
चरण 2: क्लाइंट को इनिशियलाइज़ करें
index.js नामक एक फ़ाइल बनाएँ। क्लाइंट को इम्पोर्ट करके और उसे devnet से कनेक्ट करके शुरू करें।
import { SuiClient, getFullnodeUrl } from '@mysten/sui/client';
// Configuration
const NETWORK = 'devnet';
// 1. क्लाइंट को इनिशियलाइज़ करें
// getFullnodeUrl स्वचालित रूप से 'devnet' के लिए सही RPC एंडपॉइंट को रिज़ॉल्व करता है
const client = new SuiClient({
url: getFullnodeUrl(NETWORK),
});
console.log(`✅ Sui ${NETWORK} से जुड़ा`);
चरण 3: क्वेरी लॉजिक लिखें
एक ज्ञात "devnet नॉन-फंगिबल टोकन (NFT)" ऑब्जेक्ट को क्वेरी करें।
devnetपर, नेटवर्क वाइप्स के दौरान ऑब्जेक्ट्स अक्सर हटा दिए जाते हैं। यदि नीचे दी गई आईडी काम नहीं करती है, तो आपको Sui Explorer से एक नई ऑब्जेक्ट आईडी ढूंढनी पड़ सकती है।
निम्न कोड को index.js में जोड़ें:
// devnet पर एक ज्ञात ऑब्जेक्ट आईडी (उदाहरण एनएफटी)
const TARGET_OBJECT_ID = '0x7d6539b7a423b035109b823e20c641c73defd23b8f3107b38d1d368688c2797c';
async function fetchObjectData() {
try {
console.log(`🔍 ऑब्जेक्ट क्वेरी कर रहा है: ${TARGET_OBJECT_ID}...`);
// 2. Execute the fetch
const response = await client.getObject({
id: TARGET_OBJECT_ID,
// "options" यह निर्धारित करता है कि नोड कितना डेटा लौटाता है।
// हम पेलोड को छोटा रखने के लिए सख्ती से सामग्री (fields) का अनुरोध करते हैं।
options: {
showContent: true,
showType: true
}
});
// 3. प्रतिक्रिया को संभालें
if (response.error) {
throw new Error(`ऑब्जेक्ट नहीं मिला: ${response.error.code}`);
}
console.log('--- ऑब्जेक्ट डेटा ---');
console.dir(response.data, { depth: null, colors: true });
} catch (err) {
console.error('❌ क्वेरी विफल:', err.message);
}
}
fetchObjectData();
चरण 4: चलाना और सत्यापन
अपनी टर्मिनल में स्क्रिप्ट चलाएँ:
node index.js
आउटपुट को समझना
आपको इस तरह का एक JSON स्ट्रक्चर दिखाई देना चाहिए:
{
"objectId": "0x7d...",
"version": "120",
"digest": "AuF...",
"type": "0x2::devnet_nft::DevNetNFT",
"content": {
"dataType": "moveObject",
"fields": {
"name": "Sui DevNet NFT",
"description": "Sui DevNet द्वारा बनाया गया एक NFT",
"url": "ipfs://..."
}
}
}
digest: ऑब्जेक्ट के संस्करण को सत्यापित करने वाला एक हैश।type: विशिष्ट मूव लैंग्वेज टाइप परिभाषा (पैकेज::मॉड्यूल::टाइप)।content.fields: ऑन-चेन संग्रहीत वास्तविक डेटा (उदाहरण के लिए, एनएफटी का नाम और पता)।
अगले कदम
आपने सफलतापूर्वक कच्चा डेटा प्राप्त कर लिया है, लेकिन आपने कोड में options पैरामीटर पर ध्यान दिया होगा। यह समझने के लिए कि आप वास्तव में किस डेटा का अनुरोध कर सकते हैं, एपीआई संदर्भ दस्तावेज़ देखें।