github anza-xyz/kit v7.1.1

3 hours ago

@solana/kit

v7.1.1 (2026-08-18)

Patch Changes

  • [@solana/codecs-strings] #1926 1d074ed Thanks @latent-9! - Fix getBaseXDecoder returning an offset of 0 instead of the buffer length when there are no bytes left to decode, which corrupted the offset of any decoder composed after it.

  • [@solana/instruction-plans] #1924 769da66 Thanks @mcintyre94! - Deprecate transaction plan result APIs being removed in v8

    Both of the following are deprecated and will be removed in the next major version.

    successfulSingleTransactionPlanResultFromTransaction derives the transaction signature on your behalf by calling getSignatureFromTransaction, which throws when the transaction's fee payer has not signed it. Construct results with successfulSingleTransactionPlanResult instead, passing the context explicitly:

    - successfulSingleTransactionPlanResultFromTransaction(message, transaction, context);
    + successfulSingleTransactionPlanResult(message, {
    +   ...context,
    +   signature: getSignatureFromTransaction(transaction),
    +   transaction,
    + });

    BaseTransactionPlanResultContext goes away together with the intersections that graft it onto every SingleTransactionPlanResult. The context of a result is becoming entirely caller-defined — it will be exactly the TContext you supply — so there will be no separate base shape to merge in. If you refer to this type, declare whichever of its fields you need on your own context type instead:

    type MyContext = {
        message?: TransactionMessage & TransactionMessageWithFeePayer;
        signature?: Signature;
        transaction?: Transaction;
    };
  • [@solana/rpc-spec, @solana/rpc-spec-types, @solana/rpc-subscriptions-spec] #1748 9f8e4d0 Thanks @ChargingFoxSec! - Avoid treating JavaScript protocol hooks and Object prototype properties as RPC method names in proxy-backed RPC objects.

  • [@solana/rpc-subscriptions-api, @solana/rpc-subscriptions-spec, @solana/rpc-transformers] #1925 90e371b Thanks @o-mid! - Consult the subscriptions numeric allow-list for each notification

    The allow-list is keyed by API names like blockNotifications, but the plan executor invoked the transformer with the rewritten subscribe request (blockSubscribe). The lookup missed and every notification numeric was upcast to bigint while still typechecking as number.

    The transformer now maps *Subscribe / *Notification names back to *Notifications, and the plan executor derives the method name from each notification payload so subscriptions that share a channel are not transformed under whichever request created the publisher.

    blockNotifications is also derived from the same innerInstructionsConfigs / messageConfig / tokenBalancesConfigs as getBlock, so transaction version, token balance uiAmount, and stackHeight stay numbers.

  • [@solana/signers] #1851 0a989a4 Thanks @rajanpanth! - Fix TransactionMessageWithSigners so its signer type parameter rejects fee payer and instruction signers of other transaction signer kinds.

Don't miss a new kit release

NewReleases is sending notifications on new releases.