89: Add EvelynLiquidityService to withdraw CLMM proceeds, swap to USDC and send payouts

This commit is contained in:
2026-10-04 11:20:29 +02:00
parent e8d4dbe7ae
commit 7dfd43dfd7
27 changed files with 1854 additions and 24 deletions
@@ -0,0 +1,29 @@
# Proposal
## Why
Evelyn needs to realize proceeds from manually funded EVE/SyrupUSDC CLMM positions before a falling price converts them back to EVE. Issue #89 adds the smallest automated realization and USDC payout pipeline supporting Evelyn's sustained 100 USD/day objective.
## What Changes
- Add a domain-only EvelynLiquidityService and a Hub-owned sequential process with three independent withdrawal, exact-input swap and payout steps.
- Add full Raydium CLMM liquidity decrease with slippage protection and retained position accounts/NFTs.
- Add strict versioned deployment configuration and a public placeholder example with both reserves zero.
- Lazily construct dedicated liquidity wallet, Jupiter and direct Raydium dependencies only for the selected process.
- Verify with controlled offline fixtures and document operation/recovery.
## Capabilities
### New Capabilities
- `evelyn-liquidity-service`: Distance-based position realization, reserve-aware conversion/payout, configuration and runtime behavior.
- `raydium-clmm-liquidity-withdrawal`: Protected full liquidity decrease preserving positions and NFTs.
### Modified Capabilities
- `nenjim-hub-configuration`: Add the optional process to the known catalogue and defer its dedicated dependencies until selection.
- `nenjim-component-registry`: Preserve eager shared composition while registering dedicated liquidity components only for the selected process.
## Impact
Adds API and reference implementation packages under com.r35157.evelyn.service.liquidity, extends Raydium, and adds one optional Hub constructor. Deployment configuration and signer are required only when explicitly selected. No position creation/refill/closure, reference-price dependency, notifications or persistent service queue. No live financial verification, commits or pushes.