ci / gate (push) Successful in 4m38s
`wallet_data::keys::MlDsa` implements the `KeyScheme` port for ML-DSA-65 and ML-DSA-87 on Quantus's own crates: hdwallet for the all-hardened `m/44'/189189'/account'/change'/index'` derivation, dilithium for FIPS 204 signing, poseidon for the account id the runtime derives from a public key. Signing is hedged with fresh OS randomness, and an empty context means "no context", the pre-spec-148 rule, rather than a zero-length one. The test vectors are six addresses produced by quantus-cli 2.2.2 for the polkadot-js dev phrase, three paths per scheme; two of them are also the addresses inside the extension fork's CLI-wallet fixtures. A signature made under `QUANTUS_EXTRINSIC` verifies, and the same signature under the empty context does not, which is the mistake that would otherwise reach mainnet as a cryptographically valid, chain-rejected transaction. `Signer` now requires `Debug`, so every implementation has to write one, and the one here redacts. The seed is a 64-byte wiping holder with a `Debug` that prints nothing. SS58 lives in `wallet_core::ss58`, blake2 and base58 only; decoding returns the prefix so a foreign address can be refused by name. Closes #14 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014ftBXYuba8ARhQeF74oUgW