新闻详情

新闻详情

首页 / 资讯中心 / 详情

fuels-rs 10分钟快速上手:从零部署你的第一个Sway合约(新手友好教程)

发布时间:2026/9/3 23:07:35来源:尧图网络
fuels-rs 10分钟快速上手:从零部署你的第一个Sway合约(新手友好教程)
fuels-rs 10分钟快速上手:从零部署你的第一个Sway合约(新手友好教程)【免费下载链接】fuels-rsFuel Network Rust SDK项目地址: https://gitcode.com/GitHub_Trending/fu/fuels-rsfuels-rs是 Fuel Network 官方 Rust SDK,专为 Fuel 区块链开发打造。它能帮你完成 Sway 智能合约的编译、部署、调用与测试,还能一键启动本地 Fuel 测试网络、自动生成类型安全的 Rust 合约绑定。本文带你用 10 分钟,从零部署并调用你的第一个 Sway 合约,新手也能轻松上手!为什么选择 fuels-rs?fuels-rs 把 Fuel 链上开发中最繁琐的工作都打包好了,核心能力一览:能力说明 启动本地节点一行代码启动本地 Fuel 测试网络 合约部署加载 Sway 编译产物并部署上链 合约调用类型安全地调用已部署合约的方法 代码生成abigen!宏自动生成 Rust 合约绑定 测试钱包内置本地测试钱包,无需真实资产⌨️ CLI 工具覆盖常用操作的命令行工具它由多个子包协作完成,例如核心 SDK 入口在 packages/fuels/src/lib.rs,测试辅助工具在 packages/fuels-test-helpers/src/lib.rs。更多功能详情见 README.md 的 Features 列表。一键安装:准备 3 个依赖部署合约前,只需安装 3 样东西(官方安装指南见 docs/src/getting-started.md):Rust 稳定版工具链—— 用于运行 SDK 与测试代码forc—— Sway 语言的构建工具,相当于 Rust 的cargofuel-core—— Fuel 全节点,SDK 本地测试时会拉起它forc和fuel-core都可以通过 Fuel 官方的工具链管理工具(如 fuelup)一键安装。克隆 fuels-rs 项目仓库自带完整的 Sway 测试合约与集成测试,是最好的活教材:git clone https://gitcode.com/GitHub_Trending/fu/fuels-rs cd fuels-rs克隆完成后,推荐先看看项目里现成的示例合约 e2e/sway/contracts/contract_test/src/main.sw,它实现了一个经典计数器:#[storage(write)] fn initialize_counter(value: u64) - u64 { storage.counter.write(value); value }这段代码把value写入合约存储并返回,是我们 10 分钟教程的主角。创建你自己的 Sway 合约新建合约只需一条命令:forc new my_contract进入项目目录,在src/main.sw中定义abi接口并实现方法(参考上面 counter 示例),Sway 合约的基本结构就这三部分:contract;—— 声明这是一个合约abi块—— 对外暴露的接口storage块 impl—— 状态存储与函数实现编译合约:forc build编译 Sway 项目会产出两个关键文件(见 docs/src/deploying/index.md):cd my_contract forc build --release编译后out/release/目录下会得到:.bin二进制文件—— 合约机器码,部署时上传它*-abi.json文件—— 合约 ABI,abigen!宏据此生成 Rust 绑定⚠️ 注意:fuels-rs 的abigen!宏要求合约以--release模式编译,否则会报错。部署你的第一个合约:setup_program_test! 宏fuels-rs 最省心的部署方式是setup_program_test!宏(完整说明见 docs/src/testing/the-setup-program-test-macro.md),它一条宏就完成启动本地节点 → 创建测试钱包 → 生成绑定 → 部署合约四步:use fuels::prelude::*; setup_program_test!( Wallets(wallet), Abigen(Contract( name TestContract, project my_contract )), Deploy( name contract_instance, contract TestContract, wallet wallet ), );部署完成后,contract_instance就是可调用的合约实例。完整可运行示例见 examples/contracts/src/lib.rs 中的setup_program_test_example测试。调用合约方法:类型安全的链上交互拿到合约实例后,调用方法就像调用普通 Rust 函数,编译器会帮你检查参数类型:// 初始化计数器 let response contract_instance .methods() .initialize_counter(42) .call() .await?; assert_eq!(42, response.value); println!(Contract deployed called! counter {}, response.value);methods()返回由 ABI 自动生成的方法集合.call()提交交易并等待回执,返回强类型的结果如果只想与已部署的合约交互而不重新部署,只需拿到合约 ID 后调用MyContract::new(contract_id, wallet)即可,详见 docs/src/deploying/interacting-with-contracts.md。运行测试:10 分钟闭环验证在 Rust 侧写好测试后,跑起来只需两条命令:# 1. 编译所有 Sway 测试项目(参考 README 中运行 SDK 测试的说明) forc build --release --path e2e # 2. 运行 Rust 测试 cargo test -- --nocapture--nocapture会强制打印测试中的println!输出,方便你看到合约部署的 ID 等日志。测试断言语法(assert!、assert_eq!)入门可看 docs/src/testing/basics.md,测试钱包的用法见 docs/src/wallets/test-wallets.md。项目结构速查表熟悉 fuels-rs 的目录布局,遇到问题能快速定位:路径作用packages/fuels/SDK 主入口 cratepackages/fuels-programs/合约/脚本/谓词的调用与部署逻辑packages/fuels-accounts/钱包、签名者、Provider 实现packages/fuels-core/类型系统与编解码器(codec)examples/contracts/src/lib.rs合约部署与调用完整示例e2e/tests/contracts.rs合约集成测试集合docs/src/SUMMARY.md官方文档目录总索引常见问题:踩坑前先看这里 ️Q1:测试失败怎么办?先清理再重试,官方推荐的组合拳:cargo clean forc build --release --path e2e cargo testQ2:为什么 SDK 前缀是fuels而不是fuel?为了向 Ethers 生态致敬,让熟悉 ethers.js 的开发者快速上手(见 README.md 的 FAQ)。Q3:同一个合约能部署多次吗?可以!setup_program_test!和Deploy都带 salt 机制,同一份合约二进制每次部署都会得到不同的合约 ID。下一步:继续深入 官方文档全书:docs/src/SUMMARY.md,涵盖部署、调用、钱包、类型系统全章节 交易成本估算:docs/src/calling-contracts/cost-estimation.md 运行 Sway 脚本:docs/src/running-scripts.md 谓词(Predicate)开发:docs/src/predicates/index.md至此,你已经完成了 fuels-rs 的完整闭环:安装依赖 → 编写 Sway 合约 → forc 编译 → setup_program_test! 部署 → 类型安全调用 → cargo test 验证。10 分钟,你的第一个 Fuel 链上合约已经跑起来了!接下来不妨试试给合约加一个increment_counter方法,挑战一下存储读写组合吧 【免费下载链接】fuels-rsFuel Network Rust SDK项目地址: https://gitcode.com/GitHub_Trending/fu/fuels-rs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Grok应用与Bot对比:API接入及VSCode集成实战解析 2026/9/3 23:49:43

