feat(wallet): add keycard support for public accounts for public/privacy txs for program facades#461
Open
jonesmarvin8 wants to merge 98 commits into
Open
feat(wallet): add keycard support for public accounts for public/privacy txs for program facades#461jonesmarvin8 wants to merge 98 commits into
jonesmarvin8 wants to merge 98 commits into
Conversation
Collaborator
Author
|
(keycard_wallet.py) This one didn't move this round. DEFAULT_PAIRING_PASSWORD is still a hardcoded module-level string used as the default in setup_communication, so any wallet (or card this wrapper has touched) can pair without a secret and PIN becomes the only moat. Easiest fix: drop the default and read from KEYCARD_PAIRING_PASSWORD env or a prompt, same shape as --pin now. Fine to defer. |
Collaborator
Author
I wasn't able to generate the unpowered issue locally. I added branching logic in case this is detected, and a test file |
Collaborator
Author
|
expect tautology issues (cli/keycard.rs) |
Brings in keycard-commands (merged as PR #451) plus all subsequent main commits (bench tools, test_fixtures, faucet/audit fixes, CI updates). Conflict resolution: - keycard_wallet/: kept HEAD throughout (S-padding fix, zeroize, private key methods, get_public_account_id_for_path_with_connect naming) - wallet/src/signing.rs: kept HEAD (add_required/add_optional names, KeycardSessionContext) - wallet/src/lib.rs: kept HEAD (ExecutionFailureKind::from_anyhow helper) - wallet/src/cli/mod.rs: kept HEAD (key_path() method) - wallet/src/program_facades/native_token_transfer/public.rs: kept HEAD (main's register_account references undefined nonces) - Cargo.toml: HEAD + added test_fixtures/tools members and criterion dep from main; kept zeroize workspace dep - docs/keycard.md: merged both (HEAD content + main's Testing/SigningGroups sections; added wallet_with_keycard.sh mention)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🎯 Purpose
Integration for Keycard. Add supports for shielded transactions for
auth-transfersas well as public/shielded transactions for token program and amm. Additionally, adds a subcommand toKeycardto get private account secret keys from Keycard (demonstration that this feature can be used later).⚙️ Approach
Updated:
SigningGroupto support mixture of local/keycard accounts.send_privacy_preserving_tx_with_pre_checkandsend_privacy_preserving_tx.keycard-debugfeature.🧪 How to Test
Disclaimer: Keycard must be setup following these directions.
All previous tests should work. Additionally, keycard can be tested manually using the files
keycard_tests_1.sh,keycard_tests_2.shandkeycard_test_3.sh.For convenience, I have made additional test files
keycard_tests_2_1.sh(Token),keycard_tests_2_2.sh(AMM) andkeycard_tests_2_3.sh(ATA). These files consist of all of the same tests and key paths fromkeycard_tests_2.sh. These separate files may be easier to run in case of hardware issues with keycard. Each file must be ran consecutively as accounts used inkeycard_tests_2_3.shmay have been initialized inkeycard_tests_2_1.sh.🔗 Dependencies
Builds off of PR 451
🔜 Future Work
Potentially, add logic to use Keycard for deshielded and private accounts. This is deferred till wallet logic is cleaned up as discussed on discord.
📋 PR Completion Checklist
Mark only completed items. A complete PR should have all boxes ticked.