Files

1.6 KiB

Proposal

Why

The production Evelyn IOU burner accepts only USDT, and its common USDC-equivalent ceiling needs input prices for other tokens. Issue #90 requires deposited SyrupUSDC to fund the same Jupiter buyback and burn pipeline using a small, explicit token-denominated limit.

What Changes

  • BREAKING: Replace the constructor's scalar maximumSwapAmountInUSDC with List<MoneyAmount> inputCurrencyMaximumSwapAmounts, validated and matched to accepted inputs by canonical currency UUID.
  • Calculate each exact input amount from spendable balance and that currency's maximum, rounding downward to mint precision without querying an input/USDC price.
  • Keep USDT first with reserve 0.1 and maximum 0.25; add SyrupUSDC second with reserve 0.095 and maximum 0.2 in constructEvelynIOUBurnerProdProcess().
  • Preserve Jupiter routing, EVE/USDT freshness before burning, all transaction/recovery behavior, and Hub-owned lifecycle.

Capabilities

New Capabilities

None.

Modified Capabilities

  • evelyn-iou-burner-service: Token-denominated maxima, UUID-matched configuration validation, price-independent input selection, and production SyrupUSDC support.

Impact

Changes are limited to the burner reference constructor/selection logic, its Hub construction, directly affected documentation and OpenSpec requirements. Verification compiles normal sources and uses controlled offline dependencies without live financial transactions. No Ticker sources, API behavior, history paths, ValueTags, direct Raydium swaps, deployment, or unrelated refactoring are included.