Skip to content

[explorer/rest] feat: expose stored Symbol receipts through REST - #2580

Open
daoka wants to merge 2 commits into
devfrom
explorer/backend/rest-receipts
Open

daoka wants to merge 2 commits into
devfrom
explorer/backend/rest-receipts

Conversation

@daoka

@daoka daoka commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

How have you changed the behavior?

  • Add /api/symbol/receipts for filtered receipt searches.
  • Add /api/symbol/block/<height>/receipts for block receipts.
  • Support limit/offset pagination with deterministic height DESC, id DESC ordering:
    • limit: 1–100, default 10.
    • offset: 0–100000, default 0.
  • Validate supported parameters, repeated scalar parameters, type/group compatibility, and address checksums.
  • Read sync state, block existence, receipts, and mosaic metadata within one REPEATABLE READ snapshot.
  • Enforce synchronization and dirty/repairing visibility boundaries. Unsafe searches return 503 without removing dirty rows and shifting offsets.
  • Return 404 for a missing readable block and an empty array for an existing block without receipts.
  • Format native amounts using XYM divisibility 6. Use stored divisibility for non-native mosaics, falling back to base-unit amounts when metadata is absent.
  • Exclude raw_payload from public responses.
  • Share the 13 receipt type definitions between Puller and REST through common.symbol.ReceiptTypes.

This is an additive API change. Puller schema, ingestion, and rollback behavior remain unchanged.

Pagination does not guarantee a fixed snapshot across requests. The offset cap limits access to the first 100,100 matching rows; it does not provide complete history for every account.

@daoka
daoka requested review from Jaguar0625 and Wayonb and removed request for Jaguar0625 September 17, 2026 23:51
@daoka
daoka requested a review from Jaguar0625 September 18, 2026 01:46
@codecov

codecov Bot commented Sep 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.43%. Comparing base (8298563) to head (eb8ed00).
⚠️ Report is 2 commits behind head on dev.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##              dev    #2580      +/-   ##
==========================================
+ Coverage   95.84%   97.43%   +1.58%     
==========================================
  Files         786      368     -418     
  Lines       60742    27148   -33594     
  Branches     1696      251    -1445     
==========================================
- Hits        58219    26451   -31768     
+ Misses       2455      690    -1765     
+ Partials       68        7      -61     
Flag Coverage Δ
explorer-puller 100.00% <100.00%> (ø)
explorer-rest ?
wallet-mobile-symbol ?

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
explorer/common/symbol/ReceiptTypes.py 100.00% <100.00%> (ø)
explorer/puller/puller/db/SymbolDatabase.py 100.00% <100.00%> (ø)
explorer/puller/puller/facade/SymbolPuller.py 100.00% <100.00%> (ø)
explorer/puller/puller/model/symbol/Receipt.py 100.00% <100.00%> (ø)

... and 420 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@daoka
daoka marked this pull request as ready for review September 18, 2026 04:45
@daoka daoka changed the title [explorer] feat: expose stored Symbol receipts through REST [explorer/rest] feat: expose stored Symbol receipts through REST Sep 18, 2026
@daoka
daoka added this pull request to stack #2582 September 18, 2026 05:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant