@solana/kit
v7.1.1 (2026-08-18)
Patch Changes
-
[
@solana/codecs-strings] #19261d074edThanks @latent-9! - FixgetBaseXDecoderreturning an offset of0instead 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] #1924769da66Thanks @mcintyre94! - Deprecate transaction plan result APIs being removed in v8Both of the following are deprecated and will be removed in the next major version.
successfulSingleTransactionPlanResultFromTransactionderives the transactionsignatureon your behalf by callinggetSignatureFromTransaction, which throws when the transaction's fee payer has not signed it. Construct results withsuccessfulSingleTransactionPlanResultinstead, passing the context explicitly:- successfulSingleTransactionPlanResultFromTransaction(message, transaction, context); + successfulSingleTransactionPlanResult(message, { + ...context, + signature: getSignatureFromTransaction(transaction), + transaction, + });
BaseTransactionPlanResultContextgoes away together with the intersections that graft it onto everySingleTransactionPlanResult. The context of a result is becoming entirely caller-defined — it will be exactly theTContextyou 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] #17489f8e4d0Thanks @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] #192590e371bThanks @o-mid! - Consult the subscriptions numeric allow-list for each notificationThe 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 tobigintwhile still typechecking asnumber.The transformer now maps
*Subscribe/*Notificationnames 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.blockNotificationsis also derived from the sameinnerInstructionsConfigs/messageConfig/tokenBalancesConfigsasgetBlock, so transactionversion, token balanceuiAmount, andstackHeightstay numbers. -
[
@solana/signers] #18510a989a4Thanks @rajanpanth! - FixTransactionMessageWithSignersso its signer type parameter rejects fee payer and instruction signers of other transaction signer kinds.