Skip to content

build(deps-dev): bump @solana/web3.js from 1.99.0 to 3.1.0 in /clients/js-legacy - #142

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/clients/js-legacy/solana/web3.js-3.1.0
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/clients/js-legacy/solana/web3.js-3.1.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Bumps @solana/web3.js from 1.99.0 to 3.1.0.

Release notes

Sourced from @​solana/web3.js's releases.

v3.1.0

Full changelog: v3.0.2...v3.1.0

Published Packages

Installation

pnpm add @solana/web3.js@3.1.0 @solana/wallet-adapter@3.1.0

What's Changed

Connection now implements a Kit client

That means you can pass it straight to Kit-native libraries like Anchor 2 and the Codama-generated @solana-program/* clients, without building a second RPC.

Anchor 2: give a Connection and Keypair to AnchorProvider:

import {AnchorProvider, Program} from '@anchor-lang/core';
import {Connection, Keypair, sendAndConfirmTransaction, Transaction} from '@solana/web3.js';
const connection = new Connection(rpcUrl, 'confirmed');
const provider = new AnchorProvider(connection, trader);
const program = new Program<Whirlpool>(idl, provider);
const {data: pool} = await program.account.whirlpool.fetch(SOL_USDC_POOL);
const swapIx = await program.methods
.swap(USDC_IN, 0n, MAX_SQRT_PRICE, true, false)
.accounts({whirlpool: SOL_USDC_POOL, tokenVaultA: pool.tokenVaultA, /* ... */})
.instruction();
</tr></table>

... (truncated)

Changelog

Sourced from @​solana/web3.js's changelog.

Release Notes for 3.0.0

These notes summarize the user-facing changes that landed since 1.98.4.

Highlights

  • Connection now runs on typed Solana Kit HTTP and websocket transports end-to-end, replacing the older JSON-RPC plumbing while preserving the class-based web3.js API shape.
  • Websocket subscription setup failures no longer spin through indefinite retry loops; failed opens now become terminal until listener demand changes or the transport reconnects.
  • The library has moved much further toward Uint8Array-first and async-first behavior, reducing Buffer-specific behavior and aligning signing and verification with WebCrypto/Kit.
  • Program and account encode/decode paths have been modernized around codecs and vendored generated program clients.
  • Packaging, build, and install flows were refreshed, including esbuild-based bundling, generated lib/ output for git installs, and updated validator/dependency tooling.

Migration Reality Check

  • The public API is still class-based, but non-trivial TypeScript consumers should still expect broad mechanical migration work. In practice, the largest sources of churn are bigint numerics, Uint8Array account data, async key/serialization helpers, and readonly RPC results, and more specific SDK types for values such as addresses, blockhashes, slots, lamports, and timestamps.
  • For full-app consumers already using most of the class surface, the immediate payoff is usually API modernization and future compatibility rather than a dramatic bundle-size reduction.

Breaking Changes

  • PublicKey.unique() was removed.
  • Legacy BN-era PublicKey constructor inputs such as PublicKeyData or { _bn: BN } are no longer accepted.
  • Keypair.generate(), Keypair.fromSecretKey(...), and Keypair.fromSeed(...) are now async. Tests and stories that previously used sync key generation often need to become async or switch to app-local dummy public-key helpers.
  • Keypair.address is now a Kit branded base58 address string for signer API compatibility. Use Keypair.publicKey when you need the web3.js Address class methods such as .toBytes(), .equals(...), or .toBase58().
  • Transaction.verifySignatures() is now async and returns a promise.
  • Transaction.serialize() is now async and must be awaited.
  • Remaining sync signing helpers that existed earlier in the range were removed in favor of the async signing surface.
  • The legacy Web3Signer shape ({publicKey, secretKey}) and the MessageSigner type alias were removed. The exported Signer type is now MessagePartialSigner & TransactionPartialSigner from @solana/kit, and transaction signing APIs accept any Kit TransactionPartialSigner, which Signer satisfies. Pass Keypair instances or other Kit transaction signers; migrate any remaining {publicKey, secretKey} literals via await Keypair.fromSecretKey(legacySigner.secretKey).
  • The implicit Connection default commitment changed from finalized to confirmed.
  • Many migrated Connection methods now return Kit-native bigint values instead of legacy number values.
  • Slot-like and minContextSlot inputs were widened to number | bigint and now reject unsafe numeric inputs.
  • AccountInfo-like responses now use Uint8Array payloads, readonly wrappers, and space: bigint instead of the old mutable Buffer-centric shapes.
  • The deprecated FeeCalculator surface was removed, including FeeCalculator, getRecentBlockhash, getRecentBlockhashAndContext, and getFeeCalculatorForBlockhash.
  • The legacy Account class was removed.
  • Deprecated BufferLayout-based internals and compatibility surfaces were removed in favor of codec-backed implementations.
  • Connection.getMinimumBalanceForRentExemption(...) now propagates RPC and transport failures instead of logging a warning and resolving 0n. Callers that relied on the zero fallback must handle the rejection, because a failed rent query should not be mistaken for a rent-free account.
  • Transaction.add(...) now narrows its inputs with instanceof Transaction and instanceof TransactionInstruction instead of the previous 'instructions' in item / 'data' in item duck-typing checks. Loose "Transaction-like" or "TransactionInstruction-like" objects that aren't real instances will no longer be accepted at runtime. Well-typed TypeScript callers are unaffected.

