Skip to content

Commit 436d938

Browse files
martinsander00bgm-malbeclabs
authored andcommitted
solana-cli: uptick crate to v0.5.12 (malbeclabs/doublezero-offchain#417)
## Summary - The CLI crate version moves from 0.5.10 to 0.5.12. - The changelog records the CLI changes since the 0.5.11 tag. ## Testing - This PR only changes the crate version, the changelog, and the lockfile. - Pushing `doublezero-solana/v0.5.12` after merge is what publishes 0.5.12.
1 parent 2cc1f34 commit 436d938

2 files changed

Lines changed: 4 additions & 9 deletions

File tree

offchain/crates/solana-cli/CHANGELOG.md

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.5.12](https://github.com/malbeclabs/doublezero-offchain/releases/tag/doublezero-solana/v0.5.12)
11+
12+
- uptick crate to v0.5.12 (#417)
1013
- `shreds payments`: keep reading leftover fund-seat transactions after the SDK drops that instruction (malbeclabs/infra#2411)
1114
- `shreds pay`: remove the command. `shreds withdraw`, `list`, `payments`, and `price` stay (malbeclabs/infra#2410)
1215
- `shreds`: collapse `pay`'s `SLOT_DURATION_SECS` and `prepare-offchain-message`'s `SLOT_DURATION_MS` into one `NOMINAL_SLOT_DURATION` at 350ms, matching mainnet-beta from epoch 1020 (2026-08-21). Deliberately cluster-independent, because a `~` prefixed estimate and a deadline slot the CLI and operator must both compute want reproducibility over accuracy. `--valid-for 1h` now resolves to 10,285 slots rather than 9,000, and the epoch-remaining estimates shrink by an eighth. Testnet runs at 200ms, so its estimates stay wrong in the other direction, and SIMD-0525 will need one more bump here (malbeclabs/infra#2317)
1316
- `shreds validator-client-rewards`: read the `ValidatorClientRewards` account through the SDK's zero-copy mirror instead of the hand-written byte-offset parser. Every subcommand now requires at least 184 bytes of account data rather than 116
1417
- `shreds pay`: print the fastshreds.com transition notice, and require a y/N confirmation when the operator can actually answer it. The notice fires before the wallet is built and before the first RPC call, so declining needs neither a loadable keypair nor a reachable cluster and signs nothing. The prompt requires *both* stdin and stdout to be a terminal: the prompt is written to stdout, so under a redirect (`> pay.log`, `| tee`) the question would land in the file while `read_line` blocked on a terminal showing nothing. Dry runs print the notice without prompting, matching the epoch-remaining prompt, because a simulation signs and sends nothing. A non-terminal stdin also prints without prompting — `read_line` there returns EOF, which the helper reads as "no", and keypair-from-stdin requires a non-terminal stdin, so a prompt would consume the keypair bytes. `--accept-deprecation-notice` skips the prompt for interactive batch and multi-seat workflows; the notice still prints. Declining exits non-zero, matching the epoch-remaining prompt, so a `shreds pay ... && ...` chain does not treat a decline as a completed payment (malbeclabs/infra#2164)
15-
- `shreds pay`: check the `--amount` floor against the price the program actually charges. A new instant seat allocation is priced from the metro/device ring entries at the execution controller's `last_settled_epoch` (the seat covers the remainder of the epoch currently being served), not from the newest entries — those two agree only while prices are static, so the epoch a metro repriced the preflight passed an underfunded amount through to an opaque `invalid account data for instruction`. A pure escrow top-up for an already-active seat submits no `RequestInstantSeatAllocation` and keeps its floor at the newest entry's price. When either ring has no entry for `last_settled_epoch` the command refuses to submit instead of falling back to the newest entry, mirroring the program's own error. The rejection message now names both prices and both epochs (#405)
16-
- `shreds price`: new `Instant Price (USDC)` column (`instant_allocation_price` in `--json`) with the remainder-of-epoch price, alongside the existing `Epoch Price` (unchanged: what the next settlement charges). The two differ for one epoch after a metro reprices. Empty when the execution controller or a ring entry for that epoch is missing; the rest of the listing still prints (#405)
17-
- RFC-20 verb contract: all CLI verbs now follow `execute(self, ctx: &CliContext, out: &mut impl Write)`. New global flags (`--env`, `--solana-url`/`--url`, `--dz-ledger-url`, `--keypair`) construct a `CliContext` at startup. Output uses `writeln!(out, ...)` for testability. Unblocks mounting into unified `doublezero` binary (#1517). Backwards compatible: invocations without the new global flags behave exactly as before — per-verb `--url`/`-u`, `--keypair`/`-k`, `--dz-env`, and `shreds --dz-ledger-url` keep their positions and their meaning, including everything the per-verb moniker implies (network environment, token mints, oracle key, serviceability program id, DZ Ledger URL), resolved per-verb from the moniker or the connection's genesis hash as before. The global flags only supply defaults; per-verb flags win.
18-
- `--env` uses the DoubleZero environment taxonomy (`mainnet-beta`, `testnet`, `devnet`, `local`), matching the `doublezero` CLI: `--env devnet` selects the DZ devnet environment (Solana L1 = testnet). To target the Solana devnet cluster (e.g. the testnet shred-subscription program), keep using `-u devnet` after the subcommand.
19-
- `shreds`: remove the testnet shred-subscription special-case that routed reads/writes to the DZ Ledger. The testnet shred-subscription program now lives on Solana devnet, so the `-u`/`--url` option resolves to the network's Solana RPC URL for all monikers; reach the testnet program with `-u devnet`. Write subcommands now build their `Wallet` directly from `-u`/`--url` (`Wallet::try_new(opts, None)`) and read subcommands from `SolanaConnection::from(connection_options)`, collapsing the redundant second connection that the special-case required. Device codes still resolve against the DZ Ledger via `--dz-ledger-url`. Mainnet behavior is unchanged (#1763)
20-
- migrate to Solana 3.0: workspace `solana-*` crates and `solana-sdk` move to the 3.0 line, `solana-program-test` to 3.0.12, and the doublezero SDK git-deps repin from `client/v0.27.1` to the malbeclabs/doublezero#3830 merge revision (malbeclabs/infra#1853)
21-
- release artifact now builds as a static `x86_64-unknown-linux-musl` binary so it runs on older glibc hosts (malbeclabs/infra#1853)
22-
- TLS for HTTP clients moves from openssl to rustls; trust roots are the bundled webpki Mozilla set plus the host OS certificate store, so OS-installed private CAs remain trusted (malbeclabs/infra#1853)
2318

2419
## [0.5.10](https://github.com/doublezerofoundation/doublezero-offchain/releases/tag/doublezero-solana/v0.5.10)
2520

offchain/crates/solana-cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "doublezero-solana-cli"
33
description = "Command line to interact with DoubleZero Solana programs"
4-
version = "0.5.10"
4+
version = "0.5.12"
55

66
# Workspace inherited keys
77
edition = "2024"

0 commit comments

Comments
 (0)