Skip to content

Mezo Testnet default asset dropped from TypeScript SDK in v2.9.0 #1919

@ryanRfox

Description

@ryanRfox

Summary

PR #1774 added Mezo Testnet mUSD (chain ID 31611) as a default stablecoin and was merged to main on 2026-03-24. However, PR #1773 ("add upto to typescript sdk"), merged one day later on 2026-03-25, refactored all default assets from exact/server/scheme.ts into a new shared module at shared/defaultAssets.ts. The Mezo entry was not carried over during the extraction.

As a result, v2.9.0 includes Mezo in the CHANGELOG (011e680: Add Mezo Testnet (chain ID 31611) support with mUSD as the default stablecoin) but the code does not contain the entry. Servers using getDefaultAsset("eip155:31611") throw No default asset configured for network eip155:31611.

Steps to Reproduce

import { getDefaultAsset } from "@x402/evm/exact/server";
getDefaultAsset("eip155:31611"); // throws: No default asset configured for network eip155:31611

Expected Behavior

Returns the Mezo Testnet mUSD config, matching the v2.9.0 CHANGELOG entry and the original PR #1774.

Root Cause

PR #1773 (d352574) created shared/defaultAssets.ts by extracting the stablecoins map from scheme.ts. The extraction was based on a branch that predated the #1774 merge, so the Mezo entry was silently dropped. Subsequent PRs (#1786 Stable testnet, #1877 Arbitrum, #1791 Polygon) added their entries to the new location but Mezo was never re-added.

Impact

  • Mezo Testnet is listed as supported in the v2.9.0 CHANGELOG but is not functional
  • Downstream projects relying on the SDK for Mezo payment discovery cannot use v2.9.0 without inline workarounds
  • The Go and Python SDKs are unaffected (their Mezo entries were added in separate files)

Suggested Fix

Re-add the entry to DEFAULT_STABLECOINS in typescript/packages/mechanisms/evm/src/shared/defaultAssets.ts. This is a 7-line addition matching the pattern used by MegaETH (also Permit2 + EIP-2612). Requesting a patch release (v2.9.1) to align the TypeScript SDK with Go and Python, and to correct the CHANGELOG discrepancy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions