Skip to content

Conversation

@d4mr
Copy link
Member

@d4mr d4mr commented Oct 15, 2025

PR-Codex overview

This PR focuses on enhancing Solana wallet and transaction functionalities within the application, including the addition of new types, components, and utility functions to support Solana transactions and wallet management.

Detailed summary

  • Removed unused components related to transactions.
  • Updated GetSolanaAccountsData type to use items instead of accounts.
  • Added SolanaWallet type definition.
  • Introduced statusDetails for transaction statuses.
  • Updated transaction details UI to handle Solana transactions.
  • Enhanced server wallet functionality to include Solana wallets.
  • Implemented functions to fetch and create Solana accounts.
  • Added error handling for Solana transaction activity logs.
  • Created a modal for sending test Solana transactions.
  • Upgraded access tokens for Solana functionality.
  • Introduced components for managing Solana wallet permissions.

The following files were skipped due to too many changes: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/components/server-wallets-table.client.tsx, apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/components/transactions-table.client.tsx

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Summary by CodeRabbit

  • New Features
    • Added Solana support across the dashboard: list/create server wallets with pagination and a guided permission upgrade flow.
    • Introduced a unified transactions table for EVM and Solana with filters, auto-update, and per-chain detail pages (including Solscan links).
    • Added a “Send test Solana transaction” flow and a copyable Solana address UI.
  • UI
    • Updated sidebar labels (Transactions marked “New”) and unified server wallets table across EVM and Solana.
  • Bug Fixes
    • Corrected Solana accounts response type handling.
  • Documentation
    • Added changeset for a patch release.

@d4mr d4mr requested review from a team as code owners October 15, 2025 21:25
@changeset-bot
Copy link

changeset-bot bot commented Oct 15, 2025

🦋 Changeset detected

Latest commit: 8604340

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@thirdweb-dev/vault-sdk Patch

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

@vercel
Copy link

vercel bot commented Oct 15, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
docs-v2 Building Building Preview Comment Oct 15, 2025 9:25pm
nebula Building Building Preview Comment Oct 15, 2025 9:25pm
thirdweb_playground Ready Ready Preview Comment Oct 15, 2025 9:25pm
thirdweb-www Building Building Preview Comment Oct 15, 2025 9:25pm
wallet-ui Building Building Preview Comment Oct 15, 2025 9:25pm

@github-actions github-actions bot added Dashboard Involves changes to the Dashboard. packages labels Oct 15, 2025
@graphite-app
Copy link
Contributor

graphite-app bot commented Oct 15, 2025

How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • merge-queue - adds this PR to the back of the merge queue
  • hotfix - for urgent hot fixes, skip the queue and merge this PR next

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.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 15, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Adds Solana support across dashboard transactions: unified EVM/Solana transaction tables, Solana transaction details UI, Solana test-transaction flow, Solana server wallets listing/creation via vault-sdk, and permissions upgrade flow. Removes legacy tables. Updates pages to fetch/render Solana data, introduces utilities/types, and adjusts sidebar labels. Vault SDK response shape renamed.

Changes

