Conversation
…ge (AIFINP-78) New private workspace package @aifinpay/internal-tokenlist. Per the review on the ticket, the token list is GENERATED from live chain reads, never hand-typed: scripts/gen-tokenlist.mjs carries only addresses and provenance, reads name/symbol/decimals from each chain, and fails on a codeless address or any disagreement with the pinned expectations. --check is a drift gate against live chain state. Seeded with the verified entries from the ticket review: Polygon native-Circle USDC + USDT (self-reports USDT0 — keyed by address), BSC USDT/USDC at their real 18 decimals (the AIFINP-120 trap, pinned by an offline regression test), Avalanche USDC, and the canonical Solana USDC/USDT mints (decimals read from the mint account). The fabricated/bridged addresses from the original plan are excluded and the USDC.e exclusion is test-enforced. Not yet included, recorded in the README: Tron (needs a TronGrid read path so it can be verified rather than trusted) and the AIFP contract ABIs (to be lifted from backend/polygon.js, not rewritten). 7/7 tests, tsc clean, runtime smoke-tested. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ge (AIFINP-78) (#24) feat(tokenlist): chain-verified internal token list package (AIFINP-78)
This was referenced Aug 28, 2026
Collaborator
Author
|
Could not merge as-is: Replaced by a branch cut from |
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.
Answers the question from the v1.3 execution work: which branch does it build on?
main. This PR makes that true by bringingdev's one unique feature into it.Why main, not dev
The decisive one is not a preference:
devstill has_splitter_treasury(pm[inpython/aifinpay/unified_agent.py.Anything built on
devinherits taking the merchant's royalty. For a branchthat is about to carry v1.3 settlement execution, that is disqualifying on its own.
The rest:
devhas never produced a releasedevthat aren't onmain; its only unique content is one feature from 2026-08-15ci.ymltriggers on barepush:/pull_request:with no branch filter, sodevbuys no extra safetynpm publish/twine, so neither branch is mechanically "the release branch" — this is a convention, and the convention has drifted twicemainrequires 4 status checks,devrequires 3mainTwo long-lived branches with no mechanical difference and no promotion rule is
the actual defect. It has already cost us:
mainanddevdiverged twice, anda money-path fix sat on only one side of the split.
What this brings
dev's only unique content — the chain-verified internal token list (AIFINP-78,merged to dev as #24):
Purely additive — a new
node/internal-tokenlistpackage, zero deletions, soit cannot alter anything already on
main. Merges clean (verified).After this lands
main— verified it applies cleanly there, so it costs onedropdown.
main.dev, or reset it tomainand agree a promotion rule before using itagain. Recreating it without a rule recreates this PR in a month.
I am closing my #43, which reconciled
main → dev. That was the right directiononly while
devwas assumed to be the integration branch; it is not.