Skip to content

fix(statics): remove stale eth:at bot token colliding with live AMS#8960

Closed
mmcshinsky-bitgo wants to merge 1 commit into
masterfrom
fix/statics-remove-stale-eth-at-bottoken
Closed

fix(statics): remove stale eth:at bot token colliding with live AMS#8960
mmcshinsky-bitgo wants to merge 1 commit into
masterfrom
fix/statics-remove-stale-eth-at-bottoken

Conversation

@mmcshinsky-bitgo
Copy link
Copy Markdown
Contributor

Addresses the follow-up in CSHLD-976: "Confirm whether the static eth:at bot token (and AMS-served counterpart) is intended, or whether one side should be removed/renamed."

⚠️ Draft pending team confirmation. This proposes removing the statics side. If the team decides the AMS record should be renamed/removed instead, close this in favor of that. Either way, the durable crash fix is #8957 (skip-by-contract on merge) — this PR is data hygiene, not the crash fix.

What

Removes the eth:at bot token from botTokens.ts:

'3b0d47ca-d5a9-49d6-a063-8946b88fb843' / 'eth:at' / 'APT' / 0x0581ccdf2d9bca21baeff8b32b2551fd49cf70aa / Networks.test.hoodi

Why this entry is the stale side

  • It's a generated snapshot of AMS (asset-metadata-service generate-botTokens), added by the asset-metadata-bot in feat: PR from asset-metadata-service for token onboardings #8885 (@bitgo/statics@58.43.0).
  • It has drifted from live AMS: symbol at no longer matches fullName APT, and it sits in the mainnet eth: namespace though it lives on hoodi testnet (siblings use hteth:).
  • Its contract collides with the live AMS-served token at the same address under a different nameDuplicateContractAddressDefinitionError.
  • AMS dedupes by family+contract, so AMS holds exactly one record at that contract (the differently-named one) — meaning the statics eth:at is orphaned. Removing it is consistent with what generate-botTokens would now regenerate.
  • Referenced nowhere else in the SDK.

Verification

  • grep confirms eth:at / the contract are gone from botTokens.ts.
  • Applied the same deletion in a deps-enabled checkout: tsc --build clean, mocha test/unit/coins.ts28764 passing (the 4 fewer vs. baseline are eth:at's auto-generated per-coin tests).

Related

🤖 Generated with Claude Code

The eth:at bot token (hoodi testnet, contract 0x0581ccdf2d9bca21baeff8b32b2551fd49cf70aa)
in botTokens.ts is a generated snapshot of AMS that has drifted from the live AMS data:
its symbol (at) no longer matches its fullName (APT), it sits in the mainnet eth:
namespace despite being on hoodi testnet, and its contract collides with the live
AMS-served token at the same address under a different name -- producing
DuplicateContractAddressDefinitionError when statics + AMS are merged.

It is referenced nowhere else in the SDK. Removing the orphaned snapshot entry is
consistent with what generate-botTokens would now produce (the live record under its
current name). The durable guard against this class of drift lands separately in the
statics merge fix.

CSHLD-976
@mmcshinsky-bitgo
Copy link
Copy Markdown
Contributor Author

Closing: @bitgo/statics is the source of truth for coin/token definitions, so the fix is not to remove the canonical eth:at entry here. The duplicate is the live AMS-served record at the same contract under a different name — that should be removed/renamed on the AMS side, not in statics.

The durable, statics-precedence-preserving fix stays in #8957 (statics coins are added first; a colliding AMS token is skipped). bitgo-retail #6934 keeps the UI resilient regardless.

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