首页
/ Fuel TypeScript SDK v0.101.0 版本发布:强化谓词与交易功能

Fuel TypeScript SDK v0.101.0 版本发布:强化谓词与交易功能

2025-05-31 15:01:25作者:咎岭娴Homer

Fuel TypeScript SDK 是一个为 Fuel 区块链生态系统提供 TypeScript 支持的开发工具包。它简化了与 Fuel 区块链交互的过程,使开发者能够轻松构建去中心化应用。本次发布的 v0.101.0 版本主要围绕谓词(Predicate)功能和交易处理进行了多项重要改进。

谓词功能的重大增强

谓词是 Fuel 区块链中的一种特殊智能合约,用于定义资金使用的条件。本次更新对谓词功能进行了两项关键改进:

  1. 强制谓词数据验证
    现在,当谓词定义了输入参数时,SDK 会强制要求开发者提供相应的数据。这一改变确保了类型安全,防止开发者意外创建无效的谓词实例。例如,对于一个需要 PIN 码参数的谓词,现在必须显式提供数据:

    // 旧版本(允许但不正确)
    const predicateNoData = new PredicatePin({ provider }) // 不再允许
    
    // 新版本(正确方式)
    const predicate = new PredicatePin({ provider, data: [100] }) // 必须提供数据
    
  2. 新增 setData 方法
    为谓词类新增了 setData 方法,使开发者能够更灵活地更新谓词实例的数据:

    const predicate = new PredicatePin({ provider, data: [100] })
    predicate.setData([200]) // 动态更新谓词数据
    

交易处理的优化

本次更新对交易处理流程进行了多项改进:

  1. 交易请求动态修改
    现在支持在 InvocationScope 使用过程中对 TransactionRequest 进行实时修改,为开发者提供了更大的灵活性:

    const scope = contract.functions.some_method()
    scope.transactionRequest.gasLimit = 5000 // 动态调整gas限制
    
  2. gasLimit 自动计算优化
    provider.assembleTx() 方法现在会考虑 reserveGas 参数来设置交易的 gasLimit,确保交易有足够的 gas 执行。

  3. 交易状态订阅优化
    当用户只等待预确认(Preconfirmation)状态时,SDK 会自动关闭订阅连接,避免资源浪费。

移除废弃API

移除了 BaseInvocationScope.getTransactionId() 方法,开发者现在需要通过更明确的方式获取交易ID:

// 新方式
const request = contract.functions.get_counter().fundWithRequiredCoins()
const chainId = await provider.getChainId()
const txId = request.getTransactionId(chainId)

升级建议

对于正在使用 Fuel TypeScript SDK 的开发者,建议:

  1. 检查项目中是否使用了无数据的谓词实例,确保为所有需要参数的谓词提供数据
  2. getTransactionId() 的调用替换为新方式
  3. 利用新的交易修改功能优化交易构建流程

这些改进使 SDK 更加健壮和易用,同时为开发者提供了更强大的功能来控制区块链交互的各个方面。

登录后查看全文
热门项目推荐
相关项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
260
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
858
507
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
255
299
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
331
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
397
370
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
21
5