Skip to content

feat(wallets): extensionBrowsers schema, column metadata and validation (DBIP #3713) - #3740

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

feat(wallets): extensionBrowsers schema, column metadata and validation (DBIP #3713)#3740
foxxx009 wants to merge 1 commit into
Chain-Love:json-toolsfrom
foxxx009:dbip-3713-extensionbrowsers-tools

Conversation

@foxxx009

@foxxx009 foxxx009 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Closes #3713 (tools side)

Problem

supportedPlatforms identifies delivery formats (e.g. "Browser Extension"), not the desktop browser products a provider currently supports, so users cannot answer "does this wallet have a maintained Firefox extension?" from the data.

Changes

  • tools/schema.json: optional extensionBrowsers property on wallets — JSON array or null, items restricted to the initial vocabulary Brave/Chrome/Edge/Firefox/Opera/Safari, uniqueItems: true.
  • meta/columns.json: extensionBrowsers metadata (arrayPopover, capabilities group, searchableMultiSelect filter).
  • tools/csv_to_json.py: validate_extension_browsers() — rejects nonarrays, unknown/lowercase names and duplicates, and enforces canonical alphabetical ordering; wired into both canonical offers and every expanded network listing.

Validation covered (per DBIP #3713 §Migration 5)

  • NULL accepted (unknown / inherit)
  • [] accepted (explicit: no desktop extension documented)
  • MetaMask ["Brave","Chrome","Edge","Firefox","Opera"] accepted
  • Phantom ["Chrome"] accepted
  • duplicates rejected
  • lowercase alias rejected
  • unknown browser rejected
  • non-canonical ordering rejected
  • converted/expanded listings validated through the existing CSV-to-JSON pipeline (validate_csv.pycsv_to_json.pyvalidate.py all green locally)

Data side: paired PR adds the column to the 92 wallet tables and seeds only the two evidence-backed canonical rows.

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