Fix canonical bridge classification and content-based token list versions - #54
Merged
Merged
Conversation
This was referenced Sep 15, 2026
Member
Author
|
Clean-up wave for the repo coming in. Features:
Assisted by Astra but had it run several checks. Also create PR#55 to address the linting issues which came up when I created this. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem and result
The Ethereum ETH entry is currently labeled
bridgeType: "others"because its lowercase bridge address is compared against a checksummed string. Both generated lists also hardcode version1.0.0, preventing version-aware consumers from reliably identifying list updates.Normalize bridge addresses for comparison while preserving the published address. Version each list against its own previous output: removals (including address/chain replacements) bump major, additions bump minor, and metadata changes bump patch. Unchanged content preserves the previous version and timestamp; token ordering and object property ordering do not create updates. A missing output starts at
1.0.0; malformed or unreadable existing history fails instead of resetting the version.Publication and regression coverage
mainso queued runs use the latest committed list history.Updated assessment of #52
Supersedes #52 and the implementation proposed in closed PR #51. Thanks to @Nexory for identifying the two underlying bugs. Against main at
87fe2b0, the confirmed casing mismatch affects the Ethereum ETH entry, not all Ethereum entries. The commit-count/patch-only alternative suggested in #52 would not encode the token-list standard's addition/removal semantics. The implementation in #51 also advanced unchanged lists and did not actually retain1.0.0on initial generation.This is a maintainer-level repository change involving generator logic and CI, rather than a routine token submission; external-contributor rules restrict such changes to maintainers.
Validation
npm test -- --runInBand: 39 tests passed across 3 suites.npx tsc --noEmit: passed.npx prettier --check .andgit diff --check: passed.canonical, and advances1.0.0to1.0.1; testnet retains its 2 entries and1.0.0version.