Sui は現時点のチェーンであり、Sui でスマート コントラクトを作成するには Move が聖杯ですが、TypeScript のサポートは重要です。 TypeScript を使用すると、Sui とエコシステム上のほとんどの DeFi アプリを操作して使用できます。
このチュートリアルでは、TypeScript 経由で Sui ネットワークと対話する方法を説明します。ブロックチェーンの状態を読み取り、TypeScript プログラムからチェーンにトランザクションを書き込む方法を学びます。
唯一の前提条件は、このチュートリアルをスムーズに実行するには、基本的な JS/TS の知識が必要であるということです。その他すべてについて説明します。
まず、ターミナルで新しい TypeScript プロジェクトを作成し、新しい Node.js プロジェクトを初期化します。
mkdir SuiTS cd SuiTS npm init -y
TypeScript をまだインストールしていない場合は、開発依存関係としてインストールします。
npm install typescript --save-dev npm install ts-node //runs TS without the need for transpiling
これで、新しい TypeScript プロジェクトを初期化できます。このコマンドは、プロジェクトに合わせてカスタマイズできるデフォルトのオプションを含む 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" } }
TypeScript ファイルを追加する src ディレクトリを作成します。
mkdir src touch src/index.ts
最後に、このコマンドを使用して、Sui TypeScript SDK をインストールします。
npm i @mysten/sui.js
準備は完了です。 Sui ブロックチェーンと対話する TypeScript プログラムの作成を開始できます。
チェーンと対話するには、Sui ブロックチェーンに接続する必要があります。
まず、SDK クライアント モジュールから getFullnodeUrl と SuiClient をインポートします。
import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';
ここで、希望する接続に応じて、getFullnodeUrl を使用して、Sui テストネット、メインネット、ローカルネット、または開発ネットの完全なノード URL を取得できます。次に、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();
次に、TypeScript コードを JavaScript にトランスパイルし、次のコマンドで実行します。
ts-node index.ts
コマンドを実行すると、次のような出力が表示されるはずです。
ウォレットの作成も人気のある操作で、Sui Network 上に構築する場合に便利です。
Sui ウォレットのキーペアを生成し、キーペアから秘密鍵と公開鍵を取得する方法は次のとおりです。
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());
Ed25519Keypair 関数は、新しいキー ペアを作成します。 getPublicKey メソッドと getPrivateKey メソッドを使用すると、それぞれ公開キーと秘密キーにアクセスできます。
プログラムで生成した秘密鍵と公開鍵の文字列出力は次のとおりです:
mkdir SuiTS cd SuiTS npm init -y
次の一連の操作のために、このウォレットに 0.25 スイを資金として提供します。ウォレットを自由に確認してスキャンしてください。資金は送金しないでください。それは単なるダミーの財布です。
クライアント インスタンスで getCoins 関数を使用すると、ウォレット アドレス内のコインの詳細を取得できます。
npm install typescript --save-dev npm install ts-node //runs TS without the need for transpiling
この関数は、Sui コイン単体の詳細と詳細を返します。出力はMIST、Suiガストークンです。 1 SUI は 10 億 MIST に相当します。
getAllCoins 関数を同じ方法で使用して、ウォレット内のすべてのコインのリストを取得できます。
npx tsc --init
この例では、Hop Aggregator で Sui を $FUD と交換しました。プログラム実行後の出力は次のとおりです。
最後に、興味深いのは、ブロックチェーン上でトランザクションを送信する方法を学ぶことです。
いくつかの $FUD トークンを別のウォレットに送信してみましょう。これは、Sui ネットワーク上のどのコインでも機能します。
{ "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" } }
まず、ウォレットに $FUD があることを確認し、分割して送金しました。 tx.transferObjects は、指定されたアドレスに分割コインを転送します。
最後に、client.signAndExecuteTransaction を使用してトランザクションに署名する必要があります。また、waitForTransaction を使用してトランザクションを待機して、トランザクションが完了したことを確認できます
公式 TypeScript SDK を使用して、Sui ブロックチェーンと対話する方法を学びました。ウォレットやボットの構築など、新しく獲得した知識を使って、Sui で構築できることはたくさんあります。
Sui で Move コントラクトを操作してより洗練された dApps を構築する方法を学ぶことで、これをさらに進めることができます
以上がSui TypeScript SDK の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。