You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Error handling & parsing
Old `DeliveryPreparator::send_ixs_with_retry` wasn't parsing any errors
and retrying blindly for specified `max_retries` times. This led to
Intents taking more time retrying errors it couldn't recover from.
Now we adapt error parsing from IntentExecutor. and not to duplicate
quite cumbersome error dispatches of `MagicBlockRpcClientError` a
generalized version that could be used from both `IntentExecutor` and
`DeliveryPreparator` is introduced.
### Handling of buffer program AccountAlreadyInitialized error
See error explained in #590. We handle it by cleaning and then
reainitializing buffer. Due structure of `magicblock-committer-program`
reusing existing buffer is only possible if initialized buffer length is
equal to current account state, which isn't guaranteed at all but could
be a future optimization
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added a public utils module with a pluggable async retry framework
(send-with-retries), error mappers, and RPC error decision logic.
* Delivery preparator and intent executor now surface richer send
outcomes and mappers, exposing new public error types and APIs that can
carry optional signatures.
* **Bug Fixes**
* Improved error propagation and messages to include RPC context and
optional signatures across execution and retry flows.
* Centralized retry/error-mapping for more consistent prepare/delivery
behavior.
* **Tests**
* Added/updated integration tests for cleanup, re-prepare,
already-initialized, and adjusted error assertions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
0 commit comments