Files
precompile/contract
zeekay 73f1772a64 dex(0x9999): decentralize halt authority + commit the value-path proof tests
HIGH-3 (centralized key): the 0x9999 emergency-halt authority was a single
hardcoded EOA (DefaultDAOTreasury 0x9011…94714), which per memory is the devnet
"Maker" derivable from LUX_MNEMONIC — so anyone with the dev mnemonic could
setHaltAsset(real,true) (censor) or setHaltGlobal(true) (DoS the whole DEX). It
also gated seedSeamReserve/creditPositionFee. A single admin key, not governance.

Fix: the halt + pot-seeding authority is now the per-NETWORK DEX governance
controller resolved at RUNTIME from contract.AtomicState.GovernanceController()
(the same seam networkID/cChainID/dChainID flow through) — a governance CONTRACT
the host binds from its deployment topology, NEVER a dev-mnemonic EOA.

  - contract.AtomicState gains GovernanceController() common.Address.
  - halt9999.go: new governanceController(state) helper + ErrSettleNoGovernance;
    fail-closed when no AtomicState or the network configured no controller (zero
    address) — every halt/seed reverts, no default key to abuse. Strictly safer
    than a default key: an unset network can be neither censored nor DoS'd.
  - settle_module.go: DELETE DefaultDAOTreasury (the mnemonic EOA) and the
    SettleContract.protocolFeeController field; SettleContract is now stateless
    w.r.t. authority. The 4 gates (setHaltGlobal/Scoped, seedSeamReserve,
    creditPositionFee) resolve gov from runtime, then check caller == gov.
  - access_observer.go: observingAccessibleState forwards GovernanceController to
    the inner (fail-closed when non-atomic) so the L2 write-set wrapper preserves
    the capability.
  - Conservation is unchanged: only the authority resolution moved; value-movement
    logic (observed-delta seed, the pots, checkHalt) is untouched.

HIGH-1/HIGH-2 (integrity): commit the RED #5/#8/#11 proof tests that were
untracked — gatec_red_probe_test.go + gatec_red_dos_test.go — so the value path's
behavior is reproducible at this commit.

LOW-1: swap_sync.go doc comment updated (pre-permissionless "registry admission"
wording → the permissionless canonical resolver) so doc + behavior agree.

TDD (halt_governance_test.go + dex_test.go rewrite, all green):
  - the retired 0x9011 EOA can NO LONGER halt (ErrUnauthorized);
  - an arbitrary EOA cannot halt;
  - ONLY the configured governance controller can halt (global/asset/market) and
    the halt BITES — TestHIGH3_HaltBitesARealFill: governance halts a real market,
    a fillable swap reverts ErrMarketHalted, the retired EOA cannot lift it, only
    governance lifts it, then the swap fills;
  - with no governance configured, NOBODY can halt (fail-closed, ErrSettleNoGovernance);
  - the retired EOA cannot seed pots either;
  - RED CASE 6 (governance cannot mint/move funds) still passes under the new authority.
2026-06-22 22:50:00 -07:00
..