From 05d655e99696661e8577be03d0c2da1dcd14cb9d Mon Sep 17 00:00:00 2001 From: Michele Balistreri Date: Fri, 17 Oct 2025 09:22:36 +0900 Subject: [PATCH 1/2] add Keycard Shell --- .../com/sparrowwallet/drongo/wallet/WalletModel.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sparrowwallet/drongo/wallet/WalletModel.java b/src/main/java/com/sparrowwallet/drongo/wallet/WalletModel.java index 8c63a03..8deef73 100644 --- a/src/main/java/com/sparrowwallet/drongo/wallet/WalletModel.java +++ b/src/main/java/com/sparrowwallet/drongo/wallet/WalletModel.java @@ -5,7 +5,8 @@ import java.util.Locale; public enum WalletModel { SEED, SPARROW, BITCOIN_CORE, ELECTRUM, TREZOR_1, TREZOR_T, COLDCARD, LEDGER_NANO_S, LEDGER_NANO_X, DIGITALBITBOX_01, KEEPKEY, SPECTER_DESKTOP, COBO_VAULT, BITBOX_02, SPECTER_DIY, PASSPORT, BLUE_WALLET, KEYSTONE, SEEDSIGNER, CARAVAN, GORDIAN_SEED_TOOL, JADE, LEDGER_NANO_S_PLUS, EPS, TAPSIGNER, SATSCARD, LABELS, - BSMS, KRUX, SATOCHIP, TRANSACTIONS, AIRGAP_VAULT, TREZOR_SAFE_3, SATSCHIP, SAMOURAI, TREZOR_SAFE_5, LEDGER_STAX, LEDGER_FLEX, ONEKEY_CLASSIC_1S, ONEKEY_PRO; + BSMS, KRUX, SATOCHIP, TRANSACTIONS, AIRGAP_VAULT, TREZOR_SAFE_3, SATSCHIP, SAMOURAI, TREZOR_SAFE_5, LEDGER_STAX, LEDGER_FLEX, ONEKEY_CLASSIC_1S, ONEKEY_PRO, + KEYCARD_SHELL; public static WalletModel getModel(String model) { return valueOf(model.toUpperCase(Locale.ROOT)); @@ -56,12 +57,16 @@ public enum WalletModel { return "onekey"; } + if(this == KEYCARD_SHELL) { + return "keycard"; + } + return this.toString().toLowerCase(Locale.ROOT); } public boolean alwaysIncludeNonWitnessUtxo() { if(this == COLDCARD || this == COBO_VAULT || this == PASSPORT || this == KEYSTONE || this == GORDIAN_SEED_TOOL || this == SEEDSIGNER || this == KRUX || this == JADE || - this == TAPSIGNER || this == SATOCHIP) { + this == TAPSIGNER || this == SATOCHIP || this == KEYCARD_SHELL) { return false; } From 061dca1baf4ed135df7b14470590448d11f69a76 Mon Sep 17 00:00:00 2001 From: Michele Balistreri Date: Sat, 18 Oct 2025 07:40:56 +0900 Subject: [PATCH 2/2] add Keycard --- .../sparrowwallet/drongo/wallet/WalletModel.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/sparrowwallet/drongo/wallet/WalletModel.java b/src/main/java/com/sparrowwallet/drongo/wallet/WalletModel.java index 8deef73..d58f3ad 100644 --- a/src/main/java/com/sparrowwallet/drongo/wallet/WalletModel.java +++ b/src/main/java/com/sparrowwallet/drongo/wallet/WalletModel.java @@ -6,7 +6,7 @@ public enum WalletModel { SEED, SPARROW, BITCOIN_CORE, ELECTRUM, TREZOR_1, TREZOR_T, COLDCARD, LEDGER_NANO_S, LEDGER_NANO_X, DIGITALBITBOX_01, KEEPKEY, SPECTER_DESKTOP, COBO_VAULT, BITBOX_02, SPECTER_DIY, PASSPORT, BLUE_WALLET, KEYSTONE, SEEDSIGNER, CARAVAN, GORDIAN_SEED_TOOL, JADE, LEDGER_NANO_S_PLUS, EPS, TAPSIGNER, SATSCARD, LABELS, BSMS, KRUX, SATOCHIP, TRANSACTIONS, AIRGAP_VAULT, TREZOR_SAFE_3, SATSCHIP, SAMOURAI, TREZOR_SAFE_5, LEDGER_STAX, LEDGER_FLEX, ONEKEY_CLASSIC_1S, ONEKEY_PRO, - KEYCARD_SHELL; + KEYCARD_SHELL, KEYCARD; public static WalletModel getModel(String model) { return valueOf(model.toUpperCase(Locale.ROOT)); @@ -57,7 +57,7 @@ public enum WalletModel { return "onekey"; } - if(this == KEYCARD_SHELL) { + if(this == KEYCARD_SHELL || this == KEYCARD) { return "keycard"; } @@ -66,7 +66,7 @@ public enum WalletModel { public boolean alwaysIncludeNonWitnessUtxo() { if(this == COLDCARD || this == COBO_VAULT || this == PASSPORT || this == KEYSTONE || this == GORDIAN_SEED_TOOL || this == SEEDSIGNER || this == KRUX || this == JADE || - this == TAPSIGNER || this == SATOCHIP || this == KEYCARD_SHELL) { + this == TAPSIGNER || this == SATOCHIP || this == KEYCARD_SHELL || this == KEYCARD) { return false; } @@ -82,7 +82,7 @@ public enum WalletModel { } public boolean isCard() { - return (this == TAPSIGNER || this == SATSCHIP || this == SATSCARD || this == SATOCHIP); + return (this == TAPSIGNER || this == SATSCHIP || this == SATSCARD || this == SATOCHIP || this == KEYCARD); } public boolean hasUsb() { @@ -99,7 +99,9 @@ public enum WalletModel { } public int getMaxPinLength() { - if(this == SATOCHIP) { + if(this == KEYCARD) { + return 6; + } else if(this == SATOCHIP) { return 16; } else { return 32; @@ -123,7 +125,7 @@ public enum WalletModel { } public boolean requiresSeedInitialization() { - if(this == SATOCHIP) { + if(this == SATOCHIP || this == KEYCARD) { return true; } else { return false; @@ -131,7 +133,7 @@ public enum WalletModel { } public boolean supportsBackup() { - if(this == SATOCHIP || this == SATSCHIP) { + if(this == SATOCHIP || this == SATSCHIP || this == KEYCARD) { return false; } else { return true;