Order States
Orders transition through multiple states during execution:State Descriptions
Pending
Pending
Initial state after order submission.
- Order is visible to resolvers
- Waiting for resolver to accept
- No on-chain activity yet
- Can be cancelled by maker
InProgress
InProgress
Active execution - resolver has accepted and deployed escrows.
- Resolver is deploying source and destination escrows
- Secrets need to be shared as escrows are deployed
- Funds are locked in escrows
- Cannot be cancelled
Executed
Executed
Successfully completed - all escrows settled.
- User received destination tokens
- Resolver received source tokens
- Fees collected (if applicable)
- Final state (terminal)
Expired
Expired
Time limit exceeded - order not filled in time.
- Escrow timelocks expired
- Funds can be refunded
- May require manual refund transaction
- Final state (terminal)
Refunded
Refunded
Funds returned to maker after expiration or cancellation.
- Original tokens returned to maker
- All escrows settled or cancelled
- Final state (terminal)
Cancelled
Cancelled
Cancelled by maker before resolver acceptance.
- Only possible in Pending state
- No on-chain activity occurred
- Order removed from relayer
- Final state (terminal)
State Transitions
Monitoring Order Status
Get Current Status
Check the current state of an order.The response includes:
status- Current OrderStatusfills- Array of fill eventssrcChainId/dstChainId- Chain information- Additional metadata
Poll for Status Changes
Continuously monitor status until completion.
Adjust polling interval based on expected execution time. For faster presets, use shorter intervals (1-2s). For slower presets, use longer intervals (5-10s).
Complete Monitoring Example
Implement comprehensive order monitoring:Handling Different Outcomes
Successful Execution
Expired Orders
Refunded Orders
Advanced Monitoring
Event-Based Monitoring
Implement event handlers for state changes:Timeout Handling
Implement maximum monitoring duration:Best Practices
Verify Before Sharing
Always verify escrow addresses before sharing secrets to prevent unauthorized withdrawals.
Track Shared Secrets
Maintain a set of shared secret indices to avoid duplicate submissions.
Handle All States
Implement handlers for all possible terminal states: Executed, Expired, Refunded, Cancelled.
Set Timeouts
Implement maximum monitoring duration to prevent infinite loops.
Log Events
Log all state transitions for debugging and analytics.
Retry on Errors
Implement retry logic for network errors during monitoring.
Terminal States Summary
| State | Description | User Action Required |
|---|---|---|
| Executed | ✓ Success | None - tokens received |
| Expired | ⚠ Time limit exceeded | May need to trigger refund |
| Refunded | ✓ Funds returned | None - tokens returned |
| Cancelled | Order cancelled | None - no fees incurred |
Next Steps
EVM to EVM
Implement your first swap
WebSocket API
Real-time order monitoring