-
Notifications
You must be signed in to change notification settings - Fork 17
β¨ (solana-signer) [NO-ISSUE]: Solana transaction crafter #1165
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
base: develop
Are you sure you want to change the base?
β¨ (solana-signer) [NO-ISSUE]: Solana transaction crafter #1165
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
packages/signer/signer-solana/src/internal/app-binder/services/SwapSigner.ts
Outdated
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/app-binder/services/SwapSigner.ts
Outdated
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/app-binder/services/SwapSigner.ts
Outdated
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/app-binder/services/SwapSigner.ts
Outdated
Show resolved
Hide resolved
756a03d to
70c9dea
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.
Pull request overview
This PR adds a Solana transaction crafter tool that enables swapping the fee-payer public key in Solana transactions. The implementation handles both legacy and v0 transaction formats, as well as bare messages, making it useful for testing scenarios where users need to sign transactions they don't originally own.
Key Changes
- Implements
SwapSignerservice with byte-level transaction manipulation capabilities for legacy and v0 Solana transactions - Adds
SwapTransactionSignerDeviceAction, use case, and integration into the Solana signer toolkit - Introduces
bufferToBase64Stringutility function in device-management-kit for cross-environment base64 encoding
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
packages/signer/signer-solana/src/internal/app-binder/services/SwapSigner.ts |
Core logic for detecting and swapping fee-payer keys in Solana transactions/messages with signature zeroing |
packages/signer/signer-solana/src/internal/app-binder/services/SwapSigner.test.ts |
Comprehensive test suite covering legacy/v0 transactions, messages, edge cases, and malformed inputs |
packages/signer/signer-solana/src/internal/app-binder/device-action/SwapTransactionSignerDeviceAction.ts |
State machine implementation for the swap transaction signer device action |
packages/signer/signer-solana/src/internal/app-binder/device-action/SwapTransactionSignerDeviceAction.test.ts |
Device action state machine tests covering happy path and error scenarios |
packages/signer/signer-solana/src/internal/app-binder/SolanaAppBinder.ts |
Integration of SwapTransactionSigner method into the app binder |
packages/signer/signer-solana/src/internal/app-binder/SolanaAppBinder.test.ts |
Tests for the app binder integration |
packages/signer/signer-solana/src/internal/use-cases/swap-transaction-signer/SwapTransactionSignerUseCase.ts |
Use case that wraps the app binder call with optional skipOpenApp support |
packages/signer/signer-solana/src/internal/use-cases/swap-transaction-signer/SwapTransactionSignerUseCase.test.ts |
Use case tests verifying parameter passing and options handling |
packages/signer/signer-solana/src/internal/use-cases/di/useCasesTypes.ts |
DI symbol registration for the new use case |
packages/signer/signer-solana/src/internal/use-cases/di/useCasesModule.ts |
DI module binding for the swap transaction signer use case |
packages/signer/signer-solana/src/internal/use-cases/di/useCasesModule.test.ts |
DI module binding verification test |
packages/signer/signer-solana/src/internal/DefaultSolanaTools.ts |
Public API implementation for swapTransactionSigner method |
packages/signer/signer-solana/src/internal/DefaultSolanaTools.test.ts |
Integration test verifying the method calls executeDeviceAction |
packages/signer/signer-solana/src/api/app-binder/SwapTransactionSignerDeviceActionTypes.ts |
Type definitions for device action input/output/errors/state |
packages/device-management-kit/src/api/utils/BufferToBase64String.ts |
Cross-environment utility for converting Uint8Array to base64 strings |
packages/device-management-kit/src/api/utils/BufferToBase64String.test.ts |
Comprehensive tests for BufferToBase64String covering btoa, Buffer, and edge cases |
packages/device-management-kit/src/api/index.ts |
Export of bufferToBase64String utility function |
apps/sample/src/components/SignerSolanaView/index.tsx |
Sample app UI integration for the swap transaction signer feature |
.changeset/slimy-walls-talk.md |
Changeset for minor version bump in device-signer-kit-solana |
.changeset/calm-beds-fly.md |
Changeset for patch version bump in device-management-kit |
π‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...r-solana/src/internal/use-cases/swap-transaction-signer/SwapTransactionSignerUseCase.test.ts
Outdated
Show resolved
Hide resolved
...signer-solana/src/internal/use-cases/swap-transaction-signer/SwapTransactionSignerUseCase.ts
Outdated
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/app-binder/services/TransactionReplayService.ts
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/DefaultSolanaTools.ts
Outdated
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/app-binder/services/SwapSigner.ts
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/app-binder/SolanaAppBinder.ts
Outdated
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/app-binder/SolanaAppBinder.test.ts
Outdated
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/app-binder/SolanaAppBinder.test.ts
Outdated
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/app-binder/services/SwapSigner.ts
Outdated
Show resolved
Hide resolved
packages/signer/signer-solana/src/internal/app-binder/services/SwapSigner.ts
Outdated
Show resolved
Hide resolved
a6f32b7 to
4b0d75a
Compare
π Solana byte-level transaction crafter
Following this study this tool replaces the public key in a Solana transaction, allowing users to test-sign a transaction they do not own.
High-Level Behaviour
Screen.Recording.2025-12-02.at.17.59.55.mov
β Checklist
Pull Requests must pass CI checks and undergo code review. Set the PR as Draft if it is not yet ready for review.
π§ Checklist for the PR Reviewers