Skip to main content
istravex-lint is a set of go/analysis analyzers for Go code built on Stellar’s XDR packages, both github.com/stellar/go-stellar-sdk/xdr and the older github.com/stellar/go/xdr.

Run it

Or install it once:
It’s a standard multichecker, so the usual flags work: -IX002=false to disable a rule, -json for machine-readable output.

In CI

.github/workflows/lint.yml

Suppressing a finding

When you’ve reviewed a finding and it’s fine, say so in the code, with a reason:
The comment can go on the line above or at the end of the reported line. Name the rule; a bare //ixlint:ignore suppresses nothing.

Designed to stay quiet

A linter people disable is worse than none. Each rule is narrow on purpose, and was calibrated against stellar/wallet-backend, a real, well-maintained indexer:
  • IX003 originally flagged every Envelope.SourceAccount() call. In wallet-backend that produced two findings, both correct code: operation-source fallbacks, where the inner source is the right answer. The rule now fires only inside fee logic.
  • After calibration, the whole rule set produces one finding on wallet-backend, triaged as latent (see IX001).
Each rule ships with positive and negative test cases in kit/go/lint/testdata.