Nodo RWA — Dev Summary
Thursday, 15 October 2026 (UTC+8) · repo 0xnex/nodo-rwa · contributors: Peng (0xnex), Sowmya
What shipped, by theme
Demo infraMergedDemo fork stability (NOD-391)
The demo chain fork was stalling and occasionally reusing wallet nonces. Five changes fixed this:
- Diagnostics: the demo now keeps RPC timings, errors and the blocked-thread state, so stalls can be diagnosed after the fact (#263).
- Anvil deadlock: upstream HTTP traffic to Anvil now runs in its own isolated runtime, with a concurrency test (#264).
- Nonce safety: each wallet gets a persisted, non-overlapping nonce range (#265), and those ranges survive older session wipes (#266).
- Slow lookups: transactions that were accepted but slow to look up are no longer treated as failures (#260).
LiquidationMergedSafer liquidation execution
- NOD-394: if a wallet request was never broadcast, recovery is now bounded, so the UI no longer waits forever (#261).
- NOD-385: closed demo positions are retired, and stale actions on them are blocked. The API and OpenAPI spec now expose closed state, and a receipt view was added (#259).
- NOD-384: the dashboard now waits for history sync before saying there are no recent liquidations (#257, #251).
- NOD-382: position drawer work merged, keeping the liquidation feed fresh (#258).
DemoMergedLiquidation email notices (NOD-389)
After a liquidation is processed in the demo, the signed-in wallet gets an email (#262). A follow-up sends it to the email address saved for that wallet, through the notification outbox and worker (#268). A tester guide was added in ops/demo/TESTING.md.
DemoMergedJAAA allowlisting (NOD-413)
Before building a JAAA liquidation plan, the demo now adds the wallet to the JAAA allowlist. Before this, the plan would fail for wallets that weren't members (#267).
Liquidation UIMergedShorter demo flow for fund managers
The setup panel, plan panel, execution modals, transaction trail and result story were reworked into a shorter walkthrough. The net change was about +1,077 / −829 lines across 12 frontend files (#269).
DemoOn branchPer-wallet liquidation watchlist (NOD-372)
On branch sowmya/nod-372-show-the-liquidations-watchlist-in-demo-mode:
- Each signed-in wallet now sees its own liquidation watchlist. Added a per-wallet watchlist limit, a watchlist reset on re-fork, and demo Telegram/alert dispatch wiring.
- Watchlist writes are blocked while a re-fork is running, and one demo-wide Telegram send budget is now shared through Redis.
Commit timeline
| Time | SHA | Author | Change |
|---|---|---|---|
| 02:04 | 12d6335 | Peng | fix(liquidations): wait for history sync before empty claims |
| 02:45 | 242ffd8 | Peng | fix(liquidation): retire closed demo positions and block stale actions (NOD-385) |
| 05:21 | e4a0c35 | Peng | fix(demo): allow slow accepted transaction lookups (NOD-391) |
| 08:09 | 455abf8 | Peng | fix(liquidation): bound recovery of unbroadcast wallet requests |
| 09:56 | c827e82 | Sowmya | fix(demo): email the signed-in wallet after a processed liquidation (NOD-389) |
| 09:58 | a547450 | Sowmya | style(demo): format the liquidation tester guide |
| 10:30 | 9293a74 | Peng | diag(demo): retain RPC timings, errors and blocked thread state (NOD-391) |
| 11:24 | 53ddf6e | Peng | fix(demo): isolate Anvil upstream HTTP runtime |
| 12:27 | ae943ec | Peng | fix(demo): persist non-overlapping wallet nonce ranges |
| 12:36 | eb396be | Peng | fix(demo): retain nonce allocations through legacy session wipes |
| 13:11 | af84939 | Sowmya | fix(demo): allowlist the wallet before a JAAA liquidation plan (NOD-413) |
| 13:13 | 5557d51 | Sowmya | fix(demo): email a processed liquidation to the wallet's saved address |
| 14:55 | 38c3cd2 | Sowmya | feat(liquidation): shorten the demo liquidation flow for fund managers |
| 16:00 | 0ab5daf | Sowmya | fix(demo): gate watchlist writes during re-fork and share the demo Telegram budget |
| 16:55 | 200d54d | Sowmya | feat(demo): show each signed-in wallet's liquidation watchlist |
Open / next
- Open a PR for the NOD-372 watchlist branch and get it reviewed.
- Confirm on the deployed demo that the NOD-391 fixes stopped the fork stalls, using the new RPC diagnostics.