Feat/support keystone#11944
Conversation
- Updated Cargo.toml to include dependencies for rusb, ur-registry, and ur-parse-lib. - Added documentation for using Keystone hardware wallets with the Solana CLI. - Implemented KeystoneWallet struct and associated methods for USB communication. - Enhanced remote wallet functionality to detect and interact with Keystone devices. - Updated locator and remote wallet modules to support Keystone as a manufacturer.
|
sign_offchain_message delegates directly to sign_message, which hardcodes SignType::Transaction. Off-chain messages will be presented to the Keystone firmware as transactions, breaking domain separation — the hardware wallet cannot show the user the correct signing context ("Sign Message" vs "Sign Transaction"). |
hi, @0jovi0 This means that even if the internal sign type is hardcoded, the device correctly identifies the data type and renders the appropriate UI ("Sign Message" vs. "Sign Transaction") based on the UR content. Thank you for your suggestion. |
|
Hi @joncinque , could you please take a look at this PR when you have a chance? I'd appreciate your feedback. Thanks! |
| ur-registry = { git = "https://github.com/KeystoneHQ/keystone-sdk-rust.git", tag = "0.0.56", default-features = false, features = ["std"] } | ||
| ur-parse-lib = { git = "https://github.com/KeystoneHQ/keystone-sdk-rust.git", tag = "0.0.56" } |
There was a problem hiding this comment.
We can't accept this PR with git dependencies, since the agave crates are published to crates.io. Is there any plan to publish these?
|
Thanks for your contribution! I did a quick pass, but it looks like everything makes sense architecturally. We just need to figure out the ur-registry and ur-parse-lib dependencies before I can take a closer look |
Problem
The Solana CLI did not support Keystone hardware wallets.
Summary of Changes
remote-walletto extract wallet scanning and wallet-type dispatch, making it easier to add new hardware wallet types.rusbrusb,ur-registry, andur-parse-libFixes #