Skip to content

Feature/issues 874 875 876 877 - #983

Merged
Kingsman-99 merged 3 commits into
Stellar-split:mainfrom
ahmadadebayo78-boop:feature/issues-874-875-876-877
Sep 28, 2026
Merged

Kingsman-99 merged 3 commits into
Stellar-split:mainfrom
ahmadadebayo78-boop:feature/issues-874-875-876-877

Conversation

@ahmadadebayo78-boop

Copy link
Copy Markdown
Contributor

closes #874
closes #875
closes #876
closes #877

…split#876, Stellar-split#877

Stellar-split#877 - Add addToWhitelist, removeFromWhitelist, getWhitelist methods
  - Address validated via StrKey.isValidEd25519PublicKey before submission
  - WhitelistFullError thrown when 50-address limit is reached
  - WhitelistFullError + isWhitelistFullError exported from index.ts

Stellar-split#876 - Add getProtocolStats with 30s cache and subscribeProtocolStats
  - ProtocolStats type: totalInvoices, totalPaidAmount, totalReleasedAmount,
    totalRefundedAmount, uniqueCreators, uniquePayers
  - Cache keyed per contractId, invalidated after 30 seconds
  - subscribeProtocolStats polls every 30s, fires callback only on change
  - Deep-equal check before emitting to prevent unnecessary re-renders
  - ProtocolStats + ProtocolStatsSubscription exported from index.ts

Stellar-split#875 - Add addNote and getNotes methods for invoice annotations
  - Note type: { index, content, timestamp: Date }
  - content validated to max 512 bytes (UTF-8 byte count via TextEncoder)
  - ContentTooLongError thrown with bytesUsed and bytesAllowed in message
  - getNotes returns entries in chronological (index-ascending) order
  - Note + ContentTooLongError + isContentTooLongError exported from index.ts

Stellar-split#874 - Add setLogger middleware with sensitive field redaction
  - setLogger(logger: SdkLogger) accepts any { debug, info, warn, error }
  - Logs method name, params, response time, errors at appropriate levels
  - Redacts privateKey, accessCode, blindingFactor, secret fields
  - SdkLogger interface exported from index.ts
  - _redactParams helper defined as private method on client

Also: update .gitignore to exclude test snapshots, vitest/jest cache dirs,
and redundant lock files for a clean push.
… timer loop

- Fix VALID_ADDRESS_1 from 55 to 56 characters so _isValidStellarAddress passes
- Replace vi.runAllTimersAsync() with vi.advanceTimersByTimeAsync() in
  subscribeProtocolStats test to avoid infinite setTimeout recursion

Closes Stellar-split#874 Stellar-split#875 Stellar-split#876 Stellar-split#877
@drips-wave

drips-wave Bot commented Sep 28, 2026

Copy link
Copy Markdown

@ahmadadebayo78-boop 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! 🚀

Learn more about application limits

@Kingsman-99
Kingsman-99 merged commit 73fee0a into Stellar-split:main Sep 28, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants