Open renesy opened 1 year ago
The metadata scanning uses Raptor, which is not the "normal" QR display, rather an adaptation of fountain codes, which is a fascinating theory and certainly solves real-world issues. This means that and adaptation of that not only requires a change on the extension, but also in all apps that read QR codes.
With the current implementation rate is difficult to optimize - older phones always have issues with faster rates. (We had numerous issues in the past with increasing the rate with the "normal-as-used-QR" display)
As of now, this is sadly a "won't fix" (or rather a "won't touch", at some point if there are libraries available to generate these on the fly in the browser, i.e. a pure JS implementation and the apps consuming these have support for it, can revisit)
Thanks for the explanation @jacogr
Could you elaborate on the second idea: Making the rate user configurable. Or even adaptive based on data size?
User configurable Initially the extension uses the current "save" default rate. A QR code rate setting (e.g. "normal", "fast") is available for users who granted the QR code camera access to the extension.
Automatic adaptive The extension increases the QR code rate according to total data size (e.g. >100 kB). Currently the signing process of large data is broken for everyone. This allows signing for faster devices with no disadvantage for slower devices (no signing either way).
I'm submitting a ...
When using an external QR-code signer account (like Polkadot Vault smartphone app) this extension displays the to-be-signed transaction data as QR codes. Larger data is split across multiple QR codes which are changed automatically by the extension. This feature request suggests to increase the frequency at which those QR codes are changed, because the current frequency is too low for very large data (like 900 kB for registrar.register).
Large transaction data (~1 MB) can be transferred to an external QR signer account in a short amount of time.
Therefore, my suggestion is:
Environment: Chromium with polkadot{.js} extension on Linux and Polkadot Vault on Android and iOS