solana_kit_system 0.8.0
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
programAddressparam collision when an instruction's data also has aprogramAddressfield (e.g., SystemAssign,CreateAccount). The instruction-level program address is now namedinstructionProgramAddresswhen a collision exists. - Fix BigInt-width size prefix types (u64/u128) in
sizePrefixTypeNodeby substituting u32 encoder/decoder, which satisfies the DartEncoder<num>constraint.
solana_kit_system
- Replace the handwritten
CreateAccounthelper with a fully generated client fromsolana-program/systemCodama IDL (js@v0.12.0, commit95897f3). - Includes all 13 System Program instructions, Nonce account type, NonceVersion/NonceState enums, 9 error codes, and program address constant.
solana_kit_token
- Update
getCreateMintInstructionPlanto use the renamedinstructionProgramAddressparameter from the regenerated system instruction.
solana_kit
- Re-export
solana_kit_systemwithsystemProgramAddresshidden to avoid conflict withsolana_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 addressspl_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-fundedKeyPairSigner(embedded mode) or a caller-provided funded signer (attach mode).cheatcodesβ a typedSurfnetCheatcodesRPC covering everysurfnet_*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_systemwas 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/systemjs@v0.14.0(wasjs@v0.13.0),solana-program/tokenjs@v0.16.0(wasjs@v0.15.0),solana-program/token-2022js@v0.16.0(wasjs@v0.14.1),solana-program/address-lookup-tablejs@v0.14.0(wasjs@v0.13.0),solana-program/memojs@v0.13.0(wasjs@v0.12.0),solana-program/compute-budgetjs@v0.18.0(wasjs@v0.17.0),solana-program/stakejs@v0.9.0(wasjs@v0.8.0),solana-program/loader-v3js@v0.6.0(wasjs@v0.5.0),solana-program/loader-v4commit4f62fb2e(was commit1d6335be), andmpl-bubblegumcommit6a6a77e3(was commit68e4bc20). - All of the
jsreleases 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. Thempl-bubblegumnew commit only re-exports the JSmintV2helpers and theloader-v4new commit only bumps its JS client to@solana/kitv8; both IDLs are unchanged. Thetoken-2022pin supersedes the stale PR #222 (js@v0.15.0). solana-program/stakerestructured its IDL to the Codama v1.8.0 format (program metadata block,lockupParamsargument links renamed fromlockupArgs, IDL program node renamed fromsolanaStakeInterfacetostake).scripts/generate_program_packages.mjsnow maps both argument link names and keeps thesolanaStakeInterfacerenderer-facing program name, so the generated APIs (flattenedsetLockup/setLockupChecked/authorizeWithSeedargument fields,SolanaStakeInterfaceidentifiers) 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_systemwas updated to 0.7.1.
solana_kit_system 0.7.2 (2026-09-06) #
Changed #
- No package-specific changes were recorded;
solana_kit_systemwas updated to 0.7.2.
solana_kit_system 0.7.3 (2026-09-12) #
Changed #
- No package-specific changes were recorded;
solana_kit_systemwas 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