API And Runtime Changes

Connection

  • HTTP requests now go through typed Kit RPC calls instead of the legacy request pipeline.
  • Websocket subscriptions now run on a Kit-backed subscription runtime with stronger request/response shaping and broader payload coverage.
  • Websocket subscriptions now match Kit's default 100-subscription channel limit for improved stability.
  • Added Connection.awaitSubscriptionReady(...) so callers can await websocket subscription establishment, explicit setup failure, or listener invalidation.
  • Shared websocket subscriptions now invalidate readiness per client listener, so removing one deduplicated listener before acknowledgement no longer resolves readiness for the wrong listener.
  • Signature-confirmation fallback now treats failed or inactive subscription setup as terminal and continues via getSignatureStatuses() when needed.
  • ConnectionConfig.fetch and fetchMiddleware remain available as compatibility hooks on top of the typed HTTP path.
  • Additional RPC coverage and stricter typing landed across account, block, transaction, token, simulation, and node metadata methods.
  • Connection.simulateTransaction(...) now surfaces the RPC's fee, preBalances, postBalances, preTokenBalances, postTokenBalances, and loadedAddresses on the simulation result when the RPC returns them, matching Kit's simulation response.

... (truncated)

Commits
  • 63b4f87 chore: bump version to v3.1.0 (#3989)
  • 57fd673 fix(web3.js): skip ws error log when the socket closes with no active subscri...
  • bd879f1 feat(web3.js): make Connection a Kit client (rpc, rpcSubscriptions, getMinimu...
  • 6c7cd06 chore(web3.js): bump to @​solana/kit 8.5 ^8.5.0 and support verifySignature ch...
  • 8837d96 docs(web3.js): note planned durable nonce deprecation on nonce APIs (#3979)
  • d4e4bd0 fix(web3.js): reject unsupported memcmp encodings in getProgramAccounts filte...
  • f456382 fix(web3.js): handle nullish memcmp in data-size filters (#3977)
  • 7c8b33e chore: bump version to v3.0.2 (#3974)
  • f120283 chore: release web3.js and wallet-adapter 3.0.1 (#3969)
  • 648516f chore: update version (#3965)
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Oct 20, 2026
@github-actions
github-actions Bot enabled auto-merge (squash) October 20, 2026 09:05
Bumps [@solana/web3.js](https://github.com/solana-foundation/solana-web3.js/tree/HEAD/packages/web3.js) from 1.99.0 to 3.1.0.
- [Release notes](https://github.com/solana-foundation/solana-web3.js/releases)
- [Changelog](https://github.com/solana-foundation/solana-web3.js/blob/main/packages/web3.js/RELEASE_NOTES.md)
- [Commits](https://github.com/solana-foundation/solana-web3.js/commits/v3.1.0/packages/web3.js)

---
updated-dependencies:
- dependency-name: "@solana/web3.js"
  dependency-version: 3.1.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/clients/js-legacy/solana/web3.js-3.1.0 branch from dccee1a to 2c37bbd Compare October 21, 2026 11:28
@joncinque joncinque closed this Oct 21, 2026
auto-merge was automatically disabled October 21, 2026 11:35

Pull request was closed

@dependabot @github

dependabot Bot commented on behalf of github Oct 21, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/clients/js-legacy/solana/web3.js-3.1.0 branch October 21, 2026 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant