ZeusLN / zeus

A mobile Bitcoin wallet fit for the gods. ⚡️ Est. 563345
https://ZeusLN.com
Other
979 stars 145 forks source link

Signed TX broadcasting: support base32 encoded TXs #2375

Open kaloudis opened 2 weeks ago

kaloudis commented 2 weeks ago

Odudex, Krux maintainer, has told us that the Krux signing device returns signed TXs in base32 format (usually compressed (encoding="Z").

We currently can only detect and process hex-encoded signed TXs. Let's handle both compressed and uncompressed base32 formatted TXs too to ensure we have full compatibility with Krux and other devices that use this format.

kaloudis commented 2 weeks ago

Other findings from Odudex

More feedback on Zeus with Krux:
Used addresses suggested by Zeus and now I got the balance! Tkx!
On signing I still got issues with dedicated devices (with low cost, low resolution cameras).
Single frame: Too dense. But there's nothing to do there. 
On BC-ur, was too dense too. Also the logo on the middle get some precious reconstruction bits 😬
Edit: managed to scan by touching the QR to expand it and make background white. But as in Andoid, it failed to parse and got me an invalid PSBT
On BBQr, it scanned easily and quickly. But I was not able to scan back the signed TX. It would stop scanning right after the first frame, then fails to finalize PSBT.

Using Krux app(high res camera):
-Single frame scans, parses, signs, but by default krux encodes the signed TX to UR. Zeus says it is invalid when scanned back.
-BC-ur is scanned by Krux, but can't be parsed as a valid PSBT.
-BBQr scans, parses, signs, but Zeus won't scan back the signature.

Overall, it appears BBQr is closer to have compatibility.  But it appears to me it Zeus stops scanning right after the first frame of the signed tx animated QR code.
odudex commented 2 weeks ago

Thank you, @kaloudis! I'll keep an eye on the progress of base32 BBQr scanning on the Zeus side, and I'll try to find out why Krux can't parse Zeus' BC-ur unsigned PSBT.

odudex commented 2 weeks ago

One more test I did, scanned single frame, signed, then exported as animated BC-ur. When scanning back to Zeus, similar to the issue with BBQr, BC-ur also appears to stop scanning immediately after the first frame is scanned.