Contracts2TS is a command line tool that helps you generate TypeScript code for CosmWasm smart contracts from their Rust source code. The generated code includes TypeScript types, clients, and other utilities to interact with the smart contracts.
Make sure you have your schemas generated with write_api marcos
You can install Contracts2TS globally using npm:
npm install -g @neutron-org/contracts2ts
To generate TypeScript code for your smart contracts, run the following command:
contracts2ts --src=<path to contracts> --out=<path to output>
If you don't want to install the package globally, you can use npx
to run the command:
npx @neutron-org/contracts2ts --src <path to contracts> --out <path to output>
--src
: The path to the contracts directory.--out
: The path to the output directory where the generated TypeScript code will be saved.
contracts2ts --src=./neutron-dao --out=./dao.ts
This command will generate TypeScript code for the smart contracts located in the ./neutron-dao
directory and save the output in the ./dao.ts
directory.
You can also use Contracts2TS from a script by importing the generate
function:
import { generate } from '@neutron-org/contracts2ts';
generate({
src: '../',
out: './src/generated/contractLib',
});
The script does the following:
- Validates the command line arguments.
- Finds all the smart contract directories by searching for
Cargo.toml
files. - Executes
cargo schema
for each smart contract to generate schema files. - Generates TypeScript code using
@cosmwasm/ts-codegen
for each smart contract.
If you encounter any issues or errors, make sure your smart contract directories have the necessary Cargo.toml
and schema files. If the schema files are missing or not up-to-date, you can run cargo schema
manually in each smart contract directory to generate them.