abi-typegen 0.0.0-pr-3741-20250227153855
Install from the command line:
Learn more about npm packages
$ npm install @FuelLabs/abi-typegen@0.0.0-pr-3741-20250227153855
Install via package.json:
"@FuelLabs/abi-typegen": "0.0.0-pr-3741-20250227153855"
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 commandWhen using the package in a standalone fashion, its bin is prefixed with fuels-.
npx fuels-typegen -i ./out/debug/*-abi.json -o ./src/contractsimport { 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 fuelsNote 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/contractsThe 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
- 10 months ago
- Apache-2.0
- 12 dependencies
Assets
- abi-typegen-0.0.0-pr-3741-20250227153855.tgz
Download activity
- Total downloads 0
- Last 30 days 0
- Last week 0
- Today 0