Cohort / File(s) Summary
Release metadata
/.changeset/eleven-mangos-travel.md
Adds a changeset for a patch of @thirdweb-dev/vault-sdk documenting a Solana accounts response type bug fix.
Sidebar labels
/.../(sidebar)/components/ProjectSidebarLayout.tsx
Swaps “Transactions” to include a “New” Badge; simplifies “Tokens” label to plain text.
Solana address UI
/apps/dashboard/src/@/components/blocks/solana-address.tsx
Adds SolanaAddress component with hover card and copy-to-clipboard, with short/long address displays.
Analytics page wiring
/.../transactions/analytics/analytics-page.tsx
Replaces TransactionsTable with UnifiedTransactionsTable; removes wallets prop.
FTUX Solana flow
/.../transactions/analytics/ftux.client.tsx
Adds Solana test tx path: props for solanaWallets and testSolanaTxWithWallet; early-return branch rendering SendTestSolanaTransaction.
Send test Solana tx
/.../analytics/send-test-solana-tx.client.tsx
Adds modal and entry component to send a Solana test transaction via engineCloudProxy with secret or vault token.
Solana tx analytics types
/.../analytics/solana-tx-table/types.ts
Introduces Solana transaction domain types, statuses, execution results, and response shape.
Remove legacy tx table UI
/.../analytics/tx-table/tx-table-ui.tsx
Deletes TransactionsTableUI, statusDetails constant, and all related renderers/helpers.
Remove legacy tx table wrapper
/.../analytics/tx-table/tx-table.tsx
Deletes TransactionsTable and its getTransactions fetcher.
Status mapping relocation
/.../analytics/tx-table/types.ts
Adds exported statusDetails constant (mapping status to name/type).
Server wallets (EVM + Solana)
/.../transactions/components/server-wallets-table.client.tsx
Adds combined table with chain toggle, EVM smart account support, Solana rows, balances, actions, and pagination.
Unified transactions table
/.../transactions/components/transactions-table.client.tsx
Adds UnifiedTransactionsTable managing EVM/Solana fetches, filters, auto-update, and renders per-chain tables.
Analytics libs (Solana)
/.../transactions/lib/analytics.ts
Adds getSingleSolanaTransaction and getSolanaTransactionActivityLogs; adjusts EVM activity logs error handling (401/404 → empty).
Solana utilities
/.../transactions/lib/solana-utils.ts
Adds getSolscanUrl and getSolanaNetworkName helpers based on chainId.
Vault access upgrade
/.../transactions/lib/vault.client.ts
Adds upgradeAccessTokensForSolana handling ejected/non-ejected vaults; imports decrypt; returns structured results.
Transactions page integration
/.../transactions/page.tsx
Adds Solana accounts listing, pagination, permission error handling; passes Solana data to EngineChecklist and ServerWalletsTable; exports dynamic = "force-dynamic".
Remove legacy server wallets UI
/.../server-wallets/wallet-table/wallet-table-ui.client.tsx, .../wallet-table/wallet-table.tsx
Removes old server wallets table UI and wrapper components.
Create Solana wallet
/.../solana-wallets/components/create-solana-wallet.client.tsx
Adds modal to create Solana wallets via vault client with toasts and router refresh.
Upgrade Solana permissions
/.../solana-wallets/components/upgrade-solana-permissions.client.tsx
Adds form-driven flow to enable Solana by upgrading tokens; handles ejected vaults; success state and refresh.
Vault Solana server lib
/.../solana-wallets/lib/vault.client.ts
Adds listSolanaAccounts (paginated filter) and createSolanaAccount using vault-sdk; returns structured success/error.
Solana wallet type
/.../solana-wallets/wallet-table/types.ts
Adds SolanaWallet type definition.
Tx layout adjustments
/.../transactions/tx/[id]/layout.tsx
Makes layout async, awaits params, adjusts spacing classes.
Tx page: EVM + Solana
/.../transactions/tx/[id]/page.tsx
Fetches EVM and Solana transaction data in parallel; renders Solana details if present else EVM; fetches respective activity logs.
Solana tx details UI
/.../transactions/tx/[id]/solana-transaction-details-ui.tsx
Adds SolanaTransactionDetailsUI with tabs (Overview/Activity/Raw), status, timing, instructions, logs, and links to Solscan.
EVM tx UI import fix
/.../transactions/tx/[id]/transaction-details-ui.tsx
Updates statusDetails import path to new location.
Wallets page Solana
/.../(sidebar)/wallets/page.tsx
Adds Solana accounts fetch with pagination and permission errors; passes Solana data to ServerWalletsTable; exports dynamic = "force-dynamic".
Vault SDK types
/packages/vault-sdk/src/types.ts
Renames GetSolanaAccountsData field from accounts to items.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor U as User
  participant D as Dashboard (FTUX)
  participant M as SendTestSolanaTransaction Modal
  participant P as engineCloudProxy
  participant E as Engine Cloud
  participant S as Solana Network

  U->>D: Open "Try it out"
  D->>M: Open modal (wallets, network)
  U->>M: Select wallet, enter key/token, submit
  M->>P: POST /v1/solana/transaction\nheaders: x-secret-key OR x-vault-access-token
  P->>E: Forward request
  E-->>S: Submit tx (base64 instruction)
  S-->>E: Signature / status
  E-->>P: 200 OK { signature, status }
  P-->>M: Success
  M->>D: Toast + close dialog
  alt Error
    E-->>P: Error (4xx/5xx)
    P-->>M: Error
    M->>U: Show error toast
  end
