-
Notifications
You must be signed in to change notification settings - Fork 535
[SDK] Fix: Webhook Schema #7151
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🦋 Changeset detectedLatest commit: 5277edd The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
WalkthroughThe changes update the webhook schema for token fields from simple address strings to detailed token objects containing multiple properties. Corresponding test fixtures are modified to match the new schema. Additionally, a changeset file is added to document the patch update for the affected package. Changes
Sequence Diagram(s)sequenceDiagram
participant WebhookSource
participant WebhookParser
participant TokenObject
WebhookSource->>WebhookParser: Send webhook payload (with originToken & destinationToken as objects)
WebhookParser->>TokenObject: Validate token fields (chainId, address, name, symbol, decimals, priceUsd, iconUri)
WebhookParser-->>WebhookSource: Return parsed and validated webhook data
Suggested reviewers
Warning Review ran into problems🔥 ProblemsErrors were encountered while retrieving linked issues. Errors (1)
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (3)
✨ Finishing Touches
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. |
3752c01
to
defc808
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
packages/thirdweb/src/bridge/Webhook.test.ts (2)
31-49
: Test fixtures correctly updated for new schema.The test data properly reflects the new token object structure with all required fields.
Consider using different values for
originToken
anddestinationToken
to better simulate real-world scenarios where users might be swapping between different tokens.originToken: { chainId: 1, address: "0x1234567890123456789012345678901234567890" as const, - name: "Token", - symbol: "TKN", + name: "Ethereum", + symbol: "ETH", decimals: 18, priceUsd: 1.0, iconUri: "https://example.com/icon.png", }, originAmount: "1.0", destinationToken: { chainId: 1, - address: "0x1234567890123456789012345678901234567890" as const, - name: "Token", - symbol: "TKN", - decimals: 18, - priceUsd: 1.0, + address: "0xA0b86a33E6441e0aE0Ac3D9Ba4C7A7f5b0e8Bb5A" as const, + name: "USD Coin", + symbol: "USDC", + decimals: 6, + priceUsd: 1.0, iconUri: "https://example.com/icon.png", },
288-306
: Fix misleading test comment.The comment mentions "invalid hex address" but the test is actually validating type mismatch (string vs object). The address validation would occur within the token object schema.
- it("should throw error for invalid hex address", async () => { + it("should throw error for invalid destinationToken type", async () => { const invalidPayload = { version: 2, data: { ...validPayload.data, - destinationToken: "invalid-address", // Invalid hex address + destinationToken: "invalid-address", // Should be object, not string }, };
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.changeset/purple-wasps-sort.md
(1 hunks)packages/thirdweb/src/bridge/Webhook.test.ts
(1 hunks)packages/thirdweb/src/bridge/Webhook.ts
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (8)
- GitHub Check: Unit Tests
- GitHub Check: Build Packages
- GitHub Check: E2E Tests (pnpm, esbuild)
- GitHub Check: Lint Packages
- GitHub Check: Size
- GitHub Check: E2E Tests (pnpm, webpack)
- GitHub Check: E2E Tests (pnpm, vite)
- GitHub Check: Analyze (javascript)
🔇 Additional comments (2)
packages/thirdweb/src/bridge/Webhook.ts (1)
26-44
: Excellent schema enhancement!The update from simple address strings to comprehensive token objects significantly improves the webhook data richness. The new schema properly includes all essential token metadata (chainId, address, name, symbol, decimals, priceUsd, iconUri) with appropriate type validation.
.changeset/purple-wasps-sort.md (1)
1-6
: Changeset properly documents the schema update.The changeset correctly identifies this as a patch update and provides an appropriate description for the webhook schema enhancement.
size-limit report 📦
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #7151 +/- ##
==========================================
+ Coverage 55.68% 55.70% +0.01%
==========================================
Files 904 904
Lines 58324 58340 +16
Branches 4113 4115 +2
==========================================
+ Hits 32476 32496 +20
+ Misses 25743 25739 -4
Partials 105 105
🚀 New features to boost your workflow:
|
f0b2288
to
8bafd3f
Compare
Merge activity
|
<!-- ## title your PR with this format: "[SDK/Dashboard/Portal] Feature/Fix: Concise title for the changes" If you did not copy the branch name from Linear, paste the issue tag here (format is TEAM-0000): ## Notes for the reviewer Anything important to call out? Be sure to also clarify these in your comments. ## How to test Unit tests, playground, etc. --> <!-- start pr-codex --> --- ## PR-Codex overview This PR focuses on updating the `Webhook` schema in the `thirdweb` package to enhance the structure of `originToken` and `destinationToken` by replacing simple address strings with detailed objects containing additional properties. ### Detailed summary - Updated `originToken` and `destinationToken` to be objects with properties: - `chainId` - `address` - `name` - `symbol` - `decimals` - `priceUsd` - `iconUri` - Adjusted the test file to reflect these changes with appropriate object structures. > ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}` <!-- end pr-codex --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Enhanced webhook support to include detailed token information such as chain ID, name, symbol, decimals, price, and icon for origin and destination tokens. - **Tests** - Updated test data to match the new detailed token structure in webhook payloads. - **Chores** - Added a changeset to document this patch update. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
8bafd3f
to
5277edd
Compare
PR-Codex overview
This PR focuses on updating the
Webhook
schema in thethirdweb
package to enhance the structure of theoriginToken
anddestinationToken
properties, transitioning from simple address strings to detailed objects containing various attributes.Detailed summary
originToken
anddestinationToken
from string to object structure inWebhook.ts
.originToken
anddestinationToken
:chainId
,address
,name
,symbol
,decimals
,priceUsd
, andiconUri
.Webhook.test.ts
to reflect the new object structure.Summary by CodeRabbit