mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-01-23 05:40:57 +00:00
feat(legacy): do not convert bech32 addresses to uppercase for QR code
feat(legacy): maintain big QR code for taproot addresses
This commit is contained in:
parent
e3d5c178f1
commit
093be69dfb
1
legacy/firmware/.changelog.d/2190.changed
Normal file
1
legacy/firmware/.changelog.d/2190.changed
Normal file
@ -0,0 +1 @@
|
||||
Do not convert bech32 addresses to uppercase in QR code to increase compatibility
|
@ -253,9 +253,7 @@ void fsm_msgGetAddress(const GetAddress *msg) {
|
||||
}
|
||||
|
||||
bool is_cashaddr = coin->cashaddr_prefix != NULL;
|
||||
bool is_bech32 = msg->script_type == InputScriptType_SPENDWITNESS ||
|
||||
msg->script_type == InputScriptType_SPENDTAPROOT;
|
||||
if (!fsm_layoutAddress(address, desc, is_cashaddr || is_bech32,
|
||||
if (!fsm_layoutAddress(address, desc, is_cashaddr,
|
||||
is_cashaddr ? strlen(coin->cashaddr_prefix) + 1 : 0,
|
||||
msg->address_n, msg->address_n_count, false,
|
||||
msg->has_multisig ? &(msg->multisig) : NULL,
|
||||
|
@ -787,8 +787,12 @@ void layoutAddress(const char *address, const char *desc, bool qrcode,
|
||||
}
|
||||
|
||||
oledInvert(0, 0, 63, 63);
|
||||
if (side > 0 && side <= 29) {
|
||||
int offset = 32 - side;
|
||||
if (side > 0 && side <= 33) {
|
||||
// For QR code V4 (33x33), still maintaining two pixels per module
|
||||
// so that it is nicely readable. Not showing the bottom row,
|
||||
// which is not a problem thanks to the QR code's error correction.
|
||||
// It is a use-case for BTC taproot addresses.
|
||||
int offset = side <= 29 ? 32 - side : 0;
|
||||
for (int i = 0; i < side; i++) {
|
||||
for (int j = 0; j < side; j++) {
|
||||
if (qrcodegen_getModule(codedata, i, j)) {
|
||||
|
Loading…
Reference in New Issue
Block a user