Commands
The fuels
CLI consists of a couple of commands.
fuels init
npx fuels@0.92.1 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 fuels@0.92.1 init --contracts ./my-contracts/* --output ./src/sway-contracts-api
Using Forc workspaces? Try this instead:
npx fuels@0.92.1 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
See more
fuels build
npx fuels@0.92.1 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:
npx fuels@0.92.1 build
- Build all Sway programs under your
workspace
usingforc
1 - Generate types for them using
fuels-typegen
2
npx fuels@0.92.1 build --deploy
Using the --deploy
flag will additionally:
- Auto-start a short-lived
fuel-core
node if needed (docs) - Run
deploy
on that node
This is useful when working with contracts because a contract's ID is generated only on deployment.
fuels deploy
npx fuels@0.92.1 deploy
Note
We recommend using the fuels deploy
command only when you are deploying contracts to a local node. If you are deploying contracts to a live network like the Testnet, we recommend using the forc deploy
command instead.
Additionally, the maximum contract deployment size supported by the SDK is 100 KB. The SDK will throw
an error for contracts larger than this size.
The fuels deploy
command does two things:
- Deploy all Sway contracts under
workspace
. - Saves their deployed IDs to:
./src/sway-programs-api/contract-ids.json
{
"myContract1": "0x..",
"myContract2": "0x.."
}
Use it when instantiating your contracts:
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));
For a complete example, see:
fuels dev
npx fuels@0.92.1 dev
The fuels dev
command does three things:
- Auto-start a short-lived
fuel-core
node (docs) - Runs
build
anddeploy
once at the start - Watches your Forc workspace and repeats the previous step on every change
In
dev
mode, every time you update a contract on your Forcworkspace
, we re-generate type definitions and factory classes for it, following your pre-configuredoutput
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.
fuels node
npx fuels@0.92.1 node
The fuels node
command starts a short-lived fuel-core
node (docs).
fuels typegen
Manually generates type definitions and factory classes from ABI JSON files.
npx fuels@0.92.1 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:
fuels versions
Check for version incompatibilities between your Fuel Toolchain component versions, matching them against the ones supported by the Typescript SDK version that you have.
npx fuels@0.92.1 versions
┌───────────┬───────────┬────────────────┬─────────────┐
│ │ Supported │ Yours / System │ System Path │
├───────────┼───────────┼────────────────┼─────────────┤
│ Forc │ 0.62.0 │ 0.62.0 │ forc │
├───────────┼───────────┼────────────────┼─────────────┤
│ Fuel-Core │ 0.31.0 │ 0.31.0 │ fuel-core │
└───────────┴───────────┴────────────────┴─────────────┘
You have all the right versions! ⚡