abi-typegen 0.0.0-pr-3639-20250131165518
Install from the command line:
Learn more about npm packages
$ npm install @fuellabs/abi-typegen@0.0.0-pr-3639-20250131165518
Install via package.json:
"@fuellabs/abi-typegen": "0.0.0-pr-3639-20250131165518"
About this version
Generate TypeScript bindings for Sway smart contracts.
See the full ABI-spec here.
- Documentation
- Installation
- Help
- Generating Types
- Programmatic API
- Type's Conversion Table
- Contributing
- Changelog
- License
pnpm add @fuel-ts/abi-typegen
# or
npm add @fuel-ts/abi-typegen
$ fuels-typegen -h
Generate Typescript from Sway ABI JSON files
Usage: fuels-typegen [options]
Options:
-V, --version output the version number
-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
-h, --help display help for command
When using the package in a standalone fashion, its bin is prefixed with fuels-
.
npx fuels-typegen -i ./out/debug/*-abi.json -o ./src/contracts
import { ProgramTypeEnum, runTypegen } from "@fuel-ts/abi-typegen";
const cwd = process.cwd();
const input = './abis/**-abi.json'
const output = './types'
const filepaths = [ './abis/a-abi.json', './abis/b-abi.json' ]
const programType = ProgramTypeEnum.CONTRACT;
// using input global
await runTypegen({ cwd, input, output, programType });
// using filepaths' array
await runTypegen({ cwd, filepaths, output, programType });
}
Alternatively, we recommend you install the complete SDK using the umbrella package:
pnpm add fuels
# or
npm add fuels
Note that in this example we will interact with the fuels
bin directly.
We just need to call it with the typegen
command, and the rest feels the same.
npx fuels typegen -i ./out/debug/*-abi.json -o ./src/contracts
The table below describes how Sway types are converted from/to Typescript.
Sway | Example | TS:input | TS:output |
---|---|---|---|
u8 | 255 |
BigNumberish |
number |
u16 | 65535 |
BigNumberish |
number |
u32 | 4294967295 |
BigNumberish |
number |
u64 | 0xFFFFFFFFFFFFFFFF |
BigNumberish |
BN |
str | anything |
string |
string |
bool | true |
boolean |
boolean |
b256 | 0x000... |
string |
string |
b512 | fuel1a7r... |
string |
string |
tuples | (MyType , MyType ) |
[MyType , MyType ] |
[MyType , MyType ] |
enums | enum MyEnum { y: (), n: () } |
MyEnum = Enum <{ y: [], n: [] }> |
MyEnum = Enum <{ y: [], n: [] }> |
structs |
MyStruct { a: u8, b: u16 } |
MyStruct |
MyStruct |
vectors | Vec<MyType > |
MyType [] |
MyType [] |
options | Option<MyType > |
Option<MyType> |
Option<MyType> |
raw untyped ptr | 123 |
BigNumberish |
BN |
For more info on Sway types, click here
In order to contribute to @fuel-ts/abi-typegen
, please see the main fuels-ts monorepo.
The @fuel-ts/abi-typegen
changelog can be found at CHANGELOG.
The primary license for @fuel-ts/abi-typegen
is Apache 2.0
, see LICENSE.
Details
- abi-typegen
- FuelLabs
- 4 days ago
- Apache-2.0
- 12 dependencies
Assets
- abi-typegen-0.0.0-pr-3639-20250131165518.tgz
Download activity
- Total downloads 0
- Last 30 days 0
- Last week 0
- Today 0