solana_kit_rpc_types 0.5.0 copy "solana_kit_rpc_types: ^0.5.0" to clipboard
solana_kit_rpc_types: ^0.5.0 copied to clipboard

Shared RPC types for the Solana Kit Dart SDK.

Changelog #

All notable changes to this project will be documented in this file.

This changelog is managed by monochange.

0.5.0 - 2026-06-01 #

💥 Breaking Change #

Raise minimum Dart SDK to 3.12

Raise the minimum supported Dart SDK constraint to ^3.12.0 across public Dart packages.

This is a breaking change because consumers must use Dart 3.12 or newer. Flutter consumers must use a Flutter SDK that bundles Dart 3.12 or newer.

environment:
  sdk: ^3.12.0

Owner: Ifiok Jr. · Introduced in: 32d5d36

🧪 Testing #

Improve test coverage to 95%+ across all packages

Added 500+ tests covering equality/hashCode/toString, codec edge cases, error paths, and constructor variants. Removed dead code in fast_stable_stringify. Fixed concurrent modification bug in subscribable.

Owner: Ifiok Jr. · Introduced in: 48216f9 · Last updated in: b7f5419

0.4.0 - 2026-05-30 #

🚀 Feature #

Replace string encoding fields with AccountEncoding

Owner: Ifiok Jr. · Introduced in: 29e8823 · Last updated in: a526ea3

Add LatestBlockhashValue and Sol type

Add LatestBlockhashValue model and full Sol fixed-point…

Add LatestBlockhashValue model and full Sol fixed-point type

LatestBlockhashValue (lib/src/latest_blockhash_value.dart):

A new @immutable value class that wraps the two fields returned by getLatestBlockhash — a Blockhash and a BigInt lastValidBlockHeight. This gives downstream callers a typed model instead of navigating a raw Map for the latest-blockhash response. The class implements structural equality (== / hashCode) and a descriptive toString.

Sol extension type and helpers (lib/src/sol.dart):

A complete fixed-point SOL representation backed by an exact Lamports BigInt:

  • Sol is an extension type implementing both Lamports and Object, so it interops seamlessly with existing Lamports-accepting APIs.
  • sol(String, {RoundingMode}) parses a decimal SOL string (up to 9 fractional digits) into Sol. A RoundingMode enum (strict, down, up, halfUp) controls behaviour when the input has excess precision.
  • solToLamports / lamportsToSol provide lossless round-trip conversions.
  • Sol.toDecimalString() formats the value back to a human-readable decimal string without trailing zeros.
  • getSolEncoder(), getSolDecoder(), and getSolCodec() produce binary codecs that read/write the underlying 64-bit little-endian Lamports count, matching the on-chain wire format.

Both types are exported from the package barrel (solana_kit_rpc_types.dart). The LatestBlockhashValue export enables solana_kit_rpc to use it in its new typed getLatestBlockhashValue method. The Sol type adds a long-requested ergonomic layer for displaying and parsing SOL amounts without manual BigInt arithmetic.

Owner: Ifiok Jr. · Introduced in: 6fd8642 · Last updated in: 0ee3d60

📝 Changed #

Restructure release groups

Move program-specific and domain-specific packages out of the main release group into standalone release schedules with independent versioning. Core SDK packages remain synchronized in the main group.

Owner: Ifiok Jr. · Introduced in: fccec7f · Last updated in: 93b3cd3

🐛 Fixed #

Add per-package coverage badges

Add codecov flags and per-package coverage badges to all package READMEs.

Owner: Ifiok Jr. · Introduced in: bed1b1f · Last updated in: 93b3cd3

Replace unsafe .cast() with JsonReader

Introduce internal JsonReader helper that replaces unsafe…

Introduce internal JsonReader helper that replaces unsafe .cast<T>() list

casts and bare as casts in all fromJson factories with explicit typed accessors. Parse errors now surface at construction time via a descriptive FormatException that includes the field name, rather than deferring until element access. All ten type files (das_types, enhanced_types, zk_types, wallet_types, webhook_types, rpc_v2_types, auth_types, staking_types, priority_fee_types, smart_transaction_types) have been migrated. The public API is unchanged.

Owner: Ifiok Jr. · Introduced in: 29e8823 · Last updated in: 0ee3d60

Replace dynamic with Object?

Replace dynamic with Object? across lib source files; remaining dynamic usage is only in test matcher API signatures required by the test package.

Owner: Ifiok Jr. · Introduced in: fe249a4 · Last updated in: 0ee3d60

Add equality to value types

Add == / hashCode / toString to value types across…

Add == / hashCode / toString to value types across rpc_types, rpc_api, rpc_parsed_types, rpc_spec_types, instructions, transaction_messages, and transaction_confirmation.

Owner: Ifiok Jr. · Introduced in: 29e8823 · Last updated in: 0ee3d60

Add account client and RPC response models

Add a higher-level Solana account client plus typed RPC…

Add a higher-level Solana account client plus typed RPC response wrappers for common account, balance, blockhash, and multi-account request flows.

Owner: Ifiok Jr. · Introduced in: aa54336 · Last updated in: 0ee3d60

Add SOL conversion helpers alongside lamports helpers

Owner: Ifiok Jr. · Introduced in: 9ee2e44 · Last updated in: a526ea3