Skip to content

feat: add timeout, retry, and key rotation support (#765 #766 #767) - #795

Merged
Kingsman-99 merged 1 commit into
Stellar-split:mainfrom
henrypeters:feature/issue-765-767
Aug 31, 2026
Merged

feat: add timeout, retry, and key rotation support (#765 #766 #767)#795
Kingsman-99 merged 1 commit into
Stellar-split:mainfrom
henrypeters:feature/issue-765-767

Conversation

@henrypeters

Copy link
Copy Markdown
Contributor

Summary

Changes

  • src/client/SplitClient.ts — added requestTimeoutMs to config, passed through to the Soroban RPC server, wrapped outgoing methods with timeout enforcement and RequestTimeoutError conversion.
  • src/client/LazyInitializer.ts — added LazyInitializerOptions with maxRetries and retryDelayMs; factory failures now retry with delay before propagating.
  • src/signing/adapters/EncryptedFileSigner.ts — added rotateKey(), _rotationLock, and _deriveKey() using PBKDF2; sign operations await the rotation lock to guarantee old-key completion.

Test plan

  • Existing unit tests updated/validated for new retry semantics in LazyInitializer.
  • SplitClient timeout wrapping verified for getLedger, simulate, and sendTransaction.
  • EncryptedFileSigner rotation verified for atomic state swap and in-flight sign safety.

Closes #765
Closes #766
Closes #767

- SplitClient: add requestTimeoutMs option (default 30s); wrap outgoing
  requests to throw RequestTimeoutError on timeout (Stellar-split#765)
- LazyInitializer: add maxRetries (default 3) and retryDelayMs (default 1s);
  factory failures are retried before propagating (Stellar-split#766)
- EncryptedFileSigner: add rotateKey() with promise-based lock; in-flight
  signs complete with old key, new signs use rotated key (Stellar-split#767)
@drips-wave

drips-wave Bot commented Aug 30, 2026

Copy link
Copy Markdown

@henrypeters Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Kingsman-99
Kingsman-99 merged commit 82fb402 into Stellar-split:main Aug 31, 2026
2 checks 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

2 participants