Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

What’s checked for you

Redstart’s value is the errors you can’t hit. The semantic checker runs across every module and rejects the entire class of AssemblyScript subgraph footguns before a single block is indexed.

Footgun in hand-written AssemblyScriptIn Redstart
Forgetting .save()Impossible — entities are dirty-tracked and auto-saved
Arithmetic on a nullable value miscompilingCompile error — unwrap the Option first
Dereferencing a null load resultCompile error — match the Option<Entity>
Unguarded contract call aborting on revertCompile error — match the Result
== vs === confusionNot expressible — one equality, lowered correctly
Array prefill / length bugsHandled by the lowering
Manifest event signature drifting from the ABICompile error — signatures are derived by reference
Writing to a @derivedFrom fieldCompile error — derived fields are read-only
Schema/manifest/handler name driftImpossible — all three are projections of one AST

Other diagnostics the checker raises:

  • unknown source, event, entity, or type
  • missing required source settings (abi, network, address, startBlock)
  • a derived field whose back-reference doesn’t exist
  • a required field left uninitialised at creation
  • .value accessed without a surrounding match

The guiding principle: make the broken state unrepresentable, so the diagnostic is a parse or type error you see in your editor, not a revert you discover three hours into a sync.