Test matrix
Full workspace
| Command | Coverage |
|---|---|
pnpm test | bigint compatibility, TxLINE ground truth, SDK, keeper, web, and real Surfpool lifecycle. |
pnpm typecheck | SDK build/types, keeper, program TypeScript tests, and web. |
pnpm lint | Next.js web source. |
pnpm build | SDK production output and optimized Next.js build. |
Rust
Surfpool
- Reject a non-contiguous outcome partition.
- Reject a stat-key and side mismatch.
- Create a five-band total-corners market.
- Create a three-outcome 1X2 market.
- Buy different stake amounts from two funded wallets.
- Assert vault balance equals total pools.
- Reject a buy after entry closes.
- Resolve using a terminal two-stat proof anchored in a TxLINE-owned roots PDA fixture.
- Assert winning outcome and market state.
- Assert exact fee and resolver-tip balances.
- Reject a losing claim.
- Pay the hand-calculated proportional winner amount.
- Reject a second claim.
- Represent Draw / Not draw with multiple bands pointing to one outcome.
- Void and refund a one-sided book.
- Void a two-sided unresolved book after timeout and refund both tickets.
SDK
The default SDK suite covers semantic AI-output compilation, every expression operation, period prefixes, five named outcomes, unsupported-output rejection, complete partitions, UTF-8 label limits, program fee/tip parity, IDs, timestamps, exact money math, zero liquidity, large u64-safe values, and instruction accounts. Real model and TxLINE calls are separate credential-gated commands:test:ai requires SLIP_RULE_PROVIDER and SLIP_RULE_MODEL; gateway mode additionally requires
AI_GATEWAY_API_KEY. test:ai:ollama targets OLLAMA_BASE_URL and sends real natural-language
requests. test:txline requires TXLINE_DEVNET_ORIGIN and an activated TXLINE_API_TOKEN. These
commands fail when their real boundaries are absent rather than substituting a model or HTTP fixture.