首页 > web前端 > js教程 > 如何使用 Sui TypeScript SDK

如何使用 Sui TypeScript SDK

DDD
发布: 2024-10-27 04:57:29
原创
914 人浏览过

Sui 是当下的链,尽管 Move 是在 Sui 上编写智能合约的圣杯,但 TypeScript 支持也很重要。您可以通过 TypeScript 与 Sui 以及生态系统中的大多数 DeFi 应用进行交互和使用。

在本教程中,我将教您如何通过 TypeScript 与 Sui 网络交互。您将学习如何读取区块链的状态,如何从 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 区块链

您必须连接到 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
登录后复制

执行命令时,您应该会得到与此类似的输出。

How to Use the Sui TypeScript SDK

创建 Sui 钱包

创建钱包是另一种流行的操作,如果您在 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 为这个钱包提供下一组操作的资金。请随时验证并扫描钱包。请勿发送任何资金;这只是一个虚拟钱包。

读取 Sui 钱包余额

您可以在客户端实例上使用 getCoins 函数来检索钱包地址中硬币的详细信息。

npm install typescript --save-dev
npm install ts-node //runs TS without the need for transpiling
登录后复制
登录后复制

该函数返回隋币单独的详细信息和详细信息。输出为 MIST,即 Sui 天然气代币。 1 SUI 等于 10 亿 MIST。

How to Use the Sui TypeScript SDK

getAllCoins函数可以以同样的方式使用来获取钱包中所有硬币的列表。

npx tsc --init
登录后复制
登录后复制

对于这个例子,我在 Hop Aggregator 上用一些 Sui 换取 $FUD,这是运行程序后的输出。

How to Use the Sui TypeScript SDK

发送硬币或物品

最后,有趣的部分是您将学习在区块链上发送交易。

让我们将一些 $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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板