Skip to content
CAI
Software that uses CAICheck a score

FuelLabs/fuels-ts

47.5

Weak · 28 September 2026

41.4k

lines of production code

TypeScript

primary language

3

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This release introduces a comprehensive modular architecture for the Fuel TypeScript SDK, splitting the monolithic \fuels\ package into granular, independently versioned sub-packages like \@fuel-ts/account\, \@fuel-ts/contract\, and \@fuel-ts/abi-coder\. The update brings a new v1 ABI encoding strategy, a robust connector system for wallet integrations, and a redesigned CLI that supports local development, automated tooling, and project scaffolding. Additionally, the release includes new interactive templates for Next.js and Vite, alongside extensive test coverage and internal tooling improvements.

Features

Add Bun-based demo application for Fuel

Introduces a new demo application, apps/demo-bun-fuels, which demonstrates how to build and interact with Fuel smart contracts using the Bun runtime. The directory includes a Sway contract (sample), its generated TypeScript API, and a comprehensive test suite (bun.test.ts) that validates contract deployment, function calls, and error handling (e.g., insufficient funds) in a Bun environment.

apps/demo-bun-fuels · high confidence

Add ESM support for Node.js demo app

The demo application for Node.js now supports ES Modules (ESM). The \index.mjs\ entry point exports \encrypt\ and \decrypt\ functions from the \fuels\ package, enabling ESM usage in Node.js environments.

apps/demo-nodejs-esm · high confidence

Add Fuels CLI configuration and build scaffolding for demo-fuels

The demo-fuels app now includes a full set of configuration files to demonstrate the Fuels CLI workflow. A new \fuels.config.ts\ provides a minimal setup for building Sway programs, while \fuels.config.full.ts\ showcases advanced features such as asynchronous \deployConfig\ callbacks, \onBuild\/\onDeploy\ hooks, and custom paths for \forc\ and \fuel-core\ binaries. The directory also includes a \turbo.json\ to cache build outputs and a \.gitignore\ to exclude generated API files, enabling a streamlined local development experience for testing Fuels CLI features.

apps/demo-fuels · high confidence

Add Handlebars templates for generating fuels.config and index files

The CLI now includes Handlebars templates (fuels.config.hbs, index.hbs) and their corresponding TypeScript renderers (fuels.config.ts, index.ts) to dynamically generate configuration and index files. The configuration template supports optional fields for workspace, contracts, predicates, scripts, output paths, forc/fuel-core paths, auto-start settings, and the new fuelCorePort, allowing users to customize their Fuel project setup. The index template generates re-exports for a given set of paths.

packages/fuels/src/cli/templates · medium confidence

Add React + Vite demo application

A new React and Vite-based demo application has been added to the repository. The app serves as a starting point for building with Vite and React, featuring a counter example and integration with the \@fuels/vm-asm\ library (imported as \FuelAsm\) alongside standard \fuels\ exports like \ZeroBytes32\, \encrypt\, and \decrypt\.

apps/demo-react-vite/src · high confidence

Add SRC-14 Owned Proxy contract recipe

Added the SRC-14 Owned Proxy contract recipe, including the TypeScript types, factory, and associated ABI and storage slot definitions. This provides a ready-to-use implementation of the SRC-14 standard for managing proxy contract ownership.

packages/recipes/src · high confidence

Add Sway program templates for Vite scaffolding

The Vite template for the \create-fuels\ CLI now includes starter Sway code for three program types: a contract with storage and ABI definitions, a predicate that validates a numeric password, and a simple script. Each template includes unit tests to verify basic functionality, giving users immediate, working examples to build upon when generating new projects.

templates/vite/sway-programs/contract, templates/vite/sway-programs/predicate, templates/vite/sway-programs/script · high confidence

Add Sway program templates with built-in tests

The Next.js template now includes pre-built Sway program templates for contracts, predicates, and scripts. Each template provides a functional example (a counter contract, a password-checking predicate, and a simple script) along with corresponding unit tests to demonstrate usage and ensure correctness.

templates/nextjs/sway-programs/contract, templates/nextjs/sway-programs/predicate, templates/nextjs/sway-programs/script · high confidence

Add Vite-based template for creating Fuel dApps

The \create-fuels\ CLI now includes a Vite-based project template, providing a ready-to-use React application structure. This template includes configuration files for TypeScript, ESLint, Tailwind CSS, and Playwright for UI testing, alongside example Sway contracts, predicates, and scripts. It also provides integration tests for the generated code and a shell script to run UI tests, enabling users to quickly scaffold a complete Fuel development environment.

templates/vite · high confidence

