84 lines
2.8 KiB
Markdown
84 lines
2.8 KiB
Markdown
|
|
# Mainnet cWUSDC/USDC Repeg Runbook
|
||
|
|
|
||
|
|
**Purpose:** Turn the latest read-only preflight into an exact inventory plan for restoring the Mainnet `cWUSDC/USDC` rail toward `1:1`.
|
||
|
|
**Scope:** Defended DODO PMM reserve-gap sizing, public Uniswap V2 floor shortfalls, treasury-manager funding needs, and copy-paste operator commands.
|
||
|
|
**Safety:** The planner is read-only. It does not broadcast or move funds.
|
||
|
|
|
||
|
|
## What this planner answers
|
||
|
|
|
||
|
|
- How far the defended PMM is from simple `1:1` reserve parity
|
||
|
|
- How much USDC is needed to fund one max-sized automated defense cycle
|
||
|
|
- How far the public pair is below the current policy floor
|
||
|
|
- Whether the current operator wallet can cover any of those gaps
|
||
|
|
- Exact commands to fund the manager, top up the defended PMM, and reseed the public pair once inventory exists
|
||
|
|
|
||
|
|
## Prereqs
|
||
|
|
|
||
|
|
- Run the preflight first:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
bash scripts/verify/snapshot-mainnet-cwusdc-usdc-preflight.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
- `cast` installed
|
||
|
|
- `python3` installed
|
||
|
|
- `ETHEREUM_MAINNET_RPC` available
|
||
|
|
- Optional but useful:
|
||
|
|
- `PRIVATE_KEY` or `KEEPER_PRIVATE_KEY` so the planner can inspect the current operator wallet
|
||
|
|
|
||
|
|
## Command
|
||
|
|
|
||
|
|
Run from the repo root:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
bash scripts/verify/plan-mainnet-cwusdc-usdc-repeg.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
## Artifacts
|
||
|
|
|
||
|
|
The wrapper writes:
|
||
|
|
|
||
|
|
- `reports/status/mainnet-cwusdc-usdc-repeg-plan-<UTC timestamp>.json`
|
||
|
|
- `reports/status/mainnet-cwusdc-usdc-repeg-plan-latest.json`
|
||
|
|
|
||
|
|
## Key fields to inspect
|
||
|
|
|
||
|
|
- `defendedVenue.simpleReserveParity.addQuoteUnits`
|
||
|
|
- `automation.managerFundingForOneMaxCycle.shortfallUnits`
|
||
|
|
- `publicLane.policyFloorBaseShortfallUnits`
|
||
|
|
- `publicLane.policyFloorQuoteShortfallUnits`
|
||
|
|
- `holderState`
|
||
|
|
- `holderFundingChecks`
|
||
|
|
- `blockers`
|
||
|
|
- `operatorCommands`
|
||
|
|
|
||
|
|
## Interpretation notes
|
||
|
|
|
||
|
|
- The defended-pool `1:1` number is an inference from matched 6-decimal tokens and equal reserve targets.
|
||
|
|
- DODO PMM price can still differ from reserve ratio because the PMM curve is not a constant-product pool.
|
||
|
|
- Re-run the preflight after every liquidity move. Treat the planner as a live calculator, not a one-time document.
|
||
|
|
|
||
|
|
## Operator sequence once funding exists
|
||
|
|
|
||
|
|
1. Fund the treasury manager with at least one max-sized automated tranche.
|
||
|
|
Use `operatorCommands.fundManagerUsdc`.
|
||
|
|
|
||
|
|
2. Sell the planned USDC amount into the defended PMM.
|
||
|
|
Use `operatorCommands.tradeDefendedPoolQuoteIn`.
|
||
|
|
|
||
|
|
3. Reseed the public pair to at least the current policy floor if public routing / discovery should be healthy again.
|
||
|
|
Use `operatorCommands.reseedPublicPair`.
|
||
|
|
|
||
|
|
4. Re-run both read-only checks.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
bash scripts/verify/snapshot-mainnet-cwusdc-usdc-preflight.sh
|
||
|
|
bash scripts/verify/plan-mainnet-cwusdc-usdc-repeg.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
5. Only after the defended lane is re-funded should you consider a managed quote-push cycle.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
bash scripts/maintenance/run-mainnet-cwusdc-usdc-support.sh --health-only
|
||
|
|
```
|