/shank

Extracts IDL from Solana Rust contracts

Primary LanguageRust

Shank Build+Test

Collection of shank crates used to annotate Rust programs in order to extract IDL via the included CLI tool. This IDL is used by solita in order to generate program SDKs.

shank-logo

Installation

For usage and installation see the shank-cli Readme.

Crates

  • shank top level crate to be installed and included in your library to add macro annotations
  • shank_cli the CLI tool that extracts IDL from a specified crate into a file
  • shank-macro provides the derive macros shank uses
  • shank-macro-impl implements and tests the derive macros
  • shank-idl processes files of a crate in order to discover shank macros annotations and convert annotated types into an solita compatible IDL
  • shank-render generates Rust impl blocks from specific annotations like account seeds

Development

Fork the repo makes some changes and make sure that all is dandy by running cargo test. Then provide a pull request.

If you are a contributor with access to publish to crates.io do the below in order to publish a new version. NOTE that this only works from the master branch and should be performed after merging a PR into master.

cargo test && cargo release <major|minor|patch>

The above runs all tests and dry-runs the release process. You should verify closely what it is about to do and then re-run the release command as shown below.

cargo release <major|minor|patch> --execute

LICENSE

Apache-2.0