Sui 是當下的鏈,儘管 Move 是在 Sui 上編寫智能合約的聖杯,但 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" } }
建立一個 src 目錄,您將在其中新增 TypeScript 檔案。
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 Sui 為這個錢包提供下一組操作的資金。請隨時驗證並掃描錢包。請勿發送任何資金;這只是一個虛擬錢包。
您可以在客戶端實例上使用 getCoins 函數來檢索錢包位址中硬幣的詳細資訊。
npm install typescript --save-dev npm install ts-node //runs TS without the need for transpiling
函數傳回隋幣單獨的詳細資料和詳細資料。輸出為 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 合約互動來進一步建立更複雜的 dApp
以上是如何使用 Sui TypeScript SDK的詳細內容。更多資訊請關注PHP中文網其他相關文章!