"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सुई टाइपस्क्रिप्ट एसडीके का उपयोग कैसे करें

सुई टाइपस्क्रिप्ट एसडीके का उपयोग कैसे करें

2024-11-03 को प्रकाशित
ब्राउज़ करें:471

सुई इस समय की श्रृंखला है, और हालांकि मूव सुई पर स्मार्ट अनुबंध लिखने के लिए पवित्र कब्र है, टाइपस्क्रिप्ट समर्थन महत्वपूर्ण है। आप टाइपस्क्रिप्ट के साथ पारिस्थितिकी तंत्र पर सुई और अधिकांश डेफी ऐप्स के साथ बातचीत कर सकते हैं और उनका उपयोग कर सकते हैं।

इस ट्यूटोरियल में, मैं आपको टाइपस्क्रिप्ट के माध्यम से सुई नेटवर्क के साथ इंटरैक्ट करना सिखाऊंगा। आप सीखेंगे कि ब्लॉकचेन की स्थिति कैसे पढ़ें, अपने टाइपस्क्रिप्ट प्रोग्राम से श्रृंखला में लेनदेन कैसे लिखें।

सुई और टाइपस्क्रिप्ट के साथ शुरुआत करना

एकमात्र शर्त यह है कि इस ट्यूटोरियल को सुचारू रूप से चलाने के लिए आपको बुनियादी जेएस/टीएस ज्ञान की आवश्यकता होगी। मैं आपको बाकी सभी चीज़ों के बारे में बताऊंगा।

सबसे पहले, अपने टर्मिनल में एक नया टाइपस्क्रिप्ट प्रोजेक्ट बनाएं और एक नया Node.js प्रोजेक्ट आरंभ करें।

mkdir SuiTS
cd SuiTS
npm init -y

यदि आपके पास यह पहले से नहीं है तो टाइपस्क्रिप्ट को विकास निर्भरता के रूप में स्थापित करें।

npm install typescript --save-dev
npm install ts-node //runs TS without the need for transpiling

अब, आप एक नया टाइपस्क्रिप्ट प्रोजेक्ट प्रारंभ कर सकते हैं। यह कमांड डिफ़ॉल्ट विकल्पों के साथ एक tsconfig.json फ़ाइल बनाएगा जिसे आप अपने प्रोजेक्ट के लिए अनुकूलित कर सकते हैं।

npx tsc --init

tsconfig.json खोलें और इन कॉन्फ़िगरेशन को पेस्ट करें।

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "CommonJS",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "types": ["node"],
    "resolveJsonModule": true
  },
  "exclude": ["node_modules"],

  "scripts": {
    "build": "tsc",
    "start": "node dist/index.js"
  }
}

एक src निर्देशिका बनाएं जहां आप अपनी टाइपस्क्रिप्ट फ़ाइलें जोड़ेंगे।

mkdir src
touch src/index.ts

अंत में, इस आदेश के साथ सुई टाइपस्क्रिप्ट एसडीके स्थापित करें।

npm i @mysten/sui.js

तुम सब सेट हो। आप टाइपस्क्रिप्ट प्रोग्राम लिखना शुरू कर सकते हैं जो सुई ब्लॉकचेन के साथ इंटरैक्ट करते हैं।

सुई ब्लॉकचेन से जुड़ना

श्रृंखला के साथ इंटरैक्ट करने के लिए आपको सुई ब्लॉकचेन से कनेक्ट होना होगा।

सबसे पहले, SDK क्लाइंट मॉड्यूल से getFullnodeUrl और SuiClient आयात करें।

import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';

अब, आपके इच्छित कनेक्शन के आधार पर, आप सुई टेस्टनेट, मेननेट, लोकलनेट, या डेवनेट के पूर्ण नोड यूआरएल को पुनः प्राप्त करने के लिए getFullnodeUrl का उपयोग कर सकते हैं; फिर, क्लाइंट इंस्टेंस से कनेक्ट करने के लिए SuiClient का उपयोग करें।

import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';

const rpcUrl = getFullnodeUrl('mainnet');

