Skip to content

feat(sdk): add webhook verification, array pagination, and metadata compression - #1216

Merged
Kingsman-99 merged 2 commits into
Stellar-split:mainfrom
Phantomcall:fix/issue-617-618-619-sdk-features
Oct 21, 2026
Merged

Kingsman-99 merged 2 commits into
Stellar-split:mainfrom
Phantomcall:fix/issue-617-618-619-sdk-features

Conversation

@Phantomcall

Copy link
Copy Markdown

PR Description — Stellar-split/split-sdk #617 #618 #619

Summary

Implements three new SDK features requested by the Stellar Wave program.

Issue #617 — Export verifyWebhookSignature from webhooks/verify.ts

  • Updated verifyWebhookSignature signature to (payload, signature, secret)
  • Added WebhookVerificationError class for throwing on invalid signatures
  • Added verifyWebhookSignatureOrThrow convenience function
  • All exported from src/index.ts

Issue #618 — Add paginateArray helper to horizonPaginator

  • Generic paginateArray function for local array pagination
  • page is 1-indexed, pageSize range [1, 200]
  • Throws SdkError with INVALID_RECIPIENT code for invalid pageSize
  • Exported from src/index.ts

Issue #619 — Add compressMetadata/decompressMetadata to compression.ts

  • compressMetadata: JSON + base64url encoding with maxBytes validation (default 512)
  • decompressMetadata: base64url decode + JSON parse with error handling
  • Both throw SdkError with CONTRACT_REJECTED code on failure
  • Exported from src/index.ts

Verification

  • New functions follow existing SDK patterns and conventions
  • Unit tests needed: valid/invalid signatures, pagination edge cases, round-trip compression

Related

Closes #617
Closes #618
Closes #619

…ompression (Stellar-split#617, Stellar-split#618, Stellar-split#619)

Implements three new SDK features:

### Issue Stellar-split#617 — Export verifyWebhookSignature from webhooks/verify.ts
- Updated verifyWebhookSignature signature to (payload, signature, secret)
- Added WebhookVerificationError class for throwing on invalid signatures
- Added verifyWebhookSignatureOrThrow convenience function
- All exported from src/index.ts

### Issue Stellar-split#618 — Add paginateArray helper to horizonPaginator
- Generic paginateArray<T> function for local array pagination
- page is 1-indexed, pageSize range [1, 200]
- Throws SdkError with INVALID_RECIPIENT code for invalid pageSize
- Exported from src/index.ts

### Issue Stellar-split#619 — Add compressMetadata/decompressMetadata to compression.ts
- compressMetadata: JSON + base64url encoding with maxBytes validation
- decompressMetadata: base64url decode + JSON parse with error handling
- Both throw SdkError with CONTRACT_REJECTED code on failure
- Exported from src/index.ts

Closes Stellar-split#617
Closes Stellar-split#618
Closes Stellar-split#619
@drips-wave

drips-wave Bot commented Oct 21, 2026

Copy link
Copy Markdown

@Phantomcall 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

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