SeedSigner / seedsigner

Use an air-gapped Raspberry Pi Zero to sign for Bitcoin transactions! (and do other cool stuff)
MIT License
699 stars 161 forks source link

QR Encoder refactor + fountain encoder `restart()` #494

Closed kdmukai closed 5 months ago

kdmukai commented 1 year ago

Description

Refactors the QR encoders to be more organized and more DRY. The new QREncoder classes clean up all the base classes and inheritance to make each one as simple as possible.

Also adds restart() option to fountain encoders (not used yet; further experiments with optimizing animated QRs still ongoing and will be separate PRs).

Additional details:

Include screenshots of any new or modified screens (or at least explain why they were omitted)

n/a

This pull request is categorized as a:

Checklist

If you modified or added functionality/workflow, did you add new unit tests?

I have tested this PR on the following platforms/os:

Note: Keep your changes limited in scope; if you uncover other issues or improvements along the way, ideally submit those as a separate PR. The more complicated the PR the harder to review, test, and merge.

jdlcdl commented 1 year ago

seen as of 2ce691a,

I'm assuming this is a prerequisite to #495. I've read the code changes just once, so far. Tests/screenshots are all passing: above, on my desktop, and on raspi-os on pi2. I'll play with scanning different types of qrcodes on the raspi-os-pi2, and on ss-os-pi0 with image: 9dad21e0a9e6aa83526871bd1c4c11ff4aa9f24d015fba4054d92a1f99da8ac1

After initial testing on both setups: seeds, addresses, wallet descriptors, messages, unsupported xpubs, are all scanning without errors. No strange breakages found.

newtonick commented 5 months ago

ACK and Tested