const client = new SuiClient({ url: rpcUrl });

अपने कनेक्शन का परीक्षण करने के लिए, आप नेटवर्क की नवीनतम स्थिति प्राप्त करने के लिए getLatestSuiSystemState का उपयोग कर सकते हैं।

// index.ts
import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';

const rpcUrl = getFullnodeUrl("mainnet");

const client = new SuiClient({ url: rpcUrl });

async function getNetworkStatus() {
    const currentEpoch = await client.getLatestSuiSystemState();
    console.log(currentEpoch)
}

getNetworkStatus();

अब, टाइपस्क्रिप्ट कोड को जावास्क्रिप्ट में ट्रांसपाइल करें और इसे इस कमांड के साथ चलाएं:

ts-node index.ts

जब आप कमांड निष्पादित करते हैं तो आपको इसके समान आउटपुट की उम्मीद करनी चाहिए।

How to Use the Sui TypeScript SDK

सुई वॉलेट बनाना

वॉलेट बनाना एक और लोकप्रिय ऑपरेशन है जो सुई नेटवर्क पर निर्माण करने पर उपयोगी हो सकता है।

यहां बताया गया है कि सुई वॉलेट कीपेयर कैसे बनाएं और कीपेयर से निजी और सार्वजनिक कुंजी कैसे प्राप्त करें।

import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';

const rpcUrl = getFullnodeUrl("mainnet");

const client = new SuiClient({ url: rpcUrl });

// random Keypair
const keypair = new Ed25519Keypair();

const publicKey = keypair.getPublicKey();
const privatekey = keypair.getSecretKey();

console.log(privatekey.toString());
console.log(publicKey.toSuiAddress());

Ed25519कीपेयर फ़ंक्शन एक नई कुंजी जोड़ी बनाता है। GetPublicKey और getPrivateKey विधियाँ आपको क्रमशः सार्वजनिक और निजी कुंजियों तक पहुँच प्रदान करती हैं।

यहां मेरे द्वारा प्रोग्राम के साथ जेनरेट की गई निजी और सार्वजनिक कुंजियों का स्ट्रिंग आउटपुट है:

suiprivkey1qq9r6rkysny207t5vr7m5025swh7w0wzra9p0553paprhn8zshqsx2rz64r
New Sui Address: 0xbd46d7582ced464ef369114252704b10317436ef70f196a33fcf2c724991fcba

मैं संचालन के अगले सेट के लिए इस वॉलेट को 0.25 सुई से वित्तपोषित कर रहा हूं। बेझिझक वॉलेट को सत्यापित और स्कैन करें। कोई धनराशि न भेजें; यह सिर्फ एक डमी वॉलेट है।

सुई वॉलेट बैलेंस पढ़ना

आप वॉलेट पते में सिक्कों पर विवरण प्राप्त करने के लिए अपने क्लाइंट इंस्टेंस पर getCoins फ़ंक्शन का उपयोग कर सकते हैं।

import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';

// use getFullnodeUrl to define the Devnet RPC location
const rpcUrl = getFullnodeUrl('mainnet');

// create a client connected to devnet
const client = new SuiClient({ url: rpcUrl });

async function getOwnedCoins() {
    const coins = await client.getCoins({
        owner: '0xbd46d7582ced464ef369114252704b10317436ef70f196a33fcf2c724991fcba',
    });
    console.log(coins);
}

getOwnedCoins();

फ़ंक्शन अकेले सुई सिक्के और विवरण पर विवरण देता है। आउटपुट MIST, सुई गैस टोकन में है। 1 SUI 1 बिलियन MIST के बराबर है।

How to Use the Sui TypeScript SDK

वैलेट में सभी सिक्कों की सूची प्राप्त करने के लिए getAllCoins फ़ंक्शन का उपयोग उसी तरह किया जा सकता है।

