feat: resolve #253, #254, #255, and #256 - #344
Open
meetdarc-tech wants to merge 2 commits into
Open
Conversation
|
@meetdarc-tech 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! 🚀 |
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.
Resolves
Fixes #253
Fixes #254
Fixes #255
Fixes #256
Summary
Implements the Soroban on-chain intent settlement and event reconciliation flow across transaction execution, intent registration, event reconciliation, and ledger cursor persistence.
Changes
Issue Details
#253: Stellar transaction execution
Adds the build, simulation, preparation, signing, submission, confirmation, bounded polling, and typed error flow for StellarTxService.invokeContract().
#254: On-chain intent registration
When ONCHAIN_INTENTS_ENABLED=true and SETTLEMENT_CONTRACT_ID is configured, create_intent is submitted before the intent is persisted locally. Failed transactions do not leave a half-created intent.
#255: Event reconciliation
intent_filled events update matching local intents, record fill metadata, and broadcast the corresponding WebSocket event. Unknown local intents are logged and ignored without stopping ingestion.
#256: Ledger cursor persistence
The next ledger cursor is persisted after each successful poll cycle and restored on startup. First boot intentionally falls back to the latest ledger when no cursor exists.
Configuration
Added support for STELLAR_SIGNER_SECRET_KEY alongside the existing Stellar network, Soroban RPC, and settlement contract configuration.
Validation
Tests and checks were intentionally skipped per request. No dependencies were installed and no downloads were performed.
Review Notes
The cursor uses a local JSON file because this repository does not currently contain a Prisma persistence layer. Multi-instance coordination remains outside the scope of this PR.