Icon Link命令

fuels CLI 包含几个命令。

Icon Linkfuels init

npx fuels@0.89.1 help init
Options:
  -w, --workspace <path>          Forc 工作区的相对目录路径
  -c, --contracts <path|global>   智能合约的相对路径/全局路径
  -s, --scripts <path|global>     脚本的相对路径/全局路径
  -p, --predicates <path|global>  断言的相对路径/全局路径
  -o, --output <path>             生成 TypeScript 的相对目录路径

创建一个示例 fuel.config.ts 文件:

npx fuels@0.89.1 init --contracts ./my-contracts/* --output ./src/sway-contracts-api

使用 Forc 工作区 Icon Link?请尝试以下操作:

npx fuels@0.89.1 init --workspace ./sway-programs --output ./src/sway-programs-api

这将为您提供一个最小的配置:

import { createConfig } from 'fuels';
 
export default createConfig({
  workspace: './sway-programs', // forc workspace
  output: './src/sway-programs-api',
});

简而言之:

.
├── sway-programs # <— forc 工作区
├── src
│   └── sway-programs-api # <— 输出
├── fuels.config.ts
└── package.json

Icon Link查看更多

Icon Linkfuels build

npx fuels@0.89.1 help build
Options:
  -p, --path <path>  项目根目录路径 (默认值: "/Users/anderson/Code/fuel/fuels-ts/apps/docs")
  -d, --deploy       构建后部署合约(如果需要,会自动启动 `fuel-core` 节点)
  -h, --help         显示帮助信息

示例:

npx fuels@0.89.1 build
  1. 使用 forc 构建工作区下的所有 Sway 程序 1 Icon Link
  2. 为它们生成类型使用 fuels-typegen 2
npx fuels@0.89.1 build --deploy

使用 --deploy 标志还会额外执行以下操作:

  1. 如果 需要,自动启动短暂的 fuel-core 节点(文档
  2. 在该节点上运行 deploy
Icon InfoCircle

在与合约一起工作时,此选项非常有用,因为合约的 ID 仅在部署时生成。

Icon Linkfuels deploy

npx fuels@0.89.1 deploy
Icon InfoCircle

[!NOTE] 注意 我们建议仅在将合约部署到本地节点时使用 fuels deploy 命令。 如果要将合约部署到像测试网这样的真实网络,建议改用 forc deploy Icon Link 命令。

fuels deploy 命令执行两个操作:

  1. 部署工作区下的所有 Sway 合约。
  2. 将它们的部署 ID 保存到:
    • ./src/sway-programs-api/contract-ids.json
{
  "myContract1": "0x..",
  "myContract2": "0x.."
}

在实例化您的合约时使用它:

import { SampleAbi__factory } from './sway-programs-api';
import contractsIds from './sway-programs-api/contract-ids.json';
 
/**
  * Get IDs using:
  *   contractsIds.<my-contract-name>
  */
 
const wallet = new Wallet.fromPrivateKey(process.env.PRIVATE_KEY);
const contract = SampleAbi__factory.connect(contractsIds.sample, wallet);
 
const { value } = await contract.functions.return_input(1337).dryRun();
 
expect(value.toHex()).toEqual(toHex(1337));

有关完整示例,请参见:

Icon Linkfuels dev

npx fuels@0.89.1 dev

fuels dev 命令执行三个操作:

  1. 自动启动一个短暂的 fuel-core 节点(文档
  2. 在启动时运行 builddeploy 一次
  3. 监视您的 Forc 工作区,并在每次更改时重复上一步
Icon InfoCircle

dev 模式下,每次您更新 Forc workspace 上的合约时,我们会重新生成类型定义和工厂类,并将其保存到您预先配置的 output 目录中。如果它是在另一个以开发模式运行的构建系统中(例如 next dev),您可以期望它重新构建 / 自动重新加载。

Icon Linkfuels node

npx fuels@0.89.1 node

fuels node 命令启动一个短暂的 fuel-core 节点(文档 )。

Icon Linkfuels typegen

从 ABI JSON 文件手动生成类型定义和工厂类。

npx fuels@0.89.1 help typegen
Options:
  -i, --inputs <path|glob...>  Abi JSON 文件的输入路径/全局路径
  -o, --output <dir>           生成文件的目录路径
  -c, --contract               为合约生成类型 [默认]
  -s, --script                 为脚本生成类型
  -p, --predicate              为断言生成类型
  -S, --silent                 省略输出消息

了解更多信息,请查看:

Icon Linkfuels versions

检查您的 Fuel Toolchain Icon Link 组件版本之间的版本不兼容性,将它们与您使用的 Typescript SDK 版本支持的版本进行匹配。

npx fuels@0.89.1 versions
┌───────────┬───────────┬────────────────┬─────────────┐
│           │ Supported │ Yours / System │ System Path │
├───────────┼───────────┼────────────────┼─────────────┤
│ Forc      │ 0.60.0    │ 0.60.0         │ forc        │
├───────────┼───────────┼────────────────┼─────────────┤
│ Fuel-Core │ 0.27.0    │ 0.27.0         │ fuel-core   │
└───────────┴───────────┴────────────────┴─────────────┘

You have all the right versions! ⚡