# Spec Delta ## MODIFIED Requirements ### Requirement: At most one confirmed swap attempt per iteration After selecting a positive exact amount and satisfying the current below-reference price condition, the service SHALL invoke the existing Jupiter exact-input operation once with the selected CIS-resolved input mint, fixed EVE output mint, selected amount, and configured slippage. Normal return SHALL be treated as already `CONFIRMED` and SHALL NOT trigger a second confirmation wait. Once invoked, no later input currency SHALL be attempted in that iteration regardless of success or failure, and the service SHALL proceed to reload the complete EVE balance whenever processing was not interrupted. A structured definitive on-chain swap failure SHALL be logged without suspending later-process swaps. A timed-out outcome or known-signature confirmation communication error SHALL retain process-local pending swap signature, canonical input, attempted amount and original validity metadata for later read-only reconciliation. Proven pre-submission errors SHALL permit a fresh attempt in a later scheduled iteration. An ambiguous post-submission error without a trustworthy signature SHALL retain manual suspension. Interruption SHALL preserve available pending context and propagate normally. No unknown outcome SHALL cause automatic rebuilding, re-signing or resubmission; pending swaps SHALL still permit existing EVE burn evaluation. #### Scenario: First swap fails definitively - **WHEN** the first attempted input returns a definitive on-chain failure - **THEN** no second input is attempted in that iteration, the EVE balance is still reloaded, and a later iteration may attempt a new swap #### Scenario: Swap outcome is unknown - **WHEN** the attempted swap times out, throws an I/O failure that permits unknown post-submission status, or is interrupted - **THEN** no equivalent or alternative swap is attempted while its outcome is unresolved; a known signature is checked in later iterations and a signature-less ambiguous submission requires manual reconciliation #### Scenario: Swap returns normally - **WHEN** Jupiter returns a successful result whose transaction already reached `CONFIRMED` - **THEN** the burner performs no additional confirmation wait and reloads the wallet instead of deriving its burn amount only from the returned output amount ### Requirement: Production burner accepts USDT and SyrupUSDC The production Hub SHALL configure USDT first with reserve 0.1, minimum input 0.05 and maximum input 0.25 USDT, and SyrupUSDC second with reserve 0.095, minimum input 0.045 and maximum input 0.2 SyrupUSDC. These SHALL be token-denominated limits without a USD-value guarantee. The production EVE burn minimum SHALL be 0.1 EVE and its retained reserve SHALL be 0.01 EVE, as selected by the owner on 2026-10-06, configured as MoneyAmount values using the canonical EVE UUID. The production Hub SHALL supply its corresponding Production Evelyn status service for current reference-price decisions. The existing burner wallet, Jupiter route selection, registration, hourly interval, slippage, EVE/USDT freshness, confirmation settings and burn recovery behavior SHALL be preserved without new Ticker sources or history storage. #### Scenario: Production inputs and settings - **WHEN** the Hub constructs the production burner - **THEN** it supplies the exact reserves, minima and maxima as MoneyAmount values in USDT-then-SyrupUSDC priority, supplies minimum burn 0.1 EVE/reserve 0.01 EVE and the Production status service, and retains the other existing production arguments #### Scenario: Production burn threshold - **WHEN** production EVE balance is below 0.11, exactly 0.11, or 0.135 with usable mint precision and fresh price - **THEN** below 0.11 produces no burn, 0.11 burns 0.1 and 0.135 burns 0.125; successful burns retain 0.01 EVE ## ADDED Requirements ### Requirement: New buybacks require a below-reference market price An otherwise eligible new buyback SHALL require a fresh canonical EVE/USDT observation within the existing maximum price age and a usable canonical EVE/USDT reference price from the injected corresponding Evelyn status service at the current decision instant. Both prices SHALL be positive. Only actual price strictly below reference SHALL permit submission; equality SHALL not qualify. The existing public reference operation SHALL be reused without copying curve calculations or reading stored history. #### Scenario: Strict boundary below reference - **WHEN** an input is otherwise eligible and reference price is 15 USDT/EVE - **THEN** market price 14.99 permits the existing buyback, while 15.00 and 15.01 submit no new swap from any input in that iteration #### Scenario: Required prices are unusable - **WHEN** market observation is missing, stale, incomplete, unavailable or has an invalid pair/non-positive price, or reference lookup throws, is missing or has an invalid pair/non-positive price - **THEN** no new swap is submitted and a safe diagnostic explains why the purchase was skipped #### Scenario: Reference uses the current decision instant - **WHEN** the first usable input is ready for a new swap - **THEN** the corresponding status service is asked for its reference price at the current instant rather than using a sampled history point or the observation timestamp ### Requirement: Price skips preserve independent burn processing and recovery A rejected buyback price condition SHALL skip purchases only, continue complete EVE-balance processing under the existing independent burn requirements, and SHALL NOT create a suspension. Each subsequent otherwise eligible iteration SHALL re-evaluate prices. Pending-burn priority and read-only pending-swap reconciliation SHALL remain independent of the new-purchase condition; any newly permitted purchase after reconciliation SHALL pass the current price check. #### Scenario: Existing EVE burns at or above reference - **WHEN** market price is equal to or above reference and existing EVE satisfies its own reserve, minimum, precision, fresh valuation and transaction requirements - **THEN** no new swap occurs and the existing eligible EVE is burned normally #### Scenario: Reference unavailable but burn valuation is usable - **WHEN** reference lookup is unavailable or invalid but existing EVE and its fresh canonical valuation satisfy the burn requirements - **THEN** the purchase is skipped and the independent eligible burn still occurs #### Scenario: Next scheduled iteration recovers - **WHEN** one iteration skips a purchase because its prices do not qualify and a later otherwise eligible iteration has usable prices below reference - **THEN** the later iteration can attempt its one new swap without a restart or manual reset #### Scenario: Pending swap is resolved above reference - **WHEN** a pending swap resolves read-only at or above reference - **THEN** it is cleared normally, any otherwise eligible new purchase is price-checked and skipped, and existing EVE burn evaluation continues #### Scenario: Unresolved swap and pending burn retain priority - **WHEN** a swap remains unresolved or the iteration starts with a pending burn - **THEN** existing transaction-priority rules apply without evaluating a new-purchase price condition or submitting a new swap