Commit e00f7ca
authored
feat(adapter-stellar): add comprehensive history filtering (changeType, txId, timestamp, ledger) (#268)
* feat(adapter-stellar): add server-side changeType filtering to getHistory
Adds support for filtering history events by change type (GRANTED, REVOKED,
TRANSFERRED) at the server level via GraphQL. This enables proper filtering
across paginated results, fixing the limitation where client-side filtering
only worked on the current page.
Changes:
- Add HistoryChangeType to types package
- Add changeType parameter to HistoryQueryOptions and IndexerHistoryOptions
- Update buildHistoryQuery() to include type filter in GraphQL query
- Add integration tests for changeType filtering
- Fix unit tests with missing pageInfo in mock responses
* fix: address PR review - add TRANSFERRED support to HistoryEntry
- Add 'TRANSFERRED' to HistoryEntry.changeType union type
- Update transformIndexerEntries to map OWNERSHIP_TRANSFER_COMPLETED to 'TRANSFERRED'
- Add integration test for TRANSFERRED changeType filtering
- Update unit test expectation for ownership transfer mapping
- Refactor: use HistoryChangeType type alias consistently (DRY)
* feat(adapter-stellar): add txId, timestamp, and ledger filters to getHistory
Extends the history query API with additional server-side filtering options:
- txId: filter by exact transaction ID match
- timestampFrom/timestampTo: filter by timestamp range
- ledger: filter by exact block/ledger number
Key implementation details:
- Uses BigFloat for blockHeight GraphQL variable type
- Uses Datetime for timestamp GraphQL variable type
- Timestamps should be passed without timezone suffix (e.g., '2025-12-05T10:34:00')
All filters can be combined with existing roleId, account, and changeType filters.
* refactor(adapter-stellar): remove duplicate IndexerHistoryOptions interface
- Use HistoryQueryOptions from types package instead of local duplicate
- Fix comment to correctly state BigFloat for blockHeight filtering
* feat(ui): add date range picker components
- Add Calendar component using react-day-picker with shadcn styling
- Add Popover component using Radix UI primitives
- Add DateRangePicker component combining calendar and popover
- Add react-day-picker and date-fns dependencies
* fix: address PR review comments
- Update timestamp format docs to use generic 'YYYY-MM-DDTHH:mm:ss' format
- Add assertions to verify timestamps are within bounds in tests1 parent 28959e0 commit e00f7ca
File tree
9 files changed
+474
-992
lines changed- packages
- adapter-stellar
- src/access-control
- test/access-control
- types/src/adapters
- ui
- src/components/ui
9 files changed
+474
-992
lines changedLines changed: 35 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | 85 | | |
98 | 86 | | |
99 | 87 | | |
| |||
170 | 158 | | |
171 | 159 | | |
172 | 160 | | |
173 | | - | |
| 161 | + | |
174 | 162 | | |
175 | 163 | | |
176 | 164 | | |
| |||
539 | 527 | | |
540 | 528 | | |
541 | 529 | | |
542 | | - | |
| 530 | + | |
543 | 531 | | |
544 | 532 | | |
545 | 533 | | |
546 | 534 | | |
547 | 535 | | |
548 | 536 | | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
549 | 549 | | |
550 | 550 | | |
551 | 551 | | |
552 | 552 | | |
| 553 | + | |
553 | 554 | | |
554 | 555 | | |
555 | 556 | | |
556 | 557 | | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
557 | 562 | | |
558 | 563 | | |
559 | 564 | | |
| |||
564 | 569 | | |
565 | 570 | | |
566 | 571 | | |
567 | | - | |
| 572 | + | |
568 | 573 | | |
569 | 574 | | |
570 | 575 | | |
| |||
591 | 596 | | |
592 | 597 | | |
593 | 598 | | |
594 | | - | |
| 599 | + | |
595 | 600 | | |
596 | 601 | | |
597 | 602 | | |
| |||
603 | 608 | | |
604 | 609 | | |
605 | 610 | | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
606 | 624 | | |
607 | 625 | | |
608 | 626 | | |
| |||
Lines changed: 120 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
672 | 672 | | |
673 | 673 | | |
674 | 674 | | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
675 | 795 | | |
676 | 796 | | |
677 | 797 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
146 | 154 | | |
147 | 155 | | |
148 | 156 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| 60 | + | |
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
| |||
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
| 72 | + | |
71 | 73 | | |
72 | 74 | | |
73 | 75 | | |
| 76 | + | |
74 | 77 | | |
75 | 78 | | |
76 | 79 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
0 commit comments