Skip to content

v0.0.4

Latest

Choose a tag to compare

@0xGeorgii 0xGeorgii released this 26 Jul 03:21
799aa90

Soroban-ret v0.0.4

Headline numbers

  • Mainnet-corpus hard-error ratchet: 1042 → 326 (−68%);
  • Behavioral equivalence (recompile → run in soroban-env-host → diff outcomes): 99.2% match, 4 divergences

Fabrication classes eliminated

  • Lost collections no longer render as empty Map/Vec (#36) — unrecoverable values surface as honest holes
  • Symbol-builder loops recover the real encoded symbols instead of fabricating tag-only keys (#61): Symbol::new(&env, "AssetRecord"), real invoke symbols
  • blend-backstop's user_balance recovered from a bare panic!() collapse to its real storage protocol (#33)
  • Recompiled arithmetic is wrapping-exact where the original wrapped — no overflow traps the original binary doesn't have (#64)

New recovery capabilities

  • Storage-getter classes: defaulting, fallible-struct (proven multi-field layouts + TTL protocols), value-returning, and defaulting-collection getters
  • Keyed DataKey recovery through frame-built descriptors, proven by executing the real constructor bytecode
  • Fallible storage-decode discriminant modeling
  • Full loop recovery: carried values, helper adoption, vec accumulators, const-loop evaluation, and the populate→push value relay — test_alloc's num_list now decompiles hole-free and behaviorally matches the original on every generated input, including overflow cases

Full details in CHANGELOG.md.