Grok应用与Bot对比:API接入及VSCode集成实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
阿里云PolarDB AI内存方案:向量检索与数据库融合实践 2026/9/3 23:49:43

阿里云PolarDB AI内存方案:向量检索与数据库融合实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
深度学习情感分析实战:从LSTM/TextCNN模型到Flask Web部署 2026/9/3 23:49:42

深度学习情感分析实战:从LSTM/TextCNN模型到Flask Web部署

简介:本资源是一套完整的基于深度学习的电影评论情感分析系统实现方案,面向计算机专业本科生毕业设计与课程设计需求,解决文本情感极性(正面/负面)自动判别这一典型NLP应用问题。压缩包共293个文件,涵盖23个…

阅读更多 →
光学镜头设计入门:从工程优化思维到Zemax实践指南 2026/9/3 23:49:42

光学镜头设计入门:从工程优化思维到Zemax实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
学习机性价比怎么算?拆解作业帮T60 Ultra焕新版大屏与存储的真实价值 2026/9/3 23:49:42

学习机性价比怎么算?拆解作业帮T60 Ultra焕新版大屏与存储的真实价值

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
K230边缘AI视觉开发:从模型训练到电赛部署全流程解析 2026/9/3 23:46:42

K230边缘AI视觉开发:从模型训练到电赛部署全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