Skip to content

feat(solana-wallet-snap): bump solana kit v6.9 - #271

Open
taran-a wants to merge 3 commits into
mainfrom
feat/bump-solana-kit-v6.9
Open

feat(solana-wallet-snap): bump solana kit v6.9#271
taran-a wants to merge 3 commits into
mainfrom
feat/bump-solana-kit-v6.9

Conversation

@taran-a

@taran-a taran-a commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Explanation

Upgrade Solana dependencies to @solana/kit 6.9.x, SNS SDK 1.x, and compatible Solana program packages.
Migrate transaction, instruction, signing, fee estimation, and RPC types/APIs to the new Kit interfaces.
Add support for resolving both .sns and .sol domains.
Update reverse address resolution to return .sns domains.
Update related tests, mocks, lockfile, and changelog.

Screen.Recording.2026-09-04.at.13.45.31.mov

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

@taran-a
taran-a requested review from a team as code owners September 4, 2026 12:12
@taran-a
taran-a deployed to default-branch September 4, 2026 12:12 — with GitHub Actions Active
@taran-a
taran-a force-pushed the feat/bump-solana-kit-v6.9 branch from 24fe1ed to 267d297 Compare September 4, 2026 12:12
@socket-security

socket-security Bot commented Sep 4, 2026

Copy link
Copy Markdown

@socket-security

socket-security Bot commented Sep 4, 2026

Copy link
Copy Markdown

Warning

MetaMask internal reviewing guidelines:

  • Do not ignore-all
  • Each alert has instructions on how to review if you don't know what it means. If lost, ask your Security Liaison or the supply-chain group
  • Copy-paste ignore lines for specific packages or a group of one kind with a note on what research you did to deem it safe.
    @SocketSecurity ignore npm/PACKAGE@VERSION
Action Severity Alert  (click "▶" to expand/collapse)
Warn Medium
Network access: npm @solana/program-client-core in module globalThis["fetch"]

Module: globalThis["fetch"]

Location: Package overview

From: packages/solana-wallet-snap/package.jsonnpm/@solana/kit@6.10.0npm/@solana/program-client-core@6.10.0

ℹ Read more on: This package | This alert | What is network access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should remove all network access that is functionally unnecessary. Consumers should audit network access to ensure legitimate use.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@solana/program-client-core@6.10.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Environment variable access: npm @solana-program/zk-elgamal-proof reads NODE_ENV

Env Vars: NODE_ENV

Location: Package overview

From: packages/solana-wallet-snap/package.jsonnpm/@solana-program/token-2022@0.12.0npm/@solana-program/zk-elgamal-proof@0.2.0

ℹ Read more on: This package | This alert | What is environment variable access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should be clear about which environment variables they access, and care should be taken to ensure they only access environment variables they claim to.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@solana-program/zk-elgamal-proof@0.2.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Potential code anomaly (AI signal): npm ws is 75.0% likely to have a medium risk anomaly

Notes: The code implements a standard EventTarget-like mixin for wrapping event listeners and dispatching events to user callbacks. There are no suspicious patterns such as dynamic code execution, hardcoded secrets, or network activity. The risk is contingent on what the consumer does inside their handlers; the snippet itself does not introduce malware or data leakage mechanisms beyond normal event dispatch. Overall security risk is low in isolation.

Confidence: 0.75

Severity: 0.50

From: packages/solana-wallet-snap/package.jsonnpm/@solana/kit@6.10.0npm/ws@8.21.3

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/ws@8.21.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@taran-a
taran-a force-pushed the feat/bump-solana-kit-v6.9 branch from 267d297 to 85297be Compare September 4, 2026 12:24
@taran-a taran-a changed the title Feat/bump solana kit v6.9 feat(solana-wallet-snap): bump solana kit v6.9 Sep 4, 2026
@taran-a
taran-a force-pushed the feat/bump-solana-kit-v6.9 branch 2 times, most recently from 631cdca to 2aa5deb Compare September 4, 2026 15:17
@MetaMask MetaMask deleted a comment from github-actions Bot Sep 4, 2026
Comment thread packages/solana-wallet-snap/src/core/services/send/SendSplTokenBuilder.ts Outdated
@taran-a
taran-a force-pushed the feat/bump-solana-kit-v6.9 branch from ec834b4 to 471dac7 Compare September 7, 2026 07:09
@taran-a
taran-a requested a review from Battambang September 7, 2026 07:59
@taran-a

taran-a commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

@metamaskbot publish-preview

@MetaMask MetaMask deleted a comment from github-actions Bot Sep 7, 2026
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/bitcoin-wallet-snap@2.0.1-preview-471dac7
@metamask-previews/snap-networks-utils@1.0.0-preview-471dac7
@metamask-previews/solana-wallet-snap@6.0.0-preview-471dac7
@metamask-previews/stellar-wallet-snap@0.1.0-preview-471dac7
@metamask-previews/tron-wallet-snap@3.2.0-preview-471dac7

@taran-a
taran-a force-pushed the feat/bump-solana-kit-v6.9 branch from 471dac7 to 79501be Compare September 7, 2026 08:40
@sonarqubecloud

sonarqubecloud Bot commented Sep 7, 2026

Copy link
Copy Markdown

@mikesposito mikesposito left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking care of this bump! This PR looks mostly good, I only have comments over typecasts

data: item.data ?? new Uint8Array(),
programAddress:
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
compiledTransactionMessage.staticAccounts[item.programAddressIndex]!,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a scenario where this turns out to be undefined? If so, perhaps we should add an if condition and throw an error in case it is - that will also make TS happy


return parseSetComputeUnitLimitInstruction(
computeUnitLimitInstruction as IInstructionWithData<Uint8Array>,
computeUnitLimitInstruction as InstructionWithData<Uint8Array>,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, I think these casts to InstructionWithData<Uint8Array> are needed because NormalizedInput does not accept any type parameter, so NormalizedInput.instructions always use the default one. Do you think we can change NormalizedInput with a generic type so that we avoid this cast here?

Comment on lines +35 to +36
compilableTransactionMessage as TransactionMessage &
TransactionMessageWithFeePayer,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was trying to figure out if this cast is necessary, and I realized that fromCompilableTransactionMessageToBase64String is only called by test files. Perhaps we should consider removing this function altogether

),
],
} as CompilableTransactionMessage;
} as TTransactionMessage;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This cast is not ideal, but it was already there. We should consider removing it at some point.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants