solana_kit_rpc_spec_types 0.10.0 copy "solana_kit_rpc_spec_types: ^0.10.0" to clipboard
solana_kit_rpc_spec_types: ^0.10.0 copied to clipboard

RPC spec type definitions 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.10.0 - 2026-09-21 #

Breaking changes #

Raise the Dart and Flutter baseline

The workspace now builds against Dart 3.13.3 and Flutter 3.47.4, and every package declares that floor instead of the previous Dart 3.12 range. Consumers on older SDKs can no longer resolve these packages, so this release is breaking even though no Dart API changed.

The Flutter floor rises from 3.44 to 3.47 for solana_kit_mobile_wallet_adapter, solana_kit_mobile_wallet_adapter_protocol, and solana_kit_wallet_adapter, matching the floor solana_kit_wallet_ui already required. solana_kit_lints ships the raised floor to consumers, so it carries the same breaking bump. Every other package raises only the Dart SDK floor.

Raising the language version also switches dart format to the tall style, so 83 files across library, test, script, and Codama-generated trees are reflowed. The renderer pipes generated output through dart format, so regenerating stays consistent.

Align your own SDK constraint with the workspace:

environment:
  sdk: ^3.13.0
  # Omit for pure Dart packages; required for the Flutter packages above.
  flutter: ">=3.47.0"

Owner: Ifiok Jr. · Introduced in: 5f5fe01 · Last updated in: 19932db

Fixes #

Speed up base-X codecs, BigInt JSON parsing, and fixed-point parsing

Same results, less work per call. No public API, output byte, or error behavior changed; upstream:parity passes against @solana/kit@8.3.0 and the full workspace suite is green.

The base-X codecs converted through BigInt, scaled the alphabet with String.indexOf and a fresh one-character string per input character, and built output with repeated insert(0, …) calls that reallocate and shift the whole list each time. Encoding a typical base58 address cost roughly 600 µs, so compiling a 20-account transaction spent measurable milliseconds on address encoding alone. The conversion now folds digits into a byte buffer with word-sized carry arithmetic, indexes the alphabet through a cached code-unit lookup, and writes output in order:

// Before: BigInt division per character plus O(n²) list inserts.
// After: one carry pass per character over a preallocated buffer.
final converted = _convertToBytes(value, alphabet);
bytes
  ..fillRange(offset, offset + converted.leadingZeroes, 0)
  ..setAll(offset + converted.leadingZeroes, converted.bytes);

Measured on an interleaved best-of-N benchmark, with the previous implementation running in the same process to cancel machine noise:

Operation Before After Improvement
base58 encode, typical address 22.97 µs 2.88 µs 8.0x
base58 decode, 32 bytes 16.79 µs 3.24 µs 5.2x
base58 encode, 64-byte signature 52.89 µs 8.44 µs 6.3x

parseJsonWithBigInts allocated a one-character string and ran up to two regular expressions per character of the payload, then rebuilt the document character by character. It now scans by code unit, copies literal runs as substrings, and hoists the exponent pattern:

Operation Before After Improvement
parse a 28 KB RPC payload 2.198 ms 1.089 ms 2.0x

Also removed in the same pass: a redundant full copy in the UTF-8 encoder and the base64 decoder (both utf8.encode and base64.decode already return Uint8List), a double copy of every version-1 instruction payload, and two regular expressions that were compiled per parsed value in the fixed-point codecs.

Behavior is pinned by tests rather than assumed. base_x_property_test.dart round-trips random byte strings across every length from 0 to 512 bytes, covers leading-zero-only input, alphabets wider than a byte, and non-power-of-two alphabets, and asserts arbitrary-precision digit strings beyond 64 bits. A degenerate one-character alphabet is now rejected with an ArgumentError when the codec is created; previously it produced silent zero output on encode and looped forever on decode.

bench:all also gains coverage where the regression was invisible: the address benchmark previously measured only the all-ones System Program address, which is base58's leading-zero fast path and exercises no base conversion at all.

Owner: Ifiok Jr. · Introduced in: b22257e

0.9.3 - 2026-09-12 #

Fixes #

  • Document program errors and the generated program-client contract. Add library doc comments synchronized from shared MDT sections to thirteen packages: program error matching (isProgramError + TransactionMessageInput) and the generated program-client API shape are now documented inline in each library and in the errors docs page; six barrels that had no library doc comment gain one; three one-line library headers are expanded. No code changes. Owner: @ifiokjr · Review: PR #248

0.9.2 - 2026-09-06 #

🐛 Fixed #

Harden RPC JSON integer boundaries

Preserve user JSON objects instead of interpreting $n fields as BigInt markers when parsing responses or serializing requests. Reject positive integer exponents above 10,000 before expansion to bound resource use from compact untrusted JSON, while preserving exact normal-range integers, strict JSON syntax, and cyclic-value errors.

Owner: @ifiokjr · Review: PR #238

0.9.1 - 2026-08-30 #

Changed #

  • No package-specific changes were recorded; solana_kit_rpc_spec_types was updated to 0.9.1 as part of group main.

0.9.0 - 2026-08-30 #

📖 Documentation #

Unslop package docs and code comments

Rewrote every package README from a reader's perspective with verified, compilable examples, removed AI-tell phrasing from docs and code comments, and added a test that analyzes every Dart block in Markdown so examples cannot drift from the API.

Owner: @ifiokjr · Review: PR #223

0.8.0 - 2026-08-19 #

Changed #

  • No package-specific changes were recorded; solana_kit_rpc_spec_types was updated to 0.8.0 as part of group main.

0.7.0 - 2026-08-18 #

📖 Documentation #

Reformat package docs

Docs have been reformatted to remove line wrapping.

Owner: @ifiokjr · Review: PR #212

0.6.0 - 2026-08-12 #

📖 Documentation #

Centralize package version documentation

Centralize package version metadata in versions.json and render package installation snippets from the shared MDT data source. Published package behavior is unchanged.

Owner: @ifiokjr · Review: PR #188

Point package README website badges at package docs

Updated package README website badges to link directly to each package's docs catalog entry and added missing package entries to the documentation website catalog/index.

Owner: @ifiokjr · Review: PR #192

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

0.4.0 - 2026-05-30 #

📝 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

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

0
likes
160
points
2.96k
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

RPC spec type definitions for the Solana Kit Dart SDK.

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

solana_kit_errors

More

Packages that depend on solana_kit_rpc_spec_types