Add \`create-fuels-counter-guide\` template with UI test support

The \create-fuels-counter-guide\ application template is introduced, providing a ready-to-use Vite + React starter for Fuel dApps. The addition includes configuration files for Vite, TypeScript, ESLint, Tailwind CSS, and Playwright UI tests, alongside environment variable examples and deployment settings for Vercel. This enables users to quickly scaffold a project that supports both unit and end-to-end UI testing out of the box.

apps/create-fuels-counter-guide · high confidence

Add asset icons and API for the Explorer Asset feature

The account package now includes a new \assets\ directory containing an \asset-api.ts\ module that fetches asset information (including NFTs) from the Fuel Explorer API for both mainnet and testnet. This is accompanied by comprehensive unit tests for the API and a \assets.ts\ module that defines metadata for various cryptocurrencies (such as ETH, WETH, and others) along with their corresponding SVG icon images in the \images\ subdirectory.

packages/account/src/assets · high confidence

Add binary, sparse, and sum Merkle tree implementations

The \packages/merkle/src\ directory now includes complete implementations for three types of Merkle trees: a binary Merkle tree (with \binaryMerkleTree.ts\ and tests), a sparse Merkle tree (with \deepSparseMerkleSubTree.ts\, \sparseMerkleTree.ts\, and associated proof utilities), and a sum Merkle tree (with \sumMerkleTree.ts\ and tests). Each implementation includes the core logic for tree construction, root calculation, and proof generation/verification, along with corresponding test suites that validate their behavior.

packages/merkle/src · high confidence

Add configuration loading and validation for the Fuels CLI

The Fuels CLI now supports a \fuels.config.ts\ (or \.js\/\.cjs\/\.mjs\) file to define build and deployment settings. The new \loadConfig\ and \validateConfig\ modules parse this file, resolve workspace members, detect Sway program types, and enforce a schema for options like \contracts\, \scripts\, \predicates\, and \output\. This enables users to configure the CLI's behavior through a dedicated config file rather than relying solely on command-line arguments or environment variables.

packages/fuels/src/cli/config · high confidence

Add counter guide Sway programs to create-fuels template

The \create-fuels\ template now includes a \sway-programs\ directory containing example Sway code for a counter contract, a predicate, and a script, each with their own \Forc.toml\ configuration and unit tests. This provides users with ready-to-use examples of how to structure Sway projects within the template.

apps/create-fuels-counter-guide/sway-programs · high confidence

Add debug logger for fuel-ts ecosystem

A new \@fuel-ts/logger\ package has been introduced to provide structured debugging capabilities for the fuel-ts ecosystem. Users can now import the logger to create namespaced loggers for specific components, with support for truncating wallet addresses and formatting big numbers or hex strings. The logger wraps the \debug\ library, enabling environment-variable-based log level control (e.g., \DEBUG=fuel-ts:\*\) and offers utility functions like \prefixLogger\ and \walletLogger\ to simplify component-specific logging.

packages/logger/src · high confidence

Add demo-typegen app with Sway contract, predicate, and script examples

A new demo application for typegen is introduced, providing a complete example of how to use the typegen tooling with Sway programs. The app includes a Sway contract, predicate, and script, each with their own Forc.toml configuration and source files. It also contains a TypeScript test suite that demonstrates how to interact with these generated types, including deploying contracts, calling functions, and handling predicates and scripts. The project is configured with a .gitignore, LICENSE, README, and build configuration files to support development and testing.

apps/demo-typegen · high confidence

Add demo-wallet-sdk-react example app

A new Next.js-based demo application for the wallet SDK has been added to the repository. The app provides a functional UI for connecting to wallets, displaying account details, and showing balances using the @fuels/react hooks. It includes standard Next.js configuration files (eslint, gitignore, tailwind, tsconfig) and sets up the FuelProvider with default connectors in the root layout.

apps/demo-wallet-sdk-react · high confidence

Add hashing utilities for message signing

The \packages/hasher\ module is introduced, providing SHA-256 based hashing functions (\hash\, \sha256\) and a \hashMessage\ function that supports both raw strings and EIP-191 style personal sign payloads. This enables users to generate cryptographic hashes for message signing workflows.

packages/hasher/src · high confidence

Add latency detection scripts for performance analysis

A new latency detection suite has been added to the \packages/fuel-gauge/scripts/latency-detection\ directory. This suite provides scripts to measure and analyze the execution time of various operations, including simple transfers, inter-contract calls, missing 4x output variable calls, and predicate signature validation. The implementation includes helper functions to set up the performance analysis environment, run multiple operations with configurable execution counts, parse the results, and save snapshots of the performance data to the \snapshots\ directory.

packages/fuel-gauge/scripts · high confidence

Add new React components for the Next.js template

The Next.js template now includes a set of new UI components: Button, Contract, Faucet, Info, Link, LocalFaucet, Predicate, Script, and Wallet. These components provide the interactive frontend for interacting with Fuel contracts, scripts, and predicates, as well as wallet management and local testing utilities.

templates/nextjs/src/components · high confidence

Add sample Sway contract for Fuel demo

A new sample Sway contract is now available in the demo-fuels directory, providing a basic example of a Fuel smart contract that returns an input value. This includes the necessary Forc configuration files and the main Sway source file, allowing users to see how Sway programs are structured and interact with the Fuel ecosystem.

apps/demo-fuels/sway-programs · high confidence

Add script to generate Fuel Core GraphQL schema

A new script has been added to the account package to generate the Fuel Core GraphQL schema. This script sets the FUEL\_CORE\_PATH environment variable to use the internal 'fuels-core' package, sets up a test provider and wallets, and executes a command to fetch the GraphQL schema from the provider's URL, saving it to 'src/providers/fuel-core-schema.graphql' and formatting it with Prettier.

packages/account/scripts · high confidence

Add versions package with CLI and version-checking utilities

A new \versions\ package is introduced, providing a CLI entry point (\bin.ts\) and a \runVersions\ function that compares the user's installed \forc\ and \fuel-core\ versions against supported versions. The package exports version constants and compatibility checks, and includes comprehensive unit tests for the CLI logic, including scenarios for exact, newer, and outdated system versions.

packages/versions/src · high confidence

Added CLI utilities for version checking and logging

The CLI now includes a new set of utilities in the \cli/utils\ directory to support version management and output formatting. A version cache system (\fuelsVersionCache\) stores the latest \fuels\ version locally for 6 hours to reduce network requests. The \checkForAndDisplayUpdates\ utility uses this cache to compare the installed version against the latest available release, warning the user if an update is available or confirming the version is up to date. Additionally, a new \logger\ module provides structured logging functions (\log\, \debug\, \warn\, \error\) that respect global logging and debug configuration flags, ensuring consistent and configurable output from the CLI.

packages/fuels/src/cli/utils · high confidence

Added CLI utility for locating and validating forc and fuel-core binaries

A new \cli-utils\ module was added to \packages/utils/src\, introducing a \tryFindBinaries\ function that locates \forc\ and \fuel-core\ binaries on the filesystem. The implementation checks for the presence of these binaries, throws an error if they are missing, and issues a warning if the installed versions are outdated compared to the required versions. This is accompanied by comprehensive test coverage for the binary finding logic and the utility's public API.

packages/utils/src · high confidence

Added HD wallet and mnemonic phrase support for account management

Introduced new \HDWallet\ and \Mnemonic\ classes in the \packages/account\ package, enabling users to generate, validate, and manage BIP39 mnemonic phrases and hierarchical deterministic (HD) wallet keys. This includes utilities for entropy-to-mnemonic conversion, seed derivation, and extended key generation, along with comprehensive test coverage for these cryptographic operations.

packages/account/src/mnemonic · high confidence

Added Next.js demo application

A new Next.js demo application has been added to the repository, providing a starter template that integrates the Fuels SDK and the @fuels/vm-asm WASM module. The demo includes the necessary layout, global styles, and a home page that logs the availability of the SDK and ASM components.

apps/demo-nextjs/src · high confidence

Added \`launchTestNode\` utility for simplified test environment setup

A new \launchTestNode\ function has been added to the \@fuel-ts/contract\ package's test utilities. This utility simplifies setting up a local test node and deploying multiple contracts in a single step, returning the provider, wallets, and deployed contract instances. The implementation includes comprehensive test coverage for node lifecycle management, error handling, and multi-contract deployment scenarios.

packages/contract/src/test-utils · high confidence

Added coin consolidation and script deployment utilities

Added new utility functions in the account package to support automatic coin consolidation and script/predicate deployment. The \consolidate-coins.ts\ file introduces logic to batch and consolidate scattered coins into fewer inputs, with tests in \consolidate-coins.test.ts\ verifying behavior for various account types. The \split-coins-into-batches.ts\ file provides a helper to split coin arrays into manageable batches. Additionally, \deployScriptOrPredicate.ts\ and \predicate-script-loader-instructions.ts\ introduce utilities for deploying scripts and predicates, including bytecode ID calculation and loader instruction generation, with corresponding tests in \predicate-script-loader-instructions.test.ts\. Finally, \formatTransferToContractScriptData.ts\ provides utilities for formatting transfer-to-contract script data, with tests in \formatTransferToContractScriptData.test.ts\.

packages/account/src/utils · high confidence

Added configuration and type definitions for the fuel-gauge package

The fuel-gauge package has been initialized with a new project structure. A \fuels.config.ts\ file has been added to configure the Fuel toolchain, specifying the workspace path for Forc projects, the output directory for type generation, and build flags. Additionally, TypeScript configuration files (\tsconfig.json\, \tsdoc.json\) and a \.gitignore\ file have been introduced to support the project's build and documentation processes. New source files have been added to define types for predicate validation, specifically a \Validation\ type that includes account status and total completion status.

packages/fuel-gauge · high confidence

Added configuration files for the \`@fuel-ts/script\` package

The \packages/script\ directory now includes essential build and documentation configuration files: a \.gitignore\ to exclude Forc output directories, a \tsconfig.json\ and \tsconfig.dts.json\ for TypeScript compilation, a \tsup.config.ts\ for bundling, a \tsdoc.json\ for documentation generation, and a \typedoc.json\ to configure TypeDoc for the \Script\ package. These changes support the internal tooling and build process for the script package.

packages/script · high confidence

Added internal check-imports tool to validate package imports

A new internal tool, \internal/check-imports\, has been added to the repository. This tool imports all public packages and their submodules to verify that the entire codebase builds successfully and that no import paths are broken or misconfigured. It serves as a sanity check for the package structure and dependencies.

internal/check-imports · high confidence

Added internal tsup build configuration and shared defaults

The internal/tsup directory now contains a new build configuration for the monorepo, introducing shared tsup defaults (cleaning, source maps, multi-format output) and pre-configured build profiles for different package entry points (index, bin, cli). This standardizes how TypeScript files are compiled across the project.

internal/tsup · high confidence

Added new scripts for validation, testing, and release management

The repository now includes a suite of new scripts in the \scripts/\ directory to improve code quality, testing, and release processes. This includes \forc-check.sh\ and \forc-format.sh\ to enforce formatting and author conventions for Sway projects, \lint-package-jsons.ts\ to validate package metadata, and \verify-package-exports.ts\ to ensure all package entry points are valid. Additionally, new test scripts (\tests-find.sh\, \tests-ui-integration.sh\, \tests-ui.sh\, \tests-validate.sh\) provide targeted execution for node, browser, and UI integration tests, while \release-deprecate.ts\ automates the deprecation of old npm versions. The \postbuild.ts\ script now handles declaration map generation and secondary entry-point injection, and \tests-coverage-diff.ts\ / \tests-coverage-merge.ts\ manage coverage reporting.

scripts · high confidence

Added test utilities for launching test nodes and configuring wallets

Added a new \test-utils\ module in \packages/account\ that provides infrastructure for browser and node testing. This includes a \launchNode\ utility to start a \fuel-core\ node with configurable options (IP, port, logging, custom binary path, and snapshot state). It also introduces \setupTestProviderAndWallets\ to automatically launch a node and generate test wallets with configurable assets, coins, and messages. Supporting helpers include \WalletsConfig\ for defining wallet states, \TestAssetId\ for generating test asset identifiers, and factories for fake coins, messages, and transaction request inputs.

packages/account/src/test-utils · high confidence

Added utility functions for caching, promise handling, and connector event dispatching

The codebase now includes new utility modules in the connectors package: a generic caching helper (cacheFor) that stores and expires function results, a promise utility (withTimeout) that enforces a timeout on async operations, a deferred promise helper (deferPromise), and a function (dispatchFuelConnectorEvent) to broadcast connector availability via custom window events.

packages/account/src/connectors/utils · medium confidence

Added utility functions for data conversion and formatting

The \@fuel-ts/utils\ package now exports a suite of data utility functions, including \arrayify\, \hexlify\, \toUtf8Bytes\, \toUtf8String\, \base58\ encoding/decoding, \bytecode\ compression, \capitalizeString\, \chunkAndPadBytes\, \concat\, \dataSlice\, \isDefined\, \normalizeString\, and a \DateTime\ wrapper for TAI64/Unix timestamp conversions. These utilities provide consistent, browser-compatible implementations for common byte and string transformations, replacing external dependencies like \ethers\ for these specific operations.

packages/utils/src/utils · high confidence

Added utility hooks for asset management, notifications, and routing in templates

The \create-fuels-counter-guide\ app and the \nextjs\ and \vite\ templates now include three new hooks: \useBaseAssetId\ (which fetches the base asset ID via the provider), \useNotification\ (which manages toast notifications for transactions and general messages), and \useRouter\ (which manages view switching between wallet, contract, predicate, script, and faucet sections). These hooks provide standardized ways to access common application state and UI feedback mechanisms across the generated projects.

apps/create-fuels-counter-guide/src/hooks, templates/nextjs/src/hooks, templates/vite/src/hooks · high confidence

Added version compatibility checks and system version detection

The \packages/versions/src/lib\ module now includes new utilities to detect and compare system-installed \forc\ and \fuel-core\ versions against the SDK's supported versions. This includes \getSystemVersions\ to retrieve installed binary versions, \compareSystemVersions\ to check if they are greater, equal, or less than the SDK's requirements, and \checkFuelCoreVersionCompatibility\ to validate specific \fuel-core\ versions and warn about unreleased builds. These changes enable the SDK to provide users with clear feedback about their environment's compatibility.

packages/versions/src/lib · high confidence

Automated release and changelog generation scripts

The repository now includes a new \scripts/changeset\ directory containing a suite of TypeScript/Node.js scripts to automate the release process. \changeset-next.mts\ handles preparing packages for publishing by temporarily making private packages public and updating the changeset configuration. \changeset-publish.ts\ executes the actual npm/pnpm publish and manages Git tagging. \changeset-version-with-docs.ts\ orchestrates version updates and builds for the versions and recipes packages. \get-full-changelog.mts\ and \update-changelog.mts\ are responsible for fetching PR details, formatting changelog entries, and updating the changeset pull request body with the generated changelog. Additionally, \get-latest-release.mts\ retrieves the most recent release tag from GitHub.

scripts/changeset · high confidence

Automated version synchronization for \`@fuel-ts/versions\`

The \packages/versions\ package now includes a script (\rewriteVersions\) that automatically updates the \FUELS\, \FORC\, and \FUEL\_CORE\ version numbers in the source code. The script reads versions from environment variables (for CI/builds) or local files (for local development), prioritizing environment variables, and writes the values into \packages/versions/src/lib/getBuiltinVersions.ts\. This ensures that the versions package always reflects the correct versions of the underlying tools without manual updates.

packages/versions/scripts · high confidence

Deploy scripts, predicates, and proxy contracts via the Fuels CLI

The \fuels\ CLI now supports deploying scripts and predicates in addition to contracts, and adds support for deploying SR-C14 compliant proxy contracts. The \deploy\ command orchestrates the deployment of all three Sway program types, handling proxy address updates and writing loader bytecode and ABI files to disk. A new \createWallet\ utility manages wallet creation from config or environment variables, and the \onDeploy\ callback receives the full deployment data for all program types.

packages/fuels/src/cli/commands/deploy · high confidence

Initial release of @fuel-ts/recipes package

The @fuel-ts/recipes package is introduced as a new sub-module for interacting with Sway programs on Fuel, specifically exporting TypeScript recipes for Sway programs, starting with the SRC-14: Owned Proxy Contract. The package includes a CHANGELOG.md tracking version history (from v0.97.1 to v0.103.0) and dependencies on various @fuel-ts libraries (account, contract, program, abi-coder, abi-typegen, address, transactions, utils) which are updated in each release. The package is licensed under Apache 2.0 and includes standard configuration files (tsconfig, tsup, typedoc, tsdoc) for building and documentation.

(repo-wide) · high confidence

Initial release of the create-fuels package

The \create-fuels\ package is introduced as a new scaffolding CLI tool for generating full-stack Fuel projects. This addition includes the core executable, TypeScript configuration, and supporting files (README, CHANGELOG, license) to enable users to bootstrap new applications via \pnpm create fuels\.

packages/create-fuels · high confidence

Initialize @fuel-ts/program package structure

The @fuel-ts/program package is introduced with its foundational configuration and documentation files. This includes a CHANGELOG.md tracking version history (up to v0.103.0), a README.md with usage and installation instructions, and build configuration files (tsconfig.json, tsup.config.ts, typedoc.json) to support the module's development and documentation generation.

packages/program · high confidence

Internal forc binary wrapper and installer

The \internal/forc\ directory now contains a self-contained wrapper and installer for the \forc\ binary. This includes a \bin.js\ entry point that spawns the actual \forc\ executable, an \install.js\ script that downloads the correct binary for the user's platform from the Sway releases, and a \update.js\ script that checks for and fetches the latest \forc\ version. The \shared.js\ module provides platform detection and version management, while \.gitignore\ excludes the downloaded binaries and the cloned Sway repository. The \fORC\ version is pinned at \0.68.7\ in the \vERSION\ file.

internal/forc · high confidence

Introduce @fuel-ts/errors package with standardized error handling

The @fuel-ts/errors package is now available, providing a standardized way to handle errors within the SDK. It introduces the FuelError class and ErrorCodes for consistent error management, along with test utilities like expectToThrowFuelError for assertions. The package includes a CHANGELOG.md, a README.md with usage examples, and configuration files (tsconfig.json, tsup.config.ts, etc.) to support its build and distribution.

packages/errors · high confidence

Introduce @fuel-ts/math package

The @fuel-ts/math package is introduced, providing math utilities for decimal, hex, and Uint8Array operations based on the bn.js library. The package includes a CHANGELOG.md tracking version history, a standard Apache 2.0 LICENSE, a README.md with usage instructions, and configuration files for TypeScript (tsconfig.json, tsconfig.dts.json), TSDoc, tsup, and TypeDoc to support building and documenting the module.

packages/abi-typegen, packages/crypto, packages/math · high confidence

Introduce @fuel-ts/versions package for centralized version management

The @fuel-ts/versions package has been added to centralize and manage versions of the Fuel toolchain, including FUELS, FUEL-CORE, and FORC. This new package provides a programmatic API and CLI tool to check and validate supported versions, ensuring users have the correct tooling installed. The package includes a CHANGELOG.md, a README with usage instructions, and configuration files (tsconfig, tsup) to support its build and distribution.

packages/versions · high confidence

Introduce ContractFactory for contract deployment

Added the \ContractFactory\ class and supporting utilities in \packages/contract/src\ to provide a structured way to deploy contracts. The new \contract-factory.ts\ file introduces the \ContractFactory\ class, which encapsulates bytecode, ABI, and provider/account associations, and exposes methods like \createTransactionRequest\ and \assembleTx\ to handle the transaction creation and gas/fee validation steps. The \util.ts\ file adds helper functions (\getContractRoot\, \getContractStorageRoot\, \getContractId\) for calculating contract identifiers and storage roots. The \index.ts\ file exports these new components, making them available to users of the SDK.

packages/contract/src · high confidence

Introduce Predicate class with configurable data and constants

The \Predicate\ class now accepts \data\ and \configurableConstants\ in its constructor, allowing users to initialize predicates with specific input data and configurable constants. The class provides a \setData\ method to update predicate data and a \toNewInstance\ method to create new instances with overridden data or constants, facilitating flexible predicate usage in transactions.

packages/account/src/predicate · high confidence

Introduce Signer class for arbitrary data signing

The \packages/account/src/signer\ directory now contains a new \Signer\ class that enables signing arbitrary data using the secp256k1 curve. This implementation replaces previous \ethers\-based hashing and signing logic with internalized utilities (\hexlify\, \arrayify\, \concat\) and the \@noble/curves\ library. The \Signer\ class accepts private keys as \BytesLike\ (including byte arrays and strings with or without \0x\ prefixes) and provides methods to sign data, recover public keys and addresses from signatures, and generate random private keys. Tests confirm support for signing raw messages and handling edge cases like compact public key extension and fixed-length signature generation.

packages/account/src/signer · medium confidence

Introduce \`create-fuels\` CLI scaffolding tool

The \create-fuels\ package is introduced, providing a new CLI tool that scaffolds a fullstack Fuel dapp project. The tool supports multiple templates, auto-detects the package manager, and can optionally auto-install \fuelup\ and dependencies. It also handles template file rewriting, environment file generation, and type generation for the created project.

packages/create-fuels/src · high confidence

Introduce \`fuels dev\` command for local development

The \fuels dev\ command is now available to start a local development environment. It automatically launches a \fuel-core\ node (using an in-memory database), watches for changes in configuration and source files, and triggers build and deploy steps. The implementation includes a new \autoStartFuelCore\ utility to manage the node lifecycle and a \dev\ command that orchestrates file watching and hot-reloading.

packages/fuels/src/cli/commands/dev · high confidence

Introduce \`fuels init\` command for project scaffolding

The \fuels init\ command has been added to the CLI, allowing users to scaffold a new project by generating a \fuels.config.ts\ configuration file. The command accepts options for workspace, contracts, scripts, and predicates, and now supports a \--fuel-core-port\ flag to configure the local Fuel Core node. It also includes improved directory detection logic and uses \console.log\ for error output to ensure visibility.

packages/fuels/src/cli/commands/init · high confidence

Introduce contract loader utilities for script and predicate deployment

Added a new \loader\ module in \packages/contract/src/loader\ that provides utilities for deploying scripts and predicates. This includes \loader-script.ts\ which generates bytecode instructions for loading blob IDs, \utils.ts\ which handles splitting bytecode into word-sized chunks, and corresponding tests for both components. The \index.ts\ file exports these new modules, enabling the contract package to support the deployment of scripts and predicates as part of the larger refactor for \fuel-core@0.32.1\.

packages/contract/src/loader · high confidence

Introduce new ABI coder and interface classes

The \packages/abi-coder/src\ directory now contains the core classes for ABI encoding and decoding: \AbiCoder\, \FunctionFragment\, \Interface\, and \ResolvedAbiType\. These classes provide the foundational logic for serializing and deserializing data according to the Fuel ABI specification, including support for function selectors, read-only function detection, and configurable type encoding.

packages/abi-coder/src · high confidence

Introduce new ABI encoding and type definitions

The \packages/abi-coder/src/types\ directory now includes new TypeScript interfaces and types to support the updated ABI encoding format. \JsonAbiNew.ts\ defines the structure for the new ABI format, including \specVersion\, \encodingVersion\, \concreteTypes\, \metadataTypes\, \functions\, \loggedTypes\, \messagesTypes\, \configurables\, and \errorCodes\. \JsonAbi.ts\ provides the legacy \JsonAbiOld\ interface for backward compatibility. \EncodingOptions.ts\ introduces the \EncodingOptions\ type, allowing users to specify the \encoding\ version and \padToWordSize\ behavior. \GetCoder.ts\ defines the \GetCoderFn\ type, which is used to obtain spec-adhering coders based on resolved ABI types and encoding options.

packages/abi-coder/src/types · high confidence

Introduce new ABI type classes for the typegen system

The \abi-typegen\ package now includes a comprehensive set of new classes to handle various ABI types, including \StdString\, \RawSlice\, \Bytes\, \EvmAddress\, \B512\, \Option\, \Result\, \Enum\, and \Generic\ types. Each class defines how the type should be parsed and what TypeScript types it maps to, enabling the typegen tool to correctly generate TypeScript interfaces and types for these specific Sway types.

packages/abi-typegen/src/abi · high confidence

Introduce new and legacy ABI type definitions for type generation

Added new TypeScript interfaces to the \abi-typegen\ package to support the updated Fuel JSON ABI format. This includes \JsonAbi\ and related types (e.g., \ConcreteType\, \MetadataType\, \AbiFunction\) for the new ABI specification, alongside the existing \JsonAbiOld\ and legacy type definitions. These interfaces provide the structural foundation for parsing both new and legacy ABI formats, enabling the type generator to handle modern ABI structures while maintaining backward compatibility.

packages/abi-typegen/src/types/interfaces · high confidence

Introduce new math library with BN, formatting, and functional shortcuts

A new math module is added to the codebase, introducing a \BN\ class that wraps \bn.js\ to provide robust big-number arithmetic, hex/byte conversion, and number formatting. The module also exports functional shortcuts (\toNumber\, \toHex\, \toBytes\, \formatUnits\, \format\) and utility functions (\max\, \multiply\) to simplify common numeric operations. Configuration constants for decimal units and precision are also included.

packages/math/src · high confidence

Introduce new transaction request types and transaction hashing logic

The \packages/account/src/providers/transaction-request\ directory now includes new classes for \BlobTransactionRequest\ and \CreateTransactionRequest\, alongside a dedicated \hashTransaction\ function that computes SHA-256 hashes for transaction IDs. This change also introduces helper utilities for managing transaction inputs and outputs, and adds specific error classes for missing witnesses. These additions support the creation and hashing of blob and contract creation transactions within the SDK.

packages/account/src/providers/transaction-request · high confidence

Introduce structured error handling with the new FuelError class and ErrorCode enum

The errors package now provides a dedicated \FuelError\ class and a comprehensive \ErrorCode\ enum to replace previous error handling mechanisms. The \FuelError\ class standardizes error reporting by attaching a specific error code, a human-readable message, and optional metadata. This change improves developer experience by providing consistent, typed error codes for various failure scenarios (such as ABI mismatches, provider issues, and transaction failures) and includes test utilities to simplify testing error-throwing code.

packages/errors/src · high confidence

Introduce the new Address class and utility functions

The \packages/address\ package now provides a dedicated \Address\ class and associated utility functions for handling various address formats. Developers can now construct \Address\ instances from B256 strings, public keys, or EVM addresses, and convert between these formats using methods like \toEvmAddress()\, \toChecksum()\, and \toB256()\. The package also exports type definitions for \B256Address\, \EvmAddress\, and \AssetId\, along with validation helpers such as \isB256\, \isPublicKey\, and \isEvmAddress\ to ensure correct input formats.

packages/address/src · high confidence

Introduce the new \`@fuel-ts/script\` package for script execution

The \packages/script/src\ directory now contains the implementation for the new \@fuel-ts/script\ package, which provides a typed interface for interacting with Fuel scripts. This includes the \Script\ class for managing bytecode and ABI, a \ScriptInvocationScope\ for building transaction requests, and a utility \returnZeroScript\ for coin transfers. The package exports the core script functionality, types, and test coverage for script invocation and configurable constants.

packages/script/src · high confidence

Introduce the new \`abi-typegen\` package with CLI and programmatic APIs

The \abi-typegen\ package is introduced, providing a new way to generate TypeScript types from Sway ABIs. The package exposes a \runTypegen\ function for programmatic use and a CLI entry point (\fuels-typegen\) that supports generating types for Contracts, Scripts, and Predicates. The implementation includes a \ProgramTypeEnum\ to distinguish between these program types, and the CLI accepts flags (\-c\, \-s\, \-p\) to specify the target program type, ensuring users can generate the correct type definitions for their specific Sway programs.

packages/abi-typegen/src · high confidence

Introduced new connector architecture with abstract base class and manager

Added a new connector system in the account package, featuring an abstract \FuelConnector\ base class that defines the interface for wallet integrations, and a \Fuel\ manager class that handles connector selection, initialization, and event propagation. This change introduces a structured way to interact with external wallets, supporting features like arbitrary data signing and auto-consolidation of coins, while ensuring synchronous provider initialization and improved developer experience for signing operations.

packages/account/src/connectors · high confidence

Introduces GraphQL subscriptions and a new transaction assembly flow for improved transaction handling

The Provider now supports GraphQL subscriptions to track transaction status changes in real-time, enabling more responsive application states. Additionally, a new transaction assembly flow has been introduced, allowing clients to prepare transactions on the client side before submission, which reduces the number of network calls required. The Provider class has been updated to support basic authentication for GraphQL endpoints, and the resource cache now considers the resource owner to prevent cross-account data leakage.

packages/account/src/providers · high confidence

Introduces connector type definitions and event system

The \packages/account/src/connectors/types\ directory now contains the foundational type definitions for the connector architecture. This includes the \ConnectorMetadata\ type for asset and installation details, the \FuelConnectorMethods\ and \FuelConnectorEventTypes\ enums defining the supported API surface, and the \FuelConnectorEvents\ union type that structures the event system for connection, account, network, and coin consolidation state changes. Additionally, a \LocalStorage\ class and a \TargetObject\ interface for the global event bus are provided to support the connector's internal state management.

packages/account/src/connectors/types · high confidence

Introduces utility functions and constants for ABI encoding and decoding

Adds a new set of utility modules in the ABI coder's utils directory to support the v1 encoding format. This includes constants for type definitions (such as u256 and various struct types), helper functions for parsing JSON ABIs (finding functions, types, and vector buffers), and utilities for handling function inputs and script data. The changes also introduce a transpiler to convert new ABI specifications into the legacy format, and add tests for these new utilities.

packages/abi-coder/src/utils · high confidence

New @fuel-ts/account package with wordlists and build configuration

The @fuel-ts/account package has been introduced, providing core account management functionality including an English wordlist for mnemonic generation (src/wordlists) and associated tests. The package includes standard build configuration (tsup.config.ts, tsconfig.json), a codegen configuration for GraphQL operations, and a CHANGELOG.md. This establishes the foundational structure for the account module within the SDK.

packages/account · high confidence

New ABI coders for encoding and decoding data types

The \packages/abi-coder/src/encoding/coders\ directory now contains the complete set of coders for serializing and deserializing various data types, including \AbstractCoder\, \ArrayCoder\, \B256Coder\, \B512Coder\, \BigNumberCoder\, \BooleanCoder\, \ByteCoder\, \EnumCoder\, \NumberCoder\, and \OptionCoder\. Each coder implements the \Coder\ interface to handle specific types such as booleans, unsigned integers (u8, u16, u32, u64, u256), byte arrays, hashes, and optional values. Comprehensive test suites have been added for each coder to verify correct encoding, decoding, and error handling.

packages/abi-coder/src/encoding/coders · high confidence

New Vite + React template with interactive Fuel dApp examples

A new Vite + React template is now available via \create-fuels\, providing a ready-to-run dApp scaffold. The template includes interactive UI components for each core Fuel program type: a Counter Contract, a Predicate with pin-based access control, a Script execution interface, and a Wallet connection panel. It also features a local faucet for development and a testnet faucet for testing on external networks.

templates/vite/src/components · high confidence

New Vite-based template for Fuel dApps

A new Vite-based template has been added to \create-fuels\, providing a modern, ready-to-use React application for building Fuel dApps. The template includes a dark-themed UI with wallet connection and network switching logic, integrated with \@fuels/react\ and \@tanstack/react-query\, and supports local and testnet environments via environment variables.

templates/vite/src · high confidence

New \`fuels\` CLI entrypoint and test utilities

The \packages/fuels\ package now includes a new CLI entrypoint (\bin.ts\) that bootstraps the \fuels\ command-line interface, integrating commands from sub-packages like \abi-typegen\ and \versions\. Additionally, the package now exports a \test-utils\ module that re-exports testing utilities from \@fuel-ts/contract\, \@fuel-ts/account\, \@fuel-ts/errors\, and \@fuel-ts/utils\, providing a centralized way to access test helpers for the umbrella package.

packages/fuels/src · high confidence

New \`fuels\` umbrella package and CLI entry point

The \packages/fuels\ directory now contains the \fuels\ umbrella package, which aggregates the latest versions of all \@fuel-ts/\*\ sub-packages (account, contract, program, etc.) into a single import. This includes a new \fuels.js\ CLI entry point for the \fuels\ command, a \tsup\ build configuration that bundles \test-utils\ and \cli-utils\, and a Vite config for browser builds. The CHANGELOG.md reflects the current state of all dependencies, and the package is licensed under Apache 2.0.

packages/fuels · high confidence

New \`node\` CLI command and configuration types

The Fuels CLI now includes a \node\ command that automatically starts a local \fuel-core\ node and watches the \fuels.config.ts\ file for changes, restarting the node when the configuration is updated. This change introduces new TypeScript types (\FuelsConfig\, \UserFuelsConfig\, \Commands\, etc.) and exports them from the CLI module, enabling developers to configure and interact with the local development node through the CLI.

packages/fuels/src/cli · high confidence

New demo apps for Next.js and React+Vite

Added new demo applications for Next.js and React with Vite, each including configuration files (e.g., .gitignore, tsconfig.json, next.config.js, vite.config.ts) and changelogs. These serve as reference implementations to validate integration with external tools and bundlers.

apps/demo-nextjs, apps/demo-react-vite · high confidence

New helpers for decoding transaction logs

The \TransactionResponse\ now exposes decoded logs via \logs\ and \groupedLogs\ properties. New utility functions \getAllDecodedLogs\ and \getDecodedLogs\ have been added to the \transaction-response\ module to parse and decode logs from transaction receipts, supporting both main and external contract ABIs. The older \getDecodedLogs\ function is now deprecated in favor of the new \getAllDecodedLogs\.

packages/account/src/providers/transaction-response · high confidence

New interactive components for the Fuel counter guide template

Added new React components (Button, Contract, Faucet, Info, LocalFaucet, Predicate, Script, Wallet) to the create-fuels-counter-guide template, providing interactive UI for demonstrating Fuel contracts, predicates, and scripts.

apps/create-fuels-counter-guide/src/components · high confidence

New interactive guide template for building with Fuel

The \create-fuels\ tool now offers a revamped default template that provides a complete, interactive guide for building on Fuel. This new template includes a React application (\App.tsx\) that demonstrates core concepts such as wallet connection, network switching, and interacting with contracts, predicates, scripts, and the faucet. The setup is configured with Tailwind CSS for styling and uses \@fuels/react\ and \@tanstack/react-query\ to manage state and UI interactions, providing a modern, dark-themed user interface to help developers get started quickly.

apps/create-fuels-counter-guide/src · medium confidence

New provider utility modules for retries, gas, and error handling

Added new utility modules in the provider utilities directory to improve reliability and error reporting. The auto-retry-fetch module implements configurable retry logic (linear, fixed, or exponential backoff) for failed network requests. The gas module provides functions to calculate minimum and maximum gas requirements and gas usage by transaction inputs. The extract-tx-error module assembles detailed error messages for transaction panics, signal errors, and ABI errors. The handle-gql-error-message module maps GraphQL errors to specific FuelError codes for insufficient funds, max coins reached, and other conditions. The block-explorer module generates URLs for the block explorer. The json module normalizes objects for JSON serialization. The merge-quantities module combines coin quantities. The receipts module assembles receipt objects from GraphQL data. The parse-graphql-response module handles GraphQL response parsing. The index module exports all these utilities.

packages/account/src/providers/utils · high confidence

New test utilities for validating value ranges, Forc project paths, and Vitest matchers

The \packages/utils/src/test-utils\ directory now includes several new utilities and their corresponding tests. A \getForcProject\ helper and related path-resolution functions (\getProjectBuildDir\, \getProjectAbiPath\, etc.) allow tests to easily locate and read compiled Forc project artifacts. A \waitUntilUnreachable\ utility is added to wait for a URL to become unreachable, useful for verifying that \fuel-core\ has stopped. Additionally, a \expectToBeInRange\ function and its tests provide a way to assert that numeric values fall within a specified range, and a \toEqualBn\ Vitest matcher is introduced to simplify assertions on big-number types.

packages/utils/src/test-utils · high confidence

New transaction coders for inputs, outputs, policies, and transaction structures

The \packages/transactions/src/coders\ directory now includes comprehensive encoders for transaction inputs (coins, contracts, messages), outputs (coins, contracts, changes, variables, contract-created), policies (tip, witness limit, maturity, max fee, expiration, owner), and full transaction types (Script, Create, Mint, Upgrade, Upload, Blob). These coders handle serialization and deserialization of transaction data, including padding, sorting, and validation of policy types. Tests verify correct encoding/decoding of all supported input and output types, as well as policy combinations.

packages/transactions/src/coders · high confidence

New transaction configuration constants and receipt type definitions

The transactions package now exposes a new \configs.ts\ module containing transaction limits (e.g., \CONTRACT\_MAX\_SIZE\, \MAX\_WITNESSES\, \MAX\_SCRIPT\_LENGTH\) and a comprehensive list of \PANIC\_REASONS\ for error handling. Additionally, \receipt.ts\ introduces a full set of receipt type definitions (Call, Return, Panic, Revert, Log, Transfer, etc.) and helper functions (\getMintedAssetId\, \createAssetId\, \getMessageId\) to support transaction and receipt processing.

packages/transactions/src · high confidence

New transaction summary assembly and fee calculation logic

The \packages/account/src/providers/transaction-summary\ directory now contains the complete implementation for assembling transaction summaries from serialized data, calculating transaction fees, and parsing transaction inputs, outputs, and operations. This includes new modules for deserializing transaction data (\assemble-transaction-summary-from-serialized\), computing gas and metadata fees (\calculate-tx-fee-for-summary\), and extracting specific input/output types (\input.ts\, \output.ts\). The \operations.ts\ module now handles the extraction of contract calls, transfers, and other operations from receipts. These changes provide a robust, self-contained mechanism for generating detailed transaction summaries for users, including support for pre-confirmation states and various transaction types (Script, Create, Mint, etc.).

packages/account/src/providers/transaction-summary · high confidence

Node.js crypto implementation for encryption and key derivation

The node-specific crypto module has been implemented with new files for AES-CTR encryption and decryption, PBKDF2 key derivation, HMAC computation, and random byte/UUID generation. This adds support for encrypting and decrypting JSON wallet data, as well as converting between buffers and strings, providing the necessary cryptographic primitives for the Fuel TypeScript crypto package on Node.js environments.

packages/crypto/src/node · high confidence

Repository initialization and tooling configuration

The repository has been initialized with a comprehensive set of configuration files that establish the project's development environment and quality standards. This includes a pnpm workspace configuration, TypeScript base and ESLint-specific tsconfigs, and a Turborepo build system setup. The project adopts a strict linting and formatting policy via \.eslintrc.js\ and \.prettierrc\, while test coverage and execution are configured through \.nycrc\ and a Vitest workspace setup (\vitest.workspace.ts\, \vitest.shared.config.mts\, etc.). Additionally, the repository includes standard governance files like \CODE\_OF\_CONDUCT.md\, \LICENSE\, and \SECURITY.md\, alongside a \playwright.config.ts\ for browser testing infrastructure.

(repo-wide) · high confidence

Restructured and expanded the Account package with comprehensive test coverage

The \@fuel-ts/account\ package has been restructured, introducing a new \Account\ class that provides an abstraction for interacting with accounts or wallets on the network. This update includes the addition of a new \configs.ts\ module exporting \DEVNET\_NETWORK\_URL\ and \TESTNET\_NETWORK\_URL\, and a \types.ts\ file defining the \AbstractAccount\ interface. The \account.ts\ implementation now supports features like coin consolidation, transaction cost estimation, and message retrieval, all of which are now fully covered by new test files (\account.test.ts\, \consolidate-coins.test.ts\, \configs.test.ts\, and \test-util.test.ts\).

packages/account/src · high confidence

Revamp create-fuels Next.js template with app router and new UI components

The create-fuels template for Next.js has been revamped to use the Next.js App Router, introducing new layout and page components that integrate @fuels/react for wallet connections and network configuration. The template now includes dedicated UI components for Wallet, Contract, Predicate, Script, and Faucet interactions, along with a lib module that manages environment-specific provider URLs, chain IDs, and contract IDs. Users will see a dark-themed UI with toast notifications and a structured navigation flow for connecting wallets and interacting with contracts.

templates/nextjs/src/app · high confidence

Behavioural changes

Add version header injection to generated files

The \renderHbsTemplate\ function now automatically injects a header containing the current versions of Fuels, Forc, and Fuel-Core into all generated files. This ensures that every generated artifact includes accurate version information, preventing runtime errors associated with ESM distributions and ensuring the typegen reports the correct versions.

packages/abi-typegen/src/templates · medium confidence

Automated migration of recipe contract imports to modular packages

The build script for recipes has been updated to automatically replace generic \fuels\ imports with specific imports from modular packages (e.g., \@fuel-ts/program\, \@fuel-ts/contract\). This change ensures that generated contract types use the correct, granular package imports, preventing naming collisions and aligning the codebase with the redistributed \@fuel-ts/interfaces\ package structure.

packages/recipes/scripts · high confidence

Browser crypto module restructured with new encoding support and wallet encryption

The browser-side crypto implementation has been reorganized into a new modular structure under \packages/crypto/src/browser\. This change introduces support for hex encoding in \bufferFromString\ and \stringFromBuffer\ functions, allowing users to convert buffers to and from hexadecimal strings. Additionally, new functions \encryptJsonWalletData\ and \decryptJsonWalletData\ are exposed, enabling the encryption and decryption of JSON wallet data using AES-CTR. The module also includes \randomUUID\ and \computeHmac\ (supporting SHA-256 and SHA-512), alongside existing utilities like \pbkdf2\, \scrypt\, and \keccak256\. The \CryptoApi\ interface is updated to reflect these capabilities, and the browser entry point (\index.browser.ts\) now exports these specific functions from the new modular files.

packages/crypto/src/browser · high confidence

Centralized version headers and common type definitions in typegen templates

The typegen templates have been refactored to centralize shared logic. A new \_header.hbs template now injects the versions of the Fuel toolchain (Fuels, Forc, and Fuel-Core) into generated files. Additionally, common TypeScript type definitions (Enum, Option, Vec, Result) and an index template for re-exporting generated members have been extracted into the common directory, with corresponding tests added to verify version rendering and index generation.

packages/abi-typegen/src/templates/common · medium confidence

Improved setup experience with automated tooling and template handling

The \create-fuels\ CLI now automatically detects and installs the \fuelup\ toolchain, prompting the user if it is missing. It also supports multiple package managers (pnpm, npm, bun) with automatic detection, and includes a new Vite template alongside the existing Next.js template. The setup process now rewrites template files to update dependencies and configuration, ensuring a consistent starting point for new projects.

packages/create-fuels/src/lib · medium confidence

Internalize cryptographic primitives using @noble/hashes

The shared crypto module now implements scrypt, keccak256, and ripemd160 by directly importing from the @noble/hashes library, replacing previous external dependencies. This change consolidates these core hashing and key-derivation functions within the crypto package, ensuring consistent internal handling of these algorithms.

packages/crypto/src/shared · high confidence

Introduce v1 ABI encoding strategy

The ABI coder now supports a new v1 encoding strategy, which is set as the default. This change introduces a new \getCoderForEncoding\ function that selects the appropriate encoding strategy based on the specified version, defaulting to v1. The v1 strategy implements specific coders for various types including u256, Option\<T\>, and (), while maintaining support for existing types. Tests have been added to verify the correct selection of encoding strategies and the behavior of the new v1 encoding implementation.

packages/abi-coder/src/encoding/strategies · medium confidence

Refactor Fuels CLI build command into modular components

The \build\ command in the \fuels\ CLI has been refactored to use separate modules for building Sway programs, generating types, and handling \forc\ process events. This change introduces new files (\buildSwayProgram.ts\, \buildSwayPrograms.ts\, \generateTypes.ts\, \forcHandlers.ts\) to handle specific responsibilities, improving code organization and testability. The \build\ function now orchestrates these steps and conditionally triggers deployment if the \--deploy\ flag is present.

packages/fuels/src/cli/commands/build · high confidence

Refactor contract call handling and introduce dedicated script generation

The \packages/program\ module has been restructured to improve how contract calls and script execution are handled. A new \Contract\ class now encapsulates contract interaction logic, including function invocation and multi-call support. The \contract-call-script.ts\ file introduces a dedicated script generation mechanism for contract calls, while \script-request.ts\ and \response.ts\ manage the encoding and decoding of script results. Additionally, \instruction-set.ts\ provides a wrapper for VM instructions, and \types.ts\ defines the core type definitions for invocation scopes and function results. These changes streamline the process of calling contract functions and handling transaction results.

packages/program/src · high confidence

Refactored contract call and multicall handling into new invocation scope classes

The \packages/program/src/functions\ directory now contains three new files: \base-invocation-scope.ts\, \invocation-scope.ts\, and \multicall-scope.ts\. These introduce \BaseInvocationScope\, \FunctionInvocationScope\, and \MultiCallInvocationScope\ classes to manage contract calls, function invocations, and multicalls. This refactors the previous implementation, consolidating logic for building transaction requests, handling call parameters, and managing coin forwarding into these new scope classes.

packages/program/src/functions · high confidence

Refactored typegen utility functions for enums, structs, and imports

The \formatEnums\, \formatStructs\, and \formatImports\ utilities in \packages/abi-typegen/src/templates/utils\ have been refactored to improve code organization and test coverage. The new implementations extract logic for generating TypeScript enum and struct definitions from the ABI, ensuring consistent formatting and proper import generation. Tests have been added to verify the correct formatting of enums, structs, and their corresponding imports, ensuring that the generated code adheres to the expected structure and handles edge cases like missing imports or empty results.

packages/abi-typegen/src/templates/utils · medium confidence

Release @fuel-ts/contract v0.103.0

The @fuel-ts/contract package has been released at version 0.103.0. This release updates all internal dependencies to version 0.103.0, including @fuel-ts/account, @fuel-ts/program, @fuel-ts/abi-coder, @fuel-ts/crypto, @fuel-ts/errors, @fuel-ts/hasher, @fuel-ts/math, @fuel-ts/merkle, @fuel-ts/transactions, and @fuel-ts/utils. The package also includes updated build configurations (tsconfig, tsup, typedoc) and standard repository files (README, CHANGELOG, LICENSE, .gitignore).

packages/abi-coder, packages/contract, packages/logger · high confidence

Restructured typegen contract templates into separate main and factory components

The contract code generation templates in the \abi-typegen\ package have been refactored to separate the main contract class and its associated types from the factory class. The \main.hbs\ template now exclusively generates the contract class, enums, structs, and interface, while a new \factory.hbs\ template generates the \ContractFactory\ subclass. This separation allows the factory to be updated or replaced independently of the core contract types, and includes a test suite for both templates to ensure correct rendering of types, enums, and bytecode compression.

packages/abi-typegen/src/templates/contract · medium confidence

Restructured typegen templates for scripts and predicates

The \abi-typegen\ module now uses new template files (\main.hbs\, \main.ts\, and associated tests) for both scripts and predicates. These templates generate the primary class and type definitions for each program type, ensuring consistent output for inputs, outputs, enums, structs, and configurables. The change also adds validation to ensure the generated code correctly handles missing 'main' methods in the ABI, throwing a clear error if the method is absent.

packages/abi-typegen/src/templates/predicate, packages/abi-typegen/src/templates/script · medium confidence

Restructured wallet implementation with new base classes and keystore support

The wallet module has been restructured to introduce a new \BaseWalletUnlocked\ class that handles core signing and transaction logic, while \WalletUnlocked\ and \WalletLocked\ are now defined in \wallets.ts\ to resolve circular dependencies. The \Wallet\ class now acts as a static factory, providing methods like \fromPrivateKey\, \fromAddress\, \generate\, \fromSeed\, \fromMnemonic\, \fromExtendedKey\, and \fromEncryptedJson\ to create wallet instances. Additionally, keystore encryption and decryption logic has been extracted into \keystore-wallet.ts\, enabling users to encrypt and decrypt wallets using a password.

packages/account/src/wallet · high confidence

Updated default chain configuration for local testnet

The default chain configuration for the local testnet has been updated with new consensus parameters, including adjusted limits for transactions, predicates, scripts, and contracts, as well as updated gas costs and fee parameters. This change affects the baseline settings used for local development and testing environments.

packages/utils/src/utils/defaultSnapshots · high confidence

Updated internal fuel-core wrapper to version 0.47.1

The internal fuel-core wrapper has been updated to version 0.47.1. This change updates the bundled \fuel-core\ binary, ensuring that the development environment uses the latest stable release of the Fuel Core engine. Users will benefit from the latest features, performance improvements, and bug fixes included in the 0.47.1 release of \fuel-core\.

internal/fuel-core · high confidence

Updated local testnet configuration with new chain parameters and state

The local testnet configuration has been updated with new chain parameters, including adjusted transaction, predicate, script, and contract limits, as well as updated gas costs and fee parameters. Additionally, the local node now includes a predefined set of faucet accounts with known private keys for testing purposes, and the state configuration has been reset to a clean initial state.

.fuel-core · high confidence

Test coverage

Add Playwright end-to-end tests for the create-fuels template; Add UI tests for the create-fuels-counter-guide template; Add comprehensive ABI coder tests for contract and script encoding/decoding; Add test constants for ABI coder utilities; Added comprehensive Sway test fixtures for ABI, logging, and type handling; Added environment validation tests for the SDK; Added exhaustive test fixtures for ABI encoding; Added feature tests for the Fuels CLI commands; Added fuels.config.ts fixture for workspace-based testing; Added integration tests for the demo-fuels app; Added predicate test utilities for balance assertions and account funding; Added state transition bytecode fixture for chain configuration tests; Added test coverage for account package components; Added test coverage for crypto utilities; Added test fixtures for a simple Forc project; Added test fixtures for account package; Added test fixtures for contract testing; Added test fixtures for script execution; Added test mocks for script ABI; Added test utilities for CLI commands and mocking; Added test utilities for create-fuels; Added test utilities for fetch operation inspection and version mismatch mocking; Added test utilities for the abi-typegen package; Added test utilities for validating FuelError behavior; Added tests for create-fuels CLI and template integrity; Added tests for the ABI Interface encoding and decoding logic; Added tests for the logger package; Added unit tests for new CLI command wrapper functions; Added unit tests for the create-fuels logging utility; Added workspace fixture for testing Sway types and proxy contracts; Expanded test coverage for core SDK capabilities; Expanded test coverage for predicate functionality; Expanded test fixtures for ABI type generation; Next.js template includes UI and integration tests for the generated dApp; Refactored ABI typegen utilities with comprehensive test coverage; Updated typegen fixture templates with new version headers and type definitions.

Dependencies

Update SDK dependencies and tooling versions

The SDK dependencies have been updated to version 0.103.0, and the @fuels/vm-asm package has been upgraded to 0.62.0. Additionally, the project has been upgraded to use Node.js 24, and the pnpm package manager has been updated to version 9.4.0.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 40 → 48 (+7.3)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 79 → 88 (+9.6)
  • Architecture 93 (new)
  • Maturity 58 → 63 (+5.6)
  • Readiness 32 → 59 (+26.4)
  • Security 33 → 30 (-3.2)
  • Accessibility 64 (new)
  • Performance 60 (new)

Resolved (139)

  • Boundary-crossing change coupling: Src14OwnedProxy.ts ↔ getBuiltinVersions.ts (packages/recipes/src/types/Src14OwnedProxy.ts)
  • Boundary-crossing change coupling: Src14OwnedProxyFactory.ts ↔ getBuiltinVersions.ts (packages/recipes/src/types/Src14OwnedProxyFactory.ts)
  • Boundary-crossing change coupling: common.ts ↔ getBuiltinVersions.ts (packages/recipes/src/types/common.ts)
  • Boundary-crossing change coupling: index.ts ↔ getBuiltinVersions.ts (packages/recipes/src/types/index.ts)
  • Change coupling: Src14OwnedProxyFactory.ts ↔ common.ts (packages/recipes/src/types/Src14OwnedProxyFactory.ts)
  • Change coupling: assemble-transaction-summary.ts ↔ get-transaction-summary.ts (packages/account/src/providers/transaction-summary/assemble-transaction-summary.ts)
  • Change coupling: common.ts ↔ index.ts (packages/recipes/src/types/common.ts)
  • Change coupling: input.ts ↔ output.ts (packages/transactions/src/coders/input.ts)
  • Change coupling: provider.ts ↔ assemble-transaction-summary.ts (packages/account/src/providers/provider.ts)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • …and 119 more

New (467)

  • Account.fund (cognitive 16) (packages/account/src/account.ts)
  • BN.format (cognitive 19) (packages/math/src/bn.ts)
  • ClassTooLong: Account (packages/account/src/account.ts)
  • ContractFactory.deployAsBlobTx (cognitive 20) (packages/contract/src/contract-factory.ts)
  • Critical CVE: [CVE redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Dependency advisory scan runs only on code events
  • …and 447 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

FuelLabs/fuels-ts was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit b3f37c91aca4aa9d5e4c0d3967f66237190826ea — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-eb9197011364.