Skip to content

Releases: weisyn/client-sdk-js

client-sdk-js v0.1.2-alpha - Workbench 兼容性修复

26 Nov 02:49

Choose a tag to compare

🎉 v0.1.2-alpha - 2025-11-26

修复

  • 类型导出修复: 从主入口导出 LockingCondition, TxInput, TxOutput 类型,修复 Workbench 构建错误
  • 业务层类型: 同时导出业务层的完整 LockingCondition 类型(ResourceLockingCondition
  • WESClient API 增强: 添加 getUTXO(outPoint: OutPoint) 方法,支持通过 OutPoint 获取单个 UTXO
  • Mock 支持: 在 WESClientMock 中实现 getUTXO 方法
  • 测试修复: 修复所有单元测试错误,确保测试套件全部通过

改进

  • 类型导出: 同时导出协议层和业务层的 LockingCondition 类型(ResourceLockingCondition
  • 错误处理: 改进错误处理逻辑,确保错误类型正确传递

兼容性

  • ✅ 无破坏性变更

🔗 相关资源


🔧 技术细节

类型导出

// 现在可以从 @weisyn/client-sdk-js 导入
import type {
  LockingCondition,
  TxInput,
  TxOutput,
  ResourceLockingCondition, // 业务层完整定义
} from '@weisyn/client-sdk-js';

getUTXO 方法实现

// WESClient 接口
interface WESClient {
  getUTXO(outPoint: OutPoint): Promise<UTXO | null>;
  // ... 其他方法
}

实现策略:

  1. 通过交易 ID 获取交易信息
  2. 从交易输出中提取地址
  3. 通过地址查询所有 UTXO
  4. 过滤出匹配的 UTXO

📝 发布备注

本版本主要修复了导致 Workbench 构建失败的问题,确保 SDK 可以正确被 Workbench 使用。

主要影响:

  • Workbench 现在可以正确导入所有必需的类型(解决了 30+ 个类型导入错误)
  • Workbench 现在可以正确调用 getUTXO 方法(解决了 20+ 个 API 调用错误)
  • 所有单元测试通过,确保代码质量

最后更新: 2025-11-26

client-sdk-js v0.1.1-alpha - 文档改进和类型定义优化

25 Nov 08:52

Choose a tag to compare

WES Client SDK for JavaScript/TypeScript v0.1.1-alpha

🔄 小版本更新

这是 WES Client SDK for JavaScript/TypeScript 的第二个 Alpha 版本,主要包含文档改进、TypeScript 类型定义优化和代码质量提升。


✨ 主要变更

📚 文档改进

  • ✅ 更新了 README 文档,完善了快速开始指南
  • ✅ 改进了 API 文档的结构和可读性
  • ✅ 更新了文档中的时间戳和版本信息
  • ✅ 完善了浏览器使用示例和 Node.js 使用示例
  • ✅ 改进了架构文档和设计说明

🔷 TypeScript 改进

  • ✅ 优化了类型定义的完整性和准确性
  • ✅ 改进了类型推断,提供更好的 IDE 智能提示
  • ✅ 增强了类型安全性,减少运行时错误
  • ✅ 完善了泛型类型定义

🔧 API 改进

  • ✅ 改进了错误处理机制,提供更清晰的错误信息
  • ✅ 优化了 HTTP 客户端的重试逻辑
  • ✅ 增强了 WebSocket 连接的稳定性
  • ✅ 改进了批量操作的错误处理

🛠️ 代码质量

  • ✅ 代码格式化和风格统一(ESLint、Prettier)
  • ✅ 改进了代码注释和 JSDoc 文档
  • ✅ 优化了部分函数的性能
  • ✅ 增强了类型安全性

🐛 Bug 修复

  • ✅ 修复了部分边界情况下的错误处理问题
  • ✅ 修复了文档中的时间戳显示问题
  • ✅ 修复了部分示例代码中的小错误
  • ✅ 修复了类型定义中的小问题

📦 安装

npm install @weisyn/client-sdk-js@0.1.1-alpha
#
yarn add @weisyn/client-sdk-js@0.1.1-alpha
#
pnpm add @weisyn/client-sdk-js@0.1.1-alpha

🔄 从 v0.1.0-alpha 升级

兼容性

  • 无破坏性变更 - 本版本完全向后兼容 v0.1.0-alpha
  • ✅ 所有现有代码无需修改即可使用新版本
  • ✅ API 接口保持稳定
  • ✅ TypeScript 类型定义保持兼容

升级步骤

  1. 更新 package.json 中的版本号:

    {
      "dependencies": {
        "@weisyn/client-sdk-js": "0.1.1-alpha"
      }
    }
  2. 运行安装命令:

    npm install
    #
    yarn install
    #
    pnpm install
  3. 重新编译和测试你的应用


📚 文档


⚠️ 重要说明

这是 Alpha 版本,主要用于:

  • 功能验证和测试
  • 开发者反馈收集
  • API 稳定性验证
  • TypeScript 类型定义验证

不建议在生产环境使用


🔗 相关资源


📝 变更日志

改进

  • 文档结构和内容优化
  • TypeScript 类型定义优化
  • API 错误处理改进
  • 代码质量和性能优化

修复

  • 修复文档时间戳问题
  • 修复部分边界情况下的错误处理
  • 修复示例代码中的小错误
  • 修复类型定义中的小问题

✅ 发布检查清单

  • 版本号已更新(package.json)
  • CHANGELOG.md 已更新
  • 所有测试通过
  • 文档已更新
  • Release 文档已填写完整
  • 代码已同步到发布仓库
  • GitHub Tag 已创建
  • GitHub Release 已创建
  • NPM 发布已完成

📝 发布备注

这是 WES Client SDK for JavaScript/TypeScript 的第二个 Alpha 版本,主要关注文档改进和 TypeScript 类型定义优化。所有变更都是向后兼容的,现有代码无需修改即可升级。


最后更新: 2025-11-25

v0.1.0-alpha - WES Client SDK for JavaScript/TypeScript 首次发布

18 Nov 09:19

Choose a tag to compare

🎉 v0.1.0-alpha - 2025-01-23

首次发布

这是 WES Client SDK (JavaScript/TypeScript) 的首次 alpha 版本发布。本版本提供了完整的 WES 区块链交互能力,支持前端应用、浏览器 DApp 和 Node.js 服务开发。


✨ 核心功能

🔌 客户端层

  • HTTP 客户端 - 完整的 JSON-RPC 2.0 协议支持
  • WebSocket 客户端 - 实时事件订阅和通知
  • 配置管理 - 灵活的客户端配置选项
  • 错误处理 - 完善的错误类型和处理机制

💼 业务服务层

Token 服务 ✅

  • 单笔转账 (transfer)
  • 批量转账 (batchTransfer)
  • 代币铸造 (mint)
  • 代币销毁 (burn)
  • 余额查询 (getBalance)

Staking 服务 ✅

  • 质押 (stake)
  • 解质押 (unstake)
  • 委托 (delegate)
  • 取消委托 (undelegate)
  • 领取奖励 (claimRewards)

Market 服务 ✅

  • AMM 交换 (swap)
  • 流动性管理 (addLiquidity, removeLiquidity)
  • 归属计划 (vesting)
  • 托管功能 (escrow)

Governance 服务 ✅

  • 提案创建 (createProposal)
  • 投票 (vote)
  • 参数更新 (updateParams)

Resource 服务 ✅

  • 合约部署 (deployContract)
  • AI 模型部署 (deployModel)
  • 静态资源部署 (deployResource)
  • 资源查询 (getResource)

🔐 钱包功能

  • 密钥生成 - 基于 secp256k1 的密钥生成
  • 私钥导入 - 支持从私钥创建钱包
  • 交易签名 - 完整的交易签名流程
  • 消息签名 - 支持消息签名和验证
  • 地址派生 - Keccak-256 地址派生
  • Keystore - 加密存储和密码保护

🛠️ 工具函数

  • 地址工具 - 地址转换和验证
  • 十六进制工具 - 十六进制字符串转换
  • 批量操作 - 批量交易处理
  • 重试机制 - 自动重试和错误恢复
  • 文件工具 - 文件上传和处理

📦 构建和分发

支持的模块格式

  • CommonJS (dist/index.js) - Node.js 环境
  • ES Module (dist/index.esm.js) - 现代浏览器和构建工具
  • UMD (dist/index.umd.js) - 浏览器全局变量

TypeScript 支持

  • ✅ 完整的 TypeScript 类型定义 (dist/index.d.ts)
  • ✅ 严格的类型检查
  • ✅ 完整的 IDE 智能提示支持

🌐 环境支持

  • Node.js - 支持 Node.js 18+
  • 浏览器 - 支持现代浏览器(Chrome、Firefox、Safari、Edge)
  • TypeScript - 完整的 TypeScript 5.3+ 支持

📚 文档

完整文档体系

  • 快速开始指南 - 5分钟快速上手
  • API 参考文档 - 完整的 API 文档
  • 使用指南 - 5个业务服务的详细指南
  • 示例代码 - 多个实际使用示例
  • 架构文档 - 详细的架构设计说明
  • 故障排查 - 常见问题和解决方案

文档目录

  • docs/getting-started.md - 快速开始
  • docs/guides/ - 业务服务使用指南
  • docs/examples/ - 代码示例
  • docs/api/ - API 参考文档
  • docs/architecture.md - 架构设计

🧪 测试

  • 单元测试 - 核心功能单元测试
  • 集成测试 - 端到端集成测试
  • 测试覆盖率 - 持续提升测试覆盖率

🔧 开发工具

  • ESLint - 代码质量检查
  • Prettier - 代码格式化
  • Jest - 测试框架
  • Rollup - 构建工具
  • TypeScript - 类型检查

📋 已知限制

⚠️ Alpha 版本限制

  • WebSocket 事件订阅功能需要与节点 API 进一步对齐
  • Keystore 在 Node.js 环境的部分功能需要额外库支持
  • Staking 服务的 slash() 方法未实现(需要治理规则或 Slash 合约支持)
  • 部分功能存在 TODO 注释(如获取区块高度、验证者列表查询等),但不影响核心功能使用

🔄 后续计划

  • 完善 WebSocket 事件订阅
  • 完善 Keystore Node.js 支持
  • 增加更多单元测试和集成测试
  • 性能优化
  • 增加更多示例代码

🚀 快速开始

安装

npm install @weisyn/client-sdk-js
#
yarn add @weisyn/client-sdk-js
#
pnpm add @weisyn/client-sdk-js

第一个应用

import { Client, TokenService, Wallet } from '@weisyn/client-sdk-js';

// 1. 初始化客户端
const client = new Client({
  endpoint: 'http://localhost:8545',
  protocol: 'http',
});

// 2. 创建钱包
const wallet = Wallet.fromPrivateKey('0x...');

// 3. 创建 Token 服务
const tokenService = new TokenService(client, wallet);

// 4. 执行转账
const result = await tokenService.transfer({
  from: wallet.address,
  to: '0x...',
  amount: 1000000,
  tokenId: null,
});

console.log(`转账成功!交易哈希: ${result.txHash}`);

📖 相关资源


🙏 致谢

感谢所有为 WES Client SDK 做出贡献的开发者和社区成员!


版本: v0.1.0-alpha
发布日期: 2025-01-23
许可证: Apache-2.0