Icon HelpCircleForumIcon Link

⌘K

Icon HelpCircleForumIcon Link

Icon LinkCommands

The fuels CLI consists of a couple of commands.

Icon Linkfuels init

npx [email protected] help init
Options:
  -w, --workspace <path>          Relative dir path to Forc workspace
  -c, --contracts <path|global>   Relative path/globals to  Contracts
  -s, --scripts <path|global>     Relative path/globals to  Scripts
  -p, --predicates <path|global>  Relative path/globals to  Predicates
  -o, --output <path>             Relative dir path for Typescript generation

Creating a sample fuel.config.ts file:

npx [email protected] init --contracts ./my-contracts/* --output ./src/sway-contracts-api

Using Forc workspaces Icon Link? Try this instead:

npx [email protected] init --workspace ./sway-programs --output ./src/sway-programs-api

This will give you a minimal configuration:

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

In a nutshell:

.
├── sway-programs # <— forc workspace
├── src
│   └── sway-programs-api # <— output
├── fuels.config.ts
└── package.json

Icon LinkSee more

Icon Linkfuels build

npx [email protected] help build
Options:
  --path <path>  Path to project root (default: "/Users/anderson/Code/fuel/fuels-ts/apps/docs")
  -d, --deploy       Deploy contracts after build (auto-starts a `fuel-core` node if needed)
  -h, --help         Display help

Examples:

  1. Build all Sway programs under your workspace using forc 1 Icon Link
  2. Generate types for them using fuels-typegen 2
npx [email protected] build --deploy

Using the --deploy flag will additionally:

  1. Auto-start a short-lived fuel-core node if needed (docs )
  2. Run deploy on that node
Icon InfoCircle

This is useful when working with contracts because a contract's ID is generated only on deployment.

Icon Linkfuels deploy

The fuels deploy command does two things:

  1. Deploy all Sway contracts under workspace.
  2. Saves their deployed IDs to:
    • ./src/sway-programs-api/contract-ids.json
{
  "myContract1": "0x..",
  "myContract2": "0x.."
}

Use it when instantiating your contracts:

import { Sample } 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 = new Sample(contractsIds.sample, wallet);
 
const { value } = await contract.functions.return_input(1337).dryRun();
 
expect(value.toHex()).toEqual(toHex(1337));

For a complete example, see:

Icon LinkProxy Contracts Deployment

Automatic deployment of proxy contracts can be enabled in Forc.toml.

For more info, please check these docs:

Icon Linkfuels dev

The fuels dev command does three things:

  1. Auto-start a short-lived fuel-core node (docs )
  2. Runs build and deploy once at the start
  3. Watches your Forc workspace and repeats the previous step on every change
Icon InfoCircle

In dev mode, every time you update a contract on your Forc workspace, we re-generate type definitions and factory classes for it, following your pre-configured output directory. If it's part of another build system running in dev mode (i.e. next dev), you can expect it to re-build / auto-reload as well.

Icon Linkfuels node

The fuels node command starts a short-lived fuel-core node (docs ).

Icon Linkfuels typegen

Manually generates type definitions and factory classes from ABI JSON files.

npx [email protected] help typegen
Options:
  -i, --inputs <path|glob...>  Input paths/globals to your Abi JSON files
  -o, --output <dir>           Directory path for generated files
  -c, --contract               Generate types for Contracts [default]
  -s, --script                 Generate types for Scripts
  -p, --predicate              Generate types for Predicates
  -S, --silent                 Omit output messages

For more info, check:

Icon Linkfuels versions

Check for version incompatibilities between your Fuel Toolchain Icon Link component versions, matching them against the ones supported by the Typescript SDK version that you have.

npx [email protected] versions
┌───────────┬───────────┬────────────────┬─────────────┐
│           │ Supported │ Yours / System │ System Path │
├───────────┼───────────┼────────────────┼─────────────┤
│ Forc      │ 0.66.5    │ 0.66.5         │ forc        │
├───────────┼───────────┼────────────────┼─────────────┤
│ Fuel-Core │ 0.40.1    │ 0.40.1         │ fuel-core   │
└───────────┴───────────┴────────────────┴─────────────┘

You have all the right versions! ⚡