Add ARC-compatible status code to TransactionStatus responses#23
Closed
shruggr wants to merge 7 commits into
Closed
Add ARC-compatible status code to TransactionStatus responses#23shruggr wants to merge 7 commits into
shruggr wants to merge 7 commits into
Conversation
The go-sdk's ArcResponse expects a `status` int field in the JSON body representing the HTTP status code. Clients like 1sat-indexer rely on this to distinguish 200 vs 404 responses when querying transaction status. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ensures the JSON body includes `"status": 404` so ARC clients can detect not-found via the response body, not just the HTTP status code. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update ErrorFields references from errors.ErrorFields to arcerrors.ErrorFields in swagger annotations, and regenerate docs to include new status field. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Collaborator
|
@shruggr put back to draft:
|
When a P2P client is passed into Arcade's Initialize(), Arcade should not close it during Services.Close() — the caller owns it. The ownsP2PClient guard was already used during initialization error cleanup but was missing from the Close() method, causing a double-close panic when the caller also closed the shared client.
mrz1836
requested changes
Mar 4, 2026
Collaborator
mrz1836
left a comment
There was a problem hiding this comment.
Linter issues should be cleaned up and then I can merge!
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.
Summary
StatusCode intfield (json:"status,omitempty") toTransactionStatusmodelStatusCode = 200in route handlers (handlePostTx,handlePostTxs,handleGetTx) and webhook deliveryArcResponseexpects astatusint in the JSON body, which clients like 1sat-indexer use to distinguish success (200) from not-found (404) when querying transaction statusServices.Close()now respectsownsP2PClientand only closes the P2P client if Arcade created it. This prevents aclose of closed channelpanic when the caller (e.g. 1sat-stack) also closes the shared client during its own shutdown sequence.Test plan
go build ./...passesgo test ./...passesGET /tx/{txid}response includes"status": 200POST /txresponse includes"status": 200"status": 200in payload