Fuel TypeScript SDK 开发指南:从环境搭建到贡献规范

Fuel TypeScript SDK 开发指南:从环境搭建到贡献规范

fuels-ts 采用 TypeScript 语言编写的Fuel Network 软件开发工具包(SDK) fuels-ts 项目地址: https://gitcode.com/gh_mirrors/fu/fuels-ts

项目概述

Fuel TypeScript SDK(简称fuels-ts)是为Fuel区块链生态系统提供的一套TypeScript开发工具包。它为开发者提供了与Fuel区块链交互所需的各种功能模块,包括钱包管理、合约交互、ABI编解码等核心组件。

开发环境配置

基础环境搭建

要开始开发fuels-ts项目,首先需要配置本地开发环境:

  1. 克隆项目仓库到本地
  2. 使用pnpm安装所有依赖项
  3. 构建项目
pnpm install
pnpm build

开发模式

项目支持实时编译的watch模式,可以大大提高开发效率:

pnpm dev

这个命令会监控所有包的源代码变化并自动重新构建。底层使用了nodemon来实现高效的文件监控,配置参数可以在nodemon.config.json中查看。

本地包链接

在开发过程中,你可能需要在本地测试项目中验证fuels-ts的修改效果。这时可以使用pnpm的链接功能:

  1. 首先将fuels包链接到全局存储
  2. 然后在测试项目中链接这个全局包
# 在fuels-ts/packages/fuels目录下
pnpm link --global

# 在测试项目目录下
pnpm link --global fuels

这种链接方式同样适用于其他子包,如@fuel-ts/wallet等。

核心开发工作流

测试策略

fuels-ts项目采用了全面的测试策略:

  1. 单元测试:运行所有单元测试

    pnpm test
    
  2. 浏览器环境测试:验证在浏览器中的兼容性

    pnpm test:browser
    
  3. 针对性测试:可以针对特定包或文件运行测试

    pnpm test:filter packages/wallet
    
  4. 端到端测试:项目包含完整的e2e测试脚本,模拟真实网络环境下的交互

性能基准测试

项目使用Vitest的benchmark功能进行性能测试:

pnpm bench:node

基准测试结果可以帮助开发者识别性能瓶颈,确保SDK的高效运行。

高级开发场景

使用未发布的Forc和Fuel-Core

在开发新功能时,可能需要使用Forc或Fuel-Core的未发布版本:

  1. 修改internal/forc/VERSIONinternal/fuel-core/VERSION文件
  2. 将版本号替换为git分支名(如git:some/branch-name
  3. 重新安装并构建
pnpm install
pnpm build

这会在internal/forc/sway-repointernal/fuel-core/fuel-core-repo目录下克隆指定分支的代码。

网络测试与性能分析

项目提供了专门的网络测试套件和交易性能分析工具:

  1. 网络测试:验证SDK与不同网络的兼容性

    pnpm test:network
    
  2. 交易性能分析:测量不同类型交易的执行时间

    pnpm tx:perf -- --execution-count 10
    

这些工具会生成详细的测试报告,帮助开发者优化网络交互性能。

代码提交规范

fuels-ts项目遵循严格的提交信息规范,采用category(scope): message格式:

  • feat: 新增功能
  • fix: bug修复
  • docs: 文档变更
  • build: 构建系统变更
  • test: 测试相关变更
  • ci: CI配置变更
  • chore: 其他杂项变更

示例:

feat(wallet): add support for multi-sig wallets

版本管理与发布

补丁发布流程

对于已发布版本的补丁更新:

  1. 基于发布标签创建发布分支
  2. 合并修复问题的PR到发布分支
  3. 自动生成变更集并创建版本

版本更新策略

  1. Forc更新:使用专用脚本更新Forc版本

    pnpm forc:update
    
  2. Fuel-Core更新:手动编辑VERSION文件后重新构建

开发最佳实践

  1. 预提交检查:项目配置了pre-push git钩子,会在推送前自动运行代码检查
  2. 变更集管理:使用pnpm changeset命令记录变更,用于生成更新日志
  3. 兼容性考虑:目前项目尚未发布主版本,API兼容的变更应使用patch版本号

常见问题解答

Q: 为什么项目前缀是fuels而不是fuel

A: 这是为了向区块链生态的ethers.js项目致敬,同时保持命名一致性,让来自区块链生态的开发者感到熟悉。

通过本文介绍的工作流程和规范,开发者可以高效地参与到fuels-ts项目的开发中,为Fuel生态系统的TypeScript工具链贡献力量。无论是修复bug、添加新功能,还是优化性能,遵循这些规范都能确保贡献的质量和一致性。

fuels-ts 采用 TypeScript 语言编写的Fuel Network 软件开发工具包(SDK) fuels-ts 项目地址: https://gitcode.com/gh_mirrors/fu/fuels-ts

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌霆贝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值