Skip to content

Add SDK destination account validation strategy#244

Merged
El-swaggerito merged 1 commit into
Axionvera:mainfrom
Brainoncrack:task-done
Jul 24, 2026
Merged

Add SDK destination account validation strategy#244
El-swaggerito merged 1 commit into
Axionvera:mainfrom
Brainoncrack:task-done

Conversation

@Brainoncrack

Copy link
Copy Markdown
Contributor

Closes #241
Implementation Summary

  1. Destination Validation Module (destination-validation.ts)
    A complete validation module with clear local/network boundaries:

Local Validation (synchronous, no network calls):

Address format validation (G... public key shape)
Address checksum validation (Ed25519 verification)
Self-payment detection
Asset specification format validation
Network Validation (asynchronous, Horizon queries):

Account existence check (funded status)
Account status verification (active/inactive)
Trustline verification for issued assets
Trustline authorization status
Trustline capacity checks (when amount provided)
2. Validation Functions
validateDestinationLocal() - Fast synchronous validation
validateDestinationNetwork() - Comprehensive network validation
validateDestinationComplete() - Combined validation with level control
validateDestinationOrThrow() - Throwing helper for integration
Safe wrappers: safeValidateDestination(), safeValidateDestinationLocal(), safeValidateDestinationNetwork()
3. Type Definitions
DestinationValidationLevel - 'local' | 'network' | 'complete'
DestinationValidationStatus - 11 status codes for different outcomes
DestinationValidationOptions - Configurable validation options
DestinationValidationResult - Structured result with metadata
4. Integration
Exported all validation functions and types from index.ts for public API access.

  1. Comprehensive Tests (destination-validation.test.ts)
    Test coverage includes:

Local validation scenarios (valid/invalid addresses, self-payment, asset formats)
Network validation scenarios (account existence, trustline checks, capacity limits)
Complete validation with level control
Error handling and edge cases
Safe wrapper behavior
6. Documentation (destination-validation.md)
Complete guide covering:

Validation strategy overview
Usage examples for all functions
Validation status codes reference
Error handling patterns
Best practices
Integration with payment flows
Key Features
✅ Clear Boundaries - Local validation is fast and synchronous; network validation is comprehensive but requires Horizon queries

✅ Flexible Levels - Choose 'local', 'network', or 'complete' validation based on your use case

✅ Rich Metadata - Results include sequence numbers, balances, trustline limits, and capacity information

✅ Error Codes - Machine-readable error codes for programmatic handling

✅ Safe Wrappers - Non-throwing variants for error-safe integration

✅ Trustline Support - Full support for issued asset trustline validation including authorization and capacity checks

…ion account validation strategy for payment flows.
@El-swaggerito
El-swaggerito merged commit d80aabb into Axionvera:main Jul 24, 2026
1 check passed
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.

Add SDK destination account validation strategy

2 participants