Skip to content

Soft-fail Blockscout deployment lookup in upgrade checks - #808

Merged
zekraken-bot merged 1 commit into
mainfrom
cursor/blockscout-resilient-upgrade-check-ee70
Sep 4, 2026
Merged

zekraken-bot merged 1 commit into
mainfrom
cursor/blockscout-resilient-upgrade-check-ee70

Conversation

@gosuto-inzasheru

Copy link
Copy Markdown
Collaborator

Summary

  • Soft-fail getDeploymentBlocks failures in getUpgradeableContracts so Base Blockscout HTTP 500s no longer kill review generation for issues like Syntetika Hilbert BTC Rate Provider - base #806.
  • On failure, return proxy/implementation with wasUpgraded: null (unknown), not false.
  • getIsRateProviderUpgradeable() throws if upgrade history is unknown.

Test plan

Slack Thread

Open in Web Open in Cursor 

If getDeploymentBlocks throws, still return proxy/implementation data with
wasUpgraded=null so review generation can continue without inventing a
"not upgraded" result.

Co-authored-by: gosuto.eth <gosuto-inzasheru@users.noreply.github.com>
@cursor

cursor Bot commented Sep 4, 2026

Copy link
Copy Markdown

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@gosuto-inzasheru

Copy link
Copy Markdown
Collaborator Author

@cursoragent review

@cursor

cursor Bot commented Sep 4, 2026 •

Copy link
Copy Markdown

PR #808 — approve the approach. CI is green.

The change is appropriately minimal: catch getDeploymentBlocks, keep proxy/implementation, set wasUpgraded: null, and fail closed in getIsRateProviderUpgradeable(). That matches what the review writers actually consume.

Non-blocking notes (also posted on the PR):

  1. Soft-fail is only visible in CI logs — the generated review/registry don’t say upgrade history was unverified.
  2. Per-contract receipt/ABI errors still use wasUpgraded: false (pre-existing); only the new explorer path uses null.
  3. Test covers the important case; throwing from getIsRateProviderUpgradeable on null is optional follow-up coverage.

No code changes requested unless you want (1) surfaced in the review artifact.

Open in Web Open in Cursor 

@cursor

cursor Bot commented Sep 4, 2026

Copy link
Copy Markdown

Review

Verdict: Looks good as a minimal fix for the #806 CI failure. Approving the approach.

What works

  • Catching only getDeploymentBlocks and returning proxy + implementation with wasUpgraded: null is the right scope — write-rp-review / write-erc4626-review only need those fields.
  • Encoding unknown as null (not false) matches the earlier concern about inventing “not upgraded.”
  • getIsRateProviderUpgradeable() failing closed on null is correct (even though nothing in the review path currently calls it).

Notes / non-blocking

  1. No human-visible signal on soft-fail. The generated review/registry look the same as a successful run, since wasUpgraded isn’t written into either. Only a console.warn in CI logs. If you want reviewers to know upgrade-event history wasn’t verified, consider a short note in the markdown or a registry warning later — not required to unblock Syntetika Hilbert BTC Rate Provider - base #806.
  2. Pre-existing inconsistency: the per-contract receipt/ABI catch still sets wasUpgraded: false (line ~210). Fine to leave for this PR; just know null vs false semantics only apply to the new explorer soft-fail path.
  3. Test covers the important path. Optional follow-up: assert getIsRateProviderUpgradeable() throws when wasUpgraded is null.

No change requested for merge from my side unless you want (1) surfaced in the review artifact.

@zekraken-bot zekraken-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lets give it a go

@zekraken-bot
zekraken-bot merged commit b7c6de3 into main Sep 4, 2026
1 check passed
@zekraken-bot
zekraken-bot deleted the cursor/blockscout-resilient-upgrade-check-ee70 branch September 4, 2026 12:08
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.

3 participants