2.8 KiB
Verification
Completed checks
openspec validate 90-add-syrupusdc-burner-input-with-per-currency-limits --strict: passed.openspec validate evelyn-iou-burner-service --type spec --strict: passed, with informational long-description hints for existing/modified requirements.git diff --check: passed.- Main-spec merge comparison: all four modified requirements and both added requirements match the delta, both removed requirements are absent, and unaffected requirements are preserved.
- Source comparison against HEAD confirms that lifecycle and iteration sequencing, swap execution and outcome handling, complete EVE reload/burn, pending burn recovery, FINALIZED waiting, notification behavior, fresh-price validation, Solana precision resolution and reserve validation are unchanged byte for byte.
- Current source documentation contains no obsolete scalar USDC limit, USDC canonical field, input-price conversion or fresh input/USDC requirement. The production values and priority match issue #90, including SyrupUSDC reserve 0.095.
Compilation and controlled checks
The parent agent compiled the updated main sources and existing test sources successfully with the normal integrated Gradle/Detag workflow:
JAVA_HOME=/usr/local/software/java/jfx-25 ./gradlew compileJava compileTestJava --offline --no-daemon
Result: BUILD SUCCESSFUL in 13s, four tasks executed. No permanent automated tests were added.
The temporary harness at /tmp/evelyn-issue90/BurnerVerification.java was compiled and executed with the same JDK against the newly built classes. Result: PASS: 52 focused offline assertions. These cover:
- SyrupUSDC balances 0.5 → 0.2 and 0.245 → 0.150, at/below 0.095 → skipped.
- USDT balance 0.35 → 0.25, with USDT first even when maxima are reversed.
- Downward six-decimal rounding and positive amounts that round to zero.
- Defensive configuration copying, empty lists and ten invalid-maxima configurations, including missing, duplicate, extra, non-positive, null and unknown values/identities.
- No input/USDC Ticker observation, and both missing and stale EVE/USDT observations postponing burns while still permitting input selection.
- Complete direct-EVE burning with empty input lists, FINALIZED confirmation, unchanged timeout and one proof notification using the burn signature.
All financial dependencies and notification delivery were controlled. No worker, live transaction or external notification was started. Swap/burn failure and pending recovery paths were verified by exact source comparison against HEAD; the harness does not claim exhaustive runtime coverage of those unchanged branches.
Main requirements are synchronized and all implementation tasks are complete. No deployment, push, Gitea write or live financial transaction has been performed.