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'stest-lcm-currentgoldens the corpus was checked against;SHA256SUMSover 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_64From 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.shThis page is generated from README.md in the repository.