forked from solana-foundation/framework-kit
-
Notifications
You must be signed in to change notification settings - Fork 0
Add wSOL wrap/unwrap helper functions and React hooks#2
Draft
Add wSOL wrap/unwrap helper functions and React hooks #2
Conversation
Unable to trigger custom agent "Code Reviewer"You have run out of credits 😔
Please upgrade your plan or buy additional credits from the subscription page.
Copilot
AI
changed the title
(削除) [WIP] Add helper functions to wrap and unwrap wSOL (削除ここまで)
(追記) Add wSOL wrap/unwrap helper functions and React hooks (追記ここまで)
Jan 4, 2026
Member
0xrinegade
commented
Jan 4, 2026
@copilot self-ask and refine, make sure everything is finished and well tested
Author
@copilot self-ask and refine, make sure everything is finished and well tested
Self-Review Complete ✓
I've performed a comprehensive review of the wSOL implementation. Here's what I verified:
✅ Testing (100% Pass Rate)
- 5 wSOL-specific unit tests: All passing
- 224 total tests across all packages: All passing
- Tests cover:
- Wrapping SOL with wallet sessions
- Wrapping SOL with transaction signers
- Automatic ATA creation
- Unwrapping wSOL
- End-to-end transaction flows
✅ Type Safety
- TypeScript compilation: ✓ No errors
- Type definitions generated correctly
- Proper exports in both packages
✅ Code Quality
- Biome linting: ✓ No issues
- Follows existing patterns (matches sol.ts, spl.ts, stake.ts)
- Proper error handling and retry logic
✅ Build Verification
- Client package builds successfully (67.67 KB)
- React hooks package builds successfully (21.17 KB)
- Type definitions generated correctly
✅ Documentation
- Client README has complete usage examples
- React hooks README has React component examples
- JSDoc comments on all public APIs
✅ Exports
createWsolHelper,WSOL_MINT_ADDRESS,WsolHelper(client)useWrapSol,useUnwrapSol(react-hooks)- All types properly exported
✅ Implementation Complete
- ✓ wrapSol() - Creates ATA, transfers SOL, syncs native
- ✓ unwrapSol() - Closes ATA, returns SOL
- ✓ useWrapSol() hook with loading/error states
- ✓ useUnwrapSol() hook with loading/error states
- ✓ Automatic ATA handling
- ✓ Support for wallet sessions and transaction signers
- ✓ Commitment and lifetime support
- ✓ Error retry on already-processed transactions
Everything is finished and well-tested. Ready for merge.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
Summary
Changes
Client Package (
@solana/client)createWsolHelper()withwrapSol()andunwrapSol()methodsWSOL_MINT_ADDRESSconstant (So11111111111111111111111111111111111111112)wsolproperty toSolanaClienttype and instanceReact Hooks Package (
@solana/react-hooks)useWrapSol()hook with loading states, error handling, signature trackinguseUnwrapSol()hook with same capabilitiesDocumentation
Usage
Testing
pnpm lintpnpm testpnpm buildOriginal prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.