# ActionMisc

{% hint style="info" %}
**Source:** `src/fira_bonding/router/ActionMiscV3.sol`
{% endhint %}

## Functions

### BT+CT lifecycle

* **`mintBcFromToken` / `mintBcFromFw`** — Convert tokens or FW into equal BT + CT
* **`redeemBcToToken` / `redeemBcToFw`** — Recombine BT + CT back to tokens or FW

### Position exits

* **`exitPreExpToToken` / `exitPreExpToFw`** — Exit all positions (LP + BT + CT) pre-expiry. First matches BT with CT for direct redemption (cheapest path), then swaps any remaining unmatched tokens via the AMM.
* **`exitPostExpToToken` / `exitPostExpToFw`** — Post-expiry exit. Burns LP, sends BT to CT contract, redeems via `CT.redeemBC()`. CT is not burned post-expiry.

### Utility

* **`multicall`** — Batches multiple router calls via `delegatecall` to self. Each sub-call can be marked `allowFailure`.
* **`simulate`** — Executes a call and reverts with the result bytes. Used by off-chain code to preview transaction outcomes without sending a real transaction.

### Rewards

* **`redeemDueInterestAndRewardsV2`** — Collects interest from CT + rewards from FW + rewards from markets, optionally swapping reward tokens via an aggregator.
