# Rolling and the position lifecycle — review flows / pending transactions

User direction, 14 September 2026: `rollTo` is a key feature. Borrowing follows
deployment and funding as an independent choice; repayment is independent too.
The current UI provides borrow/repay **scenarios** on its HF chart. No debt,
approval or transfer is submitted. The Guide now describes the full lifecycle.

## Proposed flow

1. **Deploy → fund.** Review strategy size, assets, strike, expiry and fees. Supply
   both assets and start the strategy. A successful deployment is not funding.
2. **Review the first rebalance.** Read current holdings, the next order and its
   outgoing-transfer collateral requirement. An off-target first trade can use
   much more collateral than a normal grid trade.
3. **Optional borrowing.** Explore HF and LTV with the chosen debt asset/amount.
   Then, in a future transaction integration, authorize credit delegation and
   borrow through Aave as separate actions. Delegation itself does not borrow.
4. **Repayment.** Review the debt asset, amount, source of funds and resulting
   health before any approval/repayment. Current scenarios assume external funds.
5. **Roll to a reviewed destination.** Present source and destination side by side:
   owner, assets, strategy size, strike, expiry, fees, supplied balances and every
   debt asset. Default to the same owner. Ownership rotation is an explicit choice.
6. **Holdings received → start the new strategy.** Verify received balances, debt,
   collateral flags and source-delegation cleanup. Activate the destination using
   `fundFromHoldings(maxNotional)`, sized at its new strike. Before that succeeds,
   show “Holdings received · strategy not started.” Additional borrowing comes
   after activation and a fresh account/order read.

## Source-verified implementation requirements

The actual current methods are `primeFor(source)`, `rollTo(destination)` and
`fundFromHoldings(maxNotional)`. There are no `prepareRoll` or `acceptRoll` methods
in this version. Source: `../thetaAaveCattle/src/ThetaCattlePair.sol` and its
frontend checklist (paths relative to the thetaverse workspace).

- Verify both deployments against their actual release. Match chain, Aave pool
  and collateral assets. Destination must be distinct, open, unexpired and unfunded.
- Show accrued source fees before transfer. Both aToken balances and all variable
  debt assets move, including debt outside the two collateral assets. The source
  stops trading; this does not establish that every residual balance is zero.
- Debt-free rolls skip priming. Debt rolls need destination delegation, sufficient
  collateral and flash-loan availability for every borrowed reserve.
- `primeFor` grants unlimited credit for currently owed assets and does not
  authenticate source identity or ownership. The frontend must verify the source
  **before** offering priming. A wrong grant cannot be revoked through the current
  destination-owner API; the documented remedy is abandoning that destination.
- Genuine pair recipients receive collateral synchronization and source-delegation
  cleanup during the roll. Read the results back before enabling activation.
- Prepared EOA exits, arbitrary contracts and Safe recipients need separate
  handling. They are outside the initial pair-to-pair roll design.

This is a concrete design and integration study, not a released transaction flow.
Deployed-version verification, owner/action checks, fee/received-value previews,
simulation, receipt handling and failure recovery remain required before sends.
The read-only factory coverage and wallet behavior are unchanged by this study.

## Position review flows now implemented

Fresh My Wallet cards open Borrow, Repay and Roll reviews with their own position
context. Each dialog re-reads verified source data and Aave reserves. Debt reviews
retain current supplied balances; they do not apply an initial hedge rebalance.
Roll destination checks cover same owner/factory/pool/assets, distinct address,
open state, future expiry and zero notional. Closed sources can still roll
remaining holdings because `rollTo` does not require an open source.

These initial reviews do not request wallet signatures. Transaction simulation,
fee/transfer quotes, destination preparation and activation sends remain in the
next live integration stage after the tutorial review. Only the strategy’s two
aToken legs transfer through `_roll`; debt discovery includes every owed reserve.
