Skip to Content
shapekit

Install

From a release

Each release has, for linux x86-64:

  • shapekit-linux-x86_64, the CLI;
  • indexerlint-linux-x86_64, the linter;
  • wb-adapter-linux-x86_64, the wallet-backend reference adapter for the harness;
  • corpus-<version>.tar.zst, the corpus;
  • goldens-core-<tag>.tar.zst, stellar-core's test-lcm-current goldens the corpus was checked against;
  • SHA256SUMS over all of them.
sha256sum -c SHA256SUMS
gh attestation verify shapekit-linux-x86_64 --repo ErenTopaal/shapekit
chmod +x shapekit-linux-x86_64 indexerlint-linux-x86_64 wb-adapter-linux-x86_64

From source

Toolchains are pinned: Rust 1.99.1 (rust-toolchain.toml), Go 1.27.4, Node.js 26.13.1.

cargo build --release --locked -p shapekit-cli     # target/release/shapekit
(cd lint && go build -o indexerlint ./cmd/indexerlint)
(cd adapters && go build -o bin/wb-adapter ./walletbackend/cmd/wb-adapter)

Commands below run from the root of a checkout of this repository at the release tag, with the binaries on PATH as shapekit, indexerlint and adapters/bin/wb-adapter: their default paths (corpus/, registry/, conformance/, testees/, pins.toml) are relative to it.

Building and checking

The same commands CI runs on every pull request (see docs/infrastructure.md for the full list and their measured durations):

cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace

# in each module listed in go.work; adapters/ needs SHAPEKIT_BIN or target/debug/shapekit
go vet ./... && go test ./... && golangci-lint run ./...

# node 26; testees/js/.npmrc sets engine-strict, so npm ci fails on an older node
cd testees/js && npm ci && npx tsc --noEmit && npx tsc && node --test "dist/**/*.test.js"

scripts/check-no-em-dash.sh

This page is generated from README.md in the repository.

On this page