feat: add structured error classes for validation and payment failures#265
Closed
mehmetkr-31 wants to merge 1 commit intobase:masterfrom
Closed
feat: add structured error classes for validation and payment failures#265mehmetkr-31 wants to merge 1 commit intobase:masterfrom
mehmetkr-31 wants to merge 1 commit intobase:masterfrom
Conversation
Introduce ValidationError and PaymentError classes that provide actionable context (field name, provided value, expected format, error codes, retryability) instead of generic Error strings. This helps developers quickly identify what went wrong and how to fix it, addressing base#224. - Add ValidationError and PaymentError in core/error/sdkErrors.ts - Refactor validation.ts to throw ValidationError with field metadata - Refactor sendUserOpAndWait.ts to throw PaymentError with error codes - Update all affected tests to match new error messages Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Collaborator
🟡 Heimdall Review Status
|
Author
|
Closing in favor of #267 which expands on this work — propagating the structured error classes across the entire payment module (10 files, 18 error sites) instead of just introducing the classes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #224
Introduces
ValidationErrorandPaymentErrorcustom error classes that replace genericErrorthrows with structured, actionable error messages.What changed
core/error/sdkErrors.ts—ValidationError(field, providedValue, expectedFormat) andPaymentError(code, retryable flag)validation.ts— All validation errors now include what was provided, what was expected, and which field failedsendUserOpAndWait.ts— Payment errors now include error codes (USER_OP_FAILED,NO_TX_HASH,EXECUTION_FAILED) and retryability hintsBefore
After
Why this matters
instanceof ValidationErrorretryableflag enables automatic retry logic in consuming applicationsTest plan
ValidationErrorfield metadatayarn lint)yarn build)🤖 Generated with Claude Code