Loading
sequenceDiagram
  autonumber
  actor U as User
  participant T as UnifiedTransactionsTable
  participant Q as useQuery (EVM)
  participant QS as useQuery (Solana)
  participant P as engineCloudProxy

  U->>T: Toggle chain (evm/solana), set filters
  alt EVM selected
    T->>Q: Fetch EVM tx (status/id/from/page)
    Q->>P: GET /v1/transactions
    P-->>Q: Data or empty on error
    Q-->>T: Render EVM table rows
  else Solana selected
    T->>QS: Fetch Solana tx (status/id/from/page)
    QS->>P: GET /v1/solana/transactions
    P-->>QS: Data or empty on error
    QS-->>T: Render Solana table rows
  end
  loop Auto-update (if enabled)
    T->>Q: Refetch (active chain)
  end
Loading
sequenceDiagram
  autonumber
  participant Page as /transactions/tx/[id]/page.tsx
  participant AE as getEVMTransaction + logs
  participant AS as getSingleSolanaTransaction + logs
  participant UIE as TransactionDetailsUI (EVM)
  participant UIS as SolanaTransactionDetailsUI

  Page->>AS: Fetch Solana tx by id
  Page->>AE: Fetch EVM tx by id
  alt Solana found
    Page->>AS: Fetch Solana activity logs
    Page->>UIS: Render Solana details
  else EVM found
    Page->>AE: Fetch EVM activity logs + decode
    Page->>UIE: Render EVM details
  else None
    Page->>Page: notFound()
  end
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pb/add-solana-transactions-and-wallets

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between e830109 and 8604340.

📒 Files selected for processing (28)
  • .changeset/eleven-mangos-travel.md (1 hunks)
  • apps/dashboard/src/@/components/blocks/solana-address.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectSidebarLayout.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/analytics-page.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/ftux.client.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/send-test-solana-tx.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/solana-tx-table/types.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/tx-table/tx-table-ui.tsx (0 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/tx-table/tx-table.tsx (0 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/tx-table/types.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/components/server-wallets-table.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/components/transactions-table.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/lib/analytics.ts (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/lib/solana-utils.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/lib/vault.client.ts (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/page.tsx (5 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/server-wallets/wallet-table/wallet-table-ui.client.tsx (0 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/server-wallets/wallet-table/wallet-table.tsx (0 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/solana-wallets/components/create-solana-wallet.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/solana-wallets/components/upgrade-solana-permissions.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/solana-wallets/lib/vault.client.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/solana-wallets/wallet-table/types.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/tx/[id]/layout.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/tx/[id]/page.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/tx/[id]/solana-transaction-details-ui.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/tx/[id]/transaction-details-ui.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/page.tsx (5 hunks)
  • packages/vault-sdk/src/types.ts (1 hunks)

Comment @coderabbitai help to get the list of available commands and usage tips.

@0xFirekeeper 0xFirekeeper merged commit fe50abd into main Oct 15, 2025
16 of 20 checks passed
@0xFirekeeper 0xFirekeeper deleted the pb/add-solana-transactions-and-wallets branch October 15, 2025 21:26
@codecov
Copy link

codecov bot commented Oct 15, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 55.01%. Comparing base (e830109) to head (8604340).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8263   +/-   ##
=======================================
  Coverage   55.01%   55.01%           
=======================================
  Files         919      919           
  Lines       60588    60588           
  Branches     4126     4126           
=======================================
  Hits        33334    33334           
  Misses      27150    27150           
  Partials      104      104           
Flag Coverage Δ
packages 55.01% <ø> (ø)
🚀 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.

@github-actions
Copy link
Contributor

size-limit report 📦

Path Size Loading time (3g) Running time (snapdragon) Total time
thirdweb (esm) 64.51 KB (0%) 1.3 s (0%) 230 ms (+32.16% 🔺) 1.6 s
thirdweb (cjs) 365.68 KB (0%) 7.4 s (0%) 1.6 s (+4.86% 🔺) 8.9 s
thirdweb (minimal + tree-shaking) 5.73 KB (0%) 115 ms (0%) 89 ms (+1303.16% 🔺) 204 ms
thirdweb/chains (tree-shaking) 526 B (0%) 11 ms (0%) 62 ms (+681.57% 🔺) 73 ms
thirdweb/react (minimal + tree-shaking) 19.13 KB (0%) 383 ms (0%) 65 ms (+699.51% 🔺) 447 ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Dashboard Involves changes to the Dashboard. packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants