Skip to content

docs: add hub funded spoke pool documentation - #385

Draft
Debugger022 wants to merge 3 commits into
mainfrom
feat/spoke-pool-doc
Draft

docs: add hub funded spoke pool documentation#385
Debugger022 wants to merge 3 commits into
mainfrom
feat/spoke-pool-doc

Conversation

@Debugger022

Copy link
Copy Markdown
Contributor

Documents the hub-funded spoke pool work. Draft: nothing is deployed or wired yet, and every page says so.

Implementation PRs this covers:

New

  • whats-new/hub-funded-spoke-pools.md - product introduction: the two-sided pool, access matrix, retail and bulk shapes, worked example, risk controls, where bad debt lands.
  • reference-isolated-pools/spoke/ - README (why the fork exists, deploy and VIP ordering), spoke-comptroller (supply and liquidation allowlists, per-market liquidation incentives, the maxClearableDebt routing between liquidateAccount and healAccount, bounded pricing, full API/event/error delta), spoke-comptroller-storage (layout and why it is not swappable with ComptrollerStorage).
  • reference-core-pool/bstock-liquidator.md - BStockLiquidator had no docs at all despite being live on BNB Chain, so this is a full page: both pools, both funding modes, the swap chain, the loss floors, the vBNB and VAI branches.

Updated

  • Liquidity Hub - Spoke as a fourth yield family, and the AdapterSpokeV1 section: NAV excludes badDebt, withdraw redeems by vToken count, inverted supply-cap sentinels, and the ordering constraint (setAllowedSupplier before addResource).
  • Isolated-pools VToken - the internalCash change, which applies to every isolated-pools market and not just spoke pools. Covers syncCash, the corrected getCash semantics, and the migration hazard: an upgraded market reports zero cash until syncCash() runs, so it belongs in the same VIP as the beacon upgrade.
  • DeviationBoundedOracle article - same mechanism in a spoke pool, except there is no fallback to spot, so borrowing and redeeming fail closed until it is set.
  • SUMMARY.md - three TOC entries.

Covers the SpokeComptroller fork, its supply and liquidation
allowlists, per-market liquidation incentives and bounded collateral
pricing. Adds the Liquidity Hub Spoke adapter, the bStock liquidator
reference, and the internalCash change to isolated-pool markets.
Resolve the three conflicts with the reference audit that landed on main.

- SUMMARY.md: keep the spoke pool entries, take the flattened
  VenusERC4626 entry from main
- vtoken.md and vtoken-interfaces.md: take main's rewrite in full. It
  already documents internalCash, syncCash and the deployment version
  boundary, so the additions this branch carried are redundant and in
  the wrong style for the rewritten pages.
The three implementation branches moved after these pages were written,
so several documented claims no longer matched the code, and one new
contract had no page at all.

SpokeComptroller:
- liquidateAccount no longer checks the liquidation allowlist at its
  entry, so two call sites enforce it rather than three
- both batch entry points now refresh markets before the routing
  snapshot, which is what the skipped per order liquidity check rests on
- document enterMarketBehalf, its ACM role string, and why the grant
  belongs only to a caller that passes its own sender

Spoke pools are listed in a PoolRegistry instance of their own, not the
isolated pools one. Record the two script deploy order, the ten ACM
grants the listing VIP has to make, and the ProtocolShareReserve single
registry constraint that blocks listing until protocol-reserve ships
support for more than one.

BStockLiquidator resolves a non core pool through a PoolRegistry now, so
setAllowedComptroller, two errors and one event are gone and three
errors are new.

AdapterSpokeV1: the supply cap sentinel is one sided rather than
inverted, validateRegistration also rejects an unlisted market, and the
three vToken error code variants no longer exist. Correct the claim that
maxDeposit and validateRegistration are the only members without a
holder argument.

Also:
- add a page for HubRouter, which serves the core pool as well as spoke,
  plus a product level section since the core half is not spoke specific
- note the spoke only state PoolLens now reports
- point a link at the oracle article instead of protection mode
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant