Skip to content

Conversation

@Julink-eth
Copy link
Contributor

@Julink-eth Julink-eth commented Jan 15, 2026

Explanation

Sentinel API often returns the real failure reason in callTrace.error, not the top‑level error. Without exposing this, the UI can’t show chain‑specific warnings (e.g., Monad’s reserve balance rule for sponsored transaction).
This PR allows to extract call‑trace errors into simulationData.callTraceErrors and make call‑trace fields optional to match the API.
The clients can display chain‑specific explanations instead of generic “reverted”.

References

Related Extension PR: MetaMask/metamask-extension#39284

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Surfaces granular simulation failure reasons from call traces and aligns types with the API.

  • Add callTraceErrors to SimulationData; populate from recursive extraction of callTrace.error in getBalanceChanges (on success and failure)
  • Update SimulationResponseCallTrace to include optional error and make calls/logs optional
  • Minor refactor in balance changes: use transactionResponse var; read gasUsed from it
  • Update CHANGELOG.md to document the new behavior

Written by Cursor Bugbot for commit 7354fc6. This will update automatically on new commits. Configure here.

@Julink-eth Julink-eth requested a review from a team as a code owner January 15, 2026 14:33
@Julink-eth Julink-eth requested a review from a team as a code owner January 15, 2026 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Needs dev review

Development

Successfully merging this pull request may close these issues.

2 participants