Skip to content

Release: develop -> main#72

Open
github-actions[bot] wants to merge 2 commits into
mainfrom
develop
Open

Release: develop -> main#72
github-actions[bot] wants to merge 2 commits into
mainfrom
develop

Conversation

@github-actions

Copy link
Copy Markdown

Automatic Release PR

This PR was automatically created after changes were pushed to develop.

Commits: 1 new commit(s)

Checklist

  • Review all changes
  • Verify CI passes
  • Approve and merge when ready for production

* Refuse to serve stale or fabricated prices on upstream failure

PriceService masked GeckoTerminal/CoinGecko failures by returning the
fresh-cache subset (silently dropping uncovered tokens) and, for FX, by
falling back to USD/EUR=USD/CHF=1 while rewriting the cache timestamp
to `now` — a stale value would then be served as fresh for a full
CACHE_TTL_MS window. Both behaviours violate the rule that pricing
must fail loud rather than return wrong data.

Remove the catch-all fallbacks: GeckoTerminal and CoinGecko errors now
propagate to the caller. The 5-min monitoring cycle is already wrapped
in a robust try/catch with consecutive-failure escalation, so a failed
fetch aborts only the current cycle instead of writing wrong values
to the DB.

Additionally tighten the FX validity check: reject zero/negative or
non-finite rates instead of treating them as a transient blip.

* Upsert core contracts so authoritative types override prior MINTER classification

Core protocol contracts (the hard-coded addresses from @deuro/eurocoin)
were persisted via createMany({skipDuplicates: true}). When a contract
was first seen through a MinterApplied event — as happened for the V3
Savings 0x760233b90e45d186A9A98E911B115F7F4B90d3D9 — it was stored as
generic MINTER. Once the package release shipped the address as
ADDRESS[chainId].savings (SAVINGS_V3), the type never got updated and
the contract kept logging "No ABI mapped for contract type MINTER"
WARNings, with EventService dropping the events undecoded.

Add ContractRepository.upsertCore and use it in registerCoreContracts
so the hard-coded type from the SDK is authoritative on every boot.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant