solana_kit_system 0.8.0 copy "solana_kit_system: ^0.8.0" to clipboard
solana_kit_system: ^0.8.0 copied to clipboard

System Program instruction builders 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.

solana_kit_system 0.3.2 (2026-05-30) #

πŸš€ Feature #

Port System Program from upstream Codama IDL

codama-renderers-dart
  • Fix instruction builder programAddress param collision when an instruction's data also has a programAddress field (e.g., System Assign, CreateAccount). The instruction-level program address is now named instructionProgramAddress when a collision exists.
  • Fix BigInt-width size prefix types (u64/u128) in sizePrefixTypeNode by substituting u32 encoder/decoder, which satisfies the Dart Encoder<num> constraint.
solana_kit_system
  • Replace the handwritten CreateAccount helper with a fully generated client from solana-program/system Codama IDL (js@v0.12.0, commit 95897f3).
  • Includes all 13 System Program instructions, Nonce account type, NonceVersion/NonceState enums, 9 error codes, and program address constant.
solana_kit_token
  • Update getCreateMintInstructionPlan to use the renamed instructionProgramAddress parameter from the regenerated system instruction.
solana_kit
  • Re-export solana_kit_system with systemProgramAddress hidden to avoid conflict with solana_kit_transaction_messages.

Owner: Ifiok Jr. Β· Introduced in: 1eaf898 Β· Last updated in: 5bccc42

Detached from main group

This package is now released independently rather than as part of the main solana_kit group. The System Program client is a standalone program package that does not depend on the core solana_kit release cycle, so an independent release track is more appropriate.

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

πŸ› Fixed #

Add generated-code test coverage for token

Add comprehensive generated-code test coverage for…

Add comprehensive generated-code test coverage for solana_kit_token (instructions, accounts, types, PDAs) and solana_kit_system (codec round-trips, parse round-trip, program constants).

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

solana_kit_system 0.4.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

πŸ› Fixed #

Add well-known program, sysvar, SPL, Metaplex, and token mint address constants

Add centralized address constants to solana_kit_addresses so that any package can reference well-known on-chain addresses without importing the full domain package or hardcoding strings.

New exports:

  • program_addresses.dart β€” All Agave/Solana native program addresses (system, ALT, BPF loaders, compute budget, config, stake, vote, etc.)
  • sysvar_addresses.dart β€” All sysvar addresses (clock, rent, recentBlockhashes, fees, rewards, etc.) plus the sysvar owner address
  • spl_addresses.dart β€” SPL program addresses (Token, Token-2022, ATA, Memo, Memo Legacy)
  • metaplex_addresses.dart β€” Metaplex program addresses (Token Metadata, Bubblegum, Auth Rules, Core, SPL Account Compression, Noop)
  • well_known_addresses.dart β€” Well-known token mint addresses (Wrapped SOL, USDC, USDT)

Also re-exports from solana_kit_address (Address type, codecs, comparator, PublicKey) and solana_kit_address_constants (well-known address constants).

Owner: Ifiok Jr. Β· Introduced in: 3f596ef Β· Last updated in: 4643648

solana_kit_system 0.4.1 (2026-06-03) #

πŸš€ Feature #

Update upstream program references

Update generated Solana program packages to the latest checked upstream refs:

solana_kit_system: solana-program/system js@v0.12.2
solana_kit_stake: solana-program/stake js@v0.6.1
solana_kit_memo: solana-program/memo js@v0.11.1

solana_kit_system adds the CreateAccountAllowPrefund instruction helpers. solana_kit_stake includes the authority seed u64 size-prefix fix and updated stake delegation layout.

Owner: @ifiokjr Β· Review: PR #182