async function getAllCoins() {
    // Get the list of owned coins (tokens) for the given owner address
    const ownedCoins = await client.getAllCoins({ owner: "0xbd46d7582ced464ef369114252704b10317436ef70f196a33fcf2c724991fcba" });

    // Access the coin data
    const coins = ownedCoins.data;

    // Iterate through the coins and print their details
    for (const coin of coins) {
        console.log(`Coin Type: ${coin.coinType}`);
        console.log(`Coin Object ID: ${coin.coinObjectId}`);
        console.log(`Balance: ${coin.balance}`);
        console.log('--------------------');
    }

    // If there is more data, handle pagination
    if (ownedCoins.hasNextPage) {
        console.log('More data available. Fetching next page...');
        // You can handle the next page using ownedCoins.nextCursor if needed
    }
}

getAllCoins();

इस उदाहरण के लिए, मैंने हॉप एग्रीगेटर पर $FUD के लिए कुछ सुई का कारोबार किया, और यहां प्रोग्राम चलाने के बाद आउटपुट है।

How to Use the Sui TypeScript SDK

सिक्के या वस्तुएँ भेजें

अंत में, दिलचस्प बात यह है कि आप ब्लॉकचेन पर लेनदेन भेजना सीखेंगे।

आइए कुछ $FUD टोकन दूसरे वॉलेट में भेजें। यह सुई नेटवर्क पर किसी भी सिक्के के लिए काम करता है।

import {getFullnodeUrl, SuiClient} from '@mysten/sui/client';
import {Ed25519Keypair} from '@mysten/sui/keypairs/ed25519';
import {Transaction} from '@mysten/sui/transactions';

// Set the RPC URL to connect to the Sui mainnet
const rpcUrl = getFullnodeUrl("mainnet");

const client = new SuiClient({url: rpcUrl});

// Create the keypair using the private key
const keypair = Ed25519Keypair.fromSecretKey("suiprivkey1qq9r6rkysny207t5vr7m5025swh7w0wzra9p0553paprhn8zshqsx2rz64r");

// FUD coin type
const FUD_TYPE = '0x76cb819b01abed502bee8a702b4c2d547532c12f25001c9dea795a5e631c26f1::fud::FUD';

async function sendFUD() {
    const tx = new Transaction();

    // Fetch FUD coins owned by the sender
    const coins = await client.getCoins({owner: keypair.getPublicKey().toSuiAddress(), coinType: FUD_TYPE});

    if (coins.data.length === 0) {
        console.log("No FUD coins found in the wallet.");
        return;
    }

    // Choose the first available FUD coin and split it for the transfer (adjust amount if needed)
    const [coin] = tx.splitCoins(coins.data[0].coinObjectId, [100000000]); 

    tx.transferObjects([coin], '0xb0042cf2c5a16d0a240fc1391d570cd5fe06548f860583f1878c327db70f2a22');

    const result = await client.signAndExecuteTransaction({signer: keypair, transaction: tx});
    await client.waitForTransaction({digest: result.digest});

    console.log("Transaction successful. Digest:", result.digest);
}

sendFUD().then(console.log).catch(console.error);

सबसे पहले, मैंने जाँच की कि वॉलेट में कुछ $FUD है और इसे स्थानांतरण के लिए विभाजित कर दिया। Tx.transferObjects विभाजित सिक्के को निर्दिष्ट पते पर स्थानांतरित करता है।

अंत में, आपको client.signAndExecuteTransaction के साथ लेनदेन पर हस्ताक्षर करने की आवश्यकता है, और लेनदेन की पुष्टि करने के लिए आप waitForTransaction के साथ लेनदेन की प्रतीक्षा कर सकते हैं

निष्कर्ष

आपने आधिकारिक टाइपस्क्रिप्ट एसडीके का उपयोग करके सुई ब्लॉकचेन के साथ इंटरैक्ट करना सीख लिया है। आप अपने नए अर्जित ज्ञान से सुई पर बहुत कुछ बना सकते हैं, जैसे वॉलेट और बॉट बनाना।

आप अधिक परिष्कृत डीएपी बनाने के लिए सुई पर मूव कॉन्ट्रैक्ट्स के साथ इंटरैक्ट करने का तरीका सीखकर इसे आगे ले जा सकते हैं

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/goodylili/how-to-use-the-sui-typescript-sdk-2dep?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3