Skip to content

feat(wallets): keyExportFormats schema, column metadata and validation (DBIP #3725) - #3742

Open
foxxx009 wants to merge 1 commit into
Chain-Love:json-toolsfrom
foxxx009:dbip-3725-keyexportformats-tools
Open

feat(wallets): keyExportFormats schema, column metadata and validation (DBIP #3725)#3742
foxxx009 wants to merge 1 commit into
Chain-Love:json-toolsfrom
foxxx009:dbip-3725-keyexportformats-tools

Conversation

@foxxx009

@foxxx009 foxxx009 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Closes #3725 (tools side)

Problem

The keyExport boolean cannot distinguish what can actually be backed up or migrated: an account private key, a mnemonic and an encrypted application backup are different artifacts.

Changes

  • tools/schema.json: optional keyExportFormats property on wallets — JSON array or null, items restricted to the initial enum encrypted-backup/mnemonic/raw-private-key, uniqueItems: true.
  • meta/columns.json: keyExportFormats metadata (arrayPopover, security group, searchableMultiSelect filter).
  • tools/csv_to_json.py: validate_key_export_formats() — rejects nonarrays, unknown/case-mismatched names and duplicates, enforces canonical alphabetical ordering; wired into canonical offers and every expanded network listing.

Validation covered (per DBIP #3725 §Acceptance)

  • JSON array validation, allowed values, uniqueness, canonical sorting
  • NULL (not yet verified) and [] (explicit review found none) both accepted
  • array preserved in generated JSON and normal offer/listing inheritance
  • validate_csv.pycsv_to_json.pyvalidate.py all green locally

The existing keyExport boolean is untouched (no rename, no bulk rewrite). Data side: paired PR adds the column to the 92 wallet tables and seeds a single verified Algorand cell (Pera).

Rewards address: 0x2409b47a530be3831158f10b08ac93f7d08c1ff2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant