diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2138333..3744e33 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ jobs: {"packages":["tinywallet-web3"],"all_targets":true} ] module-e2e-script: scripts/test-e2e.sh - module-e2e-toolchain: '1.88.0' + module-e2e-toolchain: '1.89.0' feature-test-script: scripts/test-features.sh wallet-ledger-msrv: @@ -41,7 +41,7 @@ jobs: submodules: recursive - uses: dtolnay/rust-toolchain@683b588c487a69d01f6c6ddf40f036ff682cc2c8 # stable with: - toolchain: '1.88.0' + toolchain: '1.89.0' - name: Test the x402 ledger consumer at its minimum Rust version run: cargo test --locked -p tinywallet-x402 --features ledger @@ -100,7 +100,7 @@ jobs: submodules: recursive - uses: dtolnay/rust-toolchain@683b588c487a69d01f6c6ddf40f036ff682cc2c8 # stable with: - toolchain: '1.88.0' + toolchain: '1.89.0' - name: Compile the excluded canonical-type consumer run: cargo test --locked --manifest-path proof-workspaces/storage-contract/Cargo.toml - name: Keep the storage contract's normal/build graph data-only diff --git a/Cargo.lock b/Cargo.lock index 2c37645..d975bdb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1191,9 +1191,9 @@ checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a" [[package]] name = "libsqlite3-sys" -version = "0.38.2" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1d20bef17f513b9b3004532233187769cd072d790971f4e4da0e346eb6401e8" +checksum = "14a5f01b87b92705d07b433c06f96cbc764637d81a0bffb5734ce17cf0f9a2b3" dependencies = [ "cc", "pkg-config", @@ -1573,9 +1573,9 @@ dependencies = [ [[package]] name = "rusqlite" -version = "0.40.2" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23f2a97da3e3873c73cb2a2e71b35c40ff95e0b1eefa8d72d8499a6928c3b5b3" +checksum = "da9bba6f3506135e120a6586df05be18b48d18896600646a4bec8f993d91a594" dependencies = [ "bitflags", "fallible-iterator", @@ -1597,9 +1597,9 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.5" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" +checksum = "e5e76742e5294153d4dde1207dbec5bdd81eef6fabdc0d2118babadabfd858aa" dependencies = [ "bitflags", "errno", @@ -2044,8 +2044,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-api" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "async-trait", "bytes", @@ -2058,8 +2058,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-blob" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "async-trait", "bytes", @@ -2072,8 +2072,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-bus" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "serde", "serde_json", @@ -2083,8 +2083,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-busproxy" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "async-trait", "bytes", @@ -2101,8 +2101,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-connect" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "rusqlite", "serde_json", @@ -2113,8 +2113,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-document" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "async-trait", "data-encoding", @@ -2131,8 +2131,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-kv" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "async-trait", "serde", @@ -2143,8 +2143,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-queue" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "async-trait", "data-encoding", @@ -2159,8 +2159,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-secrets" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "async-trait", "tinystoragedrivers-api", @@ -2170,8 +2170,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-testkit" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "async-trait", "bytes", @@ -2191,8 +2191,8 @@ dependencies = [ [[package]] name = "tinystoragedrivers-types" -version = "2.1.2" -source = "git+https://github.com/senamakel/tinystoragedrivers?rev=c447da3#c447da319e41dfe17bba4afb1831fe0cf0eef154" +version = "2.1.3" +source = "git+https://github.com/tinyhumansai/tinystoragedrivers?rev=f5a33025b9feaa36fea522cce764fe8c796e5139#f5a33025b9feaa36fea522cce764fe8c796e5139" dependencies = [ "serde", "serde_json", @@ -2922,9 +2922,9 @@ checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "xattr" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +checksum = "963d6fab92d5504b971dc8bd90ca743c2575e590bc8071ea5bc571598667ae08" dependencies = [ "libc", "rustix", diff --git a/Cargo.toml b/Cargo.toml index 2129665..762eb7f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "tinywallet" version = "0.29.0" edition = "2024" -rust-version = "1.88" +rust-version = "1.89" license = "GPL-3.0-only" description = "Agent-friendly multi-chain wallet primitives in Rust." repository = "https://github.com/tinyhumansai/tinywallet" @@ -62,12 +62,12 @@ resolver = "3" tinytools = { git = "https://github.com/tinyhumansai/tinytools", rev = "41cc80ac9acf37a14f20be94f60ee552749f1540" } # TinyBus host SDK used by the separately shipped typed client crate. Pin the # fork revision that matches the vendored ABI and TSD's bus transport. -tinybus = { version = "=0.3.12", git = "https://github.com/senamakel/tinybus", rev = "85345114f3066e94d5d70161ea8dc43252b83ae6", default-features = false, features = ["macros", "modules"] } +tinybus = { version = "=0.3.12", git = "https://github.com/tinyhumansai/tinybus", rev = "85345114f3066e94d5d70161ea8dc43252b83ae6", default-features = false, features = ["macros", "modules"] } # Runtime-neutral contracts shared with the host's stable TSD release. -tinystoragedrivers-types = { version = "2.1.2", git = "https://github.com/senamakel/tinystoragedrivers", rev = "c447da3" } -tinystoragedrivers-api = { version = "2.1.2", git = "https://github.com/senamakel/tinystoragedrivers", rev = "c447da3" } +tinystoragedrivers-types = { version = "2.1.3", git = "https://github.com/tinyhumansai/tinystoragedrivers", rev = "f5a33025b9feaa36fea522cce764fe8c796e5139" } +tinystoragedrivers-api = { version = "2.1.3", git = "https://github.com/tinyhumansai/tinystoragedrivers", rev = "f5a33025b9feaa36fea522cce764fe8c796e5139" } # The module connects to host-owned storage through the TinyBus adapter. -tinystoragedrivers-busproxy = { version = "2.1.2", git = "https://github.com/senamakel/tinystoragedrivers", rev = "c447da3" } +tinystoragedrivers-busproxy = { version = "2.1.3", git = "https://github.com/tinyhumansai/tinystoragedrivers", rev = "f5a33025b9feaa36fea522cce764fe8c796e5139" } [dependencies] # The wire contract. Split out so a host that has moved signing into the @@ -252,11 +252,6 @@ tinybus = { path = "vendor/tinybus/crates/tinybus" } tinybus-module = { path = "vendor/tinybus/crates/tinybus-module" } tinybus-macros = { path = "vendor/tinybus/crates/tinybus-macros" } -[patch."https://github.com/senamakel/tinybus"] -tinybus = { path = "vendor/tinybus/crates/tinybus" } -tinybus-module = { path = "vendor/tinybus/crates/tinybus-module" } -tinybus-macros = { path = "vendor/tinybus/crates/tinybus-macros" } - [workspace.lints.rust] unsafe_code = "forbid" missing_docs = "warn" diff --git a/crates/tinywallet-bus/Cargo.toml b/crates/tinywallet-bus/Cargo.toml index c1a1c86..09a76ab 100644 --- a/crates/tinywallet-bus/Cargo.toml +++ b/crates/tinywallet-bus/Cargo.toml @@ -2,7 +2,7 @@ name = "tinywallet-bus" version = "0.29.0" edition = "2024" -rust-version = "1.88" +rust-version = "1.89" license = "GPL-3.0-only" description = "The TinyBus wire contract for TinyWallet: member names, payload types, and contract version." repository = "https://github.com/tinyhumansai/tinywallet" diff --git a/crates/tinywallet-bus/README.md b/crates/tinywallet-bus/README.md index 22e0bb0..f5f0e05 100644 --- a/crates/tinywallet-bus/README.md +++ b/crates/tinywallet-bus/README.md @@ -6,7 +6,7 @@ x402 ledger's storage collection declarations and stored record vocabulary. Collection declarations are bus-owned names, without a storage backend, client, or transport dependency. -The bus contract supports Rust 1.88. The excluded collection-contract consumer +The bus contract supports Rust 1.89. The excluded collection-contract consumer checks the public collection names without depending on a storage crate. Network enums in the bus are identifiers only. RPC endpoints, explorer URLs, diff --git a/crates/tinywallet-client/Cargo.toml b/crates/tinywallet-client/Cargo.toml index e73121e..6f3b817 100644 --- a/crates/tinywallet-client/Cargo.toml +++ b/crates/tinywallet-client/Cargo.toml @@ -2,7 +2,7 @@ name = "tinywallet-client" version = "0.29.0" edition = "2024" -rust-version = "1.88" +rust-version = "1.89" license = "GPL-3.0-only" description = "Typed TinyBus host client for the TinyWallet module." repository = "https://github.com/tinyhumansai/tinywallet" diff --git a/crates/tinywallet-crypto/Cargo.toml b/crates/tinywallet-crypto/Cargo.toml index 91ba566..3516c88 100644 --- a/crates/tinywallet-crypto/Cargo.toml +++ b/crates/tinywallet-crypto/Cargo.toml @@ -2,7 +2,7 @@ name = "tinywallet-crypto" version = "0.29.0" edition = "2024" -rust-version = "1.88" +rust-version = "1.89" license = "GPL-3.0-only" description = "Pure crypto-rail primitives for TinyWallet: chains, addresses, reference data, the RPC transport seam, and transaction verification." repository = "https://github.com/tinyhumansai/tinywallet" diff --git a/crates/tinywallet-module/Cargo.toml b/crates/tinywallet-module/Cargo.toml index 0dec9e0..7c56716 100644 --- a/crates/tinywallet-module/Cargo.toml +++ b/crates/tinywallet-module/Cargo.toml @@ -2,7 +2,7 @@ name = "tinywallet-module" version = "0.29.0" edition = "2024" -rust-version = "1.88" +rust-version = "1.89" license = "GPL-3.0-only" description = "Trusted TinyBus module adapter for TinyWallet." repository = "https://github.com/tinyhumansai/tinywallet" @@ -46,12 +46,12 @@ tinywallet = { path = "../..", default-features = false, features = [ "abi", ] } # TinyBus provides the typed service interface and the dynamic module host ABI. -tinybus = { version = "=0.3.12", git = "https://github.com/senamakel/tinybus", rev = "85345114f3066e94d5d70161ea8dc43252b83ae6", default-features = false, features = [ +tinybus = { version = "=0.3.12", git = "https://github.com/tinyhumansai/tinybus", rev = "85345114f3066e94d5d70161ea8dc43252b83ae6", default-features = false, features = [ "macros", "modules", ] } # The module-side SDK owns its runtime and exports the stable C entrypoints. -tinybus-module = { version = "=0.3.12", git = "https://github.com/senamakel/tinybus", rev = "85345114f3066e94d5d70161ea8dc43252b83ae6" } +tinybus-module = { version = "=0.3.12", git = "https://github.com/tinyhumansai/tinybus", rev = "85345114f3066e94d5d70161ea8dc43252b83ae6" } # The module runtime drives asynchronous host callbacks and serializes service # lifecycle changes against in-flight operations. tokio = { version = "1", features = ["macros", "rt-multi-thread", "sync", "time"] } @@ -101,7 +101,7 @@ workspace = true [dev-dependencies] # Testkit-backed module storage fixtures exercise the host's v2 storage ports. -tinystoragedrivers-testkit = { version = "2.1.2", git = "https://github.com/senamakel/tinystoragedrivers", rev = "c447da3" } +tinystoragedrivers-testkit = { version = "2.1.3", git = "https://github.com/tinyhumansai/tinystoragedrivers", rev = "f5a33025b9feaa36fea522cce764fe8c796e5139" } # Encodes and decodes the Solana transaction fixtures in native tests. base64 = "0.23" # The native lifecycle fixture stages and hashes the actual cdylib to attest it. @@ -110,7 +110,7 @@ sha2 = "0.11" tempfile = "3" # The loader E2E admits the built module from its adjacent digest manifest and # uses TinyBus's shared lifecycle helpers. -tinybus = { version = "=0.3.12", git = "https://github.com/senamakel/tinybus", rev = "85345114f3066e94d5d70161ea8dc43252b83ae6", default-features = false, features = [ +tinybus = { version = "=0.3.12", git = "https://github.com/tinyhumansai/tinybus", rev = "85345114f3066e94d5d70161ea8dc43252b83ae6", default-features = false, features = [ "macros", "modules", "test-support", diff --git a/crates/tinywallet-web3/Cargo.toml b/crates/tinywallet-web3/Cargo.toml index b07524f..b2a2aec 100644 --- a/crates/tinywallet-web3/Cargo.toml +++ b/crates/tinywallet-web3/Cargo.toml @@ -2,7 +2,7 @@ name = "tinywallet-web3" version = "0.29.0" edition = "2024" -rust-version = "1.88" +rust-version = "1.89" license = "GPL-3.0-only" description = "Wallet, swap, bridge and dapp flows for TinyWallet, behind host seams." repository = "https://github.com/tinyhumansai/tinywallet" diff --git a/crates/tinywallet-x402/Cargo.toml b/crates/tinywallet-x402/Cargo.toml index 3863a41..6070dd3 100644 --- a/crates/tinywallet-x402/Cargo.toml +++ b/crates/tinywallet-x402/Cargo.toml @@ -2,7 +2,7 @@ name = "tinywallet-x402" version = "0.29.0" edition = "2024" -rust-version = "1.88" +rust-version = "1.89" license = "GPL-3.0-only" description = "The x402 machine-payment protocol for TinyWallet: wire types, EIP-712 and ERC-20 encoding, the payment ledger, the 402 client, and the x402_request agent tool." repository = "https://github.com/tinyhumansai/tinywallet" @@ -95,7 +95,7 @@ tinywallet = { path = "../..", default-features = false, features = ["key", "sol k256 = { version = "0.14", default-features = false, features = ["ecdsa"] } ed25519-dalek = { version = "2", default-features = false, features = ["std"] } # Native ledger migration tests use an in-memory v2 storage implementation. -tinystoragedrivers-testkit = { version = "2.1.2", git = "https://github.com/senamakel/tinystoragedrivers", rev = "c447da3" } +tinystoragedrivers-testkit = { version = "2.1.3", git = "https://github.com/tinyhumansai/tinystoragedrivers", rev = "f5a33025b9feaa36fea522cce764fe8c796e5139" } [features] default = ["wire"] diff --git a/crates/tinywallet-x402/README.md b/crates/tinywallet-x402/README.md index 6d5afa7..7d3edf2 100644 --- a/crates/tinywallet-x402/README.md +++ b/crates/tinywallet-x402/README.md @@ -95,7 +95,7 @@ migration; it opens only after receiving that host-provisioned storage handle. storage handle provided by its host. - `tools` needs a compiler new enough for `tinytools` (1.88), and `ledger` for the stable `tinystoragedrivers-api` / `tinystoragedrivers-types` contracts - (1.88), matching this crate's declared minimum. The other features build on + (1.89), matching this crate's declared minimum. The other features build on that MSRV, except that `pay` pulls `reqwest`, whose `icu` dependencies need a - newer compiler than 1.88 with a current lockfile. + newer compiler than 1.89 with a current lockfile. - Error strings are user-visible and pinned by tests. diff --git a/deny.toml b/deny.toml index 20bc816..393e3fb 100644 --- a/deny.toml +++ b/deny.toml @@ -53,9 +53,10 @@ unknown-git = "deny" allow-registry = ["https://github.com/rust-lang/crates.io-index"] # `tinytools` is a git dependency of `tinywallet-x402` and `tinywallet-web3` (the # `tools` features), by rev, so a host that already links it can patch this exact -# URL to its own copy. Nothing else may come from git. +# URL to its own copy. tinystoragedrivers and tinybus are pinned to official +# tinyhumansai revisions. Nothing else may come from git. allow-git = [ "https://github.com/tinyhumansai/tinytools", - "https://github.com/senamakel/tinystoragedrivers", - "https://github.com/senamakel/tinybus", + "https://github.com/tinyhumansai/tinystoragedrivers", + "https://github.com/tinyhumansai/tinybus", ] diff --git a/proof-workspaces/storage-contract/Cargo.toml b/proof-workspaces/storage-contract/Cargo.toml index 1f2a07f..25cb3be 100644 --- a/proof-workspaces/storage-contract/Cargo.toml +++ b/proof-workspaces/storage-contract/Cargo.toml @@ -2,7 +2,7 @@ name = "tinywallet-storage-contract-consumer" version = "0.0.0" edition = "2024" -rust-version = "1.88" +rust-version = "1.89" publish = false [workspace] diff --git a/proof-workspaces/storage-contract/README.md b/proof-workspaces/storage-contract/README.md index 2d648ae..8c93496 100644 --- a/proof-workspaces/storage-contract/README.md +++ b/proof-workspaces/storage-contract/README.md @@ -3,5 +3,5 @@ This directory is excluded from the TinyWallet workspace and has its own lock file. It compiles the public `tinywallet_bus::storage::collections()` API from a downstream crate using the bus-owned collection declaration, without a -TinyStorageDrivers dependency. The CI job runs this consumer with Rust 1.88 +TinyStorageDrivers dependency. The CI job runs this consumer with Rust 1.89 and `--locked`. diff --git a/scripts/build-module-in-distro.sh b/scripts/build-module-in-distro.sh index 8cfd751..b3950de 100644 --- a/scripts/build-module-in-distro.sh +++ b/scripts/build-module-in-distro.sh @@ -26,7 +26,7 @@ echo "$rustup_sha $installer" | sha256sum --check --status || { exit 1 } chmod +x "$installer" -"$installer" -y --profile minimal --default-toolchain 1.88.0 --no-modify-path +"$installer" -y --profile minimal --default-toolchain 1.89.0 --no-modify-path rm -f "$installer" source "$HOME/.cargo/env" diff --git a/scripts/test_native_e2e_topology.py b/scripts/test_native_e2e_topology.py index acc7c7f..42f4f43 100644 --- a/scripts/test_native_e2e_topology.py +++ b/scripts/test_native_e2e_topology.py @@ -45,10 +45,10 @@ def _msrv_contract_issues(workflow): module_manifest = tomllib.loads((ROOT / "crates/tinywallet-module/Cargo.toml").read_text()) bus_floor = bus_manifest["package"]["rust-version"] module_floor = module_manifest["package"]["rust-version"] - if bus_floor != "1.88": - issues.append("tinywallet-bus floor must match tinystoragedrivers-types Rust 1.88") - if module_floor != "1.88": - issues.append("tinywallet-module floor must match its Rust 1.88 runtime dependencies") + if bus_floor != "1.89": + issues.append("tinywallet-bus floor must match tinystoragedrivers-types Rust 1.89") + if module_floor != "1.89": + issues.append("tinywallet-module floor must match its Rust 1.89 runtime dependencies") bus_wire = any( target.get("packages") == ["tinywallet-bus"] @@ -57,7 +57,7 @@ def _msrv_contract_issues(workflow): for target in targets ) if not bus_wire: - issues.append("shared MSRV matrix must build the bus wire feature at Rust 1.88") + issues.append("shared MSRV matrix must build the bus wire feature at Rust 1.89") bus_all_features = any( target.get("packages") == ["tinywallet-bus"] and target.get("all_targets", False) @@ -65,7 +65,7 @@ def _msrv_contract_issues(workflow): for target in targets ) if not bus_all_features: - issues.append("shared MSRV matrix must build bus storage vocabulary all-features at Rust 1.88") + issues.append("shared MSRV matrix must build bus storage vocabulary all-features at Rust 1.89") module_matrix = any( target.get("packages") == ["tinywallet-module"] and target.get("all_targets", False) @@ -73,30 +73,30 @@ def _msrv_contract_issues(workflow): for target in targets ) if not module_matrix: - issues.append("shared MSRV matrix must build all module targets/features at its Rust 1.88 floor") + issues.append("shared MSRV matrix must build all module targets/features at its Rust 1.89 floor") ledger_job = _job_block(workflow, "wallet-ledger-msrv") - if "toolchain: '1.88.0'" not in ledger_job: - issues.append("x402 ledger feature job must use Rust 1.88.0") + if "toolchain: '1.89.0'" not in ledger_job: + issues.append("x402 ledger feature job must use Rust 1.89.0") if "cargo test --locked -p tinywallet-x402 --features ledger" not in ledger_job: - issues.append("Rust 1.88 ledger job must test the x402 ledger consumer") + issues.append("Rust 1.89 ledger job must test the x402 ledger consumer") if "tinywallet-bus --all-targets --all-features" in ledger_job: - issues.append("bus all-features must stay in the bus package's Rust 1.88 matrix target") + issues.append("bus all-features must stay in the bus package's Rust 1.89 matrix target") proof_job = _job_block(workflow, "wallet-storage-contract") - if "toolchain: '1.88.0'" not in proof_job or ( + if "toolchain: '1.89.0'" not in proof_job or ( "cargo test --locked --manifest-path proof-workspaces/storage-contract/Cargo.toml" not in proof_job ): - issues.append("storage collection contract proof must be tested on Rust 1.88") + issues.append("storage collection contract proof must be tested on Rust 1.89") bus_docs = (ROOT / "crates/tinywallet-bus/README.md").read_text() bus_manifest_text = (ROOT / "crates/tinywallet-bus/Cargo.toml").read_text() x402_manifest_text = (ROOT / "crates/tinywallet-x402/Cargo.toml").read_text() - if "Rust 1.88" not in bus_docs or "tinystoragedrivers-types" in bus_manifest_text: - issues.append("bus docs and manifest must keep portable collection declarations free of storage-driver dependencies at Rust 1.88") - if not all(word in x402_manifest_text for word in ("1.88", "ledger", "pay", "tools")): - issues.append("x402 manifest must document the Rust 1.88 ledger/pay/tools feature floor") + if "Rust 1.89" not in bus_docs or "tinystoragedrivers-types" in bus_manifest_text: + issues.append("bus docs and manifest must keep portable collection declarations free of storage-driver dependencies at Rust 1.89") + if not all(word in x402_manifest_text for word in ("1.89", "ledger", "pay", "tools")): + issues.append("x402 manifest must document the Rust 1.89 ledger/pay/tools feature floor") return issues @@ -111,7 +111,7 @@ def test_msrv_contract_requires_bus_storage_vocabulary_allfeatures_at_its_1_88_f self.assertIn(bus_all_features, workflow) mutated = workflow.replace(bus_all_features, "", 1) self.assertIn( - "shared MSRV matrix must build bus storage vocabulary all-features at Rust 1.88", + "shared MSRV matrix must build bus storage vocabulary all-features at Rust 1.89", _msrv_contract_issues(mutated), ) @@ -119,11 +119,11 @@ def test_msrv_contract_rejects_lowering_the_x402_ledger_job_toolchain(self): workflow = (ROOT / ".github/workflows/ci.yml").read_text() ledger_job = _job_block(workflow, "wallet-ledger-msrv") self.assertTrue(ledger_job) - mutated_job = ledger_job.replace("toolchain: '1.88.0'", "toolchain: '1.85.1'", 1) + mutated_job = ledger_job.replace("toolchain: '1.89.0'", "toolchain: '1.85.1'", 1) self.assertNotEqual(ledger_job, mutated_job) mutated = workflow.replace(ledger_job, mutated_job, 1) self.assertIn( - "x402 ledger feature job must use Rust 1.88.0", + "x402 ledger feature job must use Rust 1.89.0", _msrv_contract_issues(mutated), )