Harden Stellar WriteReport reply path - #757
Draft
ilija42 wants to merge 1 commit into
Draft
Conversation
…not be confirmed, keep known outcomes when the transaction lookup fails, emit early-return telemetry only on an observed terminal state, and validate report signatures with one shared rule set
product-security-plaid-production
Bot
requested review from
prashantkumar1982 and
yashnevatia
September 10, 2026 17:51
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Contributor
|
👋 ilija42, thanks for creating this pull request! To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team. Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks! |
|
ilija42
marked this pull request as draft
September 10, 2026 17:56
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.




This PR makes the Stellar WriteReport reply show what the node did.
Unconfirmed submit. If the forwarder state is not visible after a paid submit, the error text now gives the tx hash and the local tx status. The reply also has the hash, the local status, the fee and the close time, and the receiver status is not set.
Transaction lookup failure. The code now makes the reply from the confirmed forwarder outcome before it calls
GetTransaction. If the call fails, the reply has no fee, ledger or close time, but the write does not fail.Early-return telemetry. The code sends
WriteReportSuccessfulEarlyReturnonly when it sees a terminal state of a peer before the slot of this node opens. The code does not send it on a timeout.Signature validation. One function,
validateSignatureSet, checks the count, the length and the unique signer keys, and the entry point and the encoder call it. The entry point now rejects a repeated signer and a count above 31.Note for reviewers. The generated gRPC wrapper in chainlink-common (
stellar/server/client_server_gen.go,WriteReportcase) discards the reply and theResponseMetadatawhen the capability returns an error. This is why the error text has the hash, and it also stops the billing that #736 added on this path.Tests cover each change.