solana_kit_system 0.4.2 (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

πŸ”– None #

Format workflow lint follow-up files

Apply formatting-only changes discovered while adding the GitHub Actions workflow lint gate.

Owner: @ifiokjr Β· Review: PR #185

solana_kit_system 0.6.0 (2026-08-18) #

πŸ’₯ Breaking Change #

Regenerated program packages from upstream v7 IDLs

Regenerated all 8 generated program packages from their latest upstream Codama IDLs:

  • solana_kit_system: js@v0.12.2 β†’ v0.13.0
  • solana_kit_token: js@v0.14.0 β†’ v0.15.0
  • solana_kit_token_2022: js@v0.12.0 β†’ v0.14.1
  • solana_kit_address_lookup_table: js@v0.12.1 β†’ v0.13.0
  • solana_kit_memo: js@v0.11.2 β†’ v0.12.0
  • solana_kit_compute_budget: js@v0.16.0 β†’ v0.17.0
  • solana_kit_stake: js@v0.7.2 β†’ v0.8.0; applied the upstream Stake Codama preprocessing before rendering so generated defined-type imports resolve to Dart files
  • solana_kit_loader: loader-v3 js@v0.4.0 β†’ v0.5.0; migrated planning helpers to the generated v0.5 API and retained the handwritten Loader v3 account codecs and Loader v4 client surface

Generated using node scripts/generate_program_packages.mjs β€” a new generator script that runs the Codama renderer against upstream IDLs.

// Generated clients now match newer upstream IDLs, e.g. the system program:
final instruction = getCreateAccountInstruction(
  payer: payer.address,
  newAccount: newAccount.address,
  lamports: lamports,
  space: space,
  owner: owner,
);

Owner: @ifiokjr Β· Review: PR #204

πŸ› Fixed #

Kit-plugin style Surfpool client + SDK-based integration tests

solana_kit_surfpool (minor)

Add createSurfpoolClient() / connectSurfpoolClient() returning a SurfpoolClient wired up like the @solana/surfpool/kit plugin for TypeScript:

  • rpc / rpcSubscriptions β€” Solana Kit RPC and subscriptions clients pointed at the Surfnet.
  • payer β€” the Surfnet's pre-funded KeyPairSigner (embedded mode) or a caller-provided funded signer (attach mode).
  • cheatcodes β€” a typed SurfnetCheatcodes RPC covering every surfnet_* cheatcode with the prefix stripped (timeTravel, pauseClock, setAccount, writeProgram, …).
  • rpcUrl / wsUrl β€” the Surfnet's HTTP and WebSocket URLs.
  • airdrop / getMinimumBalance β€” funding and rent-exemption helpers.
  • stop() β€” idempotent teardown that stops the Surfnet when this client started it.

createSurfpoolClient stops the Surfnet if wiring fails, so no orphaned process or ports are left behind. The new API is fully unit-tested with 100% patch coverage.

codama-renderers-dart (patch)

Fix visitSizePrefixType so BigInt-width size prefixes (u64/u128/i64/i128) generate transformEncoder/transformDecoder wrappers instead of substituting u32. The system program's bincode String length is u64, so the u32 substitution broke on-chain encoding of seed fields.

solana_kit_system (patch)

Regenerate the system program client with the size-prefix renderer fix; createAccountWithSeed, allocateWithSeed, assignWithSeed, and transferSolWithSeed now encode their u64 String-length prefixes correctly.

solana_kit_errors (patch)

Fix getSolanaErrorFromTransactionError to handle account_index values returned as BigInt by some RPC nodes (e.g. SurfPool), matching the earlier instruction-error-index fix.

solana_kit (patch)

Convert test/integration/rpc_basic_test.dart to start its own Surfpool via the SDK instead of requiring an externally launched validator.

solana_kit_mpl_bubblegum (patch)

Convert the compressed-NFT integration test to start its own Surfpool via the SDK; add solana_kit_surfpool as a dev dependency.

solana_kit_integration_tests (minor)

Integration tests now start their own Surfpool per test file via the SDK (auto-allocated ports, parallel-safe) instead of requiring an externally launched instance. Adds the gap-coverage tests: loader full deploy, system seed-based instructions, config store (committed config-v3.0.0.so artifact), subscriptions on-chain lifecycle, ALT extend/deactivate/close, error paths, token/2022 transfer+burn+setAuthority+closeAccount, stake authorize, and ATA idempotency.

// Before: manual Surfnet wiring
final surfnet = await Surfnet.start();
final rpc = createSolanaRpc(surfnet.rpcUrl);

// After: kit-plugin style client
final client = await createSurfpoolClient();
final rpc = client.rpc;
final payer = client.payer;
await client.cheatcodes.timeTravel(...);
await client.stop();

Owner: @ifiokjr Β· Review: PR #208

solana_kit_system 0.6.1 (2026-08-19) #

Changed #

  • No package-specific changes were recorded; solana_kit_system was updated to 0.6.1.

solana_kit_system 0.7.0 (2026-08-30) #

πŸ› Fixed #

Refresh upstream reference pins for solana-program/* and mpl-bubblegum

  • Tracks the latest upstream references in config/reference-repos.json: solana-program/system js@v0.14.0 (was js@v0.13.0), solana-program/token js@v0.16.0 (was js@v0.15.0), solana-program/token-2022 js@v0.16.0 (was js@v0.14.1), solana-program/address-lookup-table js@v0.14.0 (was js@v0.13.0), solana-program/memo js@v0.13.0 (was js@v0.12.0), solana-program/compute-budget js@v0.18.0 (was js@v0.17.0), solana-program/stake js@v0.9.0 (was js@v0.8.0), solana-program/loader-v3 js@v0.6.0 (was js@v0.5.0), solana-program/loader-v4 commit 4f62fb2e (was commit 1d6335be), and mpl-bubblegum commit 6a6a77e3 (was commit 68e4bc20).
  • All of the js releases are @solana/kit ^7 β†’ ^8 dependency bumps with no instructions, accounts, types, or wire-format changes; the IDL additions are Codama display metadata, which the Dart renderer does not render. Regenerating every affected client from the old and new pins produced byte-identical Dart output, so the generated clients are unchanged. The mpl-bubblegum new commit only re-exports the JS mintV2 helpers and the loader-v4 new commit only bumps its JS client to @solana/kit v8; both IDLs are unchanged. The token-2022 pin supersedes the stale PR #222 (js@v0.15.0).
  • solana-program/stake restructured its IDL to the Codama v1.8.0 format (program metadata block, lockupParams argument links renamed from lockupArgs, IDL program node renamed from solanaStakeInterface to stake). scripts/generate_program_packages.mjs now maps both argument link names and keeps the solanaStakeInterface renderer-facing program name, so the generated APIs (flattened setLockup/setLockupChecked/authorizeWithSeed argument fields, SolanaStakeInterface identifiers) stay stable. No generated Dart code changed.
  • Package READMEs now cite the refreshed upstream versions they mirror.

Owner: @ifiokjr Β· Review: PR #226 Β· Related issues: #222, #225

πŸ“– 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

solana_kit_system 0.7.1 (2026-08-30) #

Changed #

  • No package-specific changes were recorded; solana_kit_system was updated to 0.7.1.

solana_kit_system 0.7.2 (2026-09-06) #

Changed #

  • No package-specific changes were recorded; solana_kit_system was updated to 0.7.2.

solana_kit_system 0.7.3 (2026-09-12) #

Changed #

  • No package-specific changes were recorded; solana_kit_system was updated to 0.7.3.

solana_kit_system 0.8.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