Rooch TypeScript SDK 使用教程
- 安装
首先需要安装 SDK 包:
npm install @roochnetwork/rooch-sdk
- 创建客户端连接
有两种方式连接 Rooch 网络:
HTTP连接(推荐新手使用)
import { RoochClient, getRoochNodeUrl } from '@roochnetwork/rooch-sdk'
// 连接测试网
const client = new RoochClient({
url: getRoochNodeUrl('testnet')
})
WebSocket连接
import { RoochClient, RoochWebSocketTransport } from '@roochnetwork/rooch-sdk'
// 创建WebSocket传输
const wsTransport = new RoochWebSocketTransport({
url: getRoochNodeUrl('testnet'),
reconnectDelay: 1000,
maxReconnectAttempts: 5
})
// 使用WebSocket创建客户端
const client = new RoochClient({
transport: wsTransport
})
- 创建会话账户
为了调用合约,需要先创建会话账户:
import { Secp256k1Keypair } from '@roochnetwork/rooch-sdk'
// 生成密钥对
const keypair = Secp256k1Keypair.generate()
// 创建会话
const session = await client.createSession({
sessionArgs: {
appName: 'MyApp',
appUrl: 'https://myapp.com',
scopes: ['0x3::empty::empty_with_signer'] // 需要访问的合约方法
},
signer: keypair
})
- 调用合约
import { Transaction } from '@roochnetwork/rooch-sdk'
// 创建交易对象
const tx = new Transaction()
// 调用合约方法
tx.callFunction({
target: '0x3::empty::empty_with_signer',
maxGas: 100000000 // 设置最大gas费用
})
// 签名并执行交易
const result = await client.signAndExecuteTransaction({
transaction: tx,
signer: session
})
- 查询数据
// 查询余额
const balances = await client.getBalances({
owner: '0x...' // 账户地址
})
// 调用合约视图函数
const viewResult = await client.executeViewFunction({
target: '0x3::counter::view'
})
注意事项
- 测试网络仍在开发中,API可能会频繁变动
- 使用WebSocket时记得在不使用时调用 client.destroy() 清理资源
- Gas费用默认为 50000000 (0.5 RGas),可根据需要调整
- 创建会话时需要指定合约调用权限范围
这是最基础的使用流程,SDK 还提供了更多高级功能,可以根据需要参考 API 文档深入学习。
SDK API 的列表和详细说明请参考SDK 方法清单。