diff options
| author | Adam Soltys <[email protected]> | 2026-09-10 07:09:45 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-09-10 07:09:45 -0700 |
| commit | 6113cf567fa0830233d5c3d524361f24a3f78caa (patch) | |
| tree | f5ce3bf5e45602547d983797b57b94c8d7ae7dc5 /src/app.js | |
| parent | 435e9886620deff3d66286e3b85e97ed8f5fae53 (diff) | |
| download | coinosv3-6113cf567fa0830233d5c3d524361f24a3f78caa.tar.gz coinosv3-6113cf567fa0830233d5c3d524361f24a3f78caa.zip | |
Ark: persist vtxo bytes as base64 (a third smaller than hex); hex still read, hex still on the wire.
The live coins' signed bytes are most of a deep wallet's state — 560KB of
hex, which localStorage then holds as UTF-16. vtxoBytesToStr/FromStr in
proto.js persist base64 and read either form, _addVtxo writes base64, and
pruneArkState converts hex to base64 on every save, so an existing state
migrates itself the first time it saves. Measured on a live deep wallet:
904KB → 665KB (-26%), all 41 coins decoding identically.
The sync wire (slimArkForSync) keeps sending hex for now: a device still
on an older build would otherwise fail to decode every coin merged from a
newer one. Flip it once pre-2026-09-10 builds are gone.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Nw1Dijik1tLVKRM1WkU7xE
Diffstat (limited to 'src/app.js')
0 files changed, 0 insertions, 0 deletions
