Skip to main content
Each official SDK family gets a runner that reads the corpus and checks every fixture three ways. The third check is where real bugs live. Decoding and re-encoding are mechanical: the generated XDR code either handles a type or it doesn’t. The high-level conversions (strkeys, muxed accounts, transaction hashes, amounts) are hand-written, and they’re where a 64-bit ID quietly becomes a float.

Results

The goldens column is the stellar-core goldens check: 15,306 frames from core’s own test suite, decoded and re-encoded byte for byte.

Running them

Each result file records the SDK, its exact version, the runtime, and per fixture every check with the differing fields if a check fails.

What “native” checks, per pattern

The precision probe

The JavaScript runner also records what Number() does to every wide integer in the corpus. It’s not a pass/fail check, because the SDK itself is right. It’s a measurement of what happens the moment someone’s code steps outside it: Both are off. See Keep 64-bit integers exact.

Adding an SDK

A runner is a few hundred lines: walk corpus/fixtures, decode each file by xdr_type, re-encode, run the native checks for the fixture’s primary CAP, and write corpus/results/<sdk>.json in the same shape as the existing ones. Add it to kit/check-results.mjs and CI. Python and Java runners are on the roadmap.