Releases: weisyn/client-sdk-js
Releases · weisyn/client-sdk-js
client-sdk-js v0.1.2-alpha - Workbench 兼容性修复
🎉 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) - ✅ 错误处理: 改进错误处理逻辑,确保错误类型正确传递
兼容性
- ✅ 无破坏性变更
🔗 相关资源
- 变更日志: CHANGELOG.md
- 文档: README.md
- Workbench 构建错误分析: BUILD_ERRORS_ANALYSIS.md
🔧 技术细节
类型导出
// 现在可以从 @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>;
// ... 其他方法
}实现策略:
- 通过交易 ID 获取交易信息
- 从交易输出中提取地址
- 通过地址查询所有 UTXO
- 过滤出匹配的 UTXO
📝 发布备注
本版本主要修复了导致 Workbench 构建失败的问题,确保 SDK 可以正确被 Workbench 使用。
主要影响:
- Workbench 现在可以正确导入所有必需的类型(解决了 30+ 个类型导入错误)
- Workbench 现在可以正确调用
getUTXO方法(解决了 20+ 个 API 调用错误) - 所有单元测试通过,确保代码质量
最后更新: 2025-11-26
client-sdk-js v0.1.1-alpha - 文档改进和类型定义优化
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 类型定义保持兼容
升级步骤
-
更新
package.json中的版本号:{ "dependencies": { "@weisyn/client-sdk-js": "0.1.1-alpha" } } -
运行安装命令:
npm install # 或 yarn install # 或 pnpm install
-
重新编译和测试你的应用
📚 文档
⚠️ 重要说明
这是 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 首次发布
🎉 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}`);📖 相关资源
- GitHub 仓库: https://github.com/weisyn/client-sdk-js
- 文档中心: https://github.com/weisyn/client-sdk-js/tree/main/docs
- 问题反馈: https://github.com/weisyn/client-sdk-js/issues
🙏 致谢
感谢所有为 WES Client SDK 做出贡献的开发者和社区成员!
版本: v0.1.0-alpha
发布日期: 2025-01-23
许可证: Apache-2.0