Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
@fuel-ts/abi-typegen
Advanced tools
@fuel-ts/abi-typegen
Generate TypeScript bindings for Sway smart contracts.
See the full ABI-spec here.
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.
FAQs
Generates Typescript definitions from Sway ABI Json files
The npm package @fuel-ts/abi-typegen receives a total of 22,684 weekly downloads. As such, @fuel-ts/abi-typegen popularity was classified as popular.
We found that @fuel-ts/abi-typegen demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.